From c124ea3f3b70403852466a4da7a6cb1dfd94bb3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20Juaristi?= <127882282+juaristi22@users.noreply.github.com> Date: Wed, 30 Sep 2026 14:53:29 +0100 Subject: [PATCH 01/22] Draw SPI donor ages by ONS single-year shares and respect State Pension age (#1069 c5) The SPI income stage drew donor ages uniformly within each AGERANGE band, and its 65-74 band stopped at 74, so State Pension (SRP) donors landed on 65-year-olds and the stage-2 receipt bridge carried State Pension below State Pension age. - Donor ages are drawn within the band by the ONS mid-2023 single-year populations of the donor's sex (uk/ons_single_year_age_populations.json, vendored from the pinned Chronicle feed and declared as the stage's donor_age_populations artifact). SRP recipients draw at or above the engine's State Pension age; the band's below-SPA share is drawn from its non-recipients, and any shortfall is receipted. - AGERANGE 6 is [65, 75) and 7 starts at 75. - Band carriers draw from their own SPI age band when that pool holds 20 records (composites never age-match), then narrow by region as before. - A deterministic guard zeroes the SPI State Pension leaf before the bridge, base-channel State Pension reports before stage 2 trains, and the SPI channel's State Pension, Pension Credit and Winter Fuel reports after stage 2, each with a receipt of rows, weighted people and pounds removed. The coverage manifest and the charter-H2 parity fixture are regenerated; the fixture's synthetic CGT asset-type facts move because they are sized to the frame the upstream stages leave. Co-Authored-By: Claude Opus 5.5 --- .../uk-spi-state-pension-age-1069.fixed.md | 1 + .../src/microcosm/build/source_manifest.py | 2 + .../spec_engine/schema/sources.schema.json | 74 + .../microcosm/build/uk/country_package.json | 5 + .../uk/ledger_fact_vendor_selections.json | 27 + .../uk/ons_single_year_age_populations.json | 8419 +++++++++++++++++ .../uk/release_input_coverage_manifest.json | 30 +- .../src/microcosm/build/uk/source_stages.json | 32 +- .../src/microcosm/build/uk/spec/sources.yaml | 24 +- .../build/uk_runtime/hmrc_source_contract.py | 19 +- .../microcosm/build/uk_runtime/spi_income.py | 443 +- .../microcosm/build/uk_runtime/spi_spine.py | 89 +- .../uk/test_uk_spi_state_pension_age.py | 101 + .../engine_free/shared/test_country_spec.py | 2 + .../engine_free/uk/test_uk_source_stages.py | 13 +- .../engine_free/uk/test_uk_spi_pension_age.py | 270 + .../tests/engine_free/uk/test_uk_spi_spine.py | 14 + .../sources/cgt_asset_type_facts.json | 56 +- .../parity/uk_spine/sources/fixture.json | 32 +- .../fixtures/parity/uk_spine/uk_spine.json | 2 +- 20 files changed, 9573 insertions(+), 82 deletions(-) create mode 100644 changelog.d/uk-spi-state-pension-age-1069.fixed.md create mode 100644 packages/microcosm-build/src/microcosm/build/uk/ons_single_year_age_populations.json create mode 100644 packages/microcosm-build/tests/engine/uk/test_uk_spi_state_pension_age.py create mode 100644 packages/microcosm-build/tests/engine_free/uk/test_uk_spi_pension_age.py diff --git a/changelog.d/uk-spi-state-pension-age-1069.fixed.md b/changelog.d/uk-spi-state-pension-age-1069.fixed.md new file mode 100644 index 000000000..758d38986 --- /dev/null +++ b/changelog.d/uk-spi-state-pension-age-1069.fixed.md @@ -0,0 +1 @@ +Make the UK SPI income stage respect State Pension age (#1069). SPI donor ages are now drawn within each AGERANGE band by the ONS mid-2023 single-year populations of the donor's sex, vendored from the pinned Chronicle feed as `uk/ons_single_year_age_populations.json` and declared as a stage artifact. Donors receiving State Pension (`SRP > 0`) are drawn at or above the engine's State Pension age, and a band's below-SPA population share is drawn from its non-recipients, with any shortfall receipted. The 65–74 band edge is corrected so that 74-year-olds fall in band 6. Band carriers draw from their own SPI age band when that pool holds 20 records (composites never age-match), then narrow by region as before. A deterministic guard zeroes State Pension, Pension Credit and Winter Fuel reports below State Pension age: the SPI State Pension leaf before the stage-2 receipt bridge, the base channel's State Pension reports before stage 2 trains on them, and the SPI channel's three reports after stage 2. A receipt records the rows, weighted people and pounds removed at each step. diff --git a/packages/microcosm-build/src/microcosm/build/source_manifest.py b/packages/microcosm-build/src/microcosm/build/source_manifest.py index 1f787c140..b4ace4fdf 100644 --- a/packages/microcosm-build/src/microcosm/build/source_manifest.py +++ b/packages/microcosm-build/src/microcosm/build/source_manifest.py @@ -107,6 +107,7 @@ "derive_wic_claim", "disaggregate_aggregate_records", "draw_capital_gains_prior_from_banded_quantiles", + "draw_spi_donor_ages_by_population", "fit_labor_market_models", "fit_tip_income_model", "fit_weighted_acs_rent_qrf", @@ -155,6 +156,7 @@ "read_acs_rent_donor", "redraw_columns_from_fitted_qrf", "resample_band_donor_leaves", + "zero_pension_age_reports_below_state_pension_age", "redraw_spi_reported_uc", "redraw_spi_reporter_capital", "record_mass_conservation_receipt", 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 e3efd2c1a..f74b88bac 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 @@ -8572,6 +8572,38 @@ } } }, + { + "type": "object", + "additionalProperties": false, + "required": [ + "kind", + "artifact_role", + "resource", + "population_period", + "method", + "state_pension_age" + ], + "properties": { + "kind": { + "const": "draw_spi_donor_ages_by_population" + }, + "artifact_role": { + "type": "string" + }, + "resource": { + "type": "string" + }, + "population_period": { + "type": "integer" + }, + "method": { + "type": "string" + }, + "state_pension_age": { + "type": "string" + } + } + }, { "type": "object", "additionalProperties": false, @@ -8621,6 +8653,48 @@ }, "seed": { "type": "integer" + }, + "age_pool_minimum": { + "type": "integer" + } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": [ + "kind", + "spi_state_pension_leaf", + "spi_channel_columns", + "base_channel_columns", + "state_pension_age", + "receipt" + ], + "properties": { + "kind": { + "const": "zero_pension_age_reports_below_state_pension_age" + }, + "spi_state_pension_leaf": { + "type": "string" + }, + "spi_channel_columns": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "base_channel_columns": { + "type": "array", + "items": { + "type": "string" + } + }, + "state_pension_age": { + "type": "string" + }, + "receipt": { + "type": "string" } } }, 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 60e08be56..b46ad53c1 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/country_package.json +++ b/packages/microcosm-build/src/microcosm/build/uk/country_package.json @@ -152,6 +152,11 @@ "kind": "legacy_json", "schema_id": "legacy_json" }, + { + "path": "ons_single_year_age_populations.json", + "kind": "legacy_json", + "schema_id": "legacy_json" + }, { "path": "lcfs_consumption_support_bounds.json", "kind": "legacy_json", diff --git a/packages/microcosm-build/src/microcosm/build/uk/ledger_fact_vendor_selections.json b/packages/microcosm-build/src/microcosm/build/uk/ledger_fact_vendor_selections.json index a90505b52..36bdc2c26 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/ledger_fact_vendor_selections.json +++ b/packages/microcosm-build/src/microcosm/build/uk/ledger_fact_vendor_selections.json @@ -853,6 +853,33 @@ "expected_row_count": 48 } ] + }, + { + "resource": "ons_single_year_age_populations.json", + "purpose": "ONS mid-2023 UK resident population by single year of age (0 to 89 and 90 and over) and sex (MYE2). Consumed by the SPI income stage, which draws each SPI 2022-23 donor's age within its published AGERANGE band in proportion to these single-year populations instead of uniformly, with State Pension recipients drawn at or above State Pension age (microcosm#1069).", + "consumers": [ + "uk_runtime.spi_income" + ], + "planned_consumers": [], + "selections": [ + { + "label": "mye2_uk_single_year_of_age_by_sex_mid2023", + "selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "geography_id": "K02000001", + "period_type": "calendar_year", + "period_value": [ + "2023" + ], + "dimensions": [ + "age", + "sex" + ] + }, + "expected_row_count": 182 + } + ] } ] } diff --git a/packages/microcosm-build/src/microcosm/build/uk/ons_single_year_age_populations.json b/packages/microcosm-build/src/microcosm/build/uk/ons_single_year_age_populations.json new file mode 100644 index 000000000..73008f1ac --- /dev/null +++ b/packages/microcosm-build/src/microcosm/build/uk/ons_single_year_age_populations.json @@ -0,0 +1,8419 @@ +{ + "schema_version": 1, + "country": "uk", + "kind": "uk_vendored_ledger_facts", + "resource": "ons_single_year_age_populations.json", + "purpose": "ONS mid-2023 UK resident population by single year of age (0 to 89 and 90 and over) and sex (MYE2). Consumed by the SPI income stage, which draws each SPI 2022-23 donor's age within its published AGERANGE band in proportion to these single-year populations instead of uniformly, with State Pension recipients drawn at or above State Pension age (microcosm#1069).", + "consumers": [ + "uk_runtime.spi_income" + ], + "planned_consumers": [], + "policy": "Rows are copied verbatim from the pinned Chronicle consumer feed named in source_fact_feed; every value is a publisher-stated fact. Consumers declare their own arithmetic on these rows and never edit this file by hand: regenerate it with tools/vendor_uk_ledger_facts.py.", + "generator": { + "tool": "tools/vendor_uk_ledger_facts.py", + "version": 1 + }, + "source_fact_feed": { + "source_repo": "PolicyEngine/chronicle", + "source_commit": "505e0e72aa7c82b96dc06941d84fa797a629161c", + "build": "build-bundle --suite uk -> build-consumer-artifact", + "artifact_schema_version": "policyengine_ledger.consumer_artifact.v2", + "fact_row_count": 287150, + "facts_sha256": "4a45c543553617d606ebf8ea11254b48c1e6e115c97840dd8757beafbac035d9", + "manifest_sha256": "3dc9ed05ba00d30609c295cb7d34ebcd98476778bebf1da9a1e7f2e64b97caf7" + }, + "selections": [ + { + "label": "mye2_uk_single_year_of_age_by_sex_mid2023", + "selector": { + "source_name": "ons", + "source_concept": "ons.mid_year_population_estimate", + "geography_id": "K02000001", + "period_type": "calendar_year", + "period_value": [ + "2023" + ], + "dimensions": [ + "age", + "sex" + ] + }, + "row_count": 182 + } + ], + "row_count": 182, + "rows": [ + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_4a3bcfb2d0470af0aebd307b", + "semantic_fact_key": "ledger_semantic_fact_v2_5c02d7a386b2c43f28f781c0", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_90_plus.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_90_plus", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": "90_plus", + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 408216 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_08ad8e4534063e1f81a4f712", + "semantic_fact_key": "ledger_semantic_fact_v2_6fedb24a16e5a2f7177b9218", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_90_plus.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_90_plus", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": "90_plus", + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 203503 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_4ebebdf0cec193ac0fff508d", + "semantic_fact_key": "ledger_semantic_fact_v2_7bce50c58786ab54c9be5a56", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_0.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_0", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 0, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 324854 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_0f454285b7665a2a84d0b93c", + "semantic_fact_key": "ledger_semantic_fact_v2_28028bd22a01f0c288f9e448", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_0.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_0", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 0, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 342328 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_1e3075a4f0ec456b91c2ce96", + "semantic_fact_key": "ledger_semantic_fact_v2_ffde9f26c0acae238e7a137e", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_1.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_1", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 1, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 347745 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_00486b31b3869f84b7b82d31", + "semantic_fact_key": "ledger_semantic_fact_v2_e075d450cd7cd00a711efc1c", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_1.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_1", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 1, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 364505 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_7774c10309d6bc6c5b72ab58", + "semantic_fact_key": "ledger_semantic_fact_v2_4ef6e5fedb35fec94dd450fd", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_10.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_10", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 10, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 398980 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_96519cc6ce84d5a8546ee4a7", + "semantic_fact_key": "ledger_semantic_fact_v2_cf3398d2b5c264f108fb5ff8", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_10.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_10", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 10, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 418524 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_4f5a550a735962cd2fd44f89", + "semantic_fact_key": "ledger_semantic_fact_v2_ada6b7710a12d077d4f9c06c", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_11.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_11", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 11, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 409728 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_2d389ae90d3be70534fddee8", + "semantic_fact_key": "ledger_semantic_fact_v2_21c267ee8d9bc6c5820be0de", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_11.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_11", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 11, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 429361 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_3313a9a641b5b57afd761ca2", + "semantic_fact_key": "ledger_semantic_fact_v2_2a617d85d68722711fff3f95", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_12.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_12", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 12, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 409494 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_2229ce4a4c4d99f304edbdfc", + "semantic_fact_key": "ledger_semantic_fact_v2_e6e9222fd260ccc245e0dc5d", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_12.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_12", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 12, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 430659 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_61947d78ed7fd76937160a27", + "semantic_fact_key": "ledger_semantic_fact_v2_af9920c13a8a3bf57a8740b8", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_13.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_13", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 13, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 405159 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_47d7d0efc40f96f267e0d06b", + "semantic_fact_key": "ledger_semantic_fact_v2_9f000a42edd4c7bf2ef69328", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_13.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_13", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 13, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 424443 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_b888141fdc6c36c38868a115", + "semantic_fact_key": "ledger_semantic_fact_v2_ea70e1fa6345d9dc63e9d460", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_14.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_14", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 14, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 401848 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_2187c9f1957f3d2fc96ad375", + "semantic_fact_key": "ledger_semantic_fact_v2_92dcc14567307adca4ee9983", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_14.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_14", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 14, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 422091 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_9b26fdfc121bf2854e0a964c", + "semantic_fact_key": "ledger_semantic_fact_v2_c6e7386919047f4413f4b389", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_15.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_15", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 15, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 405841 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_b53714893d52d1065ea901a7", + "semantic_fact_key": "ledger_semantic_fact_v2_d10240a7257fb932710bf996", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_15.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_15", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 15, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 425723 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_d2a49f76728d9f7438991c39", + "semantic_fact_key": "ledger_semantic_fact_v2_d01eebbf8908259d139a77d3", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_16.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_16", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 16, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 389062 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_26e95e066a6a7c08dd59fc1e", + "semantic_fact_key": "ledger_semantic_fact_v2_03f9c62009de3dfddd15e536", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_16.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_16", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 16, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 411886 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_f1035266152c10ca25027138", + "semantic_fact_key": "ledger_semantic_fact_v2_397811716143276593c05527", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_17.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_17", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 17, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 381938 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_f8e958b6442614d517122f0b", + "semantic_fact_key": "ledger_semantic_fact_v2_46872525cd0bc960aea694a9", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_17.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_17", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 17, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 406101 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_675deda4d77ec9dba5ba9a6e", + "semantic_fact_key": "ledger_semantic_fact_v2_8be551d3c50245e647ace507", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_18.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_18", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 18, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 381530 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_e27f58be403071d1295fe6bf", + "semantic_fact_key": "ledger_semantic_fact_v2_810e6ab87947bd7c29106812", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_18.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_18", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 18, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 407166 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_ddbe66598370548b43420acf", + "semantic_fact_key": "ledger_semantic_fact_v2_67bc86af3928f58bbc5f5a10", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_19.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_19", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 19, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 388704 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_c92bd6c60c4ec18ea532bf8d", + "semantic_fact_key": "ledger_semantic_fact_v2_b154078820785ad8a1697806", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_19.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_19", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 19, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 413517 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_5581d5b6741e0f36cfac073e", + "semantic_fact_key": "ledger_semantic_fact_v2_bac9beb2f0ac3e97abd8b1c3", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_2.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_2", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 2, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 346068 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_b4d347bdcba9ad9738b6e5e0", + "semantic_fact_key": "ledger_semantic_fact_v2_1af588b147b4afc8017e61ec", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_2.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_2", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 2, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 363201 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_5a51b9d0cb18a9def5e724de", + "semantic_fact_key": "ledger_semantic_fact_v2_cc965b84de8be16831159cf6", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_20.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_20", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 20, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 387458 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_19ec8c84238f91fac741f174", + "semantic_fact_key": "ledger_semantic_fact_v2_d2b7f469112739346c6932c3", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_20.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_20", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 20, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 412991 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_8ea9fffa4c5dc656987f45f8", + "semantic_fact_key": "ledger_semantic_fact_v2_19794cf4811a122de324c33c", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_21.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_21", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 21, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 391433 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_4365733369e3651807009142", + "semantic_fact_key": "ledger_semantic_fact_v2_5786dbc1b0b0532c2c348d49", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_21.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_21", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 21, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 409764 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_92cbd601785fe8be7486ec14", + "semantic_fact_key": "ledger_semantic_fact_v2_8e1358acc145eeb706863368", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_22.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_22", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 22, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 393708 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_96e64ea6fd712a0f5550df72", + "semantic_fact_key": "ledger_semantic_fact_v2_00734e43b34a3ed376469b1b", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_22.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_22", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 22, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 410468 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_3a85d9b439c52e5eb4a77eaa", + "semantic_fact_key": "ledger_semantic_fact_v2_bb6d8c7adac2c12ee241653f", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_23.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_23", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 23, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 408989 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_027282ef4cc6258245dc7da8", + "semantic_fact_key": "ledger_semantic_fact_v2_e1f0d9a6d5c80ff90f5680de", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_23.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_23", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 23, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 421759 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_4e045eebca109429a244fe99", + "semantic_fact_key": "ledger_semantic_fact_v2_c7d1b4dc96b46fc819ccbe84", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_24.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_24", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 24, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 426517 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_2f9bc4be5a85ab101e946d6d", + "semantic_fact_key": "ledger_semantic_fact_v2_58eb1c1a558949dd817ebe17", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_24.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_24", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 24, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 434455 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_651d10c9f786e6019df86b54", + "semantic_fact_key": "ledger_semantic_fact_v2_515deb57a314ae090fd50440", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_25.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_25", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 25, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 434388 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_1d6a2421e00987a9416ea2cc", + "semantic_fact_key": "ledger_semantic_fact_v2_35492d38a8aefcb75b3ef4c8", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_25.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_25", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 25, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 435305 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_6d35ac539f5561cf6c630d0f", + "semantic_fact_key": "ledger_semantic_fact_v2_3a2a8234dd46d28374e410cf", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_26.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_26", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 26, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 445291 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_3907116f5761e97a2642ad96", + "semantic_fact_key": "ledger_semantic_fact_v2_d333960ec16c82c318e9c4bc", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_26.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_26", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 26, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 442513 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_8529cdd8e691b1a6b3589cee", + "semantic_fact_key": "ledger_semantic_fact_v2_c6d1473281ace681b99d6b1a", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_27.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_27", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 27, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 439256 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_ea1b0e6b30597eac3bb1669a", + "semantic_fact_key": "ledger_semantic_fact_v2_7ddf5e7d52deeccdedf637be", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_27.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_27", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 27, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 434605 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_c9bdf4b3dbd47679ed1fbbc5", + "semantic_fact_key": "ledger_semantic_fact_v2_4c93035cf5400dcc724d98d6", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_28.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_28", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 28, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 449215 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_c6c5592c97cb6a6de7b4a534", + "semantic_fact_key": "ledger_semantic_fact_v2_b019c63a85095e7c00f211c1", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_28.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_28", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 28, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 437393 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_86a2c63312414fde298c9efe", + "semantic_fact_key": "ledger_semantic_fact_v2_c2f23a1e5d5805ea551547f6", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_29.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_29", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 29, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 464258 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_cf5d5d1a7c9eb827ae261c7f", + "semantic_fact_key": "ledger_semantic_fact_v2_4ed34e4068b495ed1e146b30", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_29.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_29", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 29, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 445523 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_aeb34b1015a7c15b957128dc", + "semantic_fact_key": "ledger_semantic_fact_v2_db5d1c2ac7ce17557f14f440", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_3.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_3", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 3, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 358704 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_6633eb75338de98e9cd1e934", + "semantic_fact_key": "ledger_semantic_fact_v2_40d420daa830bed845ad3f7c", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_3.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_3", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 3, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 375319 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_ce13155e323d3fca91d9f42b", + "semantic_fact_key": "ledger_semantic_fact_v2_973a51a079a11f20ddaad92f", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_30.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_30", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 30, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 467257 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_9d956a1ab748dcf2d5a441b3", + "semantic_fact_key": "ledger_semantic_fact_v2_6b0551e8672ff7b60e5a515e", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_30.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_30", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 30, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 444933 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_1cd504cc330944fa73cddbc9", + "semantic_fact_key": "ledger_semantic_fact_v2_9fa3f551e48bba5c59ae70a5", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_31.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_31", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 31, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 483270 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_5afe855e626c045a3f30f655", + "semantic_fact_key": "ledger_semantic_fact_v2_504de27106529bfc4e6b39b6", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_31.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_31", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 31, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 457654 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_493d6c3280edf6006fcb78e2", + "semantic_fact_key": "ledger_semantic_fact_v2_c9865f63902f33d3618f0a02", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_32.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_32", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 32, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 489319 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_277043e54ea1b300962bd85d", + "semantic_fact_key": "ledger_semantic_fact_v2_dbc88475ee8454929f7c9c2d", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_32.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_32", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 32, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 463466 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_bb8d03c13fe33172e5693982", + "semantic_fact_key": "ledger_semantic_fact_v2_f442dafad02af57d02e4ea51", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_33.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_33", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 33, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 489488 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_b7b87b1c09067ca8c7c327ac", + "semantic_fact_key": "ledger_semantic_fact_v2_0ba260b4d6cc6e47a8b895e7", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_33.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_33", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 33, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 460182 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_c1914fc8fb2a8b267bfb6a35", + "semantic_fact_key": "ledger_semantic_fact_v2_75ce0ace0e7b7b99890eea1b", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_34.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_34", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 34, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 487748 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_84fb3de0a05f992caa4f54dd", + "semantic_fact_key": "ledger_semantic_fact_v2_85b48d3e07581203400f554e", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_34.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_34", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 34, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 456881 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_527402ac092fbeff42932ccd", + "semantic_fact_key": "ledger_semantic_fact_v2_f64f20a137ea1827a7afc4ff", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_35.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_35", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 35, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 495395 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_5d64ba2cb51dbd6c6b624dbc", + "semantic_fact_key": "ledger_semantic_fact_v2_d39e7cc8a480b210b8c2c95b", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_35.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_35", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 35, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 460721 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_c0db936fbd97602d4bcecd14", + "semantic_fact_key": "ledger_semantic_fact_v2_357754ebc3ed59d6804c5006", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_36.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_36", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 36, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 484598 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_26cb629f3fd9269f751de889", + "semantic_fact_key": "ledger_semantic_fact_v2_52b0f5fc1fd244127a62f8d4", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_36.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_36", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 36, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 449519 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_5eaa09f10cf975e38a53fbb5", + "semantic_fact_key": "ledger_semantic_fact_v2_681bcdc96835686d1aa6eb04", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_37.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_37", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 37, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 478643 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_085fbf06c0548a7fa4c9e9e9", + "semantic_fact_key": "ledger_semantic_fact_v2_a7495cfb75e119122a2039d9", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_37.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_37", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 37, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 449174 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_b74fb0922650d6af5188f5c3", + "semantic_fact_key": "ledger_semantic_fact_v2_f845b324f803b0e745d59300", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_38.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_38", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 38, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 476372 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_71d859320fae913d6a356543", + "semantic_fact_key": "ledger_semantic_fact_v2_cf2d2eb2ff28849a70cebf45", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_38.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_38", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 38, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 447391 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_596c27b5c56f0a423ce388c2", + "semantic_fact_key": "ledger_semantic_fact_v2_994eee32cf0e5c950b588118", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_39.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_39", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 39, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 461282 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_231e3c373ef8891d56718a2a", + "semantic_fact_key": "ledger_semantic_fact_v2_09fde28f972b1314ecd5d408", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_39.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_39", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 39, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 433498 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_66d0baf78c0f1e300a2df11d", + "semantic_fact_key": "ledger_semantic_fact_v2_c50058166493ff777fc13d38", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_4.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_4", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 4, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 365289 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_80f0c0f6930899b3f9887c23", + "semantic_fact_key": "ledger_semantic_fact_v2_26453b072e676fa9403660c9", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_4.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_4", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 4, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 383994 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_6cfa6771576b5f8c32ec4b71", + "semantic_fact_key": "ledger_semantic_fact_v2_6514f395349557527ec60b8f", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_40.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_40", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 40, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 461501 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_66693c98966705b2d98b722c", + "semantic_fact_key": "ledger_semantic_fact_v2_76b1aa33d871cd99b5fd5d0a", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_40.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_40", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 40, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 433474 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_23a57cbb11552eff8e45104b", + "semantic_fact_key": "ledger_semantic_fact_v2_2173767d33db0bf64e247e74", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_41.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_41", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 41, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 457594 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_e5dd869f6dfa1b78edd360be", + "semantic_fact_key": "ledger_semantic_fact_v2_75891a453eede7cac0b13de6", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_41.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_41", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 41, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 432811 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_2ff13f2fef34c65b0e3f9099", + "semantic_fact_key": "ledger_semantic_fact_v2_4f5786edd0380779823fbef0", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_42.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_42", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 42, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 462000 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_380d1c0b72eee2f896cdb51c", + "semantic_fact_key": "ledger_semantic_fact_v2_937557a849f46ea06beef51e", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_42.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_42", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 42, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 435957 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_3699d3cb646a1dba7f25c73f", + "semantic_fact_key": "ledger_semantic_fact_v2_c11b8edb780cf1e1683cc5b0", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_43.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_43", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 43, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 460982 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_f83596426a154293f220d0b2", + "semantic_fact_key": "ledger_semantic_fact_v2_1e0cffd7e3e522ad48cd7cd0", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_43.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_43", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 43, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 438824 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_3c30d269ff647729dc7c2f48", + "semantic_fact_key": "ledger_semantic_fact_v2_474eee2e0fee448ecf3fadde", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_44.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_44", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 44, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 440812 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_50624b257ba4ab1dfee69be9", + "semantic_fact_key": "ledger_semantic_fact_v2_f5db537eb81c793f8f88fdc9", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_44.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_44", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 44, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 422271 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_ddb10d50714a4206475e65b3", + "semantic_fact_key": "ledger_semantic_fact_v2_bd376f486c5a6f4e25df18fd", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_45.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_45", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 45, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 409188 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_68614ab4e6fe228e7814ed66", + "semantic_fact_key": "ledger_semantic_fact_v2_32169258a1a4fd99dad96133", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_45.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_45", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 45, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 392461 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_1c885b7442ac751a089c591e", + "semantic_fact_key": "ledger_semantic_fact_v2_6aa5a820726fa1a373cb4240", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_46.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_46", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 46, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 400009 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_f8f4c331654e6ab739ba85da", + "semantic_fact_key": "ledger_semantic_fact_v2_3794880c01a139d58f38b15d", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_46.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_46", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 46, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 386516 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_e223335c3ce66e32a1ab4947", + "semantic_fact_key": "ledger_semantic_fact_v2_206c1182cb908a56148ae19a", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_47.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_47", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 47, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 409067 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_4d51b5560a1fb460671ca12b", + "semantic_fact_key": "ledger_semantic_fact_v2_46c87d03bafa485de6332075", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_47.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_47", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 47, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 395515 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_a325a9b51f5928efdc4eb5b1", + "semantic_fact_key": "ledger_semantic_fact_v2_7b92c9eac34aee4d94596f4d", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_48.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_48", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 48, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 416504 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_449e923c04825ca9cae59a7b", + "semantic_fact_key": "ledger_semantic_fact_v2_a0fd0d4458ab53a6df649cf7", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_48.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_48", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 48, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 403311 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_3e3a464187ab1ef8cde9b199", + "semantic_fact_key": "ledger_semantic_fact_v2_99bb121bdbdd6e177ae7668c", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_49.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_49", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 49, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 422065 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_b7e36882332899d82283dd3c", + "semantic_fact_key": "ledger_semantic_fact_v2_c80c7cb1c79867c2c6ee9044", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_49.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_49", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 49, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 408606 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_4cb79fe10b49072f7c6234aa", + "semantic_fact_key": "ledger_semantic_fact_v2_81e5475c17fcb52bad11282a", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_5.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_5", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 5, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 370522 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_b6564af7335fe44b961e3a4c", + "semantic_fact_key": "ledger_semantic_fact_v2_e3c316a8611edea39655b9fc", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_5.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_5", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 5, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 387948 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_13fd387db71f7eff6c8d784d", + "semantic_fact_key": "ledger_semantic_fact_v2_106e14f567f72a9c551b252f", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_50.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_50", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 50, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 438465 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_fbbb405314eaa1aa1de55699", + "semantic_fact_key": "ledger_semantic_fact_v2_445e687c8e96e1c48f2d6ab1", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_50.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_50", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 50, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 424562 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_51717cef03891f424acf775f", + "semantic_fact_key": "ledger_semantic_fact_v2_b3202a91c3e6f85586b5354d", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_51.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_51", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 51, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 455706 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_e19318af1adb4d9f37c27dbc", + "semantic_fact_key": "ledger_semantic_fact_v2_f30ff5aa39b1dffbeb56f0e6", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_51.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_51", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 51, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 440227 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_6ca714ce9b0c96b142a62a08", + "semantic_fact_key": "ledger_semantic_fact_v2_79364cd1ba28b69dd396bd6b", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_52.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_52", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 52, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 474771 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_30097be8969447f6184b13ce", + "semantic_fact_key": "ledger_semantic_fact_v2_47f0cbb360d0d5b156b61fdf", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_52.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_52", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 52, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 454659 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_2946b6e986b67eaf12bf544f", + "semantic_fact_key": "ledger_semantic_fact_v2_1397b8bf4082f07eaf20a663", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_53.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_53", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 53, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 462696 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_8d1ae2e35715a36cea2b5985", + "semantic_fact_key": "ledger_semantic_fact_v2_17d7c7b46899d5f745ae556f", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_53.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_53", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 53, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 444285 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_1068f1c3abad56b586b369e0", + "semantic_fact_key": "ledger_semantic_fact_v2_81c0a783f63457ec9d2d6bf1", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_54.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_54", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 54, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 472931 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_e70a43e8a71db80ac1c26053", + "semantic_fact_key": "ledger_semantic_fact_v2_2680aa01ac1376b11e10517c", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_54.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_54", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 54, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 454576 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_3e9bcb1e56671c0180bb3359", + "semantic_fact_key": "ledger_semantic_fact_v2_be335f3619a14d93c9d6e6fe", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_55.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_55", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 55, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 471867 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_e35c2bb2826d60841729810b", + "semantic_fact_key": "ledger_semantic_fact_v2_5f77787d798d078174d2d5a4", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_55.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_55", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 55, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 453431 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_a465fd04a116677a5b832d10", + "semantic_fact_key": "ledger_semantic_fact_v2_f267a6483fde54a5723d7a7e", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_56.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_56", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 56, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 472982 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_6edf2c45923807d3a4342a55", + "semantic_fact_key": "ledger_semantic_fact_v2_f48935a02be810e795a0d119", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_56.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_56", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 56, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 456860 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_1ddeb05c3bfa53f412d72751", + "semantic_fact_key": "ledger_semantic_fact_v2_a5f4f92a275cb0be33124351", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_57.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_57", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 57, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 472718 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_30dc996ab52d0ab6829f36f2", + "semantic_fact_key": "ledger_semantic_fact_v2_96e39d463c19a3c0d53895f2", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_57.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_57", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 57, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 452506 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_2322f6e5d59f88d5e97439b6", + "semantic_fact_key": "ledger_semantic_fact_v2_0cdfe5e78014200d6921e57a", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_58.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_58", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 58, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 474539 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_4ee2dd11aff554c244049ae5", + "semantic_fact_key": "ledger_semantic_fact_v2_5ecfe24d8386aad82a0515e6", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_58.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_58", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 58, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 454627 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_c91e8c2c549cb2ab3fe765b7", + "semantic_fact_key": "ledger_semantic_fact_v2_2403e2b6ba316cc3fcd2789f", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_59.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_59", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 59, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 468090 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_6fb817a266bffd372e384ab2", + "semantic_fact_key": "ledger_semantic_fact_v2_5422ca9b3aecc66959c81026", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_59.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_59", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 59, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 447645 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_063f7c99f7fa1cbef8ebf877", + "semantic_fact_key": "ledger_semantic_fact_v2_6b9834d3d255978d637bc936", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_6.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_6", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 6, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 379256 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_c6abdb20b466175583ee4895", + "semantic_fact_key": "ledger_semantic_fact_v2_bbc1209c9af5c12960d6fa65", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_6.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_6", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 6, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 397176 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_8e377055b2cc5c58688fd496", + "semantic_fact_key": "ledger_semantic_fact_v2_738d806295dda826dd13e629", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_60.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_60", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 60, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 456166 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_f09dada5790e3021a3eaccf5", + "semantic_fact_key": "ledger_semantic_fact_v2_97e5db18dbc241a0b22f625c", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_60.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_60", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 60, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 437034 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_8b09487fbfc1e13cdec472c5", + "semantic_fact_key": "ledger_semantic_fact_v2_3bb8ed2ebc48fedf5254fed4", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_61.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_61", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 61, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 443948 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_0a23f40fb64cee6cbf6800dc", + "semantic_fact_key": "ledger_semantic_fact_v2_6202f69ad1aca86b0f5f8cb8", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_61.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_61", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 61, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 425976 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_4d77698edf2e62f4023f6828", + "semantic_fact_key": "ledger_semantic_fact_v2_436526553a863996c7b093d7", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_62.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_62", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 62, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 426158 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_702be7a024a20d0b03a82f03", + "semantic_fact_key": "ledger_semantic_fact_v2_8fb8e9b3a0b737ca324216e3", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_62.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_62", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 62, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 410634 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_b7f69c23f86a4fc9b1559158", + "semantic_fact_key": "ledger_semantic_fact_v2_1b2562813d482c7fa5e25417", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_63.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_63", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 63, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 408782 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_01d29f98791c49b33b2fc671", + "semantic_fact_key": "ledger_semantic_fact_v2_1fe4ef860f8844b4e47dc8ad", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_63.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_63", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 63, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 393466 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_b6ce9730ad90575a3ba0f97e", + "semantic_fact_key": "ledger_semantic_fact_v2_8758de302480d6631be4694e", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_64.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_64", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 64, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 398129 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_4198a174a9de7883e1866869", + "semantic_fact_key": "ledger_semantic_fact_v2_814843eb33c86c8f1d04e077", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_64.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_64", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 64, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 381376 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_5275c18aaf0e7cf5a9ec600d", + "semantic_fact_key": "ledger_semantic_fact_v2_15ebad88987041f02f66e672", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_65.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_65", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 65, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 386663 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_eeb75b179311d50a600e304c", + "semantic_fact_key": "ledger_semantic_fact_v2_ef4ed7a58cb96d79e9870671", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_65.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_65", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 65, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 369625 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_b41e90eb85c3870d602967e1", + "semantic_fact_key": "ledger_semantic_fact_v2_11987364d0bd2bf53d48557b", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_66.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_66", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 66, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 370389 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_92afc8767ceaba8c967eead5", + "semantic_fact_key": "ledger_semantic_fact_v2_3104289a842b80ad7acf5ec2", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_66.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_66", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 66, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 351473 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_733d58f3b1f5dd47d73104fc", + "semantic_fact_key": "ledger_semantic_fact_v2_d62f7c158acd4f6ca36984c4", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_67.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_67", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 67, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 355512 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_ea094807e8da40dbab9c4c3c", + "semantic_fact_key": "ledger_semantic_fact_v2_9fb15d93614bfc3a685227eb", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_67.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_67", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 67, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 336817 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_4d2ab48c5392b06c271900a2", + "semantic_fact_key": "ledger_semantic_fact_v2_12ccf1ed6aaa0c83fc1abf67", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_68.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_68", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 68, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 341641 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_95d77d4a5e4f2145c8216ecb", + "semantic_fact_key": "ledger_semantic_fact_v2_4e68917b07e1d189d66b1246", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_68.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_68", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 68, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 320034 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_b4ec693c3a5fe8b441aa53ac", + "semantic_fact_key": "ledger_semantic_fact_v2_5797af824697a719a655e2bc", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_69.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_69", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 69, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 340756 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_4499e130530bd837d3144eb6", + "semantic_fact_key": "ledger_semantic_fact_v2_ef28734051f25d9e7c1270ed", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_69.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_69", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 69, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 316799 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_88e69819aa332139d86e7214", + "semantic_fact_key": "ledger_semantic_fact_v2_87df946838b4a82f96c52fd8", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_7.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_7", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 7, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 389863 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_1758a667cc5d5802a11d886b", + "semantic_fact_key": "ledger_semantic_fact_v2_c079eb9f3d6441f121c69276", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_7.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_7", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 7, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 409508 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_a16aa4dfa78d29b9ca79ced6", + "semantic_fact_key": "ledger_semantic_fact_v2_697cd14a3422125a51e8dc6e", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_70.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_70", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 70, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 333305 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_71d3fded00a46f536d557157", + "semantic_fact_key": "ledger_semantic_fact_v2_c0901f9015986b53a726ab68", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_70.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_70", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 70, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 309135 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_9dcbff7121fdb1e9224d4530", + "semantic_fact_key": "ledger_semantic_fact_v2_b9517f60ebc2a9aa0dca76f8", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_71.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_71", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 71, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 322701 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_82278ca5e66c5a4a58ea4a2e", + "semantic_fact_key": "ledger_semantic_fact_v2_9b6a6472e0efb914853b93f0", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_71.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_71", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 71, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 294844 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_33153c7ca8409b0c5fa99fe8", + "semantic_fact_key": "ledger_semantic_fact_v2_97dd4ad605f8279290e13865", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_72.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_72", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 72, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 322404 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_4b0f27ac370bb9d9967d99fe", + "semantic_fact_key": "ledger_semantic_fact_v2_15dff6d1b3f75fb32c9bd352", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_72.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_72", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 72, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 293782 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_fd1c5a3a2b3b114b99014ae9", + "semantic_fact_key": "ledger_semantic_fact_v2_0cf3b7ee8ff76d565cf7bd8c", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_73.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_73", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 73, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 325481 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_1b8f29bb87b175d9da302161", + "semantic_fact_key": "ledger_semantic_fact_v2_f5896a98415fc93e3105609a", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_73.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_73", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 73, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 292668 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_dc3a6315bc0e761a07084467", + "semantic_fact_key": "ledger_semantic_fact_v2_ab2d0dc2678363d02cd7534c", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_74.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_74", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 74, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 329858 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_d7140c4ba2545eedbaab8108", + "semantic_fact_key": "ledger_semantic_fact_v2_1f477b95533c32052fd83a14", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_74.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_74", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 74, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 296281 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_c6fd12c81bf1e07adb3bd6f3", + "semantic_fact_key": "ledger_semantic_fact_v2_c754c1800fe723c13e5ef1d7", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_75.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_75", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 75, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 345081 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_e1251d6cacc4ac9bf6447f8e", + "semantic_fact_key": "ledger_semantic_fact_v2_ae5ee4b82c57d52d7cbe66fd", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_75.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_75", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 75, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 306251 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_474d7446845d49371389e259", + "semantic_fact_key": "ledger_semantic_fact_v2_75b21d6e80b20e7b68076e84", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_76.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_76", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 76, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 368136 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_d557c98c95fae185f5be3977", + "semantic_fact_key": "ledger_semantic_fact_v2_4b72195d0c6f03830bfa6774", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_76.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_76", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 76, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 325543 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_52dbb1faa65bfd2908f0ccca", + "semantic_fact_key": "ledger_semantic_fact_v2_5b9728970cc01984225c5840", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_77.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_77", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 77, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 279000 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_555511d73c11a6d8777e3a74", + "semantic_fact_key": "ledger_semantic_fact_v2_ef36de2d6295ef13e5108114", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_77.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_77", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 77, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 242896 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_dc1ad449208a0ee1730939ab", + "semantic_fact_key": "ledger_semantic_fact_v2_a34cd3bd69149f6aa6aa6ebb", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_78.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_78", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 78, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 266479 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_8178872763c6784dd0fb9f02", + "semantic_fact_key": "ledger_semantic_fact_v2_b81ac9a71b22d7b7fd4f9434", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_78.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_78", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 78, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 228437 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_45a2c8f16e67f03ca5eb794a", + "semantic_fact_key": "ledger_semantic_fact_v2_964287f88fdd9435cfc0aed5", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_79.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_79", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 79, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 260294 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_593cd5b2138cb791be551482", + "semantic_fact_key": "ledger_semantic_fact_v2_83cc08db280d8401e874cc06", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_79.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_79", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 79, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 221198 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_49f2ac8c7311b71ba73da4ad", + "semantic_fact_key": "ledger_semantic_fact_v2_dc311b28686452e3fb3d883e", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_8.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_8", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 8, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 387517 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_0e1626870c989ec8db50dc54", + "semantic_fact_key": "ledger_semantic_fact_v2_d9b767d0d6c860a81d275483", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_8.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_8", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 8, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 406100 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_05a14960cb9884260a9477b1", + "semantic_fact_key": "ledger_semantic_fact_v2_d0e10f686fb4a48e21ba20a2", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_80.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_80", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 80, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 238211 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_c6225adb93f83db9c4758c1d", + "semantic_fact_key": "ledger_semantic_fact_v2_82fa3505bb9cba193471fa7b", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_80.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_80", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 80, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 196827 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_501f5a9119772a4e559d659f", + "semantic_fact_key": "ledger_semantic_fact_v2_07b5f8f0f99f8646f79fac3e", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_81.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_81", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 81, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 208888 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_dd4b3e404d90304a6ae30944", + "semantic_fact_key": "ledger_semantic_fact_v2_d507f2384d5beef754c32b68", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_81.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_81", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 81, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 168425 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_f255fcd1d70ba266995f07bc", + "semantic_fact_key": "ledger_semantic_fact_v2_92bdb8a7bdac3229d6e9ab1f", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_82.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_82", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 82, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 182086 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_961526a0a42e0d5173f74b21", + "semantic_fact_key": "ledger_semantic_fact_v2_a685de0d532256e968870ae8", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_82.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_82", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 82, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 142412 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_0ed7a3e47a5b25104f2a6b99", + "semantic_fact_key": "ledger_semantic_fact_v2_20268eb111e6c32994c0211e", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_83.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_83", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 83, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 182421 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_d5e91cee6431186e063ec08f", + "semantic_fact_key": "ledger_semantic_fact_v2_91db28b1e4795c174c8513ab", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_83.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_83", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 83, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 139886 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_67b2f246ca4afbdefa40bcba", + "semantic_fact_key": "ledger_semantic_fact_v2_2adb87987389fece9c7bd4bd", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_84.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_84", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 84, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 173745 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_0240f13807c3874bdf41d87f", + "semantic_fact_key": "ledger_semantic_fact_v2_0bbd580912f57278bf8e3003", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_84.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_84", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 84, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 130411 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_f036ed78856082fec5cb90fb", + "semantic_fact_key": "ledger_semantic_fact_v2_7dfa6d9e9d286fc08411c987", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_85.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_85", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 85, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 161467 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_8a4a2ca60598d7191d4b5b41", + "semantic_fact_key": "ledger_semantic_fact_v2_0537e8d89a8ee9f19c28c87e", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_85.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_85", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 85, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 118070 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_53cd638044edf6905f415fd6", + "semantic_fact_key": "ledger_semantic_fact_v2_1d7cdd93569e3f081ecece4b", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_86.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_86", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 86, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 145357 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_596bf15baf8d8ec2d2189eda", + "semantic_fact_key": "ledger_semantic_fact_v2_fe4c8cf1cd716256c5bc3963", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_86.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_86", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 86, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 102785 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_415a97070c66d7f1bedb4259", + "semantic_fact_key": "ledger_semantic_fact_v2_80072ff8bb4a3e7452d36efa", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_87.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_87", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 87, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 130223 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_3ff560ce0cdc33d2cca4faba", + "semantic_fact_key": "ledger_semantic_fact_v2_4f2a3f36397d5cd852e9a163", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_87.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_87", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 87, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 88388 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_173b1607b19e52daa1feda0f", + "semantic_fact_key": "ledger_semantic_fact_v2_a161de5f901e1f6729fe21c0", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_88.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_88", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 88, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 114850 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_a0d6b69d65c8961cca8ca1e8", + "semantic_fact_key": "ledger_semantic_fact_v2_1e5a9e58a40596d13b0adbb6", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_88.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_88", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 88, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 75138 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_7d0db7eb236fc59f80657914", + "semantic_fact_key": "ledger_semantic_fact_v2_7eda023650203883594bbb52", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_89.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_89", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 89, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 98220 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_edbd7022f32427a69019dcb1", + "semantic_fact_key": "ledger_semantic_fact_v2_dc979813e37a835527aaee9b", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_89.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_89", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 89, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 61154 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_ec15d23ace4d685ce8eab8ee", + "semantic_fact_key": "ledger_semantic_fact_v2_7654787a8395ed3a2e6541de", + "source_record_id": "ons.mid2023.mye2_female.uk_countries.age_9.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_female.uk_countries.age_9", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 9, + "sex": "female" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 389740 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_3d737c2ba3df6da0d983df2e", + "semantic_fact_key": "ledger_semantic_fact_v2_9efd1673526f912886ae516c", + "source_record_id": "ons.mid2023.mye2_male.uk_countries.age_9.uk.population", + "concept": "ons.mid_year_population_estimate", + "measure_id": "population", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "resident_population" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "gss_2023" + }, + "period": { + "type": "calendar_year", + "value": 2023 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.mid2023.mye2_male.uk_countries.age_9", + "groupby_dimension": "age", + "groupby_value_id": "uk", + "table_record_kind": "detail" + }, + "dimensions": { + "age": 9, + "sex": "male" + }, + "source": { + "source_name": "ons", + "source_table": "Mid-2023 population estimates, UK and constituent countries, by single year of age and sex (MYE2)", + "source_file": "mye23tablesuk.xlsx", + "source_sha256": "7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16", + "vintage": "mid_2023", + "raw_r2_key": "raw/ons/ons-mye-2023-uk-countries/2023/7ee5724ecf71abc3d811c89174cdddf1bce7f07d3eefc8b69b15ee8371414b16/mye23tablesuk.xlsx" + }, + "value": 408291 + } + ] +} 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 0feab8e5e..d3aee7676 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 @@ -468,7 +468,7 @@ "required_mass_change_reason": "Capital-gains incidence anchor moves the mass of non-liable clone households back to their paired originals until the sub-exempt and loss-making clone mass match the Advani-Summers reporter composition at the redrawn liable mass; every pair's mass and the total household mass are conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "01567b46aa26765fea6afd4c9a64674f8ed5e2e8fe32de106a03ec06f1da33bd", + "source_manifest_sha256": "91367dc23af9e167b0d0748340e5e77240460b386a1df8defbb3545d3d3cf986", "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, the HMRC Table 3 redrawn gains on the spine and Advani-Summers capital-gains incidence" @@ -491,7 +491,7 @@ "capital_gains" ], "source_manifest": "source_stages.json", - "source_manifest_sha256": "01567b46aa26765fea6afd4c9a64674f8ed5e2e8fe32de106a03ec06f1da33bd", + "source_manifest_sha256": "91367dc23af9e167b0d0748340e5e77240460b386a1df8defbb3545d3d3cf986", "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" @@ -513,7 +513,7 @@ "required_mass_change_reason": "Capital-gains support split divides the wealthiest households of each HMRC Table 3 income band into light copies at equal weight; every household's mass and the total household mass are conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "01567b46aa26765fea6afd4c9a64674f8ed5e2e8fe32de106a03ec06f1da33bd", + "source_manifest_sha256": "91367dc23af9e167b0d0748340e5e77240460b386a1df8defbb3545d3d3cf986", "source_vintages": { "source": "HMRC Capital Gains Tax statistics, July 2026 release, Table 3 for 2024-25, via the vendored conditioning facts", "survey": "Family Resources Survey 2024-25, SPI synthetic support and HMRC Capital Gains Tax statistics Table 3 (2024-25 individuals by size of gain and taxable income)" @@ -542,7 +542,7 @@ "required_mass_change_reason": "ETB public-services imputation on the source spine: household weights pass through unchanged and total household mass is conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "01567b46aa26765fea6afd4c9a64674f8ed5e2e8fe32de106a03ec06f1da33bd", + "source_manifest_sha256": "91367dc23af9e167b0d0748340e5e77240460b386a1df8defbb3545d3d3cf986", "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" @@ -562,7 +562,7 @@ "required_mass_change_reason": "ETB VAT expenditure-rate imputation on the source spine: household weights pass through unchanged and total household mass is conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "01567b46aa26765fea6afd4c9a64674f8ed5e2e8fe32de106a03ec06f1da33bd", + "source_manifest_sha256": "91367dc23af9e167b0d0748340e5e77240460b386a1df8defbb3545d3d3cf986", "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" @@ -584,7 +584,7 @@ "required_mass_change_reason": "CGT asset-type assignment on the source spine: household weights pass through unchanged and total household mass is conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "01567b46aa26765fea6afd4c9a64674f8ed5e2e8fe32de106a03ec06f1da33bd", + "source_manifest_sha256": "91367dc23af9e167b0d0748340e5e77240460b386a1df8defbb3545d3d3cf986", "source_vintages": { "source": "https://www.gov.uk/government/statistics/capital-gains-tax-statistics", "survey": "HMRC Capital Gains Tax statistics 2026 release, Table 8 (UK residential property disposals, 2024-25, administrative), Table 4.1 (individuals claiming Business Asset Disposal Relief or Investors' Relief by band of qualifying gain, 2024-25, administrative) and Table 7 (disposals, proceeds and gains by asset type, 2023-24, sample-based), vendored from the pinned Chronicle feed" @@ -608,7 +608,7 @@ "capital_gains" ], "source_manifest": "source_stages.json", - "source_manifest_sha256": "01567b46aa26765fea6afd4c9a64674f8ed5e2e8fe32de106a03ec06f1da33bd", + "source_manifest_sha256": "91367dc23af9e167b0d0748340e5e77240460b386a1df8defbb3545d3d3cf986", "source_vintages": { "conditioning_resource": "hmrc_cgt_conditioning_facts.json", "conditioning_resource_sha256": "24a9440421f9c80ecf3f5ad7035b5b08626e02898f50e4a8ae9c0aad02821bfe", @@ -697,7 +697,7 @@ "full_frs_tei_band_unavailable" ], "source_manifest": "source_stages.json", - "source_manifest_sha256": "01567b46aa26765fea6afd4c9a64674f8ed5e2e8fe32de106a03ec06f1da33bd", + "source_manifest_sha256": "91367dc23af9e167b0d0748340e5e77240460b386a1df8defbb3545d3d3cf986", "source_vintages": { "hmrc_surface": "2023-24", "mapped_build_period": "2024", @@ -738,7 +738,7 @@ "required_mass_change_reason": "LCFS consumption imputation on the source spine: household weights pass through unchanged and total household mass is conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "01567b46aa26765fea6afd4c9a64674f8ed5e2e8fe32de106a03ec06f1da33bd", + "source_manifest_sha256": "91367dc23af9e167b0d0748340e5e77240460b386a1df8defbb3545d3d3cf986", "source_vintages": { "source": "UK Data Service SN 9468 Living Costs and Food Survey 2023-24 household/person tabs and the vendored Chronicle facts for NEED 2023 mean kWh, the FY2024-25 Ofgem cap levels, road-fuel outturn (DESNZ, HMRC, ONS), the DfT VEH1103 licensed-car stock, NTS bus use and the DfT and devolved bus finance tables.", "survey": "Living Costs and Food Survey 2023-24" @@ -764,7 +764,7 @@ "required_mass_change_reason": "NTS bus-travel imputation on the source spine: household weights pass through unchanged and total household mass is conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "01567b46aa26765fea6afd4c9a64674f8ed5e2e8fe32de106a03ec06f1da33bd", + "source_manifest_sha256": "91367dc23af9e167b0d0748340e5e77240460b386a1df8defbb3545d3d3cf986", "source_vintages": { "source": "Department for Transport National Travel Survey, UK Data Service SN 5340 (End User Licence, 19th edition, November 2025), DOI 10.5255/UKDA-SN-5340-19; local licensed tab files (household, individual, trip); England residents only from 2013.", "survey": "National Travel Survey 2002-2024" @@ -785,7 +785,7 @@ "property_wealth" ], "source_manifest": "source_stages.json", - "source_manifest_sha256": "01567b46aa26765fea6afd4c9a64674f8ed5e2e8fe32de106a03ec06f1da33bd", + "source_manifest_sha256": "91367dc23af9e167b0d0748340e5e77240460b386a1df8defbb3545d3d3cf986", "source_vintages": { "source": "MHCLG dwellings and ONS UK House Price Index December 2025 regional average prices.", "survey": "Public regional property reference" @@ -809,7 +809,7 @@ "employee_pension_contributions" ], "source_manifest": "source_stages.json", - "source_manifest_sha256": "01567b46aa26765fea6afd4c9a64674f8ed5e2e8fe32de106a03ec06f1da33bd", + "source_manifest_sha256": "91367dc23af9e167b0d0748340e5e77240460b386a1df8defbb3545d3d3cf986", "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" @@ -831,7 +831,7 @@ "student_loan_plan" ], "source_manifest": "source_stages.json", - "source_manifest_sha256": "01567b46aa26765fea6afd4c9a64674f8ed5e2e8fe32de106a03ec06f1da33bd", + "source_manifest_sha256": "91367dc23af9e167b0d0748340e5e77240460b386a1df8defbb3545d3d3cf986", "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" @@ -853,7 +853,7 @@ "required_mass_change_reason": "WAS Lifetime ISA imputation on the source spine: household weights pass through unchanged and total household mass is conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "01567b46aa26765fea6afd4c9a64674f8ed5e2e8fe32de106a03ec06f1da33bd", + "source_manifest_sha256": "91367dc23af9e167b0d0748340e5e77240460b386a1df8defbb3545d3d3cf986", "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 round-8 person and household tabs (interviews April 2020 to March 2022, Great Britain).", "survey": "Wealth and Assets Survey round 8" @@ -888,7 +888,7 @@ "required_mass_change_reason": "WAS wealth imputation on the source spine: household weights pass through unchanged and total household mass is conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "01567b46aa26765fea6afd4c9a64674f8ed5e2e8fe32de106a03ec06f1da33bd", + "source_manifest_sha256": "91367dc23af9e167b0d0748340e5e77240460b386a1df8defbb3545d3d3cf986", "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 09990c633..26a627f52 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/source_stages.json +++ b/packages/microcosm-build/src/microcosm/build/uk/source_stages.json @@ -1532,6 +1532,13 @@ "mapped_build_period": 2024, "period_mapping": "latest_published_tax_year", "runtime_sha256_required": true + }, + { + "role": "donor_age_populations", + "kind": "public_aggregate_reference", + "resource": "ons_single_year_age_populations.json", + "format": "json", + "runtime_sha256_required": true } ], "operations": [ @@ -1586,6 +1593,14 @@ "fail_on_invalid_weight": true, "seed": 42 }, + { + "kind": "draw_spi_donor_ages_by_population", + "artifact_role": "qrf_donor", + "resource": "ons_single_year_age_populations.json", + "population_period": 2023, + "method": "whole-year age drawn within the AGERANGE band in proportion to the ONS single-year population of the donor's sex, then a uniform fraction of a year; State Pension recipients (SRP > 0) are drawn at or above State Pension age, and the band's below-State-Pension-age population share is drawn from its non-recipients", + "state_pension_age": "policyengine-uk gov.dwp.state_pension.age at the build instant" + }, { "kind": "fit_weighted_qrf_stage1", "training_artifact_role": "qrf_donor", @@ -1775,8 +1790,9 @@ 1000000, 2000000 ], - "pool": "full prepared donor tape by published total income band (TEI + TII), narrowed to the carrier's region where that pool holds the minimum", + "pool": "full prepared donor tape by published total income band (TEI + TII), narrowed to the carrier's SPI age band where that pool holds the age minimum (composites never age-match), then to the carrier's region where that pool holds the regional minimum", "regional_pool_minimum": 20, + "age_pool_minimum": 20, "weighting": "FACT", "with_replacement": true, "outputs": "stage-1 outputs, uprated as the stage-1 draws", @@ -1864,6 +1880,20 @@ "n_estimators": 100, "seed": 43 }, + { + "kind": "zero_pension_age_reports_below_state_pension_age", + "spi_state_pension_leaf": "hmrc_spi_state_pension_income", + "spi_channel_columns": [ + "state_pension_reported", + "pension_credit_reported", + "winter_fuel_allowance_reported" + ], + "base_channel_columns": [ + "state_pension_reported" + ], + "state_pension_age": "policyengine-uk gov.dwp.state_pension.age at the build instant", + "receipt": "rows, weighted people and amounts removed per column and step" + }, { "kind": "redraw_columns_from_fitted_qrf", "fit": "stage1", 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 7c553946e..d367a1e11 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/spec/sources.yaml +++ b/packages/microcosm-build/src/microcosm/build/uk/spec/sources.yaml @@ -1327,6 +1327,11 @@ stages: mapped_build_period: 2024 period_mapping: latest_published_tax_year runtime_sha256_required: true + - role: donor_age_populations + kind: public_aggregate_reference + resource: ons_single_year_age_populations.json + format: json + runtime_sha256_required: true operations: - kind: verify_pinned_hmrc_source_pair artifact_roles: @@ -1373,6 +1378,12 @@ stages: fail_on_missing_columns: true fail_on_invalid_weight: true seed: 42 + - kind: draw_spi_donor_ages_by_population + artifact_role: qrf_donor + resource: ons_single_year_age_populations.json + population_period: 2023 + method: whole-year age drawn within the AGERANGE band in proportion to the ONS single-year population of the donor's sex, then a uniform fraction of a year; State Pension recipients (SRP > 0) are drawn at or above State Pension age, and the band's below-State-Pension-age population share is drawn from its non-recipients + state_pension_age: policyengine-uk gov.dwp.state_pension.age at the build instant - kind: fit_weighted_qrf_stage1 training_artifact_role: qrf_donor recipient_minimum_age: 16 @@ -1524,8 +1535,9 @@ stages: - 500000 - 1000000 - 2000000 - pool: full prepared donor tape by published total income band (TEI + TII), narrowed to the carrier's region where that pool holds the minimum + pool: full prepared donor tape by published total income band (TEI + TII), narrowed to the carrier's SPI age band where that pool holds the age minimum (composites never age-match), then to the carrier's region where that pool holds the regional minimum regional_pool_minimum: 20 + age_pool_minimum: 20 weighting: FACT with_replacement: true outputs: stage-1 outputs, uprated as the stage-1 draws @@ -1602,6 +1614,16 @@ stages: require_all_outputs: false n_estimators: 100 seed: 43 + - kind: zero_pension_age_reports_below_state_pension_age + spi_state_pension_leaf: hmrc_spi_state_pension_income + spi_channel_columns: + - state_pension_reported + - pension_credit_reported + - winter_fuel_allowance_reported + base_channel_columns: + - state_pension_reported + state_pension_age: policyengine-uk gov.dwp.state_pension.age at the build instant + receipt: rows, weighted people and amounts removed per column and step - kind: redraw_columns_from_fitted_qrf fit: stage1 columns: diff --git a/packages/microcosm-build/src/microcosm/build/uk_runtime/hmrc_source_contract.py b/packages/microcosm-build/src/microcosm/build/uk_runtime/hmrc_source_contract.py index 608175693..0a5ac6196 100644 --- a/packages/microcosm-build/src/microcosm/build/uk_runtime/hmrc_source_contract.py +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/hmrc_source_contract.py @@ -33,6 +33,7 @@ from microcosm.build.uk_runtime.spi_income import ( DEFAULT_SPI_DONOR_SAMPLE_SIZE, SPI_DERIVED_POLICYENGINE_SOURCE_COLUMNS, + SPI_DONOR_AGE_POPULATION_RESOURCE, SPI_DONOR_DOCUMENTATION_URL, SPI_DONOR_DOI, SPI_DONOR_FILENAME, @@ -103,9 +104,11 @@ "stack_income_band_donor_households", "verify_pinned_hmrc_source_pair", "strict_read_private_table", + "draw_spi_donor_ages_by_population", "fit_weighted_qrf_stage1", "resample_band_donor_leaves", "fit_weighted_qrf_stage2", + "zero_pension_age_reports_below_state_pension_age", "redraw_columns_from_fitted_qrf", "materialize_hmrc_income_bands_fail_closed", "classify_hmrc_income_facts_with_reviewed_fences", @@ -141,7 +144,21 @@ def assert_uk_hmrc_income_source_contract_current( failures, "artifact roles", tuple(sorted(artifacts)), - ("published_fact_surface", "qrf_donor"), + ("donor_age_populations", "published_fact_surface", "qrf_donor"), + ) + # The ONS single-year populations the donor age draw reads (microcosm#1069). + ages = artifacts.get("donor_age_populations", {}) + _expect( + failures, + "donor_age_populations.resource", + ages.get("resource"), + SPI_DONOR_AGE_POPULATION_RESOURCE, + ) + _expect( + failures, + "donor_age_populations.runtime_sha256_required", + ages.get("runtime_sha256_required"), + True, ) donor = artifacts.get("qrf_donor", {}) _expect(failures, "qrf_donor.filename", donor.get("filename"), SPI_DONOR_FILENAME) diff --git a/packages/microcosm-build/src/microcosm/build/uk_runtime/spi_income.py b/packages/microcosm-build/src/microcosm/build/uk_runtime/spi_income.py index 71cea6dc6..8499fd399 100644 --- a/packages/microcosm-build/src/microcosm/build/uk_runtime/spi_income.py +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/spi_income.py @@ -3,6 +3,7 @@ from __future__ import annotations import hashlib +import math from collections.abc import Mapping, Sequence from dataclasses import dataclass from functools import cache @@ -233,6 +234,9 @@ for output, sources in SPI_INCOME_SOURCE_COLUMNS.items() if output not in {"employment_income", "self_employment_income"} } +#: SPI 2022-23 AGERANGE codes as whole-year bands ``[low, high)``: code 6 is +#: "65 to 74" and code 7 "75 and over", drawn over 75 to 89 and the ONS +#: 90-and-over cell (ages 90 up to 91). Composite records (-1) carry no age. _SPI_AGE_RANGES = { -1: (16, 70), 1: (16, 25), @@ -240,9 +244,21 @@ 3: (35, 45), 4: (45, 55), 5: (55, 65), - 6: (65, 74), - 7: (74, 90), + 6: (65, 75), + 7: (75, 91), } +#: The vendored ONS single-year population resource the donor age draw reads. +SPI_DONOR_AGE_POPULATION_RESOURCE = "ons_single_year_age_populations.json" +#: The ONS mid-year estimate period the resource is vendored at (mid-2023, +#: the nearest estimate to the 2022-23 donor tape). +SPI_DONOR_AGE_POPULATION_PERIOD = 2023 +SPI_DONOR_AGE_DRAW_METHOD = ( + "whole-year age drawn within the AGERANGE band in proportion to the ONS " + "single-year population of the donor's sex, then a uniform fraction of a " + "year; State Pension recipients (SRP > 0) are drawn at or above State " + "Pension age, and the band's below-State-Pension-age population share is " + "drawn from its non-recipients" +) _SPI_REGION_MAP = { 1: "NORTH_EAST", 2: "NORTH_WEST", @@ -259,6 +275,240 @@ } +@dataclass(frozen=True) +class SPIDonorAgeModel: + """Single-year populations and State Pension age for the donor age draw. + + ``populations`` maps ``("MALE" | "FEMALE", whole-year age)`` to the ONS + resident population, the 90-and-over cell at age 90. A donor of unknown + sex draws on the two sexes summed. + """ + + populations: Mapping[tuple[str, int], float] + state_pension_age: int + source: str + + def __post_init__(self) -> None: + if not isinstance(self.state_pension_age, int) or self.state_pension_age <= 0: + raise ValueError("SPI donor age model needs an integer State Pension age.") + for (sex, age), value in self.populations.items(): + if sex not in {"MALE", "FEMALE"} or not isinstance(age, int): + raise ValueError( + f"SPI donor age model has an invalid population key {(sex, age)!r}." + ) + if not math.isfinite(float(value)) or float(value) < 0.0: + raise ValueError( + f"SPI donor age model population for {(sex, age)!r} must be " + "finite and non-negative." + ) + + def weights(self, sex: str, ages: range) -> np.ndarray: + """Population weights over ``ages`` for ``sex`` (both sexes if unknown).""" + + sexes = (sex,) if sex in {"MALE", "FEMALE"} else ("MALE", "FEMALE") + values = np.asarray( + [ + sum(float(self.populations.get((name, age), 0.0)) for name in sexes) + for age in ages + ], + dtype=np.float64, + ) + if values.sum() <= 0.0: + raise ValueError( + f"SPI donor age model has no population for {sex} at ages " + f"{ages.start} to {ages.stop - 1}." + ) + return values + + +def load_spi_donor_age_model(build_period: int | str) -> SPIDonorAgeModel: + """Read the vendored ONS single-year populations and the engine's SPA.""" + + from microcosm.build.uk_runtime.frs_take_up import uk_take_up_population_policy + from microcosm.build.uk_runtime.ledger_fact_vendoring import vendored_rows + + rows = vendored_rows( + SPI_DONOR_AGE_POPULATION_RESOURCE, + period_value=str(SPI_DONOR_AGE_POPULATION_PERIOD), + ) + populations: dict[tuple[str, int], float] = {} + for row in rows: + dimensions = row.get("dimensions") or {} + sex = str(dimensions.get("sex", "")).upper() + raw_age = str(dimensions.get("age", "")) + age = 90 if raw_age == "90_plus" else int(raw_age) + key = (sex, age) + if key in populations: + raise ValueError(f"{SPI_DONOR_AGE_POPULATION_RESOURCE} repeats {key!r}.") + populations[key] = float(row["value"]) + expected = {(sex, age) for sex in ("MALE", "FEMALE") for age in range(0, 91)} + if set(populations) != expected: + missing = sorted(expected - set(populations))[:5] + raise ValueError( + f"{SPI_DONOR_AGE_POPULATION_RESOURCE} must carry ages 0 to 90 for both " + f"sexes at mid-{SPI_DONOR_AGE_POPULATION_PERIOD}; missing {missing}." + ) + policy = uk_take_up_population_policy(build_period) + return SPIDonorAgeModel( + populations=populations, + state_pension_age=policy.state_pension_age, + source=( + f"{SPI_DONOR_AGE_POPULATION_RESOURCE} (ONS MYE2 mid-" + f"{SPI_DONOR_AGE_POPULATION_PERIOD}); State Pension age from " + f"{policy.source} at {policy.instant}" + ), + ) + + +def _draw_spi_donor_ages( + age_codes: np.ndarray, + sex: np.ndarray, + receives_state_pension: np.ndarray, + fact: np.ndarray, + rng: np.random.Generator, + *, + model: SPIDonorAgeModel, +) -> tuple[np.ndarray, list[dict[str, object]]]: + """Draw donor ages by ONS single-year shares, State Pension age aware. + + Within each (AGERANGE band, sex) cell, a band that straddles State Pension + age splits into a below segment and an at-or-above segment. Recipients + (``SRP > 0``) always draw from the at-or-above segment. Non-recipients + draw from the below segment with the probability that puts the band's + ONS below-segment population share of the cell's FACT mass there (capped + at one, the shortfall receipted), and otherwise from at-or-above. The + whole-year age inside a segment follows the ONS single-year populations, + and a uniform fraction of a year keeps the predictor continuous. + """ + + spa = model.state_pension_age + ages = np.empty(len(age_codes), dtype=np.float64) + receipt: list[dict[str, object]] = [] + for code in sorted(set(int(value) for value in age_codes)): + low, high = _SPI_AGE_RANGES[code] + for sex_label in ("MALE", "FEMALE", "UNKNOWN"): + cell = np.flatnonzero((age_codes == code) & (sex == sex_label)) + if cell.size == 0: + continue + recipients = receives_state_pension[cell] + segments: list[range] = [] + if low < spa < high: + segments = [range(low, spa), range(spa, high)] + else: + segments = [range(low, high)] + cell_mass = float(fact[cell].sum()) + below_share = 0.0 + p_below = 0.0 + unfilled_below_mass = 0.0 + if len(segments) == 2: + all_weights = model.weights(sex_label, range(low, high)) + below_share = float(all_weights[: spa - low].sum() / all_weights.sum()) + non_recipient_mass = float(fact[cell][~recipients].sum()) + wanted = below_share * cell_mass + if non_recipient_mass > 0.0: + p_below = min(1.0, wanted / non_recipient_mass) + unfilled_below_mass = max(0.0, wanted - non_recipient_mass) + choose_below = (~recipients) & (rng.random(cell.size) < p_below) + else: + choose_below = np.zeros(cell.size, dtype=bool) + for position, segment in enumerate(segments): + if len(segments) == 2: + members = choose_below if position == 0 else ~choose_below + else: + members = np.ones(cell.size, dtype=bool) + count = int(members.sum()) + if count == 0: + continue + weights = model.weights(sex_label, segment) + whole = rng.choice( + np.arange(segment.start, segment.stop), + size=count, + p=weights / weights.sum(), + ) + ages[cell[members]] = whole + rng.random(count) + drawn = ages[cell] + receipt.append( + { + "agerange": code, + "sex": sex_label, + "band": [low, high], + "donors": int(cell.size), + "state_pension_recipients": int(recipients.sum()), + "fact_mass": cell_mass, + "ons_below_state_pension_age_share": below_share, + "non_recipient_below_probability": p_below, + "unfilled_below_state_pension_age_mass": unfilled_below_mass, + "recipients_below_state_pension_age": int( + (recipients & (drawn < spa)).sum() + ), + } + ) + return ages, receipt + + +@dataclass(frozen=True) +class UKSPIStatePensionAgeGuard: + """Pension-age reports the income stage zeroes below State Pension age. + + ``spi_channel_columns`` are imputed on the synthetic channel (the SPI + State Pension leaf is always zeroed there before the stage-2 receipt + bridge reads it); ``base_channel_columns`` are FRS reports on the base + channel, zeroed before stage 2 trains on them (microcosm#1069, ruling R8: + zero with a receipt). + """ + + state_pension_age: int + spi_channel_columns: tuple[str, ...] + base_channel_columns: tuple[str, ...] + + def __post_init__(self) -> None: + if not isinstance(self.state_pension_age, int) or self.state_pension_age <= 0: + raise ValueError("State Pension age guard needs an integer age.") + for columns in (self.spi_channel_columns, self.base_channel_columns): + if len(set(columns)) != len(columns) or not all( + isinstance(column, str) and column for column in columns + ): + raise ValueError( + "State Pension age guard columns must be distinct names." + ) + + +def _zero_below_state_pension_age( + person: pd.DataFrame, + *, + rows: pd.Series, + columns: Sequence[str], + state_pension_age: int, + person_weights: pd.Series, + step: str, +) -> tuple[pd.DataFrame, dict[str, object]]: + """Zero ``columns`` on ``rows`` whose age is below State Pension age.""" + + below = rows.astype(bool) & person["age"].lt(state_pension_age) + removed: dict[str, dict[str, float]] = {} + for column in columns: + if column not in person.columns: + raise ValueError( + f"State Pension age guard names {column!r}, absent from the frame." + ) + values = person.loc[below, column].to_numpy(dtype=np.float64) + positive = values > 0.0 + weights = person_weights.loc[below].to_numpy(dtype=np.float64) + removed[column] = { + "rows": int(positive.sum()), + "weighted_people": float(weights[positive].sum()), + "unweighted_amount": float(values[positive].sum()), + "weighted_amount": float((values * weights)[positive].sum()), + } + person.loc[below, column] = 0.0 + return person, { + "step": step, + "state_pension_age": state_pension_age, + "rows_below_state_pension_age": int(below.sum()), + "removed": removed, + } + + @dataclass(frozen=True) class UKSPIIncomeImputationResult: """SPI-filled person table and auditable fit/source evidence.""" @@ -275,6 +525,8 @@ class UKSPIIncomeImputationResult: pension_receipt_bridge: Mapping[str, object] | None = None income_uprating: Mapping[str, object] | None = None band_donor_resample: Mapping[str, object] | None = None + donor_age_draw: Mapping[str, object] | None = None + state_pension_age_guard: tuple[Mapping[str, object], ...] = () @dataclass(frozen=True) @@ -379,13 +631,19 @@ def impute_uk_spi_income_support( condition_on_state_pension_receipt: bool = False, rebase_income_to_build_period: bool = False, band_donor_resample: Mapping[str, object] | None = None, + donor_age_model: SPIDonorAgeModel | None = None, + state_pension_age_guard: UKSPIStatePensionAgeGuard | None = None, ) -> UKSPIIncomeImputationResult: """Run strict SPI-income and FRS-only QRFs on rebuilt positive support. ``band_donor_resample`` (``lower_bounds``, ``regional_pool_minimum``, - ``seed``) gives the reserved band carriers (PolicyEngine/chronicle#280 lane) a - band-conditional draw from the full prepared tape after the stage-1 - forest draw; ``None`` leaves every synthetic adult on the forest draw. + ``seed`` and optionally ``age_pool_minimum``) gives the reserved band + carriers (PolicyEngine/chronicle#280 lane) a band-conditional draw from + the full prepared tape after the stage-1 forest draw; ``None`` leaves + every synthetic adult on the forest draw. ``donor_age_model`` draws donor + ages by ONS single-year shares, State Pension age aware, and + ``state_pension_age_guard`` zeroes pension-age reports below State Pension + age with receipts (microcosm#1069). """ if support.household_weight_kind is not WeightKind.IMPORTANCE: @@ -422,7 +680,8 @@ def impute_uk_spi_income_support( if not isinstance(donor_table, pd.DataFrame): raise TypeError("donor_table must be a pandas DataFrame.") raw_donor = donor_table.copy(deep=True) - donor = _prepare_spi_donor(raw_donor, seed=seed) + donor = _prepare_spi_donor(raw_donor, seed=seed, age_model=donor_age_model) + donor_age_draw = dict(donor.attrs.get("age_draw", {})) donor_full = donor donor_fit_weights = donor["FACT"].to_numpy(dtype=np.float64) if donor_sample_size is not None: @@ -559,6 +818,19 @@ def impute_uk_spi_income_support( uprating_factors=uprating_factors, **dict(band_donor_resample), ) + guard_receipts: list[Mapping[str, object]] = [] + if state_pension_age_guard is not None: + # The SPI State Pension leaf decides the stage-2 receipt bridge, so it + # is zeroed below State Pension age before the bridge reads it. + person, receipt = _zero_below_state_pension_age( + person, + rows=spi_people, + columns=(SPI_HMRC_STATE_PENSION_INCOME_COLUMN,), + state_pension_age=state_pension_age_guard.state_pension_age, + person_weights=_person_household_weights(person, household), + step="spi_state_pension_leaf_after_stage1", + ) + guard_receipts.append(receipt) person = _derive_policyengine_employment_input(person, spi_people=spi_people) taxable_interest_draw = person.loc[spi_people, "savings_interest_income"].to_numpy( @@ -574,6 +846,19 @@ def impute_uk_spi_income_support( ].isin(training_household_ids) if not training_people.any(): raise ValueError("FRS-only stage has no canonical base training rows.") + if ( + state_pension_age_guard is not None + and state_pension_age_guard.base_channel_columns + ): + person, receipt = _zero_below_state_pension_age( + person, + rows=base_people, + columns=state_pension_age_guard.base_channel_columns, + state_pension_age=state_pension_age_guard.state_pension_age, + person_weights=_person_household_weights(person, household), + step="base_channel_reports_before_stage2", + ) + guard_receipts.append(receipt) income_predictors = FRS_ONLY_SPI_FILL_INCOME_PREDICTOR_COLUMNS train_predictors = _person_predictors( @@ -637,6 +922,19 @@ def impute_uk_spi_income_support( raise ValueError("FRS-only stage-2 produced negative non-negative outputs.") for column in stage2_outputs: person.loc[spi_people, column] = stage2_draws[column].to_numpy() + if ( + state_pension_age_guard is not None + and state_pension_age_guard.spi_channel_columns + ): + person, receipt = _zero_below_state_pension_age( + person, + rows=spi_people, + columns=state_pension_age_guard.spi_channel_columns, + state_pension_age=state_pension_age_guard.state_pension_age, + person_weights=_person_household_weights(person, household), + step="spi_channel_reports_after_stage2", + ) + guard_receipts.append(receipt) if base_redraw_columns: base_predictors = _person_predictors( @@ -702,6 +1000,8 @@ def impute_uk_spi_income_support( pension_receipt_bridge=pension_bridge, income_uprating=income_uprating, band_donor_resample=band_donor_receipt, + donor_age_draw=donor_age_draw, + state_pension_age_guard=tuple(guard_receipts), ) @@ -709,6 +1009,16 @@ def impute_uk_spi_income_support( SPI_INCOME_BAND_LOWER_BOUND_COLUMN = "spi_income_band_donor_lower_bound" +def _spi_agerange_codes(ages: np.ndarray) -> np.ndarray: + """The SPI AGERANGE code (1 to 7) of each age; under-16s map to code 1.""" + + codes = np.ones(len(ages), dtype=np.int64) + for code in sorted(code for code in _SPI_AGE_RANGES if code > 0): + low = _SPI_AGE_RANGES[code][0] + codes[np.asarray(ages, dtype=float) >= low] = code + return codes + + def _resample_band_donor_leaves( person: pd.DataFrame, donor: pd.DataFrame, @@ -719,6 +1029,7 @@ def _resample_band_donor_leaves( lower_bounds: Sequence[int], regional_pool_minimum: int, seed: int, + age_pool_minimum: int | None = None, ) -> tuple[pd.DataFrame, dict[str, object]]: """Give every reserved band carrier a band-conditional tape draw. @@ -729,7 +1040,11 @@ def _resample_band_donor_leaves( year's Table 2.5 bands and the reserved weights are that year's taxpayer counts, so membership is asserted on the uprated amount, not on the tape's 2022-23 nominal one. The pool narrows to the carrier's region when - that regional pool holds at least ``regional_pool_minimum`` records. One + that regional pool holds at least ``regional_pool_minimum`` records. With + ``age_pool_minimum`` the band pool first narrows to the records in the + carrier's published SPI age band (composites, which carry none, never + age-match) when that pool holds at least ``age_pool_minimum`` records, + and the regional narrowing then applies within it (microcosm#1069). One record is drawn FACT-weighted with replacement and all stage-1 leaves are copied from it, then uprated exactly as the forest draws were; the accounting aggregates derive after the draw as usual. Composite records @@ -741,6 +1056,10 @@ def _resample_band_donor_leaves( raise ValueError("regional_pool_minimum must be a positive integer.") if not isinstance(seed, int): raise ValueError("band donor resample seed must be an integer.") + if age_pool_minimum is not None and ( + not isinstance(age_pool_minimum, int) or age_pool_minimum <= 0 + ): + raise ValueError("age_pool_minimum must be a positive integer or None.") lowers = sorted(int(value) for value in lower_bounds) if not lowers or len(set(lowers)) != len(lowers): raise ValueError("band donor lower bounds must be distinct.") @@ -810,24 +1129,45 @@ def _resample_band_donor_leaves( f"lies in the band from {lower}." ) pools[lower] = pool + if age_pool_minimum is not None and "agerange" not in donor.columns: + raise ValueError("age-band pooling needs the prepared donor's agerange column.") + donor_agerange = ( + donor["agerange"].to_numpy(dtype=np.int64) + if age_pool_minimum is not None + else None + ) + # Ages are read only when age pooling is declared; a frame without it + # keeps the income-band and regional pools unchanged. + carrier_agerange = ( + _spi_agerange_codes(carrier_rows["age"].to_numpy(dtype=float)) + if donor_agerange is not None + else np.zeros(len(carrier_rows), dtype=np.int64) + ) rng = np.random.default_rng(seed) drawn = np.empty(len(carrier_rows), dtype=np.int64) matched = np.zeros(len(carrier_rows), dtype=bool) - regional_cache: dict[tuple[int, str], np.ndarray] = {} - for index, (band, region) in enumerate(zip(bands, regions, strict=True)): + age_matched = np.zeros(len(carrier_rows), dtype=bool) + pool_cache: dict[tuple[int, str, int], tuple[np.ndarray, bool, bool]] = {} + for index, (band, region, code) in enumerate( + zip(bands, regions, carrier_agerange, strict=True) + ): lower = int(band) - key = (lower, region) - if key not in regional_cache: - national = pools[lower] - regional = national[donor_region[national] == region] - regional_cache[key] = ( - regional if regional.size >= regional_pool_minimum else national - ) - regional_cache[(lower, region, "matched")] = ( # type: ignore[index] - regional.size >= regional_pool_minimum + key = (lower, region, int(code)) + if key not in pool_cache: + base = pools[lower] + base_is_aged = False + if donor_agerange is not None: + aged = base[donor_agerange[base] == int(code)] + if aged.size >= age_pool_minimum: + base, base_is_aged = aged, True + regional = base[donor_region[base] == region] + regional_ok = regional.size >= regional_pool_minimum + pool_cache[key] = ( + regional if regional_ok else base, + regional_ok, + base_is_aged, ) - pool = regional_cache[key] - matched[index] = bool(regional_cache[(lower, region, "matched")]) # type: ignore[index] + pool, matched[index], age_matched[index] = pool_cache[key] weights = fact[pool] drawn[index] = int(rng.choice(pool, p=weights / weights.sum())) leaves = leaf_values[drawn] * factors @@ -857,6 +1197,7 @@ def _resample_band_donor_leaves( "pool_composite_records": int(composite[pool].sum()), "pool_weighted_taxpayers": float(fact[pool].sum()), "regional_matched_carriers": int(matched[mask].sum()), + "age_matched_carriers": int(age_matched[mask].sum()), "realized_min_total_income": ( float(realized.min()) if realized.size else None ), @@ -876,6 +1217,7 @@ def _resample_band_donor_leaves( "plus the published remainder held nominal" ), "regional_pool_minimum": regional_pool_minimum, + "age_pool_minimum": age_pool_minimum, "seed": seed, "weighting": "FACT", "with_replacement": True, @@ -964,17 +1306,34 @@ def _initialize_frs_channel_columns( return result -def prepare_spi_donor_table(raw: pd.DataFrame, *, seed: int) -> pd.DataFrame: +def prepare_spi_donor_table( + raw: pd.DataFrame, + *, + seed: int, + age_model: SPIDonorAgeModel | None = None, +) -> pd.DataFrame: """Prepare a raw SPI 2022-23 tape exactly as the income stage does. The band-donor stage shares this preparation so its propensity table and the income stage's band pools read the same ages, regions and leaves. """ - return _prepare_spi_donor(raw, seed=seed) + return _prepare_spi_donor(raw, seed=seed, age_model=age_model) + + +def _prepare_spi_donor( + raw: pd.DataFrame, + *, + seed: int, + age_model: SPIDonorAgeModel | None = None, +) -> pd.DataFrame: + """Prepare the donor tape; ``age_model`` draws ages by ONS shares. + Without a model (synthetic tapes that ship no vendored population + resource) each donor's age is uniform within its AGERANGE band; the + production stages always pass the model the manifest declares. + """ -def _prepare_spi_donor(raw: pd.DataFrame, *, seed: int) -> pd.DataFrame: _require_columns(raw, SPI_DONOR_REQUIRED_COLUMNS, label="SPI 2022-23 donor") numeric = pd.DataFrame( { @@ -993,15 +1352,24 @@ def _prepare_spi_donor(raw: pd.DataFrame, *, seed: int) -> pd.DataFrame: if unknown_age: raise ValueError(f"SPI 2022-23 has unknown AGERANGE code(s): {unknown_age}.") rng = np.random.default_rng(seed) - bounds = np.asarray([_SPI_AGE_RANGES[code] for code in age_codes]) + gender = np.select((sex == 1, sex == 2), ("MALE", "FEMALE"), default="UNKNOWN") + age_draw_receipt: list[dict[str, object]] | None = None + if age_model is None: + bounds = np.asarray([_SPI_AGE_RANGES[code] for code in age_codes]) + ages = bounds[:, 0] + rng.random(len(raw)) * (bounds[:, 1] - bounds[:, 0]) + else: + ages, age_draw_receipt = _draw_spi_donor_ages( + age_codes.to_numpy(dtype=np.int64), + np.asarray(gender, dtype=object), + numeric["SRP"].to_numpy(dtype=np.float64) > 0.0, + numeric["FACT"].to_numpy(dtype=np.float64), + rng, + model=age_model, + ) donor = pd.DataFrame( { - "age": bounds[:, 0] + rng.random(len(raw)) * (bounds[:, 1] - bounds[:, 0]), - "gender": np.select( - (sex == 1, sex == 2), - ("MALE", "FEMALE"), - default="UNKNOWN", - ), + "age": ages, + "gender": gender, "region": numeric["GORCODE"] .astype(int) .map(_SPI_REGION_MAP) @@ -1024,6 +1392,21 @@ def _prepare_spi_donor(raw: pd.DataFrame, *, seed: int) -> pd.DataFrame: # they are never QRF inputs or outputs. donor["total_income"] = numeric["TI"].to_numpy(dtype=float) donor["is_composite"] = numeric["AGERANGE"].astype(int).eq(-1).to_numpy() + # The published age band travels with the record so band pools can match + # a carrier's age band; composites (-1) have none and never age-match. + donor["agerange"] = age_codes.to_numpy(dtype=np.int64) + donor.attrs["age_draw"] = { + "method": ( + SPI_DONOR_AGE_DRAW_METHOD + if age_model is not None + else "uniform within the AGERANGE band (no population model)" + ), + "source": None if age_model is None else age_model.source, + "state_pension_age": ( + None if age_model is None else age_model.state_pension_age + ), + "cells": age_draw_receipt or [], + } _require_finite_numeric( donor[["age", "FACT", *SPI_INCOME_QRF_OUTPUT_COLUMNS]], label="SPI 2022-23 derived donor", diff --git a/packages/microcosm-build/src/microcosm/build/uk_runtime/spi_spine.py b/packages/microcosm-build/src/microcosm/build/uk_runtime/spi_spine.py index 3fcefa253..4dd4a4dcc 100644 --- a/packages/microcosm-build/src/microcosm/build/uk_runtime/spi_spine.py +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/spi_spine.py @@ -48,14 +48,19 @@ ) from microcosm.build.uk_runtime.spi_income import ( DEFAULT_SPI_DONOR_SAMPLE_SIZE, + SPI_DONOR_AGE_DRAW_METHOD, + SPI_DONOR_AGE_POPULATION_PERIOD, + SPI_DONOR_AGE_POPULATION_RESOURCE, SPI_DONOR_INCOME_YEAR, SPI_INCOME_UPRATING_VARIABLES, SPI_MINIMUM_RECIPIENT_AGE, SPI_SOURCE_TI_FORMULA, SPI_STAGE2_REVIEWED_ABSENT_OUTPUTS, UKSPIIncomeImputationResult, + UKSPIStatePensionAgeGuard, assert_frs_hmrc_auxiliary_crosswalk_available, impute_uk_spi_income_support, + load_spi_donor_age_model, verify_spi_donor_identity, ) from microcosm.build.uk_runtime.spi_support import ( @@ -93,9 +98,38 @@ #: The reserved band carriers' pool: the full prepared tape by published band. SPI_SPINE_BAND_DONOR_POOL = ( "full prepared donor tape by published total income band (TEI + TII), " - "narrowed to the carrier's region where that pool holds the minimum" + "narrowed to the carrier's SPI age band where that pool holds the age " + "minimum (composites never age-match), then to the carrier's region where " + "that pool holds the regional minimum" ) SPI_SPINE_BAND_DONOR_REGIONAL_POOL_MINIMUM = 20 +SPI_SPINE_BAND_DONOR_AGE_POOL_MINIMUM = 20 +SPI_SPINE_STATE_PENSION_AGE_SOURCE = ( + "policyengine-uk gov.dwp.state_pension.age at the build instant" +) +#: Reviewed declaration of the donor age draw (microcosm#1069, WP2 c5). +SPI_SPINE_DONOR_AGE_DRAW: Mapping[str, object] = { + "artifact_role": "qrf_donor", + "resource": SPI_DONOR_AGE_POPULATION_RESOURCE, + "population_period": SPI_DONOR_AGE_POPULATION_PERIOD, + "method": SPI_DONOR_AGE_DRAW_METHOD, + "state_pension_age": SPI_SPINE_STATE_PENSION_AGE_SOURCE, +} +#: Reviewed declaration of the State Pension age guard (ruling R8: zero with +#: a receipt). The SPI State Pension leaf is zeroed before the stage-2 receipt +#: bridge; imputed synthetic-channel reports after stage 2; the base +#: channel's State Pension reports before stage 2 trains on them. +SPI_SPINE_STATE_PENSION_AGE_GUARD: Mapping[str, object] = { + "spi_state_pension_leaf": SPI_HMRC_STATE_PENSION_INCOME_COLUMN, + "spi_channel_columns": [ + "state_pension_reported", + "pension_credit_reported", + "winter_fuel_allowance_reported", + ], + "base_channel_columns": ["state_pension_reported"], + "state_pension_age": SPI_SPINE_STATE_PENSION_AGE_SOURCE, + "receipt": "rows, weighted people and amounts removed per column and step", +} UK_FRS_HMRC_SPINE_LEAF_OUTPUT_COLUMNS = ( *FRS_HMRC_RETAINED_LEAF_COLUMNS, @@ -252,6 +286,8 @@ def evidence(self) -> dict[str, object]: "pension_receipt_bridge": self.imputation.pension_receipt_bridge, "income_uprating": self.imputation.income_uprating, "band_donor_resample": self.imputation.band_donor_resample, + "donor_age_draw": self.imputation.donor_age_draw, + "state_pension_age_guard": list(self.imputation.state_pension_age_guard), "targets": { "count": len(self.source_targets.targets), "classification": dict(self.replay_report.summary), @@ -549,8 +585,35 @@ def __call__(self, frame: Frame) -> Frame: resample_op.parameters["regional_pool_minimum"] ), "seed": int(resample_op.parameters["seed"]), + **( + { + "age_pool_minimum": int( + resample_op.parameters["age_pool_minimum"] + ) + } + if "age_pool_minimum" in resample_op.parameters + else {} + ), } ) + age_op = _optional_operation(self.stage, "draw_spi_donor_ages_by_population") + guard_op = _optional_operation( + self.stage, "zero_pension_age_reports_below_state_pension_age" + ) + donor_age_model = ( + load_spi_donor_age_model(uk_time_period(frame)) + if age_op is not None or guard_op is not None + else None + ) + state_pension_age_guard = ( + None + if guard_op is None or donor_age_model is None + else UKSPIStatePensionAgeGuard( + state_pension_age=donor_age_model.state_pension_age, + spi_channel_columns=tuple(guard_op.parameters["spi_channel_columns"]), + base_channel_columns=tuple(guard_op.parameters["base_channel_columns"]), + ) + ) imputation = impute_uk_spi_income_support( support, self.spi_tab_path, @@ -574,6 +637,8 @@ def __call__(self, frame: Frame) -> Frame: ] ), band_donor_resample=band_donor_resample, + donor_age_model=donor_age_model if age_op is not None else None, + state_pension_age_guard=state_pension_age_guard, ) result_frame = uk_national_frame( person=imputation.person, @@ -956,6 +1021,7 @@ def _assert_income_stage_parameters( "band_lower_bounds": list(SPI_INCOME_BAND_DONOR_LOWER_BOUNDS), "pool": SPI_SPINE_BAND_DONOR_POOL, "regional_pool_minimum": SPI_SPINE_BAND_DONOR_REGIONAL_POOL_MINIMUM, + "age_pool_minimum": SPI_SPINE_BAND_DONOR_AGE_POOL_MINIMUM, "weighting": "FACT", "with_replacement": True, "outputs": "stage-1 outputs, uprated as the stage-1 draws", @@ -972,6 +1038,27 @@ def _assert_income_stage_parameters( "SPI income resample_band_donor_leaves declaration drifted from " f"the reviewed mapping on parameter(s) {drifted}." ) + for kind, reviewed in ( + ("draw_spi_donor_ages_by_population", SPI_SPINE_DONOR_AGE_DRAW), + ( + "zero_pension_age_reports_below_state_pension_age", + SPI_SPINE_STATE_PENSION_AGE_GUARD, + ), + ): + operation = _optional_operation(stage, kind) + if operation is None: + continue + actual = dict(operation.parameters) + if actual != dict(reviewed): + drifted = sorted( + key + for key in {*actual, *reviewed} + if actual.get(key) != reviewed.get(key) + ) + raise ValueError( + f"SPI income {kind} declaration drifted from the reviewed mapping " + f"on parameter(s) {drifted}." + ) def _operation(stage: SourceStageSpec, kind: str): diff --git a/packages/microcosm-build/tests/engine/uk/test_uk_spi_state_pension_age.py b/packages/microcosm-build/tests/engine/uk/test_uk_spi_state_pension_age.py new file mode 100644 index 000000000..e89159bcb --- /dev/null +++ b/packages/microcosm-build/tests/engine/uk/test_uk_spi_state_pension_age.py @@ -0,0 +1,101 @@ +"""State Pension age coherence of the SPI income stage with the engine's SPA (microcosm#1069).""" + +# ruff: noqa: F403, F405 +from microcosm.build.uk_runtime.frs_take_up import uk_take_up_population_policy +from microcosm.build.uk_runtime.spi_income import ( + SPI_DONOR_AGE_POPULATION_RESOURCE, + UKSPIStatePensionAgeGuard, + load_spi_donor_age_model, +) +from test_support.microcosm_build.uk_spi_income import * + +_SPI_PENSION_AGE_COLUMNS = ( + "state_pension_reported", + "pension_credit_reported", + "winter_fuel_allowance_reported", +) + + +def test_donor_age_model_binds_the_vendored_ons_rows_and_the_engine_spa() -> None: + model = load_spi_donor_age_model(2025) + + assert ( + model.state_pension_age == uk_take_up_population_policy(2025).state_pension_age + ) + assert set(model.populations) == { + (sex, age) for sex in ("MALE", "FEMALE") for age in range(0, 91) + } + # ONS mid-2023 UK resident population, every age summed. + assert sum(model.populations.values()) == 68_265_209.0 + assert SPI_DONOR_AGE_POPULATION_RESOURCE in model.source + + +def test_spi_imputation_leaves_no_pension_age_reports_below_the_engine_spa( + monkeypatch, tmp_path +) -> None: + support = _dead_support() + donor_path = tmp_path / SPI_DONOR_FILENAME + _write_donor(donor_path) + monkeypatch.setattr(spi_income, "QRF", _FakeQRF) + _bypass_reviewed_donor_identity(monkeypatch) + model = load_spi_donor_age_model(2025) + guard = UKSPIStatePensionAgeGuard( + state_pension_age=model.state_pension_age, + spi_channel_columns=_SPI_PENSION_AGE_COLUMNS, + base_channel_columns=("state_pension_reported",), + ) + + unguarded = impute_uk_spi_income_support( + support, donor_path, seed=9, n_estimators=3, donor_sample_size=None + ) + guarded = impute_uk_spi_income_support( + support, + donor_path, + seed=9, + n_estimators=3, + donor_sample_size=None, + donor_age_model=model, + state_pension_age_guard=guard, + ) + + channel = support_channel_column("person") + below = guarded.person["age"].lt(model.state_pension_age) + spi_below = below & guarded.person[channel].eq("spi") + # Every fixture person is below State Pension age, and the fake forest + # draws a positive report for each of them without the guard. + assert below.all() + assert spi_below.any() + assert ( + unguarded.person.loc[spi_below, list(_SPI_PENSION_AGE_COLUMNS)] + .gt(0) + .all() + .all() + ) + assert guarded.person.loc[below, "state_pension_reported"].eq(0).all() + assert ( + guarded.person.loc[spi_below, list(_SPI_PENSION_AGE_COLUMNS)].eq(0).all().all() + ) + assert ( + guarded.person.loc[spi_below, spi_income.SPI_HMRC_STATE_PENSION_INCOME_COLUMN] + .eq(0) + .all() + ) + # Base-channel Pension Credit and Winter Fuel reports are FRS responses the + # guard does not own. + base = ~guarded.person[channel].eq("spi") + pd.testing.assert_frame_equal( + guarded.person.loc[ + base, ["pension_credit_reported", "winter_fuel_allowance_reported"] + ], + unguarded.person.loc[ + base, ["pension_credit_reported", "winter_fuel_allowance_reported"] + ], + ) + assert [receipt["step"] for receipt in guarded.state_pension_age_guard] == [ + "spi_state_pension_leaf_after_stage1", + "base_channel_reports_before_stage2", + "spi_channel_reports_after_stage2", + ] + assert guarded.donor_age_draw["state_pension_age"] == model.state_pension_age + assert unguarded.state_pension_age_guard == () + assert unguarded.donor_age_draw["cells"] == [] diff --git a/packages/microcosm-build/tests/engine_free/shared/test_country_spec.py b/packages/microcosm-build/tests/engine_free/shared/test_country_spec.py index 8119fac95..86a922987 100644 --- a/packages/microcosm-build/tests/engine_free/shared/test_country_spec.py +++ b/packages/microcosm-build/tests/engine_free/shared/test_country_spec.py @@ -943,6 +943,7 @@ def test_spi_spine_adds_no_country_package_resources(self) -> None: "dwp_uc_deduction_distributions.json", "nhs_consumption_by_age_gender.json", "ons_age_tail_band_populations.json", + "ons_single_year_age_populations.json", "lcfs_consumption_support_bounds.json", "etb_vat_support_bounds.json", "etb_services_support_bounds.json", @@ -1062,6 +1063,7 @@ def test_uk_package_loads(self) -> None: "dwp_uc_deduction_distributions.json", "nhs_consumption_by_age_gender.json", "ons_age_tail_band_populations.json", + "ons_single_year_age_populations.json", "lcfs_consumption_support_bounds.json", "etb_vat_support_bounds.json", "etb_services_support_bounds.json", diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_source_stages.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_source_stages.py index 5dd10c127..2a7d233d2 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_source_stages.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_source_stages.py @@ -625,9 +625,11 @@ def test_e3_operation_kinds_are_declared_in_order(self) -> None: assert [op.kind for op in stages["hmrc_spi_income_spine"].operations] == [ "verify_pinned_hmrc_source_pair", "strict_read_private_table", + "draw_spi_donor_ages_by_population", "fit_weighted_qrf_stage1", "resample_band_donor_leaves", "fit_weighted_qrf_stage2", + "zero_pension_age_reports_below_state_pension_age", "redraw_columns_from_fitted_qrf", "materialize_hmrc_income_bands_fail_closed", "classify_hmrc_income_facts_with_reviewed_fences", @@ -912,10 +914,15 @@ def test_e7_declared_seed_lockstep(self) -> None: stages = {stage.stage: stage for stage in spec.sources.stages} assert stages["spi_support_channel"].operations[0].parameters["seed"] == 42 - assert stages["hmrc_spi_income_spine"].operations[2].parameters["seed"] == 42 + assert stages["hmrc_spi_income_spine"].operations[3].parameters["seed"] == 42 # The reserved carriers' resample draws at stage seed + 2 (PolicyEngine/chronicle#280 lane). - assert stages["hmrc_spi_income_spine"].operations[3].parameters["seed"] == 44 - assert stages["hmrc_spi_income_spine"].operations[4].parameters["seed"] == 43 + assert stages["hmrc_spi_income_spine"].operations[4].parameters["seed"] == 44 + assert stages["hmrc_spi_income_spine"].operations[5].parameters["seed"] == 43 + # The donor age draw and the State Pension age guard take no seed of + # their own: ages draw on the stage-1 seed, the guard is deterministic + # (microcosm#1069). + assert "seed" not in stages["hmrc_spi_income_spine"].operations[2].parameters + assert "seed" not in stages["hmrc_spi_income_spine"].operations[6].parameters assert stages["spi_income_band_donors"].operations[0].parameters["seed"] == 3 assert stages["uc_reporter_redraw"].operations[3].parameters["seed"] == 44 assert stages["uc_capital_coherence"].operations[1].parameters["seed"] == 0 diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_spi_pension_age.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_spi_pension_age.py new file mode 100644 index 000000000..393c50848 --- /dev/null +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_spi_pension_age.py @@ -0,0 +1,270 @@ +"""State Pension age coherence of the SPI income stage (microcosm#1069, WP2 c5).""" + +from __future__ import annotations + +import numpy as np +import pandas as pd +import pytest + +from microcosm.build.uk_runtime import spi_income +from microcosm.build.uk_runtime.spi_income import ( + SPIDonorAgeModel, + UKSPIStatePensionAgeGuard, +) + + +def _flat_model(state_pension_age: int = 66) -> SPIDonorAgeModel: + populations = { + (sex, age): 100.0 for sex in ("MALE", "FEMALE") for age in range(0, 91) + } + return SPIDonorAgeModel( + populations=populations, + state_pension_age=state_pension_age, + source="fixture", + ) + + +def test_spi_age_bands_follow_the_published_agerange_edges() -> None: + # Code 6 is "65 to 74" and code 7 "75 and over": a 74-year-old belongs to + # band 6, which the old [65, 74) edge excluded. + assert spi_income._SPI_AGE_RANGES[6] == (65, 75) + assert spi_income._SPI_AGE_RANGES[7][0] == 75 + codes = spi_income._spi_agerange_codes(np.asarray([16.0, 64.9, 65.0, 74.5, 75.0])) + assert codes.tolist() == [1, 5, 6, 6, 7] + + +def test_recipients_in_the_band_straddling_state_pension_age_draw_at_or_above_it() -> ( + None +): + count = 4_000 + rng = np.random.default_rng(3) + codes = np.full(count, 6) + sex = np.asarray(["MALE", "FEMALE"] * (count // 2), dtype=object) + receives = rng.random(count) < 0.8 + fact = np.ones(count) + + ages, receipt = spi_income._draw_spi_donor_ages( + codes, sex, receives, fact, np.random.default_rng(1), model=_flat_model() + ) + + assert ((ages >= 65.0) & (ages < 75.0)).all() + assert (ages[receives] >= 66.0).all() + # A flat population puts one tenth of the band at 65; non-recipients supply + # all of it. + below = ages < 66.0 + assert below.sum() / count == pytest.approx(0.1, abs=0.02) + assert not (below & receives).any() + cells = {(row["agerange"], row["sex"]): row for row in receipt} + assert cells[(6, "MALE")]["ons_below_state_pension_age_share"] == pytest.approx(0.1) + assert cells[(6, "MALE")]["recipients_below_state_pension_age"] == 0 + + +def test_an_infeasible_below_age_share_is_receipted_not_forced() -> None: + codes = np.full(10, 6) + sex = np.asarray(["MALE"] * 10, dtype=object) + receives = np.asarray([True] * 10) + ages, receipt = spi_income._draw_spi_donor_ages( + codes, + sex, + receives, + np.ones(10), + np.random.default_rng(0), + model=_flat_model(), + ) + + assert (ages >= 66.0).all() + (cell,) = receipt + assert cell["non_recipient_below_probability"] == 0.0 + assert cell["unfilled_below_state_pension_age_mass"] == pytest.approx(1.0) + + +def test_single_year_shares_follow_the_population_within_a_band() -> None: + populations = { + (sex, age): (900.0 if age == 80 else 1.0) + for sex in ("MALE", "FEMALE") + for age in range(0, 91) + } + model = SPIDonorAgeModel( + populations=populations, state_pension_age=66, source="fixture" + ) + ages, _ = spi_income._draw_spi_donor_ages( + np.full(2_000, 7), + np.asarray(["FEMALE"] * 2_000, dtype=object), + np.ones(2_000, dtype=bool), + np.ones(2_000), + np.random.default_rng(2), + model=model, + ) + + assert (np.floor(ages) == 80).mean() > 0.9 + + +def test_unknown_sex_draws_on_both_sexes() -> None: + model = _flat_model() + both = model.weights("UNKNOWN", range(65, 70)) + male = model.weights("MALE", range(65, 70)) + np.testing.assert_array_equal(both, 2 * male) + + +def test_age_model_refuses_invalid_keys_and_values() -> None: + with pytest.raises(ValueError, match="invalid population key"): + SPIDonorAgeModel( + populations={("OTHER", 1): 1.0}, state_pension_age=66, source="x" + ) + with pytest.raises(ValueError, match="finite and non-negative"): + SPIDonorAgeModel( + populations={("MALE", 1): -1.0}, state_pension_age=66, source="x" + ) + with pytest.raises(ValueError, match="integer State Pension age"): + SPIDonorAgeModel(populations={}, state_pension_age=0, source="x") + + +def test_zeroing_below_state_pension_age_receipts_what_it_removes() -> None: + person = pd.DataFrame( + { + "age": [65, 66, 40, 70], + "state_pension_reported": [9_000.0, 11_000.0, 500.0, 12_000.0], + "pension_credit_reported": [300.0, 0.0, 0.0, 400.0], + }, + index=[1, 2, 3, 4], + ) + rows = pd.Series([True, True, False, True], index=person.index) + weights = pd.Series([10.0, 20.0, 30.0, 40.0], index=person.index) + + result, receipt = spi_income._zero_below_state_pension_age( + person.copy(), + rows=rows, + columns=("state_pension_reported", "pension_credit_reported"), + state_pension_age=66, + person_weights=weights, + step="fixture", + ) + + assert result["state_pension_reported"].tolist() == [0.0, 11_000.0, 500.0, 12_000.0] + assert result["pension_credit_reported"].tolist() == [0.0, 0.0, 0.0, 400.0] + removed = receipt["removed"]["state_pension_reported"] + assert removed == { + "rows": 1, + "weighted_people": 10.0, + "unweighted_amount": 9_000.0, + "weighted_amount": 90_000.0, + } + assert receipt["rows_below_state_pension_age"] == 1 + + +def test_zeroing_refuses_a_column_absent_from_the_frame() -> None: + person = pd.DataFrame({"age": [65]}) + with pytest.raises(ValueError, match="absent from the frame"): + spi_income._zero_below_state_pension_age( + person, + rows=pd.Series([True]), + columns=("state_pension_reported",), + state_pension_age=66, + person_weights=pd.Series([1.0]), + step="fixture", + ) + + +def test_guard_refuses_duplicate_columns() -> None: + with pytest.raises(ValueError, match="distinct names"): + UKSPIStatePensionAgeGuard( + state_pension_age=66, + spi_channel_columns=("a", "a"), + base_channel_columns=(), + ) + + +def _band_resample_inputs(carrier_age: float): + columns = list(spi_income.SPI_INCOME_QRF_OUTPUT_COLUMNS) + rows = 60 + donor = pd.DataFrame(0.0, index=range(rows), columns=columns) + # Every donor sits in the GBP 200,000 band; the first 30 are aged 40 to + # 44 (code 3), the rest 75 and over (code 7) with State Pension. + donor["employment_income"] = 250_000.0 + donor["total_income"] = 250_000.0 + donor["is_composite"] = False + donor["region"] = "LONDON" + donor["FACT"] = 1.0 + donor["agerange"] = [3] * 30 + [7] * 30 + donor.loc[30:, spi_income.SPI_HMRC_STATE_PENSION_INCOME_COLUMN] = 10_000.0 + person = pd.DataFrame( + { + "person_household_id": [1], + "age": [carrier_age], + spi_income.SPI_INCOME_BAND_CARRIER_COLUMN: [True], + } + ) + for column in columns: + person[column] = 0.0 + household = pd.DataFrame( + { + "household_id": [1], + "region": ["LONDON"], + spi_income.SPI_INCOME_BAND_LOWER_BOUND_COLUMN: [200_000.0], + } + ) + return person, donor, household + + +@pytest.mark.parametrize("seed", range(5)) +def test_band_carriers_draw_from_their_own_age_band_when_the_pool_allows( + seed: int, +) -> None: + person, donor, household = _band_resample_inputs(carrier_age=42.0) + factors = dict.fromkeys(spi_income.SPI_INCOME_QRF_OUTPUT_COLUMNS, 1.0) + + result, receipt = spi_income._resample_band_donor_leaves( + person, + donor, + household=household, + spi_people=pd.Series([True]), + uprating_factors=factors, + lower_bounds=(200_000,), + regional_pool_minimum=5, + seed=seed, + age_pool_minimum=10, + ) + + # The carrier is 42, so it never inherits a 75-and-over record's State + # Pension leaf. + assert result.loc[0, spi_income.SPI_HMRC_STATE_PENSION_INCOME_COLUMN] == 0.0 + assert receipt["bands"][0]["age_matched_carriers"] == 1 + assert receipt["age_pool_minimum"] == 10 + + +def test_band_carriers_fall_back_to_the_band_pool_when_the_age_pool_is_thin() -> None: + person, donor, household = _band_resample_inputs(carrier_age=42.0) + factors = dict.fromkeys(spi_income.SPI_INCOME_QRF_OUTPUT_COLUMNS, 1.0) + + _, receipt = spi_income._resample_band_donor_leaves( + person, + donor, + household=household, + spi_people=pd.Series([True]), + uprating_factors=factors, + lower_bounds=(200_000,), + regional_pool_minimum=5, + seed=0, + age_pool_minimum=31, + ) + + assert receipt["bands"][0]["age_matched_carriers"] == 0 + + +def test_band_resample_without_age_pooling_keeps_the_legacy_pools() -> None: + person, donor, household = _band_resample_inputs(carrier_age=42.0) + factors = dict.fromkeys(spi_income.SPI_INCOME_QRF_OUTPUT_COLUMNS, 1.0) + + _, receipt = spi_income._resample_band_donor_leaves( + person, + donor.drop(columns=["agerange"]), + household=household, + spi_people=pd.Series([True]), + uprating_factors=factors, + lower_bounds=(200_000,), + regional_pool_minimum=5, + seed=0, + ) + + assert receipt["age_pool_minimum"] is None + assert receipt["bands"][0]["age_matched_carriers"] == 0 diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_spi_spine.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_spi_spine.py index 8eede42fa..0f7c40666 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_spi_spine.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_spi_spine.py @@ -23,6 +23,7 @@ FRS_ONLY_SPI_FILL_PERSON_COLUMNS, SPI_DONOR_REQUIRED_COLUMNS, SPI_INCOME_QRF_OUTPUT_COLUMNS, + SPIDonorAgeModel, impute_uk_spi_income_support, ) from microcosm.build.uk_runtime.spi_spine import ( @@ -544,6 +545,19 @@ def uprating_factors(year): ) monkeypatch.setattr(spi_income, "_spi_income_uprating_factors", uprating_factors) + # State Pension age is an engine read; the engine lane covers the real + # model (tests/engine/uk/test_uk_spi_state_pension_age.py). + monkeypatch.setattr( + spi_spine, + "load_spi_donor_age_model", + lambda _build_period: SPIDonorAgeModel( + populations={ + (sex, age): 1.0 for sex in ("MALE", "FEMALE") for age in range(0, 91) + }, + state_pension_age=66, + source="engine-free fixture", + ), + ) support_frame = UKSPISupportChannelStageTransform( stage=_committed_stage("spi_support_channel"), sample_fraction=0.0002, diff --git a/packages/microcosm-graph/tests/fixtures/parity/uk_spine/sources/cgt_asset_type_facts.json b/packages/microcosm-graph/tests/fixtures/parity/uk_spine/sources/cgt_asset_type_facts.json index 71f170ce9..1442634c0 100644 --- a/packages/microcosm-graph/tests/fixtures/parity/uk_spine/sources/cgt_asset_type_facts.json +++ b/packages/microcosm-graph/tests/fixtures/parity/uk_spine/sources/cgt_asset_type_facts.json @@ -2,70 +2,70 @@ "resource": "synthetic-cgt-asset-type.json", "resource_sha256": "synthetic", "source_commit": "synthetic", - "table4_all_gains": 85655532.16327287, + "table4_all_gains": 84705219.38879342, "table4_all_tax": 0.0, - "table4_all_taxpayers": 190.7294386227545, + "table4_all_taxpayers": 188.8832820855615, "table4_bands": [ { - "gains": 80168.68515167845, + "gains": 83627.53122927491, "lower_bound": 0, "tax": null, - "taxpayers": 17.418184880239522, + "taxpayers": 17.250828877005347, "upper_bound": 10000 }, { - "gains": 453343.7314999845, + "gains": 416423.92947875377, "lower_bound": 10000, "tax": null, - "taxpayers": 24.45008982035928, + "taxpayers": 23.58249331550802, "upper_bound": 25000 }, { - "gains": 617786.7688845046, + "gains": 676391.7687965892, "lower_bound": 25000, "tax": null, - "taxpayers": 16.40005988023952, + "taxpayers": 16.445203877005348, "upper_bound": 50000 }, { - "gains": 1345563.1908268796, + "gains": 1267316.4722515403, "lower_bound": 50000, "tax": null, - "taxpayers": 16.70318488023952, + "taxpayers": 16.693328877005346, "upper_bound": 100000 }, { - "gains": 4150905.922211022, + "gains": 4226964.067228878, "lower_bound": 100000, "tax": null, - "taxpayers": 24.55258982035928, + "taxpayers": 24.17936831550802, "upper_bound": 250000 }, { - "gains": 7001192.286424931, + "gains": 5987065.982816234, "lower_bound": 250000, "tax": null, - "taxpayers": 16.40443488023952, + "taxpayers": 16.17832887700535, "upper_bound": 500000 }, { - "gains": 13421361.997435555, + "gains": 14285778.567473445, "lower_bound": 500000, "tax": null, - "taxpayers": 16.21568488023952, + "taxpayers": 16.79207887700535, "upper_bound": 1000000 }, { - "gains": 58585209.58083832, + "gains": 57761651.06951871, "lower_bound": 1000000, "tax": null, - "taxpayers": 58.585209580838324, + "taxpayers": 57.761651069518706, "upper_bound": null } ], - "table4_individuals_gains": 85655532.16327287, + "table4_individuals_gains": 84705219.38879342, "table4_individuals_tax": 0.0, - "table4_individuals_taxpayers": 190.7294386227545, + "table4_individuals_taxpayers": 188.8832820855615, "table4_trusts_gains": 0.0, "table4_trusts_tax": 0.0, "table7_total_disposals": 2743095.2380952383, @@ -114,12 +114,12 @@ "proceeds": 9000000000.0 } ], - "table8a_disposals_total": 356.7370791916169, - "table8a_gains_total": 493365043.2627384, - "table8a_tax_total": 98673008.65254769, - "table8a_taxpayers_total": 324.3064356287426, - "table8b_all_gains": 493365043.2627384, - "table8b_all_taxpayers": 324.3064356287426, - "table8b_individuals_gains": 493365043.2627384, - "table8b_individuals_taxpayers": 324.3064356287426 + "table8a_disposals_total": 356.2860529411764, + "table8a_gains_total": 485713226.6102749, + "table8a_tax_total": 97142645.32205498, + "table8a_taxpayers_total": 323.8964117647058, + "table8b_all_gains": 485713226.6102749, + "table8b_all_taxpayers": 323.8964117647058, + "table8b_individuals_gains": 485713226.6102749, + "table8b_individuals_taxpayers": 323.8964117647058 } 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 d79fbe2d7..396cca31d 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 @@ -2470,6 +2470,13 @@ "survey": "HMRC Personal Incomes Tables 3.6 and 3.7", "tax_year_start": 2023, "vintage": "2023-24" + }, + { + "format": "json", + "kind": "public_aggregate_reference", + "resource": "ons_single_year_age_populations.json", + "role": "donor_age_populations", + "runtime_sha256_required": true } ], "grain": "person", @@ -2541,6 +2548,14 @@ "seed": 42, "weight": "FACT" }, + { + "artifact_role": "qrf_donor", + "kind": "draw_spi_donor_ages_by_population", + "method": "whole-year age drawn within the AGERANGE band in proportion to the ONS single-year population of the donor's sex, then a uniform fraction of a year; State Pension recipients (SRP > 0) are drawn at or above State Pension age, and the band's below-State-Pension-age population share is drawn from its non-recipients", + "population_period": 2023, + "resource": "ons_single_year_age_populations.json", + "state_pension_age": "policyengine-uk gov.dwp.state_pension.age at the build instant" + }, { "assessable_income_source_semantics": "QRF draws leaves only; TEI, TII, and TI are deterministic post-draw accounting aggregates and TI equals TEI + TII exactly", "categorical_predictors": [ @@ -2721,6 +2736,7 @@ "training_artifact_role": "qrf_donor" }, { + "age_pool_minimum": 20, "band_column": "spi_income_band_donor_lower_bound", "band_lower_bounds": [ 200000, @@ -2731,7 +2747,7 @@ "carrier_column": "person_is_spi_income_band_carrier", "kind": "resample_band_donor_leaves", "outputs": "stage-1 outputs, uprated as the stage-1 draws", - "pool": "full prepared donor tape by published total income band (TEI + TII), narrowed to the carrier's region where that pool holds the minimum", + "pool": "full prepared donor tape by published total income band (TEI + TII), narrowed to the carrier's SPI age band where that pool holds the age minimum (composites never age-match), then to the carrier's region where that pool holds the regional minimum", "regional_pool_minimum": 20, "seed": 44, "weighting": "FACT", @@ -2819,6 +2835,20 @@ "weight": "household_weight", "weight_mapping": "household_to_person" }, + { + "base_channel_columns": [ + "state_pension_reported" + ], + "kind": "zero_pension_age_reports_below_state_pension_age", + "receipt": "rows, weighted people and amounts removed per column and step", + "spi_channel_columns": [ + "state_pension_reported", + "pension_credit_reported", + "winter_fuel_allowance_reported" + ], + "spi_state_pension_leaf": "hmrc_spi_state_pension_income", + "state_pension_age": "policyengine-uk gov.dwp.state_pension.age at the build instant" + }, { "columns": [ "dividend_income" 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 b3a16ab57..5a344257b 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":[{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":"care_hours","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":"is_uc_claimant","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":"would_claim_carers_allowance","dtype":"bool","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"sample_fraction":1.0,"sample_seed":578,"stage_contract_sha256":"047d30937efb21e39259fdbed5597751e4f5a0c341ea583c7446e4c9c11eba48","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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":"care_hours","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":"is_uc_claimant","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":"would_claim_carers_allowance","dtype":"bool","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"age_tail","stage_contract_sha256":"963a34f38caede2525e3b8735f904bb70a1bbef5a272f0eefd4346343444484f","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage frs_relationships.","id":"frs_relationships","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","is_household_head"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_relationships@1","mass":"conserve","outputs":[{"column":"relationship_to_head","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"ons_family_role","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"ons_family_index","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"ons_household_type","dtype":"string","entity":"household","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_relationships","stage_contract_sha256":"30628808d06d9829ebcbcf460cd355a01261e78c7c73e6006c75bec2e3d60c33","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage frs_employment.","id":"frs_employment","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["ons_household_type","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_employment","stage_contract_sha256":"ddbefaf05b44788d794a6e4b0e8926c14318d66e50d2f11f50ca549538bbf60c","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_council_tax","stage_contract_sha256":"3381cd9f7a736514d5073c57480e07f5098890f3ca9ed3865392043594771eb9","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_disability","stage_contract_sha256":"ac500b4cb1bc04d4fb72d198592dd376d61da8c150921a6ac53914ac18be0508","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_education","stage_contract_sha256":"836cb0f5a582fee1425190e96c9cb81bdef859bd236c8b6bc27660b6e3d0c2f8","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","ons_household_type","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"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","ons_household_type","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","ons_household_type","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_education_grant_split","stage_contract_sha256":"8718f014b90498c2cc7c754289775ca4a41452d9b978d8cbc5f34b64cbdc7df2","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage frs_take_up.","id":"frs_take_up","inputs":[{"columns":["frs_benunit_capital","is_married"],"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":"would_claim_uc_childcare","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"maximum_extended_childcare_hours_usage","dtype":"float64","entity":"benunit","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_take_up","stage_contract_sha256":"067d31b7fbe733d1d182588705e9ce79df0c8e5f6e8f519314765af49b1b00d7","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_person_draws","stage_contract_sha256":"7e0af955541ec5669dcdf1de4e1e6ca642853e48b775ec4e25238b41491df324","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_household_draws","stage_contract_sha256":"c74c63b09264319c4bf0049dabba00ecd0ce660beb7b53d6dae71518434bc949","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"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","would_claim_uc_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","ons_household_type","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":["brma","region"],"entity":"household","rows":"all"},{"columns":["age","employee_pension_contributions"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_hmrc_spine_leaves","stage_contract_sha256":"2bb3d068003489b47cc8676ac26c203ce3c39a9b6e92f3ecd0a3c06acd6addc4","time_period":"2024"},"population":"frs_brma.checkpoint","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"frs_brma.checkpoint","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","would_claim_uc_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","ons_household_type","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"spi_support_channel","citation":"","description":"Run structural UK stage spi_income_band_donors.","id":"spi_income_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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.spi_income_band_donors@1","mass":"free","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","household_source_id","int64"],["household","household_support_channel","string"],["household","household_support_clone_index","int64"],["household","household_is_spi_synthetic","bool"],["household","household_is_spi_income_band_donor","bool"],["household","spi_income_band_donor_lower_bound","float64"],["person","person_is_spi_income_band_carrier","bool"]],"expand_weight_entity":"household","expand_weight_kind":"importance","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"spi_income_band_donors","stage_contract_sha256":"047ff55be7acca89a01859271a019428f42a40c38af4885625ec064f8ff213af","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"base":null,"citation":"","description":"Own the cells materialized by spi_income_band_donors.","id":"spi_income_band_donors.owned","inputs":[],"kernel":"uk.claim@1","mass":"conserve","outputs":[{"column":"person_source_id","dtype":"int64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"person_support_channel","dtype":"string","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"person_support_clone_index","dtype":"int64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"benunit_source_id","dtype":"int64","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"benunit_support_channel","dtype":"string","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"benunit_support_clone_index","dtype":"int64","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_source_id","dtype":"int64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_support_channel","dtype":"string","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_support_clone_index","dtype":"int64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_is_spi_synthetic","dtype":"bool","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_is_spi_income_band_donor","dtype":"bool","entity":"household","ownership":"produced","rows":"all"},{"column":"spi_income_band_donor_lower_bound","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"person_is_spi_income_band_carrier","dtype":"bool","entity":"person","ownership":"produced","rows":"all"}],"params":{"materialized_expand_outputs":["household.household_is_spi_income_band_donor","household.spi_income_band_donor_lower_bound","person.person_is_spi_income_band_carrier"]},"population":"spi_income_band_donors","sources":[],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","relationship_to_head","ons_family_role","ons_family_index","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","ossben_identifiable_subset","srp_regular_code5","person_source_id","person_support_channel","person_support_clone_index","person_is_spi_income_band_carrier"],"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"},{"column":"would_claim_carers_allowance","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"hmrc_spi_income_spine","stage_contract_sha256":"038505263ed7821e028773e041d9e923131df001ad31439d78d7eba5aa1ea64f","time_period":"2024"},"population":"spi_income_band_donors","sources":["frs"],"structural":"none","weights":null},{"base":"spi_income_band_donors","citation":"","description":"Ownership boundary before spi_housing_shell rewrites.","id":"spi_housing_shell.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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage spi_housing_shell.","id":"spi_housing_shell","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["council_tax_single_adult_raw","household_support_channel","ons_household_type","region"],"entity":"household","rows":"all"},{"columns":["age","dividend_income","employment_income","is_household_head","other_investment_income","private_pension_income","property_income","savings_interest_income","self_employment_income","state_pension_reported","would_claim_carers_allowance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.spi_housing_shell@1","mass":"conserve","outputs":[{"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":"council_tax_band","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","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_reported","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"rent","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":"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":"subrent","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_rebate","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"housing_benefit_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"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"spi_housing_shell","stage_contract_sha256":"809f19fd33ff79ceda005e8cc3fa89ae40b297dceca26a7658b6259267987890","time_period":"2024"},"population":"spi_housing_shell.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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.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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"was_wealth","stage_contract_sha256":"366e019c41ee2a28bcd61bbaa62a024ed0bb4b30b3ffc4d87ab23b340b4076bf","time_period":"2024"},"population":"spi_housing_shell.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage was_lisa.","id":"was_lisa","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.was_lisa@1","mass":"conserve","outputs":[{"column":"has_lifetime_isa","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"lifetime_isa_balance","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"household_lifetime_isa_balance","dtype":"float64","entity":"household","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"was_lisa","stage_contract_sha256":"f1d0f962e84d32007821b32e4e03a8af9443acc0ed3d1836ff094dcbacb928da","time_period":"2024"},"population":"spi_housing_shell.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"spi_housing_shell.boundary","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":["household_lifetime_isa_balance","household_support_channel","region"],"entity":"household","rows":"all"},{"columns":["age"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"regional_property_uprating","stage_contract_sha256":"acb342e8ca1770556c5682a9411c5ead5d61dd1420cfe6b0305ed14a3407fb25","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage nts_bus_travel.","id":"nts_bus_travel","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.nts_bus_travel@1","mass":"conserve","outputs":[{"column":"local_bus_use_band","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"bus_in_london_trips","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"other_local_bus_trips","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"local_bus_trips","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"bus_pass_eligible","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"local_bus_single_fare_share","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"household_local_bus_trips","dtype":"float64","entity":"household","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"nts_bus_travel","stage_contract_sha256":"cf854e8cf6edd006b677dcc67b63d6bb104d09eed93d7ee78bde6f0e838b9de9","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"lcfs_consumption","stage_contract_sha256":"63079c6f53d507702b4b1fadcf30def5188baf1f17e026e9f89f285577fe9c60","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"etb_vat","stage_contract_sha256":"5a2b777d88315bcccb72477c088a136c634131e0bc1a339b7287217ee5cfd8d3","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"etb_services","stage_contract_sha256":"37bfc4c0935ab99c5f270f307451cbf6cc6a85a3f8c6ce77429f6a6c66c07021","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"regional_property_uprating.boundary","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"uc_reporter_redraw","stage_contract_sha256":"7e94e034cad29c5bae566ffb875c42cddf3a1025c15496907e783ceff1144f8b","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","is_benunit_head","is_parent","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"uc_capital_coherence","stage_contract_sha256":"059f27ee687ee15385b246d43068b17aeecbe3645ccc41fd52fcad06a006a081","time_period":"2024"},"population":"uc_capital_coherence.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"uc_deduction_attributes","stage_contract_sha256":"6bc7e3ec1a5712e23ca1b7d2956e8b17f2526b94431ba3e5a9294b04658e4fe0","time_period":"2024"},"population":"uc_capital_coherence.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"uc_capital_coherence.boundary","citation":"","description":"Run structural UK stage cgt_support_split.","id":"cgt_support_split","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.cgt_support_split@1","mass":"conserve","outputs":[],"params":{"expand_cells":[["household","household_is_cgt_support_copy","bool"],["household","cgt_support_copies","int64"],["household","cgt_support_copy_index","int64"]],"expand_weight_entity":"household","expand_weight_kind":"importance","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"cgt_support_split","stage_contract_sha256":"556e2db7907ad62920149da9104150997031e3cfddbdb4610075369d77147499","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"base":null,"citation":"","description":"Own the cells materialized by cgt_support_split.","id":"cgt_support_split.owned","inputs":[],"kernel":"uk.claim@1","mass":"conserve","outputs":[{"column":"household_is_cgt_support_copy","dtype":"bool","entity":"household","ownership":"produced","rows":"all"},{"column":"cgt_support_copies","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"cgt_support_copy_index","dtype":"int64","entity":"household","ownership":"produced","rows":"all"}],"params":{"materialized_expand_outputs":["household.household_is_cgt_support_copy","household.cgt_support_copies","household.cgt_support_copy_index"]},"population":"cgt_support_split","sources":[],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"cgt_support_split","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","household_is_cgt_support_copy","cgt_support_copies","cgt_support_copy_index"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"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","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"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":"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","household_is_cgt_support_copy","cgt_support_copies","cgt_support_copy_index","household_is_capital_gains_clone"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","capital_gains"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":["cgt_support_copies","corporate_wealth","gross_financial_wealth","household_is_cgt_support_copy","non_residential_property_value","other_residential_property_value","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"hmrc_cgt_gains_spine","stage_contract_sha256":"49717d6586a4a5d7fc370200c71c0f91d01473158454571c056deb6f5618d562","time_period":"2024"},"population":"hmrc_cgt_gains_spine.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage hmrc_cgt_asset_type_spine.","id":"hmrc_cgt_asset_type_spine","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["corporate_wealth","gross_financial_wealth","other_residential_property_value","region","stocks_and_shares_isa"],"entity":"household","rows":"all"},{"columns":["age","capital_gains","dividend_income","property_income","self_employment_income"],"entity":"person","rows":"all"}],"kernel":"uk.stage.hmrc_cgt_asset_type_spine@1","mass":"conserve","outputs":[{"column":"capital_gains_asset_type","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"capital_gains_residential_property","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"capital_gains_badr","dtype":"float64","entity":"person","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"hmrc_cgt_asset_type_spine","stage_contract_sha256":"5f9a5f2d12e2a7db87c7c0d6f0df6f70875a579e90c39b2b8c48943eac43905e","time_period":"2024"},"population":"hmrc_cgt_gains_spine.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"hmrc_cgt_gains_spine.boundary","citation":"","description":"Run structural UK stage cgt_incidence_anchor.","id":"cgt_incidence_anchor","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["household_is_capital_gains_clone","region"],"entity":"household","rows":"all"},{"columns":["age","capital_gains","capital_gains_badr","dividend_income","employment_income","miscellaneous_income","private_pension_income","property_income","savings_interest_income","self_employment_income","state_pension_reported"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.cgt_incidence_anchor@1","mass":"conserve","outputs":[],"params":{"expand_cells":[],"expand_weight_entity":"household","expand_weight_kind":"importance","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"cgt_incidence_anchor","stage_contract_sha256":"b79ce806015de2f1e1703fa68bf4ad871c6df54b5b32633c864632ab68919a48","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","household_is_cgt_support_copy","cgt_support_copies","cgt_support_copy_index","household_is_capital_gains_clone"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","capital_gains","capital_gains_asset_type","capital_gains_residential_property","capital_gains_badr"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"salary_sacrifice","stage_contract_sha256":"89b589d19fcb99b265cb40d08cf2b9ff7955bd41b6de0e8c9ff4dc6f35be1eb6","time_period":"2024"},"population":"cgt_incidence_anchor","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"student_loans","stage_contract_sha256":"f2936c5e22a0e9b097437e3f3aabaf06c4561d5c25a9b7c05e720a6553f73bbc","time_period":"2024"},"population":"cgt_incidence_anchor","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":[{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":"care_hours","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":"is_uc_claimant","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":"would_claim_carers_allowance","dtype":"bool","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"sample_fraction":1.0,"sample_seed":578,"stage_contract_sha256":"047d30937efb21e39259fdbed5597751e4f5a0c341ea583c7446e4c9c11eba48","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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":"care_hours","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":"is_uc_claimant","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":"would_claim_carers_allowance","dtype":"bool","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"age_tail","stage_contract_sha256":"963a34f38caede2525e3b8735f904bb70a1bbef5a272f0eefd4346343444484f","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage frs_relationships.","id":"frs_relationships","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","is_household_head"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_relationships@1","mass":"conserve","outputs":[{"column":"relationship_to_head","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"ons_family_role","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"ons_family_index","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"ons_household_type","dtype":"string","entity":"household","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_relationships","stage_contract_sha256":"30628808d06d9829ebcbcf460cd355a01261e78c7c73e6006c75bec2e3d60c33","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage frs_employment.","id":"frs_employment","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["ons_household_type","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_employment","stage_contract_sha256":"ddbefaf05b44788d794a6e4b0e8926c14318d66e50d2f11f50ca549538bbf60c","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_council_tax","stage_contract_sha256":"3381cd9f7a736514d5073c57480e07f5098890f3ca9ed3865392043594771eb9","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_disability","stage_contract_sha256":"ac500b4cb1bc04d4fb72d198592dd376d61da8c150921a6ac53914ac18be0508","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_education","stage_contract_sha256":"836cb0f5a582fee1425190e96c9cb81bdef859bd236c8b6bc27660b6e3d0c2f8","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","ons_household_type","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"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","ons_household_type","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","ons_household_type","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_education_grant_split","stage_contract_sha256":"8718f014b90498c2cc7c754289775ca4a41452d9b978d8cbc5f34b64cbdc7df2","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage frs_take_up.","id":"frs_take_up","inputs":[{"columns":["frs_benunit_capital","is_married"],"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":"would_claim_uc_childcare","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"maximum_extended_childcare_hours_usage","dtype":"float64","entity":"benunit","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_take_up","stage_contract_sha256":"067d31b7fbe733d1d182588705e9ce79df0c8e5f6e8f519314765af49b1b00d7","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_person_draws","stage_contract_sha256":"7e0af955541ec5669dcdf1de4e1e6ca642853e48b775ec4e25238b41491df324","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_household_draws","stage_contract_sha256":"c74c63b09264319c4bf0049dabba00ecd0ce660beb7b53d6dae71518434bc949","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"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","would_claim_uc_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","ons_household_type","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":["brma","region"],"entity":"household","rows":"all"},{"columns":["age","employee_pension_contributions"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_hmrc_spine_leaves","stage_contract_sha256":"2bb3d068003489b47cc8676ac26c203ce3c39a9b6e92f3ecd0a3c06acd6addc4","time_period":"2024"},"population":"frs_brma.checkpoint","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"frs_brma.checkpoint","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","would_claim_uc_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","ons_household_type","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"spi_support_channel","citation":"","description":"Run structural UK stage spi_income_band_donors.","id":"spi_income_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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.spi_income_band_donors@1","mass":"free","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","household_source_id","int64"],["household","household_support_channel","string"],["household","household_support_clone_index","int64"],["household","household_is_spi_synthetic","bool"],["household","household_is_spi_income_band_donor","bool"],["household","spi_income_band_donor_lower_bound","float64"],["person","person_is_spi_income_band_carrier","bool"]],"expand_weight_entity":"household","expand_weight_kind":"importance","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"spi_income_band_donors","stage_contract_sha256":"047ff55be7acca89a01859271a019428f42a40c38af4885625ec064f8ff213af","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"base":null,"citation":"","description":"Own the cells materialized by spi_income_band_donors.","id":"spi_income_band_donors.owned","inputs":[],"kernel":"uk.claim@1","mass":"conserve","outputs":[{"column":"person_source_id","dtype":"int64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"person_support_channel","dtype":"string","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"person_support_clone_index","dtype":"int64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"benunit_source_id","dtype":"int64","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"benunit_support_channel","dtype":"string","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"benunit_support_clone_index","dtype":"int64","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_source_id","dtype":"int64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_support_channel","dtype":"string","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_support_clone_index","dtype":"int64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_is_spi_synthetic","dtype":"bool","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_is_spi_income_band_donor","dtype":"bool","entity":"household","ownership":"produced","rows":"all"},{"column":"spi_income_band_donor_lower_bound","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"person_is_spi_income_band_carrier","dtype":"bool","entity":"person","ownership":"produced","rows":"all"}],"params":{"materialized_expand_outputs":["household.household_is_spi_income_band_donor","household.spi_income_band_donor_lower_bound","person.person_is_spi_income_band_carrier"]},"population":"spi_income_band_donors","sources":[],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","relationship_to_head","ons_family_role","ons_family_index","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","ossben_identifiable_subset","srp_regular_code5","person_source_id","person_support_channel","person_support_clone_index","person_is_spi_income_band_carrier"],"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"},{"column":"would_claim_carers_allowance","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"hmrc_spi_income_spine","stage_contract_sha256":"80e00d83db07e5264be1743a862c4ac73274c431b97a1a42a0ce3d2423ddb1f8","time_period":"2024"},"population":"spi_income_band_donors","sources":["frs"],"structural":"none","weights":null},{"base":"spi_income_band_donors","citation":"","description":"Ownership boundary before spi_housing_shell rewrites.","id":"spi_housing_shell.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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage spi_housing_shell.","id":"spi_housing_shell","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["council_tax_single_adult_raw","household_support_channel","ons_household_type","region"],"entity":"household","rows":"all"},{"columns":["age","dividend_income","employment_income","is_household_head","other_investment_income","private_pension_income","property_income","savings_interest_income","self_employment_income","state_pension_reported","would_claim_carers_allowance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.spi_housing_shell@1","mass":"conserve","outputs":[{"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":"council_tax_band","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","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_reported","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"rent","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":"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":"subrent","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_rebate","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"housing_benefit_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"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"spi_housing_shell","stage_contract_sha256":"809f19fd33ff79ceda005e8cc3fa89ae40b297dceca26a7658b6259267987890","time_period":"2024"},"population":"spi_housing_shell.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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.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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"was_wealth","stage_contract_sha256":"366e019c41ee2a28bcd61bbaa62a024ed0bb4b30b3ffc4d87ab23b340b4076bf","time_period":"2024"},"population":"spi_housing_shell.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage was_lisa.","id":"was_lisa","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.was_lisa@1","mass":"conserve","outputs":[{"column":"has_lifetime_isa","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"lifetime_isa_balance","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"household_lifetime_isa_balance","dtype":"float64","entity":"household","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"was_lisa","stage_contract_sha256":"f1d0f962e84d32007821b32e4e03a8af9443acc0ed3d1836ff094dcbacb928da","time_period":"2024"},"population":"spi_housing_shell.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"spi_housing_shell.boundary","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":["household_lifetime_isa_balance","household_support_channel","region"],"entity":"household","rows":"all"},{"columns":["age"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"regional_property_uprating","stage_contract_sha256":"acb342e8ca1770556c5682a9411c5ead5d61dd1420cfe6b0305ed14a3407fb25","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage nts_bus_travel.","id":"nts_bus_travel","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.nts_bus_travel@1","mass":"conserve","outputs":[{"column":"local_bus_use_band","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"bus_in_london_trips","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"other_local_bus_trips","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"local_bus_trips","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"bus_pass_eligible","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"local_bus_single_fare_share","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"household_local_bus_trips","dtype":"float64","entity":"household","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"nts_bus_travel","stage_contract_sha256":"cf854e8cf6edd006b677dcc67b63d6bb104d09eed93d7ee78bde6f0e838b9de9","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"lcfs_consumption","stage_contract_sha256":"63079c6f53d507702b4b1fadcf30def5188baf1f17e026e9f89f285577fe9c60","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"etb_vat","stage_contract_sha256":"5a2b777d88315bcccb72477c088a136c634131e0bc1a339b7287217ee5cfd8d3","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"etb_services","stage_contract_sha256":"37bfc4c0935ab99c5f270f307451cbf6cc6a85a3f8c6ce77429f6a6c66c07021","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"regional_property_uprating.boundary","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"uc_reporter_redraw","stage_contract_sha256":"7e94e034cad29c5bae566ffb875c42cddf3a1025c15496907e783ceff1144f8b","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","is_benunit_head","is_parent","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"uc_capital_coherence","stage_contract_sha256":"059f27ee687ee15385b246d43068b17aeecbe3645ccc41fd52fcad06a006a081","time_period":"2024"},"population":"uc_capital_coherence.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"uc_deduction_attributes","stage_contract_sha256":"6bc7e3ec1a5712e23ca1b7d2956e8b17f2526b94431ba3e5a9294b04658e4fe0","time_period":"2024"},"population":"uc_capital_coherence.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"uc_capital_coherence.boundary","citation":"","description":"Run structural UK stage cgt_support_split.","id":"cgt_support_split","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.cgt_support_split@1","mass":"conserve","outputs":[],"params":{"expand_cells":[["household","household_is_cgt_support_copy","bool"],["household","cgt_support_copies","int64"],["household","cgt_support_copy_index","int64"]],"expand_weight_entity":"household","expand_weight_kind":"importance","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"cgt_support_split","stage_contract_sha256":"556e2db7907ad62920149da9104150997031e3cfddbdb4610075369d77147499","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"base":null,"citation":"","description":"Own the cells materialized by cgt_support_split.","id":"cgt_support_split.owned","inputs":[],"kernel":"uk.claim@1","mass":"conserve","outputs":[{"column":"household_is_cgt_support_copy","dtype":"bool","entity":"household","ownership":"produced","rows":"all"},{"column":"cgt_support_copies","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"cgt_support_copy_index","dtype":"int64","entity":"household","ownership":"produced","rows":"all"}],"params":{"materialized_expand_outputs":["household.household_is_cgt_support_copy","household.cgt_support_copies","household.cgt_support_copy_index"]},"population":"cgt_support_split","sources":[],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"cgt_support_split","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","household_is_cgt_support_copy","cgt_support_copies","cgt_support_copy_index"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"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","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"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":"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","household_is_cgt_support_copy","cgt_support_copies","cgt_support_copy_index","household_is_capital_gains_clone"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","capital_gains"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":["cgt_support_copies","corporate_wealth","gross_financial_wealth","household_is_cgt_support_copy","non_residential_property_value","other_residential_property_value","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"hmrc_cgt_gains_spine","stage_contract_sha256":"49717d6586a4a5d7fc370200c71c0f91d01473158454571c056deb6f5618d562","time_period":"2024"},"population":"hmrc_cgt_gains_spine.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage hmrc_cgt_asset_type_spine.","id":"hmrc_cgt_asset_type_spine","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["corporate_wealth","gross_financial_wealth","other_residential_property_value","region","stocks_and_shares_isa"],"entity":"household","rows":"all"},{"columns":["age","capital_gains","dividend_income","property_income","self_employment_income"],"entity":"person","rows":"all"}],"kernel":"uk.stage.hmrc_cgt_asset_type_spine@1","mass":"conserve","outputs":[{"column":"capital_gains_asset_type","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"capital_gains_residential_property","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"capital_gains_badr","dtype":"float64","entity":"person","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"hmrc_cgt_asset_type_spine","stage_contract_sha256":"5f9a5f2d12e2a7db87c7c0d6f0df6f70875a579e90c39b2b8c48943eac43905e","time_period":"2024"},"population":"hmrc_cgt_gains_spine.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"hmrc_cgt_gains_spine.boundary","citation":"","description":"Run structural UK stage cgt_incidence_anchor.","id":"cgt_incidence_anchor","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["household_is_capital_gains_clone","region"],"entity":"household","rows":"all"},{"columns":["age","capital_gains","capital_gains_badr","dividend_income","employment_income","miscellaneous_income","private_pension_income","property_income","savings_interest_income","self_employment_income","state_pension_reported"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.cgt_incidence_anchor@1","mass":"conserve","outputs":[],"params":{"expand_cells":[],"expand_weight_entity":"household","expand_weight_kind":"importance","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"cgt_incidence_anchor","stage_contract_sha256":"b79ce806015de2f1e1703fa68bf4ad871c6df54b5b32633c864632ab68919a48","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","household_is_cgt_support_copy","cgt_support_copies","cgt_support_copy_index","household_is_capital_gains_clone"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","capital_gains","capital_gains_asset_type","capital_gains_residential_property","capital_gains_badr"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"salary_sacrifice","stage_contract_sha256":"89b589d19fcb99b265cb40d08cf2b9ff7955bd41b6de0e8c9ff4dc6f35be1eb6","time_period":"2024"},"population":"cgt_incidence_anchor","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"student_loans","stage_contract_sha256":"f2936c5e22a0e9b097437e3f3aabaf06c4561d5c25a9b7c05e720a6553f73bbc","time_period":"2024"},"population":"cgt_incidence_anchor","sources":["frs"],"structural":"none","weights":null}],"sources":[{"codec":"csv-tables","description":"Content-bound UK FRS and donor fixture/source bundle.","name":"frs"}]} From 567f9d11723658fc22398bb9868a424fa3e3de88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20Juaristi?= <127882282+juaristi22@users.noreply.github.com> Date: Wed, 30 Sep 2026 16:34:25 +0100 Subject: [PATCH 02/22] Re-pin the UK Chronicle feed to 825406f (PolicyEngine/chronicle#302 via #305, UK pension facts) (#1069 c1) The artifact is chronicle main at the #305 merge: 344,402 rows (505e0e7's 287,150 plus #305's 57,252), consumer_fact.v4 with an unchanged schema. It also carries chronicle #246, #278, #292 and #304. - No existing value moved. The national and local reference files are byte-identical, and the 18 vendored resources carry the same rows under the new feed identity. - The artifact is not a strict row superset of 505e0e7. #305 rebuilt the DWP Spring 2026 package's record sets: 44 incapacity-benefit forecast rows come back under new keys with the same line and value, and 192 rows change only their layout. No UK target binds them. - The five hmrc.salary_sacrifice relief targets now also match the 2023-24 Table 6.2 rows and still resolve to 2024-25. For the same reason, the 2023 production compile-parity receipt gains five ledger-only rows. The two 2025 receipts are unchanged. - The charter-H2 fixture's stage_contract_sha256 moves for the eight stages that declare vendored resources; the runbook now says a re-pin regenerates it. Co-Authored-By: Claude Opus 5.5 --- ...uk-chronicle-feed-repin-825406f.changed.md | 1 + docs/uk-chronicle-feed-repin.md | 24 ++++ .../microcosm/build/uk/chronicle_feed.json | 8 +- .../build/uk/desnz_domestic_energy_facts.json | 8 +- .../build/uk/devolved_bus_finance.json | 8 +- .../microcosm/build/uk/dft_bus_journeys.json | 8 +- .../build/uk/dft_bus_value_anchors.json | 8 +- .../build/uk/hmrc_cgt_asset_type_facts.json | 8 +- .../build/uk/hmrc_cgt_conditioning_facts.json | 8 +- .../build/uk/hmrc_itl_taxpayer_counts.json | 8 +- ...ty_production_2023_signed_differences.json | 41 ++++++- .../build/uk/licensed_cars_fuel_type.json | 8 +- .../uk/local_target_reference_membership.json | 2 +- .../build/uk/local_validation_levels.json | 6 +- .../microcosm/build/uk/need_energy_facts.json | 8 +- .../build/uk/nts_bus_use_frequency.json | 8 +- .../build/uk/nts_car_availability.json | 8 +- .../microcosm/build/uk/nts_trip_rates.json | 8 +- .../build/uk/ofgem_price_cap_facts.json | 8 +- .../uk/ons_household_expenditure_facts.json | 8 +- .../uk/ons_single_year_age_populations.json | 8 +- .../microcosm/build/uk/orr_rail_facts.json | 8 +- .../microcosm/build/uk/qep_energy_prices.json | 8 +- .../uk/release_input_coverage_manifest.json | 2 +- .../microcosm/build/uk/road_fuel_anchors.json | 8 +- .../build/uk/target_reference_membership.json | 22 ++-- .../build/uk/uk_local_target_census.json | 104 +++++++++--------- .../engine_free/uk/test_uk_chronicle_feed.py | 8 +- .../engine_free/uk/test_uk_full_targets.py | 12 +- .../fixtures/parity/uk_spine/uk_spine.json | 2 +- 30 files changed, 218 insertions(+), 158 deletions(-) create mode 100644 changelog.d/uk-chronicle-feed-repin-825406f.changed.md diff --git a/changelog.d/uk-chronicle-feed-repin-825406f.changed.md b/changelog.d/uk-chronicle-feed-repin-825406f.changed.md new file mode 100644 index 000000000..f2d838e0d --- /dev/null +++ b/changelog.d/uk-chronicle-feed-repin-825406f.changed.md @@ -0,0 +1 @@ +Re-pin the UK Chronicle feed to 825406f (PolicyEngine/chronicle#302 via #305). The feed now carries the UK pension facts: State Pension and Pension Credit caseloads and amounts for Great Britain and Northern Ireland, the DWP Spring 2026 pensioner forecast lines, Winter Fuel Payment, Attendance Allowance, workplace pension savings and ASHE contribution bands, HMRC pension contribution and salary sacrifice relief, and the OBR salary-sacrifice costing (344,402 rows). No compiled target value moved on either surface. The vendored resources and the membership reports restate the feed identity, and the five salary-sacrifice relief targets now also see the 2023-24 rows while still resolving to 2024-25. Because of those rows, the 2023 production compile-parity receipt gains five ledger-only rows (microcosm#1069). diff --git a/docs/uk-chronicle-feed-repin.md b/docs/uk-chronicle-feed-repin.md index 5386c123c..ce7ca146f 100644 --- a/docs/uk-chronicle-feed-repin.md +++ b/docs/uk-chronicle-feed-repin.md @@ -44,6 +44,12 @@ Verify the complete compiled target diff on both surfaces, including targets outside the intended policy area, and record the value moves in the changelog fragment. +A re-pin also moves the charter-H2 parity fixture: every stage that declares a +vendored resource as an artifact binds that resource's digest into its +`stage_contract_sha256`, and the vendored headers restate the feed identity. +Regenerate it with `tools/graph_uk_spine_fixture.py` and check that only those +contract hashes move. + Two-level (country + region) contract targets fan out over the region tier (`UK_REGION_TIER` in `microcosm.calibrate.geography_constants`), one reference per area (microcosm#905); their cells resolve Chronicle's region- and country-stamped @@ -97,3 +103,21 @@ claimants, qualifying gains and tax by band of qualifying gain, individuals, tru taxpayers, 2021-22 to 2024-25; 287,150 rows). The addition is purely additive: the national and local reference files are byte-identical, the vendored resources carry the same rows under the new feed identity, and the three compile-parity receipts are unchanged. +The `825406f` re-pin (microcosm#1069, PolicyEngine/chronicle#302 via #305, on top of `505e0e7`) brought +the UK pension facts: Stat-Xplore State Pension and Pension Credit caseloads and amounts from +February 2023 to March 2026 (by type, age, gender, region, partner and amount band), Northern +Ireland State Pension and Pension Credit (DfC, May 2026), the DWP Spring 2026 State Pension and +Pension Credit forecast lines, Attendance Allowance, Winter Fuel Payment recipients and statistics +for winters 2023-24 to 2025-26 and the HMRC charge, the DWP workplace pension savings trends, ONS +ASHE pension membership and contribution-rate bands, HMRC pension contribution relief (2023-24) and +salary sacrifice relief (2024-25), and the OBR salary-sacrifice costing (344,402 rows). It also +carries chronicle #246, #278, #292 and #304. No compiled value moved on either surface: the +national and local reference files are byte-identical and the vendored resources carry the same +rows under the new feed identity. The artifact carries every `505e0e7` value but is not a strict +row superset: #305 rebuilt the DWP Spring 2026 package's record sets, so 44 incapacity-benefit +forecast rows come back under new keys with the same forecast line and value, and 192 rows change +only their layout fields; no UK target binds them. The five salary-sacrifice relief targets now +match two facts each (the new 2023-24 Table 6.2 rows beside the bound 2024-25 ones) and still +resolve to the 2024-25 fact. For the same reason the 2023 production compile-parity receipt gains +five ledger-only rows (the relief targets now compile at that comparison period from the 2023-24 +facts); the two 2025 incumbent receipts are unchanged. diff --git a/packages/microcosm-build/src/microcosm/build/uk/chronicle_feed.json b/packages/microcosm-build/src/microcosm/build/uk/chronicle_feed.json index e7beaddc9..35eb3534b 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/chronicle_feed.json +++ b/packages/microcosm-build/src/microcosm/build/uk/chronicle_feed.json @@ -3,14 +3,14 @@ "country": "uk", "scope": "uk_calibration", "source_repo": "PolicyEngine/chronicle", - "source_commit": "505e0e72aa7c82b96dc06941d84fa797a629161c", + "source_commit": "825406f98913ab7324c834c3642804e9317a2256", "build": "build-bundle --suite uk -> build-consumer-artifact", "artifact_schema_version": "policyengine_ledger.consumer_artifact.v2", "consumer_fact_schema_versions": [ "chronicle.consumer_fact.v4" ], "consumer_fact_schema_sha256": "cc9efb90e9c73913bc76a89e9df435a9ca6ff49942e63dc8d2bf183c65a70224", - "fact_row_count": 287150, - "facts_sha256": "4a45c543553617d606ebf8ea11254b48c1e6e115c97840dd8757beafbac035d9", - "manifest_sha256": "3dc9ed05ba00d30609c295cb7d34ebcd98476778bebf1da9a1e7f2e64b97caf7" + "fact_row_count": 344402, + "facts_sha256": "28b7105761be48ff01244bd0e28f4b579bac103f2c4a98473a04e2cc4303eb3d", + "manifest_sha256": "6e04a43d7dca4d398e14c0ec59ec983477633ba3e9bef062a8843f554dcb7119" } diff --git a/packages/microcosm-build/src/microcosm/build/uk/desnz_domestic_energy_facts.json b/packages/microcosm-build/src/microcosm/build/uk/desnz_domestic_energy_facts.json index 5cb337a61..339bfd57a 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/desnz_domestic_energy_facts.json +++ b/packages/microcosm-build/src/microcosm/build/uk/desnz_domestic_energy_facts.json @@ -15,12 +15,12 @@ }, "source_fact_feed": { "source_repo": "PolicyEngine/chronicle", - "source_commit": "505e0e72aa7c82b96dc06941d84fa797a629161c", + "source_commit": "825406f98913ab7324c834c3642804e9317a2256", "build": "build-bundle --suite uk -> build-consumer-artifact", "artifact_schema_version": "policyengine_ledger.consumer_artifact.v2", - "fact_row_count": 287150, - "facts_sha256": "4a45c543553617d606ebf8ea11254b48c1e6e115c97840dd8757beafbac035d9", - "manifest_sha256": "3dc9ed05ba00d30609c295cb7d34ebcd98476778bebf1da9a1e7f2e64b97caf7" + "fact_row_count": 344402, + "facts_sha256": "28b7105761be48ff01244bd0e28f4b579bac103f2c4a98473a04e2cc4303eb3d", + "manifest_sha256": "6e04a43d7dca4d398e14c0ec59ec983477633ba3e9bef062a8843f554dcb7119" }, "selections": [ { diff --git a/packages/microcosm-build/src/microcosm/build/uk/devolved_bus_finance.json b/packages/microcosm-build/src/microcosm/build/uk/devolved_bus_finance.json index 5431b350c..9c3c19dae 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/devolved_bus_finance.json +++ b/packages/microcosm-build/src/microcosm/build/uk/devolved_bus_finance.json @@ -17,12 +17,12 @@ }, "source_fact_feed": { "source_repo": "PolicyEngine/chronicle", - "source_commit": "505e0e72aa7c82b96dc06941d84fa797a629161c", + "source_commit": "825406f98913ab7324c834c3642804e9317a2256", "build": "build-bundle --suite uk -> build-consumer-artifact", "artifact_schema_version": "policyengine_ledger.consumer_artifact.v2", - "fact_row_count": 287150, - "facts_sha256": "4a45c543553617d606ebf8ea11254b48c1e6e115c97840dd8757beafbac035d9", - "manifest_sha256": "3dc9ed05ba00d30609c295cb7d34ebcd98476778bebf1da9a1e7f2e64b97caf7" + "fact_row_count": 344402, + "facts_sha256": "28b7105761be48ff01244bd0e28f4b579bac103f2c4a98473a04e2cc4303eb3d", + "manifest_sha256": "6e04a43d7dca4d398e14c0ec59ec983477633ba3e9bef062a8843f554dcb7119" }, "selections": [ { diff --git a/packages/microcosm-build/src/microcosm/build/uk/dft_bus_journeys.json b/packages/microcosm-build/src/microcosm/build/uk/dft_bus_journeys.json index 9623855e2..7834ff903 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/dft_bus_journeys.json +++ b/packages/microcosm-build/src/microcosm/build/uk/dft_bus_journeys.json @@ -17,12 +17,12 @@ }, "source_fact_feed": { "source_repo": "PolicyEngine/chronicle", - "source_commit": "505e0e72aa7c82b96dc06941d84fa797a629161c", + "source_commit": "825406f98913ab7324c834c3642804e9317a2256", "build": "build-bundle --suite uk -> build-consumer-artifact", "artifact_schema_version": "policyengine_ledger.consumer_artifact.v2", - "fact_row_count": 287150, - "facts_sha256": "4a45c543553617d606ebf8ea11254b48c1e6e115c97840dd8757beafbac035d9", - "manifest_sha256": "3dc9ed05ba00d30609c295cb7d34ebcd98476778bebf1da9a1e7f2e64b97caf7" + "fact_row_count": 344402, + "facts_sha256": "28b7105761be48ff01244bd0e28f4b579bac103f2c4a98473a04e2cc4303eb3d", + "manifest_sha256": "6e04a43d7dca4d398e14c0ec59ec983477633ba3e9bef062a8843f554dcb7119" }, "selections": [ { diff --git a/packages/microcosm-build/src/microcosm/build/uk/dft_bus_value_anchors.json b/packages/microcosm-build/src/microcosm/build/uk/dft_bus_value_anchors.json index 2932c9ecd..c1cdf4bab 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/dft_bus_value_anchors.json +++ b/packages/microcosm-build/src/microcosm/build/uk/dft_bus_value_anchors.json @@ -17,12 +17,12 @@ }, "source_fact_feed": { "source_repo": "PolicyEngine/chronicle", - "source_commit": "505e0e72aa7c82b96dc06941d84fa797a629161c", + "source_commit": "825406f98913ab7324c834c3642804e9317a2256", "build": "build-bundle --suite uk -> build-consumer-artifact", "artifact_schema_version": "policyengine_ledger.consumer_artifact.v2", - "fact_row_count": 287150, - "facts_sha256": "4a45c543553617d606ebf8ea11254b48c1e6e115c97840dd8757beafbac035d9", - "manifest_sha256": "3dc9ed05ba00d30609c295cb7d34ebcd98476778bebf1da9a1e7f2e64b97caf7" + "fact_row_count": 344402, + "facts_sha256": "28b7105761be48ff01244bd0e28f4b579bac103f2c4a98473a04e2cc4303eb3d", + "manifest_sha256": "6e04a43d7dca4d398e14c0ec59ec983477633ba3e9bef062a8843f554dcb7119" }, "selections": [ { diff --git a/packages/microcosm-build/src/microcosm/build/uk/hmrc_cgt_asset_type_facts.json b/packages/microcosm-build/src/microcosm/build/uk/hmrc_cgt_asset_type_facts.json index fe0dbb720..11ccf828a 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/hmrc_cgt_asset_type_facts.json +++ b/packages/microcosm-build/src/microcosm/build/uk/hmrc_cgt_asset_type_facts.json @@ -15,12 +15,12 @@ }, "source_fact_feed": { "source_repo": "PolicyEngine/chronicle", - "source_commit": "505e0e72aa7c82b96dc06941d84fa797a629161c", + "source_commit": "825406f98913ab7324c834c3642804e9317a2256", "build": "build-bundle --suite uk -> build-consumer-artifact", "artifact_schema_version": "policyengine_ledger.consumer_artifact.v2", - "fact_row_count": 287150, - "facts_sha256": "4a45c543553617d606ebf8ea11254b48c1e6e115c97840dd8757beafbac035d9", - "manifest_sha256": "3dc9ed05ba00d30609c295cb7d34ebcd98476778bebf1da9a1e7f2e64b97caf7" + "fact_row_count": 344402, + "facts_sha256": "28b7105761be48ff01244bd0e28f4b579bac103f2c4a98473a04e2cc4303eb3d", + "manifest_sha256": "6e04a43d7dca4d398e14c0ec59ec983477633ba3e9bef062a8843f554dcb7119" }, "selections": [ { diff --git a/packages/microcosm-build/src/microcosm/build/uk/hmrc_cgt_conditioning_facts.json b/packages/microcosm-build/src/microcosm/build/uk/hmrc_cgt_conditioning_facts.json index 5db8eaeab..4960f88b2 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/hmrc_cgt_conditioning_facts.json +++ b/packages/microcosm-build/src/microcosm/build/uk/hmrc_cgt_conditioning_facts.json @@ -16,12 +16,12 @@ }, "source_fact_feed": { "source_repo": "PolicyEngine/chronicle", - "source_commit": "505e0e72aa7c82b96dc06941d84fa797a629161c", + "source_commit": "825406f98913ab7324c834c3642804e9317a2256", "build": "build-bundle --suite uk -> build-consumer-artifact", "artifact_schema_version": "policyengine_ledger.consumer_artifact.v2", - "fact_row_count": 287150, - "facts_sha256": "4a45c543553617d606ebf8ea11254b48c1e6e115c97840dd8757beafbac035d9", - "manifest_sha256": "3dc9ed05ba00d30609c295cb7d34ebcd98476778bebf1da9a1e7f2e64b97caf7" + "fact_row_count": 344402, + "facts_sha256": "28b7105761be48ff01244bd0e28f4b579bac103f2c4a98473a04e2cc4303eb3d", + "manifest_sha256": "6e04a43d7dca4d398e14c0ec59ec983477633ba3e9bef062a8843f554dcb7119" }, "selections": [ { diff --git a/packages/microcosm-build/src/microcosm/build/uk/hmrc_itl_taxpayer_counts.json b/packages/microcosm-build/src/microcosm/build/uk/hmrc_itl_taxpayer_counts.json index 6a3eaea73..140b02954 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/hmrc_itl_taxpayer_counts.json +++ b/packages/microcosm-build/src/microcosm/build/uk/hmrc_itl_taxpayer_counts.json @@ -15,12 +15,12 @@ }, "source_fact_feed": { "source_repo": "PolicyEngine/chronicle", - "source_commit": "505e0e72aa7c82b96dc06941d84fa797a629161c", + "source_commit": "825406f98913ab7324c834c3642804e9317a2256", "build": "build-bundle --suite uk -> build-consumer-artifact", "artifact_schema_version": "policyengine_ledger.consumer_artifact.v2", - "fact_row_count": 287150, - "facts_sha256": "4a45c543553617d606ebf8ea11254b48c1e6e115c97840dd8757beafbac035d9", - "manifest_sha256": "3dc9ed05ba00d30609c295cb7d34ebcd98476778bebf1da9a1e7f2e64b97caf7" + "fact_row_count": 344402, + "facts_sha256": "28b7105761be48ff01244bd0e28f4b579bac103f2c4a98473a04e2cc4303eb3d", + "manifest_sha256": "6e04a43d7dca4d398e14c0ec59ec983477633ba3e9bef062a8843f554dcb7119" }, "selections": [ { 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 9b5b01dd2..054da968c 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": 837, + "compiled_count": 842, "counts_by_kind": { "calibration_drift": 120, "fixture_only": 17, - "ledger_only": 705 + "ledger_only": 710 }, - "difference_count": 842, + "difference_count": 847, "differences": [ { "fixture_value": 82000.0, @@ -336,6 +336,41 @@ "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, + { + "kind": "ledger_only", + "ledger_value": 1200000000.0, + "name": "hmrc.salary_sacrifice.it_relief_additional_rate", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 1600000000.0, + "name": "hmrc.salary_sacrifice.it_relief_basic_rate", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 4400000000.0, + "name": "hmrc.salary_sacrifice.it_relief_higher_rate", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 1200000000.0, + "name": "hmrc.salary_sacrifice.nics_relief_employee", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 2900000000.0, + "name": "hmrc.salary_sacrifice.nics_relief_employer", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, { "kind": "ledger_only", "ledger_value": 1260000000.0, diff --git a/packages/microcosm-build/src/microcosm/build/uk/licensed_cars_fuel_type.json b/packages/microcosm-build/src/microcosm/build/uk/licensed_cars_fuel_type.json index e9f94f89f..35a3a4a7e 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/licensed_cars_fuel_type.json +++ b/packages/microcosm-build/src/microcosm/build/uk/licensed_cars_fuel_type.json @@ -15,12 +15,12 @@ }, "source_fact_feed": { "source_repo": "PolicyEngine/chronicle", - "source_commit": "505e0e72aa7c82b96dc06941d84fa797a629161c", + "source_commit": "825406f98913ab7324c834c3642804e9317a2256", "build": "build-bundle --suite uk -> build-consumer-artifact", "artifact_schema_version": "policyengine_ledger.consumer_artifact.v2", - "fact_row_count": 287150, - "facts_sha256": "4a45c543553617d606ebf8ea11254b48c1e6e115c97840dd8757beafbac035d9", - "manifest_sha256": "3dc9ed05ba00d30609c295cb7d34ebcd98476778bebf1da9a1e7f2e64b97caf7" + "fact_row_count": 344402, + "facts_sha256": "28b7105761be48ff01244bd0e28f4b579bac103f2c4a98473a04e2cc4303eb3d", + "manifest_sha256": "6e04a43d7dca4d398e14c0ec59ec983477633ba3e9bef062a8843f554dcb7119" }, "selections": [ { 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 39f479b8f..b98ccb7d4 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 @@ -1,5 +1,5 @@ { - "source_fact_feed": "chronicle-uk-505e0e72-consumer-facts", + "source_fact_feed": "chronicle-uk-825406f9-consumer-facts", "target_period": 2025, "candidate_count": 22464, "contract_target_count": 51, 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 7f75b1fe5..001d6d51f 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 @@ -5,10 +5,10 @@ "source_feed": { "artifact": ".codex-work/consumer_facts_uk.jsonl", "manifest": ".codex-work/consumer_facts_uk_manifest.json", - "sha256": "4a45c543553617d606ebf8ea11254b48c1e6e115c97840dd8757beafbac035d9", - "manifest_sha256": "3dc9ed05ba00d30609c295cb7d34ebcd98476778bebf1da9a1e7f2e64b97caf7", + "sha256": "28b7105761be48ff01244bd0e28f4b579bac103f2c4a98473a04e2cc4303eb3d", + "manifest_sha256": "6e04a43d7dca4d398e14c0ec59ec983477633ba3e9bef062a8843f554dcb7119", "source_repo": "PolicyEngine/chronicle", - "source_commit": "505e0e72aa7c82b96dc06941d84fa797a629161c" + "source_commit": "825406f98913ab7324c834c3642804e9317a2256" }, "rows": [ { diff --git a/packages/microcosm-build/src/microcosm/build/uk/need_energy_facts.json b/packages/microcosm-build/src/microcosm/build/uk/need_energy_facts.json index 73e489041..5522cdad2 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/need_energy_facts.json +++ b/packages/microcosm-build/src/microcosm/build/uk/need_energy_facts.json @@ -17,12 +17,12 @@ }, "source_fact_feed": { "source_repo": "PolicyEngine/chronicle", - "source_commit": "505e0e72aa7c82b96dc06941d84fa797a629161c", + "source_commit": "825406f98913ab7324c834c3642804e9317a2256", "build": "build-bundle --suite uk -> build-consumer-artifact", "artifact_schema_version": "policyengine_ledger.consumer_artifact.v2", - "fact_row_count": 287150, - "facts_sha256": "4a45c543553617d606ebf8ea11254b48c1e6e115c97840dd8757beafbac035d9", - "manifest_sha256": "3dc9ed05ba00d30609c295cb7d34ebcd98476778bebf1da9a1e7f2e64b97caf7" + "fact_row_count": 344402, + "facts_sha256": "28b7105761be48ff01244bd0e28f4b579bac103f2c4a98473a04e2cc4303eb3d", + "manifest_sha256": "6e04a43d7dca4d398e14c0ec59ec983477633ba3e9bef062a8843f554dcb7119" }, "selections": [ { diff --git a/packages/microcosm-build/src/microcosm/build/uk/nts_bus_use_frequency.json b/packages/microcosm-build/src/microcosm/build/uk/nts_bus_use_frequency.json index 837241d6e..2eeea01de 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/nts_bus_use_frequency.json +++ b/packages/microcosm-build/src/microcosm/build/uk/nts_bus_use_frequency.json @@ -16,12 +16,12 @@ }, "source_fact_feed": { "source_repo": "PolicyEngine/chronicle", - "source_commit": "505e0e72aa7c82b96dc06941d84fa797a629161c", + "source_commit": "825406f98913ab7324c834c3642804e9317a2256", "build": "build-bundle --suite uk -> build-consumer-artifact", "artifact_schema_version": "policyengine_ledger.consumer_artifact.v2", - "fact_row_count": 287150, - "facts_sha256": "4a45c543553617d606ebf8ea11254b48c1e6e115c97840dd8757beafbac035d9", - "manifest_sha256": "3dc9ed05ba00d30609c295cb7d34ebcd98476778bebf1da9a1e7f2e64b97caf7" + "fact_row_count": 344402, + "facts_sha256": "28b7105761be48ff01244bd0e28f4b579bac103f2c4a98473a04e2cc4303eb3d", + "manifest_sha256": "6e04a43d7dca4d398e14c0ec59ec983477633ba3e9bef062a8843f554dcb7119" }, "selections": [ { diff --git a/packages/microcosm-build/src/microcosm/build/uk/nts_car_availability.json b/packages/microcosm-build/src/microcosm/build/uk/nts_car_availability.json index baf8e70a1..4c2e36e88 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/nts_car_availability.json +++ b/packages/microcosm-build/src/microcosm/build/uk/nts_car_availability.json @@ -15,12 +15,12 @@ }, "source_fact_feed": { "source_repo": "PolicyEngine/chronicle", - "source_commit": "505e0e72aa7c82b96dc06941d84fa797a629161c", + "source_commit": "825406f98913ab7324c834c3642804e9317a2256", "build": "build-bundle --suite uk -> build-consumer-artifact", "artifact_schema_version": "policyengine_ledger.consumer_artifact.v2", - "fact_row_count": 287150, - "facts_sha256": "4a45c543553617d606ebf8ea11254b48c1e6e115c97840dd8757beafbac035d9", - "manifest_sha256": "3dc9ed05ba00d30609c295cb7d34ebcd98476778bebf1da9a1e7f2e64b97caf7" + "fact_row_count": 344402, + "facts_sha256": "28b7105761be48ff01244bd0e28f4b579bac103f2c4a98473a04e2cc4303eb3d", + "manifest_sha256": "6e04a43d7dca4d398e14c0ec59ec983477633ba3e9bef062a8843f554dcb7119" }, "selections": [ { diff --git a/packages/microcosm-build/src/microcosm/build/uk/nts_trip_rates.json b/packages/microcosm-build/src/microcosm/build/uk/nts_trip_rates.json index 18a2052ed..2e889832e 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/nts_trip_rates.json +++ b/packages/microcosm-build/src/microcosm/build/uk/nts_trip_rates.json @@ -15,12 +15,12 @@ }, "source_fact_feed": { "source_repo": "PolicyEngine/chronicle", - "source_commit": "505e0e72aa7c82b96dc06941d84fa797a629161c", + "source_commit": "825406f98913ab7324c834c3642804e9317a2256", "build": "build-bundle --suite uk -> build-consumer-artifact", "artifact_schema_version": "policyengine_ledger.consumer_artifact.v2", - "fact_row_count": 287150, - "facts_sha256": "4a45c543553617d606ebf8ea11254b48c1e6e115c97840dd8757beafbac035d9", - "manifest_sha256": "3dc9ed05ba00d30609c295cb7d34ebcd98476778bebf1da9a1e7f2e64b97caf7" + "fact_row_count": 344402, + "facts_sha256": "28b7105761be48ff01244bd0e28f4b579bac103f2c4a98473a04e2cc4303eb3d", + "manifest_sha256": "6e04a43d7dca4d398e14c0ec59ec983477633ba3e9bef062a8843f554dcb7119" }, "selections": [ { diff --git a/packages/microcosm-build/src/microcosm/build/uk/ofgem_price_cap_facts.json b/packages/microcosm-build/src/microcosm/build/uk/ofgem_price_cap_facts.json index e0aedf1f8..d7ca8d89b 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/ofgem_price_cap_facts.json +++ b/packages/microcosm-build/src/microcosm/build/uk/ofgem_price_cap_facts.json @@ -15,12 +15,12 @@ }, "source_fact_feed": { "source_repo": "PolicyEngine/chronicle", - "source_commit": "505e0e72aa7c82b96dc06941d84fa797a629161c", + "source_commit": "825406f98913ab7324c834c3642804e9317a2256", "build": "build-bundle --suite uk -> build-consumer-artifact", "artifact_schema_version": "policyengine_ledger.consumer_artifact.v2", - "fact_row_count": 287150, - "facts_sha256": "4a45c543553617d606ebf8ea11254b48c1e6e115c97840dd8757beafbac035d9", - "manifest_sha256": "3dc9ed05ba00d30609c295cb7d34ebcd98476778bebf1da9a1e7f2e64b97caf7" + "fact_row_count": 344402, + "facts_sha256": "28b7105761be48ff01244bd0e28f4b579bac103f2c4a98473a04e2cc4303eb3d", + "manifest_sha256": "6e04a43d7dca4d398e14c0ec59ec983477633ba3e9bef062a8843f554dcb7119" }, "selections": [ { diff --git a/packages/microcosm-build/src/microcosm/build/uk/ons_household_expenditure_facts.json b/packages/microcosm-build/src/microcosm/build/uk/ons_household_expenditure_facts.json index 332268f0f..44ff41c78 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/ons_household_expenditure_facts.json +++ b/packages/microcosm-build/src/microcosm/build/uk/ons_household_expenditure_facts.json @@ -15,12 +15,12 @@ }, "source_fact_feed": { "source_repo": "PolicyEngine/chronicle", - "source_commit": "505e0e72aa7c82b96dc06941d84fa797a629161c", + "source_commit": "825406f98913ab7324c834c3642804e9317a2256", "build": "build-bundle --suite uk -> build-consumer-artifact", "artifact_schema_version": "policyengine_ledger.consumer_artifact.v2", - "fact_row_count": 287150, - "facts_sha256": "4a45c543553617d606ebf8ea11254b48c1e6e115c97840dd8757beafbac035d9", - "manifest_sha256": "3dc9ed05ba00d30609c295cb7d34ebcd98476778bebf1da9a1e7f2e64b97caf7" + "fact_row_count": 344402, + "facts_sha256": "28b7105761be48ff01244bd0e28f4b579bac103f2c4a98473a04e2cc4303eb3d", + "manifest_sha256": "6e04a43d7dca4d398e14c0ec59ec983477633ba3e9bef062a8843f554dcb7119" }, "selections": [ { diff --git a/packages/microcosm-build/src/microcosm/build/uk/ons_single_year_age_populations.json b/packages/microcosm-build/src/microcosm/build/uk/ons_single_year_age_populations.json index 73008f1ac..249b30e8f 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/ons_single_year_age_populations.json +++ b/packages/microcosm-build/src/microcosm/build/uk/ons_single_year_age_populations.json @@ -15,12 +15,12 @@ }, "source_fact_feed": { "source_repo": "PolicyEngine/chronicle", - "source_commit": "505e0e72aa7c82b96dc06941d84fa797a629161c", + "source_commit": "825406f98913ab7324c834c3642804e9317a2256", "build": "build-bundle --suite uk -> build-consumer-artifact", "artifact_schema_version": "policyengine_ledger.consumer_artifact.v2", - "fact_row_count": 287150, - "facts_sha256": "4a45c543553617d606ebf8ea11254b48c1e6e115c97840dd8757beafbac035d9", - "manifest_sha256": "3dc9ed05ba00d30609c295cb7d34ebcd98476778bebf1da9a1e7f2e64b97caf7" + "fact_row_count": 344402, + "facts_sha256": "28b7105761be48ff01244bd0e28f4b579bac103f2c4a98473a04e2cc4303eb3d", + "manifest_sha256": "6e04a43d7dca4d398e14c0ec59ec983477633ba3e9bef062a8843f554dcb7119" }, "selections": [ { diff --git a/packages/microcosm-build/src/microcosm/build/uk/orr_rail_facts.json b/packages/microcosm-build/src/microcosm/build/uk/orr_rail_facts.json index 1babc8931..f0db23e36 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/orr_rail_facts.json +++ b/packages/microcosm-build/src/microcosm/build/uk/orr_rail_facts.json @@ -17,12 +17,12 @@ }, "source_fact_feed": { "source_repo": "PolicyEngine/chronicle", - "source_commit": "505e0e72aa7c82b96dc06941d84fa797a629161c", + "source_commit": "825406f98913ab7324c834c3642804e9317a2256", "build": "build-bundle --suite uk -> build-consumer-artifact", "artifact_schema_version": "policyengine_ledger.consumer_artifact.v2", - "fact_row_count": 287150, - "facts_sha256": "4a45c543553617d606ebf8ea11254b48c1e6e115c97840dd8757beafbac035d9", - "manifest_sha256": "3dc9ed05ba00d30609c295cb7d34ebcd98476778bebf1da9a1e7f2e64b97caf7" + "fact_row_count": 344402, + "facts_sha256": "28b7105761be48ff01244bd0e28f4b579bac103f2c4a98473a04e2cc4303eb3d", + "manifest_sha256": "6e04a43d7dca4d398e14c0ec59ec983477633ba3e9bef062a8843f554dcb7119" }, "selections": [ { diff --git a/packages/microcosm-build/src/microcosm/build/uk/qep_energy_prices.json b/packages/microcosm-build/src/microcosm/build/uk/qep_energy_prices.json index 8355df0b4..07b760523 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/qep_energy_prices.json +++ b/packages/microcosm-build/src/microcosm/build/uk/qep_energy_prices.json @@ -15,12 +15,12 @@ }, "source_fact_feed": { "source_repo": "PolicyEngine/chronicle", - "source_commit": "505e0e72aa7c82b96dc06941d84fa797a629161c", + "source_commit": "825406f98913ab7324c834c3642804e9317a2256", "build": "build-bundle --suite uk -> build-consumer-artifact", "artifact_schema_version": "policyengine_ledger.consumer_artifact.v2", - "fact_row_count": 287150, - "facts_sha256": "4a45c543553617d606ebf8ea11254b48c1e6e115c97840dd8757beafbac035d9", - "manifest_sha256": "3dc9ed05ba00d30609c295cb7d34ebcd98476778bebf1da9a1e7f2e64b97caf7" + "fact_row_count": 344402, + "facts_sha256": "28b7105761be48ff01244bd0e28f4b579bac103f2c4a98473a04e2cc4303eb3d", + "manifest_sha256": "6e04a43d7dca4d398e14c0ec59ec983477633ba3e9bef062a8843f554dcb7119" }, "selections": [ { 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 d3aee7676..99b9e0dd3 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 @@ -611,7 +611,7 @@ "source_manifest_sha256": "91367dc23af9e167b0d0748340e5e77240460b386a1df8defbb3545d3d3cf986", "source_vintages": { "conditioning_resource": "hmrc_cgt_conditioning_facts.json", - "conditioning_resource_sha256": "24a9440421f9c80ecf3f5ad7035b5b08626e02898f50e4a8ae9c0aad02821bfe", + "conditioning_resource_sha256": "067ba21c12aeb4e95e6a8a16141dbaa075e8787ed875a005f549cab6e91a6b56", "conditioning_surface": "2024-25", "hmrc_surface": "2024-25", "mapped_build_period": "2024" diff --git a/packages/microcosm-build/src/microcosm/build/uk/road_fuel_anchors.json b/packages/microcosm-build/src/microcosm/build/uk/road_fuel_anchors.json index 374214076..fce139877 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/road_fuel_anchors.json +++ b/packages/microcosm-build/src/microcosm/build/uk/road_fuel_anchors.json @@ -17,12 +17,12 @@ }, "source_fact_feed": { "source_repo": "PolicyEngine/chronicle", - "source_commit": "505e0e72aa7c82b96dc06941d84fa797a629161c", + "source_commit": "825406f98913ab7324c834c3642804e9317a2256", "build": "build-bundle --suite uk -> build-consumer-artifact", "artifact_schema_version": "policyengine_ledger.consumer_artifact.v2", - "fact_row_count": 287150, - "facts_sha256": "4a45c543553617d606ebf8ea11254b48c1e6e115c97840dd8757beafbac035d9", - "manifest_sha256": "3dc9ed05ba00d30609c295cb7d34ebcd98476778bebf1da9a1e7f2e64b97caf7" + "fact_row_count": 344402, + "facts_sha256": "28b7105761be48ff01244bd0e28f4b579bac103f2c4a98473a04e2cc4303eb3d", + "manifest_sha256": "6e04a43d7dca4d398e14c0ec59ec983477633ba3e9bef062a8843f554dcb7119" }, "selections": [ { 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 c3c1ede00..91efd90ba 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,5 +1,5 @@ { - "source_fact_feed": "chronicle-uk-505e0e72-consumer-facts", + "source_fact_feed": "chronicle-uk-825406f9-consumer-facts", "target_period": 2025, "candidate_count": 1174, "contract_target_count": 295, @@ -11207,8 +11207,8 @@ { "name": "hmrc.salary_sacrifice.it_relief_basic_rate", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 2, + "matched_fact_count_at_or_before_period": 2, "resolved_period": 2025, "resolved_value": 1600000000.0, "resolved_fact_period": "2024", @@ -11222,8 +11222,8 @@ { "name": "hmrc.salary_sacrifice.it_relief_higher_rate", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 2, + "matched_fact_count_at_or_before_period": 2, "resolved_period": 2025, "resolved_value": 5500000000.0, "resolved_fact_period": "2024", @@ -11237,8 +11237,8 @@ { "name": "hmrc.salary_sacrifice.it_relief_additional_rate", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 2, + "matched_fact_count_at_or_before_period": 2, "resolved_period": 2025, "resolved_value": 1800000000.0, "resolved_fact_period": "2024", @@ -11252,8 +11252,8 @@ { "name": "hmrc.salary_sacrifice.nics_relief_employee", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 2, + "matched_fact_count_at_or_before_period": 2, "resolved_period": 2025, "resolved_value": 1000000000.0, "resolved_fact_period": "2024", @@ -11267,8 +11267,8 @@ { "name": "hmrc.salary_sacrifice.nics_relief_employer", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 2, + "matched_fact_count_at_or_before_period": 2, "resolved_period": 2025, "resolved_value": 3400000000.0, "resolved_fact_period": "2024", 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 e99de64f8..135df6003 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 @@ -565,11 +565,11 @@ "ledger_fact_pin": { "artifact": ".codex-work/consumer_facts_uk.jsonl", "build": "build-bundle --suite uk -> build-consumer-artifact", - "fact_row_count": 287150, - "facts_sha256": "4a45c543553617d606ebf8ea11254b48c1e6e115c97840dd8757beafbac035d9", + "fact_row_count": 344402, + "facts_sha256": "28b7105761be48ff01244bd0e28f4b579bac103f2c4a98473a04e2cc4303eb3d", "manifest": ".codex-work/consumer_facts_uk_manifest.json", - "manifest_sha256": "3dc9ed05ba00d30609c295cb7d34ebcd98476778bebf1da9a1e7f2e64b97caf7", - "source_commit": "505e0e72aa7c82b96dc06941d84fa797a629161c", + "manifest_sha256": "6e04a43d7dca4d398e14c0ec59ec983477633ba3e9bef062a8843f554dcb7119", + "source_commit": "825406f98913ab7324c834c3642804e9317a2256", "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.", @@ -588,11 +588,11 @@ "ledger_fact_pin": { "artifact": ".codex-work/consumer_facts_uk.jsonl", "build": "build-bundle --suite uk -> build-consumer-artifact", - "fact_row_count": 287150, - "facts_sha256": "4a45c543553617d606ebf8ea11254b48c1e6e115c97840dd8757beafbac035d9", + "fact_row_count": 344402, + "facts_sha256": "28b7105761be48ff01244bd0e28f4b579bac103f2c4a98473a04e2cc4303eb3d", "manifest": ".codex-work/consumer_facts_uk_manifest.json", - "manifest_sha256": "3dc9ed05ba00d30609c295cb7d34ebcd98476778bebf1da9a1e7f2e64b97caf7", - "source_commit": "505e0e72aa7c82b96dc06941d84fa797a629161c", + "manifest_sha256": "6e04a43d7dca4d398e14c0ec59ec983477633ba3e9bef062a8843f554dcb7119", + "source_commit": "825406f98913ab7324c834c3642804e9317a2256", "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.", @@ -611,11 +611,11 @@ "ledger_fact_pin": { "artifact": ".codex-work/consumer_facts_uk.jsonl", "build": "build-bundle --suite uk -> build-consumer-artifact", - "fact_row_count": 287150, - "facts_sha256": "4a45c543553617d606ebf8ea11254b48c1e6e115c97840dd8757beafbac035d9", + "fact_row_count": 344402, + "facts_sha256": "28b7105761be48ff01244bd0e28f4b579bac103f2c4a98473a04e2cc4303eb3d", "manifest": ".codex-work/consumer_facts_uk_manifest.json", - "manifest_sha256": "3dc9ed05ba00d30609c295cb7d34ebcd98476778bebf1da9a1e7f2e64b97caf7", - "source_commit": "505e0e72aa7c82b96dc06941d84fa797a629161c", + "manifest_sha256": "6e04a43d7dca4d398e14c0ec59ec983477633ba3e9bef062a8843f554dcb7119", + "source_commit": "825406f98913ab7324c834c3642804e9317a2256", "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.", @@ -635,11 +635,11 @@ "ledger_fact_pin": { "artifact": ".codex-work/consumer_facts_uk.jsonl", "build": "build-bundle --suite uk -> build-consumer-artifact", - "fact_row_count": 287150, - "facts_sha256": "4a45c543553617d606ebf8ea11254b48c1e6e115c97840dd8757beafbac035d9", + "fact_row_count": 344402, + "facts_sha256": "28b7105761be48ff01244bd0e28f4b579bac103f2c4a98473a04e2cc4303eb3d", "manifest": ".codex-work/consumer_facts_uk_manifest.json", - "manifest_sha256": "3dc9ed05ba00d30609c295cb7d34ebcd98476778bebf1da9a1e7f2e64b97caf7", - "source_commit": "505e0e72aa7c82b96dc06941d84fa797a629161c", + "manifest_sha256": "6e04a43d7dca4d398e14c0ec59ec983477633ba3e9bef062a8843f554dcb7119", + "source_commit": "825406f98913ab7324c834c3642804e9317a2256", "source_repo": "PolicyEngine/chronicle" }, "notes": "The pinned Ledger fact feed carries the compiled household cells.", @@ -659,11 +659,11 @@ "ledger_fact_pin": { "artifact": ".codex-work/consumer_facts_uk.jsonl", "build": "build-bundle --suite uk -> build-consumer-artifact", - "fact_row_count": 287150, - "facts_sha256": "4a45c543553617d606ebf8ea11254b48c1e6e115c97840dd8757beafbac035d9", + "fact_row_count": 344402, + "facts_sha256": "28b7105761be48ff01244bd0e28f4b579bac103f2c4a98473a04e2cc4303eb3d", "manifest": ".codex-work/consumer_facts_uk_manifest.json", - "manifest_sha256": "3dc9ed05ba00d30609c295cb7d34ebcd98476778bebf1da9a1e7f2e64b97caf7", - "source_commit": "505e0e72aa7c82b96dc06941d84fa797a629161c", + "manifest_sha256": "6e04a43d7dca4d398e14c0ec59ec983477633ba3e9bef062a8843f554dcb7119", + "source_commit": "825406f98913ab7324c834c3642804e9317a2256", "source_repo": "PolicyEngine/chronicle" }, "notes": "The pinned Ledger fact feed carries the compiled household cells; the source specification defines HouseholdCount as occupied households.", @@ -683,11 +683,11 @@ "ledger_fact_pin": { "artifact": ".codex-work/consumer_facts_uk.jsonl", "build": "build-bundle --suite uk -> build-consumer-artifact", - "fact_row_count": 287150, - "facts_sha256": "4a45c543553617d606ebf8ea11254b48c1e6e115c97840dd8757beafbac035d9", + "fact_row_count": 344402, + "facts_sha256": "28b7105761be48ff01244bd0e28f4b579bac103f2c4a98473a04e2cc4303eb3d", "manifest": ".codex-work/consumer_facts_uk_manifest.json", - "manifest_sha256": "3dc9ed05ba00d30609c295cb7d34ebcd98476778bebf1da9a1e7f2e64b97caf7", - "source_commit": "505e0e72aa7c82b96dc06941d84fa797a629161c", + "manifest_sha256": "6e04a43d7dca4d398e14c0ec59ec983477633ba3e9bef062a8843f554dcb7119", + "source_commit": "825406f98913ab7324c834c3642804e9317a2256", "source_repo": "PolicyEngine/chronicle" }, "notes": "The pinned Ledger fact feed carries the compiled household cells.", @@ -707,11 +707,11 @@ "ledger_fact_pin": { "artifact": ".codex-work/consumer_facts_uk.jsonl", "build": "build-bundle --suite uk -> build-consumer-artifact", - "fact_row_count": 287150, - "facts_sha256": "4a45c543553617d606ebf8ea11254b48c1e6e115c97840dd8757beafbac035d9", + "fact_row_count": 344402, + "facts_sha256": "28b7105761be48ff01244bd0e28f4b579bac103f2c4a98473a04e2cc4303eb3d", "manifest": ".codex-work/consumer_facts_uk_manifest.json", - "manifest_sha256": "3dc9ed05ba00d30609c295cb7d34ebcd98476778bebf1da9a1e7f2e64b97caf7", - "source_commit": "505e0e72aa7c82b96dc06941d84fa797a629161c", + "manifest_sha256": "6e04a43d7dca4d398e14c0ec59ec983477633ba3e9bef062a8843f554dcb7119", + "source_commit": "825406f98913ab7324c834c3642804e9317a2256", "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.", @@ -730,11 +730,11 @@ "ledger_fact_pin": { "artifact": ".codex-work/consumer_facts_uk.jsonl", "build": "build-bundle --suite uk -> build-consumer-artifact", - "fact_row_count": 287150, - "facts_sha256": "4a45c543553617d606ebf8ea11254b48c1e6e115c97840dd8757beafbac035d9", + "fact_row_count": 344402, + "facts_sha256": "28b7105761be48ff01244bd0e28f4b579bac103f2c4a98473a04e2cc4303eb3d", "manifest": ".codex-work/consumer_facts_uk_manifest.json", - "manifest_sha256": "3dc9ed05ba00d30609c295cb7d34ebcd98476778bebf1da9a1e7f2e64b97caf7", - "source_commit": "505e0e72aa7c82b96dc06941d84fa797a629161c", + "manifest_sha256": "6e04a43d7dca4d398e14c0ec59ec983477633ba3e9bef062a8843f554dcb7119", + "source_commit": "825406f98913ab7324c834c3642804e9317a2256", "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.", @@ -756,11 +756,11 @@ "ledger_fact_pin": { "artifact": ".codex-work/consumer_facts_uk.jsonl", "build": "build-bundle --suite uk -> build-consumer-artifact", - "fact_row_count": 287150, - "facts_sha256": "4a45c543553617d606ebf8ea11254b48c1e6e115c97840dd8757beafbac035d9", + "fact_row_count": 344402, + "facts_sha256": "28b7105761be48ff01244bd0e28f4b579bac103f2c4a98473a04e2cc4303eb3d", "manifest": ".codex-work/consumer_facts_uk_manifest.json", - "manifest_sha256": "3dc9ed05ba00d30609c295cb7d34ebcd98476778bebf1da9a1e7f2e64b97caf7", - "source_commit": "505e0e72aa7c82b96dc06941d84fa797a629161c", + "manifest_sha256": "6e04a43d7dca4d398e14c0ec59ec983477633ba3e9bef062a8843f554dcb7119", + "source_commit": "825406f98913ab7324c834c3642804e9317a2256", "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.", @@ -779,11 +779,11 @@ "ledger_fact_pin": { "artifact": ".codex-work/consumer_facts_uk.jsonl", "build": "build-bundle --suite uk -> build-consumer-artifact", - "fact_row_count": 287150, - "facts_sha256": "4a45c543553617d606ebf8ea11254b48c1e6e115c97840dd8757beafbac035d9", + "fact_row_count": 344402, + "facts_sha256": "28b7105761be48ff01244bd0e28f4b579bac103f2c4a98473a04e2cc4303eb3d", "manifest": ".codex-work/consumer_facts_uk_manifest.json", - "manifest_sha256": "3dc9ed05ba00d30609c295cb7d34ebcd98476778bebf1da9a1e7f2e64b97caf7", - "source_commit": "505e0e72aa7c82b96dc06941d84fa797a629161c", + "manifest_sha256": "6e04a43d7dca4d398e14c0ec59ec983477633ba3e9bef062a8843f554dcb7119", + "source_commit": "825406f98913ab7324c834c3642804e9317a2256", "source_repo": "PolicyEngine/chronicle" }, "notes": "PIPR publishes average rent price levels, not additive rent totals; a bound cell composes the level into a total (see the signed rationale). Of the 361 local-authority cells, 314 bind for the 2025 compile and 47 remain signed deferred: 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.", @@ -804,11 +804,11 @@ "ledger_fact_pin": { "artifact": ".codex-work/consumer_facts_uk.jsonl", "build": "build-bundle --suite uk -> build-consumer-artifact", - "fact_row_count": 287150, - "facts_sha256": "4a45c543553617d606ebf8ea11254b48c1e6e115c97840dd8757beafbac035d9", + "fact_row_count": 344402, + "facts_sha256": "28b7105761be48ff01244bd0e28f4b579bac103f2c4a98473a04e2cc4303eb3d", "manifest": ".codex-work/consumer_facts_uk_manifest.json", - "manifest_sha256": "3dc9ed05ba00d30609c295cb7d34ebcd98476778bebf1da9a1e7f2e64b97caf7", - "source_commit": "505e0e72aa7c82b96dc06941d84fa797a629161c", + "manifest_sha256": "6e04a43d7dca4d398e14c0ec59ec983477633ba3e9bef062a8843f554dcb7119", + "source_commit": "825406f98913ab7324c834c3642804e9317a2256", "source_repo": "PolicyEngine/chronicle" }, "notes": "The pinned feed record-set specs uk.local_geography.council_tax.england_ctb.line_07_chargeable_dwellings_adjusted_for_disabled_relief.v1, line_11_second_homes.v1 and line_15_empty_dwellings.v1 supply the 296 English billing authorities by band A-, A-H at the October 2025 count. Each cell binds line 7 minus line 11 minus line 15 (band A adds line 7's A- column): the dwellings charged as someone's sole or main residence, the universe a household frame carries. Bands A-G bind 294 authorities after E06000053 and E09000001 are support-floor excluded; the 296-cell band H family stays signed deferred on spine support (microcosm#762 A14). Barnsley and Sheffield bind through the crosswalk's declared aliases of their April 2025 codes. The family is scoped to the 296 English authorities: Wales and Scotland bind their own returns below and Northern Ireland levies domestic rates.", @@ -827,11 +827,11 @@ "ledger_fact_pin": { "artifact": ".codex-work/consumer_facts_uk.jsonl", "build": "build-bundle --suite uk -> build-consumer-artifact", - "fact_row_count": 287150, - "facts_sha256": "4a45c543553617d606ebf8ea11254b48c1e6e115c97840dd8757beafbac035d9", + "fact_row_count": 344402, + "facts_sha256": "28b7105761be48ff01244bd0e28f4b579bac103f2c4a98473a04e2cc4303eb3d", "manifest": ".codex-work/consumer_facts_uk_manifest.json", - "manifest_sha256": "3dc9ed05ba00d30609c295cb7d34ebcd98476778bebf1da9a1e7f2e64b97caf7", - "source_commit": "505e0e72aa7c82b96dc06941d84fa797a629161c", + "manifest_sha256": "6e04a43d7dca4d398e14c0ec59ec983477633ba3e9bef062a8843f554dcb7119", + "source_commit": "825406f98913ab7324c834c3642804e9317a2256", "source_repo": "PolicyEngine/chronicle" }, "notes": "The pinned feed record-set specs uk.local_geography.council_tax.wales_ct1.a1_all_chargeable_dwellings.v1, h7_total_chargeable_empty_properties.v1 and h8_total_chargeable_second_homes.v1 supply the 22 Welsh authorities by band A-I per financial year. Each cell binds a1 minus h7 minus h8 on the 2025-26 row (the taxbase set for that year, counted on the 31 October 2024 list, one count-year behind England and Scotland by ruling of 2026-09-15); all 198 cells bind, band I included.", @@ -850,11 +850,11 @@ "ledger_fact_pin": { "artifact": ".codex-work/consumer_facts_uk.jsonl", "build": "build-bundle --suite uk -> build-consumer-artifact", - "fact_row_count": 287150, - "facts_sha256": "4a45c543553617d606ebf8ea11254b48c1e6e115c97840dd8757beafbac035d9", + "fact_row_count": 344402, + "facts_sha256": "28b7105761be48ff01244bd0e28f4b579bac103f2c4a98473a04e2cc4303eb3d", "manifest": ".codex-work/consumer_facts_uk_manifest.json", - "manifest_sha256": "3dc9ed05ba00d30609c295cb7d34ebcd98476778bebf1da9a1e7f2e64b97caf7", - "source_commit": "505e0e72aa7c82b96dc06941d84fa797a629161c", + "manifest_sha256": "6e04a43d7dca4d398e14c0ec59ec983477633ba3e9bef062a8843f554dcb7119", + "source_commit": "825406f98913ab7324c834c3642804e9317a2256", "source_repo": "PolicyEngine/chronicle" }, "notes": "The pinned feed record-set spec uk.local_geography.council_tax_stock.scotland_ctaxbase_chargeable_dwellings.by_council_area.v1 supplies the 32 councils by band A-H, the concept the scotgov.council_tax_stock country rows already bind; 255 cells bind and Shetland band H is signed deferred (no band-H clone at K=15). Chargeable dwellings run about 1 % above the household frame nationally, the residual the universe fence records.", diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_chronicle_feed.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_chronicle_feed.py index 290f667ca..b4fd40ddc 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_chronicle_feed.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_chronicle_feed.py @@ -15,14 +15,14 @@ def test_national_feed_records_the_complete_merged_source_artifact(): pin = load_uk_chronicle_feed() resource = files("microcosm.build.uk").joinpath("chronicle_feed.json") raw = resource.read_bytes() - assert pin.source_commit == "505e0e72aa7c82b96dc06941d84fa797a629161c" + assert pin.source_commit == "825406f98913ab7324c834c3642804e9317a2256" assert pin.source_repo == "PolicyEngine/chronicle" - assert pin.fact_row_count == 287150 + assert pin.fact_row_count == 344402 assert pin.facts_sha256 == ( - "4a45c543553617d606ebf8ea11254b48c1e6e115c97840dd8757beafbac035d9" + "28b7105761be48ff01244bd0e28f4b579bac103f2c4a98473a04e2cc4303eb3d" ) assert pin.manifest_sha256 == ( - "3dc9ed05ba00d30609c295cb7d34ebcd98476778bebf1da9a1e7f2e64b97caf7" + "6e04a43d7dca4d398e14c0ec59ec983477633ba3e9bef062a8843f554dcb7119" ) assert pin.artifact_schema_version == "policyengine_ledger.consumer_artifact.v2" assert pin.consumer_fact_schema_versions == ("chronicle.consumer_fact.v4",) diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_full_targets.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_full_targets.py index 981bdad5a..611cbeaee 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_full_targets.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_full_targets.py @@ -187,26 +187,26 @@ def test_wrong_fact_count_refuses_before_either_compiler(prepared): def test_current_national_and_local_pins_share_one_reviewed_identity(): # main (#904) reads one committed pin, ``uk/chronicle_feed.json``, for the # national feed and the local census; the full build checks they agree. - # The identity is the 505e0e7 feed re-pinned by microcosm#1045 (Chronicle - # #287/#288, the HMRC CGT Table 4 facts). + # The identity is the 825406f feed re-pinned by microcosm#1069 + # (PolicyEngine/chronicle#302 via #305, the UK pension facts). national = runtime.load_uk_chronicle_feed() local = runtime.load_uk_local_chronicle_pin() assert ( national.facts_sha256 == local["facts_sha256"] - == ("4a45c543553617d606ebf8ea11254b48c1e6e115c97840dd8757beafbac035d9") + == ("28b7105761be48ff01244bd0e28f4b579bac103f2c4a98473a04e2cc4303eb3d") ) assert ( national.manifest_sha256 == local["manifest_sha256"] - == ("3dc9ed05ba00d30609c295cb7d34ebcd98476778bebf1da9a1e7f2e64b97caf7") + == ("6e04a43d7dca4d398e14c0ec59ec983477633ba3e9bef062a8843f554dcb7119") ) assert ( national.source_commit == local["source_commit"] - == "505e0e72aa7c82b96dc06941d84fa797a629161c" + == "825406f98913ab7324c834c3642804e9317a2256" ) - assert national.fact_row_count == local["fact_row_count"] == 287150 + assert national.fact_row_count == local["fact_row_count"] == 344402 def test_chronicle_source_codec_validates_directory_manifest(tmp_path): 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 5a344257b..238d5a6a9 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":[{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":"care_hours","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":"is_uc_claimant","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":"would_claim_carers_allowance","dtype":"bool","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"sample_fraction":1.0,"sample_seed":578,"stage_contract_sha256":"047d30937efb21e39259fdbed5597751e4f5a0c341ea583c7446e4c9c11eba48","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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":"care_hours","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":"is_uc_claimant","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":"would_claim_carers_allowance","dtype":"bool","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"age_tail","stage_contract_sha256":"963a34f38caede2525e3b8735f904bb70a1bbef5a272f0eefd4346343444484f","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage frs_relationships.","id":"frs_relationships","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","is_household_head"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_relationships@1","mass":"conserve","outputs":[{"column":"relationship_to_head","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"ons_family_role","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"ons_family_index","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"ons_household_type","dtype":"string","entity":"household","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_relationships","stage_contract_sha256":"30628808d06d9829ebcbcf460cd355a01261e78c7c73e6006c75bec2e3d60c33","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage frs_employment.","id":"frs_employment","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["ons_household_type","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_employment","stage_contract_sha256":"ddbefaf05b44788d794a6e4b0e8926c14318d66e50d2f11f50ca549538bbf60c","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_council_tax","stage_contract_sha256":"3381cd9f7a736514d5073c57480e07f5098890f3ca9ed3865392043594771eb9","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_disability","stage_contract_sha256":"ac500b4cb1bc04d4fb72d198592dd376d61da8c150921a6ac53914ac18be0508","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_education","stage_contract_sha256":"836cb0f5a582fee1425190e96c9cb81bdef859bd236c8b6bc27660b6e3d0c2f8","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","ons_household_type","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"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","ons_household_type","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","ons_household_type","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_education_grant_split","stage_contract_sha256":"8718f014b90498c2cc7c754289775ca4a41452d9b978d8cbc5f34b64cbdc7df2","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage frs_take_up.","id":"frs_take_up","inputs":[{"columns":["frs_benunit_capital","is_married"],"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":"would_claim_uc_childcare","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"maximum_extended_childcare_hours_usage","dtype":"float64","entity":"benunit","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_take_up","stage_contract_sha256":"067d31b7fbe733d1d182588705e9ce79df0c8e5f6e8f519314765af49b1b00d7","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_person_draws","stage_contract_sha256":"7e0af955541ec5669dcdf1de4e1e6ca642853e48b775ec4e25238b41491df324","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_household_draws","stage_contract_sha256":"c74c63b09264319c4bf0049dabba00ecd0ce660beb7b53d6dae71518434bc949","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"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","would_claim_uc_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","ons_household_type","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":["brma","region"],"entity":"household","rows":"all"},{"columns":["age","employee_pension_contributions"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_hmrc_spine_leaves","stage_contract_sha256":"2bb3d068003489b47cc8676ac26c203ce3c39a9b6e92f3ecd0a3c06acd6addc4","time_period":"2024"},"population":"frs_brma.checkpoint","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"frs_brma.checkpoint","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","would_claim_uc_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","ons_household_type","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"spi_support_channel","citation":"","description":"Run structural UK stage spi_income_band_donors.","id":"spi_income_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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.spi_income_band_donors@1","mass":"free","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","household_source_id","int64"],["household","household_support_channel","string"],["household","household_support_clone_index","int64"],["household","household_is_spi_synthetic","bool"],["household","household_is_spi_income_band_donor","bool"],["household","spi_income_band_donor_lower_bound","float64"],["person","person_is_spi_income_band_carrier","bool"]],"expand_weight_entity":"household","expand_weight_kind":"importance","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"spi_income_band_donors","stage_contract_sha256":"047ff55be7acca89a01859271a019428f42a40c38af4885625ec064f8ff213af","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"base":null,"citation":"","description":"Own the cells materialized by spi_income_band_donors.","id":"spi_income_band_donors.owned","inputs":[],"kernel":"uk.claim@1","mass":"conserve","outputs":[{"column":"person_source_id","dtype":"int64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"person_support_channel","dtype":"string","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"person_support_clone_index","dtype":"int64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"benunit_source_id","dtype":"int64","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"benunit_support_channel","dtype":"string","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"benunit_support_clone_index","dtype":"int64","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_source_id","dtype":"int64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_support_channel","dtype":"string","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_support_clone_index","dtype":"int64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_is_spi_synthetic","dtype":"bool","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_is_spi_income_band_donor","dtype":"bool","entity":"household","ownership":"produced","rows":"all"},{"column":"spi_income_band_donor_lower_bound","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"person_is_spi_income_band_carrier","dtype":"bool","entity":"person","ownership":"produced","rows":"all"}],"params":{"materialized_expand_outputs":["household.household_is_spi_income_band_donor","household.spi_income_band_donor_lower_bound","person.person_is_spi_income_band_carrier"]},"population":"spi_income_band_donors","sources":[],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","relationship_to_head","ons_family_role","ons_family_index","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","ossben_identifiable_subset","srp_regular_code5","person_source_id","person_support_channel","person_support_clone_index","person_is_spi_income_band_carrier"],"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"},{"column":"would_claim_carers_allowance","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"hmrc_spi_income_spine","stage_contract_sha256":"80e00d83db07e5264be1743a862c4ac73274c431b97a1a42a0ce3d2423ddb1f8","time_period":"2024"},"population":"spi_income_band_donors","sources":["frs"],"structural":"none","weights":null},{"base":"spi_income_band_donors","citation":"","description":"Ownership boundary before spi_housing_shell rewrites.","id":"spi_housing_shell.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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage spi_housing_shell.","id":"spi_housing_shell","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["council_tax_single_adult_raw","household_support_channel","ons_household_type","region"],"entity":"household","rows":"all"},{"columns":["age","dividend_income","employment_income","is_household_head","other_investment_income","private_pension_income","property_income","savings_interest_income","self_employment_income","state_pension_reported","would_claim_carers_allowance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.spi_housing_shell@1","mass":"conserve","outputs":[{"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":"council_tax_band","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","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_reported","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"rent","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":"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":"subrent","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_rebate","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"housing_benefit_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"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"spi_housing_shell","stage_contract_sha256":"809f19fd33ff79ceda005e8cc3fa89ae40b297dceca26a7658b6259267987890","time_period":"2024"},"population":"spi_housing_shell.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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.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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"was_wealth","stage_contract_sha256":"366e019c41ee2a28bcd61bbaa62a024ed0bb4b30b3ffc4d87ab23b340b4076bf","time_period":"2024"},"population":"spi_housing_shell.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage was_lisa.","id":"was_lisa","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.was_lisa@1","mass":"conserve","outputs":[{"column":"has_lifetime_isa","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"lifetime_isa_balance","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"household_lifetime_isa_balance","dtype":"float64","entity":"household","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"was_lisa","stage_contract_sha256":"f1d0f962e84d32007821b32e4e03a8af9443acc0ed3d1836ff094dcbacb928da","time_period":"2024"},"population":"spi_housing_shell.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"spi_housing_shell.boundary","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":["household_lifetime_isa_balance","household_support_channel","region"],"entity":"household","rows":"all"},{"columns":["age"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"regional_property_uprating","stage_contract_sha256":"acb342e8ca1770556c5682a9411c5ead5d61dd1420cfe6b0305ed14a3407fb25","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage nts_bus_travel.","id":"nts_bus_travel","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.nts_bus_travel@1","mass":"conserve","outputs":[{"column":"local_bus_use_band","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"bus_in_london_trips","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"other_local_bus_trips","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"local_bus_trips","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"bus_pass_eligible","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"local_bus_single_fare_share","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"household_local_bus_trips","dtype":"float64","entity":"household","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"nts_bus_travel","stage_contract_sha256":"cf854e8cf6edd006b677dcc67b63d6bb104d09eed93d7ee78bde6f0e838b9de9","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"lcfs_consumption","stage_contract_sha256":"63079c6f53d507702b4b1fadcf30def5188baf1f17e026e9f89f285577fe9c60","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"etb_vat","stage_contract_sha256":"5a2b777d88315bcccb72477c088a136c634131e0bc1a339b7287217ee5cfd8d3","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"etb_services","stage_contract_sha256":"37bfc4c0935ab99c5f270f307451cbf6cc6a85a3f8c6ce77429f6a6c66c07021","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"regional_property_uprating.boundary","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"uc_reporter_redraw","stage_contract_sha256":"7e94e034cad29c5bae566ffb875c42cddf3a1025c15496907e783ceff1144f8b","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","is_benunit_head","is_parent","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"uc_capital_coherence","stage_contract_sha256":"059f27ee687ee15385b246d43068b17aeecbe3645ccc41fd52fcad06a006a081","time_period":"2024"},"population":"uc_capital_coherence.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"uc_deduction_attributes","stage_contract_sha256":"6bc7e3ec1a5712e23ca1b7d2956e8b17f2526b94431ba3e5a9294b04658e4fe0","time_period":"2024"},"population":"uc_capital_coherence.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"uc_capital_coherence.boundary","citation":"","description":"Run structural UK stage cgt_support_split.","id":"cgt_support_split","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.cgt_support_split@1","mass":"conserve","outputs":[],"params":{"expand_cells":[["household","household_is_cgt_support_copy","bool"],["household","cgt_support_copies","int64"],["household","cgt_support_copy_index","int64"]],"expand_weight_entity":"household","expand_weight_kind":"importance","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"cgt_support_split","stage_contract_sha256":"556e2db7907ad62920149da9104150997031e3cfddbdb4610075369d77147499","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"base":null,"citation":"","description":"Own the cells materialized by cgt_support_split.","id":"cgt_support_split.owned","inputs":[],"kernel":"uk.claim@1","mass":"conserve","outputs":[{"column":"household_is_cgt_support_copy","dtype":"bool","entity":"household","ownership":"produced","rows":"all"},{"column":"cgt_support_copies","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"cgt_support_copy_index","dtype":"int64","entity":"household","ownership":"produced","rows":"all"}],"params":{"materialized_expand_outputs":["household.household_is_cgt_support_copy","household.cgt_support_copies","household.cgt_support_copy_index"]},"population":"cgt_support_split","sources":[],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"cgt_support_split","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","household_is_cgt_support_copy","cgt_support_copies","cgt_support_copy_index"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"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","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"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":"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","household_is_cgt_support_copy","cgt_support_copies","cgt_support_copy_index","household_is_capital_gains_clone"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","capital_gains"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":["cgt_support_copies","corporate_wealth","gross_financial_wealth","household_is_cgt_support_copy","non_residential_property_value","other_residential_property_value","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"hmrc_cgt_gains_spine","stage_contract_sha256":"49717d6586a4a5d7fc370200c71c0f91d01473158454571c056deb6f5618d562","time_period":"2024"},"population":"hmrc_cgt_gains_spine.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage hmrc_cgt_asset_type_spine.","id":"hmrc_cgt_asset_type_spine","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["corporate_wealth","gross_financial_wealth","other_residential_property_value","region","stocks_and_shares_isa"],"entity":"household","rows":"all"},{"columns":["age","capital_gains","dividend_income","property_income","self_employment_income"],"entity":"person","rows":"all"}],"kernel":"uk.stage.hmrc_cgt_asset_type_spine@1","mass":"conserve","outputs":[{"column":"capital_gains_asset_type","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"capital_gains_residential_property","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"capital_gains_badr","dtype":"float64","entity":"person","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"hmrc_cgt_asset_type_spine","stage_contract_sha256":"5f9a5f2d12e2a7db87c7c0d6f0df6f70875a579e90c39b2b8c48943eac43905e","time_period":"2024"},"population":"hmrc_cgt_gains_spine.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"hmrc_cgt_gains_spine.boundary","citation":"","description":"Run structural UK stage cgt_incidence_anchor.","id":"cgt_incidence_anchor","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["household_is_capital_gains_clone","region"],"entity":"household","rows":"all"},{"columns":["age","capital_gains","capital_gains_badr","dividend_income","employment_income","miscellaneous_income","private_pension_income","property_income","savings_interest_income","self_employment_income","state_pension_reported"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.cgt_incidence_anchor@1","mass":"conserve","outputs":[],"params":{"expand_cells":[],"expand_weight_entity":"household","expand_weight_kind":"importance","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"cgt_incidence_anchor","stage_contract_sha256":"b79ce806015de2f1e1703fa68bf4ad871c6df54b5b32633c864632ab68919a48","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","household_is_cgt_support_copy","cgt_support_copies","cgt_support_copy_index","household_is_capital_gains_clone"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","capital_gains","capital_gains_asset_type","capital_gains_residential_property","capital_gains_badr"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"salary_sacrifice","stage_contract_sha256":"89b589d19fcb99b265cb40d08cf2b9ff7955bd41b6de0e8c9ff4dc6f35be1eb6","time_period":"2024"},"population":"cgt_incidence_anchor","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"student_loans","stage_contract_sha256":"f2936c5e22a0e9b097437e3f3aabaf06c4561d5c25a9b7c05e720a6553f73bbc","time_period":"2024"},"population":"cgt_incidence_anchor","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":[{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":"care_hours","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":"is_uc_claimant","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":"would_claim_carers_allowance","dtype":"bool","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"sample_fraction":1.0,"sample_seed":578,"stage_contract_sha256":"047d30937efb21e39259fdbed5597751e4f5a0c341ea583c7446e4c9c11eba48","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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":"care_hours","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":"is_uc_claimant","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":"would_claim_carers_allowance","dtype":"bool","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"age_tail","stage_contract_sha256":"963a34f38caede2525e3b8735f904bb70a1bbef5a272f0eefd4346343444484f","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage frs_relationships.","id":"frs_relationships","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","is_household_head"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_relationships@1","mass":"conserve","outputs":[{"column":"relationship_to_head","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"ons_family_role","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"ons_family_index","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"ons_household_type","dtype":"string","entity":"household","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_relationships","stage_contract_sha256":"30628808d06d9829ebcbcf460cd355a01261e78c7c73e6006c75bec2e3d60c33","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage frs_employment.","id":"frs_employment","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["ons_household_type","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_employment","stage_contract_sha256":"ddbefaf05b44788d794a6e4b0e8926c14318d66e50d2f11f50ca549538bbf60c","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_council_tax","stage_contract_sha256":"3381cd9f7a736514d5073c57480e07f5098890f3ca9ed3865392043594771eb9","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_disability","stage_contract_sha256":"ac500b4cb1bc04d4fb72d198592dd376d61da8c150921a6ac53914ac18be0508","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_education","stage_contract_sha256":"836cb0f5a582fee1425190e96c9cb81bdef859bd236c8b6bc27660b6e3d0c2f8","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","ons_household_type","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"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","ons_household_type","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","ons_household_type","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_education_grant_split","stage_contract_sha256":"8718f014b90498c2cc7c754289775ca4a41452d9b978d8cbc5f34b64cbdc7df2","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage frs_take_up.","id":"frs_take_up","inputs":[{"columns":["frs_benunit_capital","is_married"],"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":"would_claim_uc_childcare","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"maximum_extended_childcare_hours_usage","dtype":"float64","entity":"benunit","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_take_up","stage_contract_sha256":"067d31b7fbe733d1d182588705e9ce79df0c8e5f6e8f519314765af49b1b00d7","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_person_draws","stage_contract_sha256":"7e0af955541ec5669dcdf1de4e1e6ca642853e48b775ec4e25238b41491df324","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_household_draws","stage_contract_sha256":"c74c63b09264319c4bf0049dabba00ecd0ce660beb7b53d6dae71518434bc949","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"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","would_claim_uc_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","ons_household_type","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":["brma","region"],"entity":"household","rows":"all"},{"columns":["age","employee_pension_contributions"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_hmrc_spine_leaves","stage_contract_sha256":"2bb3d068003489b47cc8676ac26c203ce3c39a9b6e92f3ecd0a3c06acd6addc4","time_period":"2024"},"population":"frs_brma.checkpoint","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"frs_brma.checkpoint","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","would_claim_uc_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","ons_household_type","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"spi_support_channel","citation":"","description":"Run structural UK stage spi_income_band_donors.","id":"spi_income_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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.spi_income_band_donors@1","mass":"free","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","household_source_id","int64"],["household","household_support_channel","string"],["household","household_support_clone_index","int64"],["household","household_is_spi_synthetic","bool"],["household","household_is_spi_income_band_donor","bool"],["household","spi_income_band_donor_lower_bound","float64"],["person","person_is_spi_income_band_carrier","bool"]],"expand_weight_entity":"household","expand_weight_kind":"importance","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"spi_income_band_donors","stage_contract_sha256":"190a40ab145b001993733553f45b3e8e5adfe999f598231481ab6706447d5f3c","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"base":null,"citation":"","description":"Own the cells materialized by spi_income_band_donors.","id":"spi_income_band_donors.owned","inputs":[],"kernel":"uk.claim@1","mass":"conserve","outputs":[{"column":"person_source_id","dtype":"int64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"person_support_channel","dtype":"string","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"person_support_clone_index","dtype":"int64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"benunit_source_id","dtype":"int64","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"benunit_support_channel","dtype":"string","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"benunit_support_clone_index","dtype":"int64","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_source_id","dtype":"int64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_support_channel","dtype":"string","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_support_clone_index","dtype":"int64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_is_spi_synthetic","dtype":"bool","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_is_spi_income_band_donor","dtype":"bool","entity":"household","ownership":"produced","rows":"all"},{"column":"spi_income_band_donor_lower_bound","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"person_is_spi_income_band_carrier","dtype":"bool","entity":"person","ownership":"produced","rows":"all"}],"params":{"materialized_expand_outputs":["household.household_is_spi_income_band_donor","household.spi_income_band_donor_lower_bound","person.person_is_spi_income_band_carrier"]},"population":"spi_income_band_donors","sources":[],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","relationship_to_head","ons_family_role","ons_family_index","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","ossben_identifiable_subset","srp_regular_code5","person_source_id","person_support_channel","person_support_clone_index","person_is_spi_income_band_carrier"],"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"},{"column":"would_claim_carers_allowance","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"hmrc_spi_income_spine","stage_contract_sha256":"834334536c1c6add6648b801272c61ca2f597a54c82553a943667200b9e6c4ce","time_period":"2024"},"population":"spi_income_band_donors","sources":["frs"],"structural":"none","weights":null},{"base":"spi_income_band_donors","citation":"","description":"Ownership boundary before spi_housing_shell rewrites.","id":"spi_housing_shell.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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage spi_housing_shell.","id":"spi_housing_shell","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["council_tax_single_adult_raw","household_support_channel","ons_household_type","region"],"entity":"household","rows":"all"},{"columns":["age","dividend_income","employment_income","is_household_head","other_investment_income","private_pension_income","property_income","savings_interest_income","self_employment_income","state_pension_reported","would_claim_carers_allowance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.spi_housing_shell@1","mass":"conserve","outputs":[{"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":"council_tax_band","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","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_reported","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"rent","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":"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":"subrent","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_rebate","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"housing_benefit_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"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"spi_housing_shell","stage_contract_sha256":"809f19fd33ff79ceda005e8cc3fa89ae40b297dceca26a7658b6259267987890","time_period":"2024"},"population":"spi_housing_shell.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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.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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"was_wealth","stage_contract_sha256":"366e019c41ee2a28bcd61bbaa62a024ed0bb4b30b3ffc4d87ab23b340b4076bf","time_period":"2024"},"population":"spi_housing_shell.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage was_lisa.","id":"was_lisa","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.was_lisa@1","mass":"conserve","outputs":[{"column":"has_lifetime_isa","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"lifetime_isa_balance","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"household_lifetime_isa_balance","dtype":"float64","entity":"household","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"was_lisa","stage_contract_sha256":"f1d0f962e84d32007821b32e4e03a8af9443acc0ed3d1836ff094dcbacb928da","time_period":"2024"},"population":"spi_housing_shell.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"spi_housing_shell.boundary","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":["household_lifetime_isa_balance","household_support_channel","region"],"entity":"household","rows":"all"},{"columns":["age"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"regional_property_uprating","stage_contract_sha256":"acb342e8ca1770556c5682a9411c5ead5d61dd1420cfe6b0305ed14a3407fb25","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage nts_bus_travel.","id":"nts_bus_travel","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.nts_bus_travel@1","mass":"conserve","outputs":[{"column":"local_bus_use_band","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"bus_in_london_trips","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"other_local_bus_trips","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"local_bus_trips","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"bus_pass_eligible","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"local_bus_single_fare_share","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"household_local_bus_trips","dtype":"float64","entity":"household","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"nts_bus_travel","stage_contract_sha256":"59767eeb246755f4636e2abbbc9ab3370a64c6142e01cda21a12cb01be95e535","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"lcfs_consumption","stage_contract_sha256":"f428215b7d66e1297688cfc8dce94e670268fb26a6681ca5f0e6e0641cfaf076","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"etb_vat","stage_contract_sha256":"5a2b777d88315bcccb72477c088a136c634131e0bc1a339b7287217ee5cfd8d3","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"etb_services","stage_contract_sha256":"991be160f2f2c28cf7eadc911b3214aca8bf5be441676fe21a87ba12888c5c25","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"regional_property_uprating.boundary","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"uc_reporter_redraw","stage_contract_sha256":"7e94e034cad29c5bae566ffb875c42cddf3a1025c15496907e783ceff1144f8b","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","is_benunit_head","is_parent","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"uc_capital_coherence","stage_contract_sha256":"059f27ee687ee15385b246d43068b17aeecbe3645ccc41fd52fcad06a006a081","time_period":"2024"},"population":"uc_capital_coherence.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"uc_deduction_attributes","stage_contract_sha256":"6bc7e3ec1a5712e23ca1b7d2956e8b17f2526b94431ba3e5a9294b04658e4fe0","time_period":"2024"},"population":"uc_capital_coherence.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"uc_capital_coherence.boundary","citation":"","description":"Run structural UK stage cgt_support_split.","id":"cgt_support_split","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.cgt_support_split@1","mass":"conserve","outputs":[],"params":{"expand_cells":[["household","household_is_cgt_support_copy","bool"],["household","cgt_support_copies","int64"],["household","cgt_support_copy_index","int64"]],"expand_weight_entity":"household","expand_weight_kind":"importance","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"cgt_support_split","stage_contract_sha256":"30b37e1c4e122db18391c5f76f1a6d432aea970275bcda7a52126dacc923490b","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"base":null,"citation":"","description":"Own the cells materialized by cgt_support_split.","id":"cgt_support_split.owned","inputs":[],"kernel":"uk.claim@1","mass":"conserve","outputs":[{"column":"household_is_cgt_support_copy","dtype":"bool","entity":"household","ownership":"produced","rows":"all"},{"column":"cgt_support_copies","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"cgt_support_copy_index","dtype":"int64","entity":"household","ownership":"produced","rows":"all"}],"params":{"materialized_expand_outputs":["household.household_is_cgt_support_copy","household.cgt_support_copies","household.cgt_support_copy_index"]},"population":"cgt_support_split","sources":[],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"cgt_support_split","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","household_is_cgt_support_copy","cgt_support_copies","cgt_support_copy_index"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"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","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"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":"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","household_is_cgt_support_copy","cgt_support_copies","cgt_support_copy_index","household_is_capital_gains_clone"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","capital_gains"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":["cgt_support_copies","corporate_wealth","gross_financial_wealth","household_is_cgt_support_copy","non_residential_property_value","other_residential_property_value","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"hmrc_cgt_gains_spine","stage_contract_sha256":"ff740a36b03dcda73b889aa43bde7cff5d178de7b3da38e487320c68342bf9a3","time_period":"2024"},"population":"hmrc_cgt_gains_spine.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage hmrc_cgt_asset_type_spine.","id":"hmrc_cgt_asset_type_spine","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["corporate_wealth","gross_financial_wealth","other_residential_property_value","region","stocks_and_shares_isa"],"entity":"household","rows":"all"},{"columns":["age","capital_gains","dividend_income","property_income","self_employment_income"],"entity":"person","rows":"all"}],"kernel":"uk.stage.hmrc_cgt_asset_type_spine@1","mass":"conserve","outputs":[{"column":"capital_gains_asset_type","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"capital_gains_residential_property","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"capital_gains_badr","dtype":"float64","entity":"person","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"hmrc_cgt_asset_type_spine","stage_contract_sha256":"c918223197c706279b37d1b32d0ff3885fb1cd7b65b2e50d0308ab508ed0ed64","time_period":"2024"},"population":"hmrc_cgt_gains_spine.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"hmrc_cgt_gains_spine.boundary","citation":"","description":"Run structural UK stage cgt_incidence_anchor.","id":"cgt_incidence_anchor","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["household_is_capital_gains_clone","region"],"entity":"household","rows":"all"},{"columns":["age","capital_gains","capital_gains_badr","dividend_income","employment_income","miscellaneous_income","private_pension_income","property_income","savings_interest_income","self_employment_income","state_pension_reported"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.cgt_incidence_anchor@1","mass":"conserve","outputs":[],"params":{"expand_cells":[],"expand_weight_entity":"household","expand_weight_kind":"importance","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"cgt_incidence_anchor","stage_contract_sha256":"b79ce806015de2f1e1703fa68bf4ad871c6df54b5b32633c864632ab68919a48","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","household_is_cgt_support_copy","cgt_support_copies","cgt_support_copy_index","household_is_capital_gains_clone"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","capital_gains","capital_gains_asset_type","capital_gains_residential_property","capital_gains_badr"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"salary_sacrifice","stage_contract_sha256":"89b589d19fcb99b265cb40d08cf2b9ff7955bd41b6de0e8c9ff4dc6f35be1eb6","time_period":"2024"},"population":"cgt_incidence_anchor","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"student_loans","stage_contract_sha256":"f2936c5e22a0e9b097437e3f3aabaf06c4561d5c25a9b7c05e720a6553f73bbc","time_period":"2024"},"population":"cgt_incidence_anchor","sources":["frs"],"structural":"none","weights":null}],"sources":[{"codec":"csv-tables","description":"Content-bound UK FRS and donor fixture/source bundle.","name":"frs"}]} From a580e12ca65f182191582f648d1bf69148192584 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20Juaristi?= <127882282+juaristi22@users.noreply.github.com> Date: Wed, 30 Sep 2026 17:49:00 +0100 Subject: [PATCH 03/22] Add the consumer operations the UK pension targets need (#1069 c2) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - monthly_window_count_x_mean: averages a published count times its published mean over declared months. The count and mean operands name their concepts, because DWP names its measures `recipients` and `mean_weekly_amount`, not `*_count` and `*_mean`. The mean operand's period_factor annualises a weekly mean. Each month pairs the count and mean of one published cell and one publication, although Stat-Xplore files them in sibling record sets. Like the single-series windows it takes the source_window period policy, so its declared months are never re-selected or held for uprating. The existing count_x_mean and single-series windows are unchanged. - The engine-index uprating applier restates each window month's mean at the calibration year's rate: April onward at that year's rate, January to March at the previous year's. Under ruling R1, only a February point moves. - A monthly window summing published cells no longer refuses cells whose numeric band edges differ (a single year of age carries its own `age >= 66` and `age < 67`): the edges belong to the cell, while each cell's own months are still compared on every constraint. - The band parser reads DWP's half-open amount labels ("£20.00 to under £40.00", "Under £20.00"), each keeping its own published upper edge. - dwp_state_pension and dwp_pension_credit join the source-month families, and a count x mean window resolves two members per month. - The generator pins dfc_ni.* targets to Northern Ireland and dwp.winter_fuel_payment.* to England and Wales. K04000001 is now a labelled geography. On the pinned 825406f feed, the calendar-2025 State Pension level compiles to £138.62bn for Great Britain and £3.71bn for Northern Ireland at 2025 engine rates. Co-Authored-By: Claude Opus 5.5 --- .../uk-pension-window-consumers-1069.added.md | 1 + .../src/microcosm/build/ledger_targets.py | 297 ++++++++++++++++- .../microcosm/build/target_materialization.py | 55 +++- .../build/target_reference_authoring.py | 1 + .../build/uk_runtime/hmrc_uprating.py | 95 ++++++ .../build/uk_runtime/uc_source_periods.py | 29 +- .../test_ledger_monthly_count_x_mean.py | 303 ++++++++++++++++++ .../uk/test_uk_pension_window_consumers.py | 142 ++++++++ .../calibrate/geography_constants.py | 3 + .../engine_free/shared/test_diagnostics.py | 1 + .../ledger_monthly_count_x_mean.py | 114 +++++++ tools/generate_uk_target_references.py | 9 + 12 files changed, 1023 insertions(+), 27 deletions(-) create mode 100644 changelog.d/uk-pension-window-consumers-1069.added.md create mode 100644 packages/microcosm-build/tests/engine_free/shared/test_ledger_monthly_count_x_mean.py create mode 100644 packages/microcosm-build/tests/engine_free/uk/test_uk_pension_window_consumers.py create mode 100644 test_support/microcosm_build/ledger_monthly_count_x_mean.py diff --git a/changelog.d/uk-pension-window-consumers-1069.added.md b/changelog.d/uk-pension-window-consumers-1069.added.md new file mode 100644 index 000000000..cdc831d2a --- /dev/null +++ b/changelog.d/uk-pension-window-consumers-1069.added.md @@ -0,0 +1 @@ +Add the consumer operations the UK pension targets need (microcosm#1069 c2). The new `monthly_window_count_x_mean` value operation averages a published count times its published mean over declared months. Two operands name the count and mean concepts, since DWP names its measures `recipients` and `mean_weekly_amount`, not `*_count` and `*_mean`, and the mean operand's `period_factor` annualises a weekly mean (52). Each month's count and mean must come from the same published cell and publication, even though Stat-Xplore files them in sibling record sets. The engine-index uprating applier restates each window month's mean at the rate the engine pays in the calibration year: April onward at that year's rate, January to March at the previous year's. Only a February point moves, per ruling R1. The UK State Pension level compiles from the Stat-Xplore cube to £138.6bn for Great Britain and £3.7bn for Northern Ireland in calendar 2025 at 2025 rates. The amount-band parser reads DWP's half-open labels ("£20.00 to under £40.00", "Under £20.00") with their own published upper edges. `dwp_state_pension` and `dwp_pension_credit` join the source-month families. The generator pins `dfc_ni.*` targets to Northern Ireland and `dwp.winter_fuel_payment.*` to England and Wales (`K04000001`, now a labelled geography). diff --git a/packages/microcosm-build/src/microcosm/build/ledger_targets.py b/packages/microcosm-build/src/microcosm/build/ledger_targets.py index 8c9d6dad3..c0d5e3ae0 100644 --- a/packages/microcosm-build/src/microcosm/build/ledger_targets.py +++ b/packages/microcosm-build/src/microcosm/build/ledger_targets.py @@ -39,6 +39,17 @@ MONTHLY_WINDOW_OPERATIONS = frozenset( ("monthly_window_average", "monthly_window_sum_average") ) +#: A monthly window whose every point is a published count times a published +#: mean (a caseload and its mean weekly amount), scaled by the mean operand's +#: ``period_factor`` (52 turns a weekly mean into an annual amount) and +#: averaged over the declared months. The two operands name the count and mean +#: concepts, because publishers name the measures after the benefit +#: (``recipients``, ``mean_weekly_amount``) rather than ``*_count``/``*_mean``. +#: It is not one of ``MONTHLY_WINDOW_OPERATIONS``: those average a single +#: series, and this one pairs two. +MONTHLY_WINDOW_COUNT_X_MEAN = "monthly_window_count_x_mean" +#: Ordered operand roles of ``monthly_window_count_x_mean``. +COUNT_X_MEAN_OPERAND_ROLES = ("count", "mean") ALLOWED_VALUE_OPERATIONS = frozenset( ( "identity", @@ -50,6 +61,7 @@ "latest_plateau", "count_x_mean", "scaled_by_ratio", + MONTHLY_WINDOW_COUNT_X_MEAN, *MONTHLY_WINDOW_OPERATIONS, ) ) @@ -63,6 +75,7 @@ "latest_plateau", "count_x_mean", "scaled_by_ratio", + MONTHLY_WINDOW_COUNT_X_MEAN, *MONTHLY_WINDOW_OPERATIONS, ) ) @@ -254,6 +267,8 @@ def __post_init__(self) -> None: _validate_scaled_by_ratio_operands(self.name, self.value_operands) if self.value_operation == "calendar_year_window": _validate_calendar_year_window_reference(self) + if self.value_operation == MONTHLY_WINDOW_COUNT_X_MEAN: + _validate_count_x_mean_operands(self.name, self.value_operands) if self.assertion_policy not in ALLOWED_ASSERTION_POLICIES: raise ValueError( f"LedgerTargetReference {self.name!r}: unsupported " @@ -265,7 +280,10 @@ def __post_init__(self) -> None: f"period_match_policy {self.period_match_policy!r}; expected " f"one of {sorted(ALLOWED_PERIOD_MATCH_POLICIES)!r}." ) - is_window = self.value_operation in MONTHLY_WINDOW_OPERATIONS + is_window = self.value_operation in { + *MONTHLY_WINDOW_OPERATIONS, + MONTHLY_WINDOW_COUNT_X_MEAN, + } if is_window != (self.period_match_policy == "source_window"): raise ValueError( "A monthly window operation requires the paired source_window period policy." @@ -276,7 +294,8 @@ def __post_init__(self) -> None: "A monthly window requires an explicit model target period." ) _declared_source_months(self) - _monthly_window_operands(self) + if self.value_operation in MONTHLY_WINDOW_OPERATIONS: + _monthly_window_operands(self) if self.period_match_policy == "exact" and self.period is None: raise ValueError( f"LedgerTargetReference {self.name!r}: period_match_policy=" @@ -740,6 +759,10 @@ def target_spec_from_ledger_reference( raise ValueError(f"Ledger target reference {reference.name!r} has no facts.") if reference.value_operation in MONTHLY_WINDOW_OPERATIONS: facts = _resolve_monthly_window_reference_facts(reference, list(facts)) + elif reference.value_operation == MONTHLY_WINDOW_COUNT_X_MEAN: + facts = _resolve_monthly_window_count_x_mean_reference_facts( + reference, list(facts) + ) if len(facts) > 1 and reference.value_operation not in MULTI_FACT_VALUE_OPERATIONS: raise ValueError( f"Ledger target reference {reference.name!r}: multiple Ledger facts " @@ -761,6 +784,10 @@ def target_spec_from_ledger_reference( numeric_value = numeric_values[-1] elif reference.value_operation == "count_x_mean": numeric_value = numeric_values[0] * numeric_values[1] + elif reference.value_operation == MONTHLY_WINDOW_COUNT_X_MEAN: + numeric_value, value_metadata = _monthly_window_count_x_mean_value( + reference, facts, numeric_values + ) elif reference.value_operation == "sum": numeric_value = sum(numeric_values) elif reference.value_operation == "difference": @@ -807,19 +834,25 @@ def target_spec_from_ledger_reference( else facts ) publication_metadata = dict(value_metadata) - if reference.value_operation in MONTHLY_WINDOW_OPERATIONS: + if reference.value_operation in { + *MONTHLY_WINDOW_OPERATIONS, + MONTHLY_WINDOW_COUNT_X_MEAN, + }: # The window guard has proved these identities common to every member. publication_metadata = { - key: value - for key, value in { - "ledger_source_release_key": _str_at( - representative_fact, "source_release_key" - ), - "ledger_source_sha256": _str_at( - representative_fact, "source", "source_sha256" - ), - }.items() - if value + **value_metadata, + **{ + key: value + for key, value in { + "ledger_source_release_key": _str_at( + representative_fact, "source_release_key" + ), + "ledger_source_sha256": _str_at( + representative_fact, "source", "source_sha256" + ), + }.items() + if value + }, } if not reference.measure: @@ -947,10 +980,15 @@ def _validate_fact_aggregation( reference.metadata.get("fact_aggregation") == "time_mean" and aggregation == "mean" ) - accepts_count_x_mean = ( - reference.value_operation == "count_x_mean" - and aggregation == "mean" - and _count_mean_fact_role(fact) == "mean" + accepts_count_x_mean = aggregation == "mean" and ( + ( + reference.value_operation == "count_x_mean" + and _count_mean_fact_role(fact) == "mean" + ) + or ( + reference.value_operation == MONTHLY_WINDOW_COUNT_X_MEAN + and _count_x_mean_operand_role(reference, fact) == "mean" + ) ) if ( aggregation not in SUPPORTED_LEDGER_AGGREGATIONS @@ -1701,6 +1739,10 @@ def _resolve_reference_fact( eligible_matches = _eligible_selector_matches(reference, matches) if reference.value_operation in MONTHLY_WINDOW_OPERATIONS: return _resolve_monthly_window_reference_facts(reference, eligible_matches) + if reference.value_operation == MONTHLY_WINDOW_COUNT_X_MEAN: + return _resolve_monthly_window_count_x_mean_reference_facts( + reference, eligible_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: @@ -1894,6 +1936,218 @@ def _validate_scaled_by_ratio_operands( ) +def _validate_count_x_mean_operands( + name: str, operands: tuple[Mapping[str, object], ...] +) -> None: + prefix = f"LedgerTargetReference {name!r}: {MONTHLY_WINDOW_COUNT_X_MEAN}" + roles = [ + str(operand.get("role")) if isinstance(operand, Mapping) else "" + for operand in operands + ] + if roles != list(COUNT_X_MEAN_OPERAND_ROLES): + raise ValueError( + f"{prefix} requires exactly ordered " + f"{'/'.join(COUNT_X_MEAN_OPERAND_ROLES)} operands, got {roles!r}." + ) + concepts = [] + for operand, allowed in zip( + operands, + ({"role", "concept"}, {"role", "concept", "period_factor"}), + strict=True, + ): + unsupported = set(operand) - allowed + if unsupported: + raise ValueError( + f"{prefix} operand {operand['role']!r} takes only " + f"{sorted(allowed)!r}, got {sorted(unsupported)!r}." + ) + concept = operand.get("concept") + if not isinstance(concept, str) or not concept.strip(): + raise ValueError( + f"{prefix} operand {operand['role']!r} must name its concept." + ) + concepts.append(concept) + if concepts[0] == concepts[1]: + raise ValueError(f"{prefix} count and mean must name different concepts.") + factor = operands[1].get("period_factor", 1) + if ( + isinstance(factor, bool) + or not isinstance(factor, (int, float)) + or not math.isfinite(float(factor)) + or float(factor) <= 0 + ): + raise ValueError( + f"{prefix} period_factor must be a finite positive number, got {factor!r}." + ) + + +def _count_x_mean_operand_role(reference: LedgerTargetReference, fact: object) -> str: + """The operand role whose concept the fact carries, or ``""``.""" + + concepts = {_source_measure_concept(fact), _primary_measure_concept(fact)} - {""} + roles = [ + str(operand["role"]) + for operand in reference.value_operands + if str(operand["concept"]) in concepts + ] + return roles[0] if len(roles) == 1 else "" + + +def _count_x_mean_period_factor(reference: LedgerTargetReference) -> float: + return float(reference.value_operands[1].get("period_factor", 1)) + + +def _count_x_mean_cell_key(fact: object) -> tuple[str, ...]: + """The published cell a count and its mean must share. + + Publishers file the two measures in sibling record sets + (``...age_gender_type.month2025_05`` and ``...age_gender_type.mean.month2025_05``), + so the record set is not part of the cell: its period, geography, entity, + group value, dimensions and universe are. + """ + + return ( + _source_name(fact), + _str_at(fact, "period", "type"), + _str_at(fact, "period", "value"), + _str_at(fact, "geography", "level"), + _str_at(fact, "geography", "id"), + _str_at(fact, "entity", "name"), + _str_at(fact, "layout", "groupby_value_id"), + json.dumps(_dimensions(fact), sort_keys=True, separators=(",", ":")), + json.dumps(_constraint_rows(fact), sort_keys=True, separators=(",", ":")), + _domain(fact), + ) + + +def _resolve_monthly_window_count_x_mean_reference_facts( + reference: LedgerTargetReference, + matches: list[object], +) -> tuple[object, ...]: + """One count and one mean fact per declared month, on one published cell. + + Returns them month by month, count before mean. Like the single-series + windows, the guard also runs after direct-key resolution. + """ + + months = _declared_source_months(reference) + prefix = ( + f"Ledger target reference {reference.name!r}: {MONTHLY_WINDOW_COUNT_X_MEAN}" + ) + expected_count = len(COUNT_X_MEAN_OPERAND_ROLES) * len(months) + if reference.expected_member_count not in (None, expected_count): + raise ValueError( + f"{prefix} expected_member_count disagrees with its " + f"{len(months)} declared months." + ) + grid: dict[tuple[str, str], object] = {} + series: dict[str, set[tuple[str, ...]]] = {} + for fact in matches: + if not _fact_matches_selector(fact, reference.ledger_selector): + raise ValueError(f"{prefix} resolved a fact outside its selector.") + role = _count_x_mean_operand_role(reference, fact) + if not role: + raise ValueError( + f"{prefix} selected a fact whose concept is neither operand's: " + f"{_primary_measure_concept(fact)!r}." + ) + month = _str_at(fact, "period", "value") + if _str_at(fact, "period", "type") != "month" or month not in months: + raise ValueError( + f"{prefix} selected a fact outside the declared months: {month!r}." + ) + if (month, role) in grid: + raise ValueError( + f"{prefix} matched more than one {role} fact for {month}; the " + "selector must pin one published cell." + ) + grid[(month, role)] = fact + series.setdefault(role, set()).add(_selector_period_invariant_key(fact)) + missing = [ + f"{month} {role}" + for month in months + for role in COUNT_X_MEAN_OPERAND_ROLES + if (month, role) not in grid + ] + if missing: + raise ValueError( + f"{prefix} requires one count and one mean fact for every declared " + f"month; missing {missing!r}." + ) + if any(len(keys) != 1 for keys in series.values()): + raise ValueError(f"{prefix} matched more than one series for a role.") + for month in months: + if _count_x_mean_cell_key(grid[(month, "count")]) != _count_x_mean_cell_key( + grid[(month, "mean")] + ): + raise ValueError( + f"{prefix} pairs a count and a mean from different published " + f"cells in {month}." + ) + publications = { + (_str_at(fact, "source_release_key"), _str_at(fact, "source", "source_sha256")) + for fact in grid.values() + } + if len(publications) != 1 or not all(next(iter(publications))): + raise ValueError( + f"{prefix} requires every member to come from one publication with a " + "nonempty source_release_key and source.source_sha256." + ) + return tuple( + grid[(month, role)] for month in months for role in COUNT_X_MEAN_OPERAND_ROLES + ) + + +def _monthly_window_count_x_mean_value( + reference: LedgerTargetReference, + facts: tuple[object, ...], + numeric_values: list[float], +) -> tuple[float, dict[str, str]]: + """Average over months of count x mean x period_factor, with every member.""" + + factor = _count_x_mean_period_factor(reference) + members = [] + products = [] + for index in range(0, len(facts), len(COUNT_X_MEAN_OPERAND_ROLES)): + count_fact, mean_fact = facts[index], facts[index + 1] + count, mean = numeric_values[index], numeric_values[index + 1] + if count < 0 or mean < 0: + raise ValueError( + f"Ledger target reference {reference.name!r}: " + f"{MONTHLY_WINDOW_COUNT_X_MEAN} needs a non-negative count and " + f"mean; got {count!r} and {mean!r} in " + f"{_str_at(count_fact, 'period', 'value')}." + ) + products.append(count * mean * factor) + members.append( + { + "month": _str_at(count_fact, "period", "value"), + "count": f"{count:.15g}", + "mean": f"{mean:.15g}", + "count_fact_key": _fact_key(count_fact) + or _source_record_id(count_fact), + "mean_fact_key": _fact_key(mean_fact) or _source_record_id(mean_fact), + } + ) + mean_unit = _str_at(facts[1], "observed_measure", "unit") + return sum(products) / len(products), { + "ledger_window_count_x_mean_count_concept": str( + reference.value_operands[0]["concept"] + ), + "ledger_window_count_x_mean_mean_concept": str( + reference.value_operands[1]["concept"] + ), + "ledger_window_count_x_mean_period_factor": f"{factor:.15g}", + "ledger_window_count_x_mean_members": json.dumps( + members, sort_keys=True, separators=(",", ":") + ), + # The value is count x mean x factor, not the mean fact's own unit. + "ledger_measure_unit": f"{mean_unit} x {factor:.15g}" + if mean_unit + else f"x {factor:.15g}", + } + + def _scaled_by_ratio_operand_selectors( reference: LedgerTargetReference, ) -> tuple[Mapping[str, object], ...]: @@ -2289,12 +2543,21 @@ def _monthly_window_source_key( constraint for constraint in _constraint_rows(fact) if _str_at(constraint, "variable") not in dimensions + and _str_at(constraint, "operator") not in _BAND_EDGE_OPERATORS ], sort_keys=True, ), ) +#: A summed cell may be a published band whose edges the publisher also states +#: as numeric bounds (a single year of age 66 carries ``age >= 66`` and +#: ``age < 67``). Those edges belong to the cell, like its dimension value, so +#: they differ between cells; each cell's own months are still compared on +#: every constraint by the one-series check (microcosm#1069). +_BAND_EDGE_OPERATORS = frozenset(("<", "<=", ">", ">=")) + + def _resolve_monthly_window_reference_facts( reference: LedgerTargetReference, matches: list[object], diff --git a/packages/microcosm-build/src/microcosm/build/target_materialization.py b/packages/microcosm-build/src/microcosm/build/target_materialization.py index 1a383c4c0..342d291f3 100644 --- a/packages/microcosm-build/src/microcosm/build/target_materialization.py +++ b/packages/microcosm-build/src/microcosm/build/target_materialization.py @@ -21,9 +21,10 @@ # spec carries its own band's lower edge in Ledger filter metadata. Two # encodings are in use — a numeric lower bound (HMRC SPI income bands) and a # published range label (DWP award bands, in monthly units, hence -# ``band_period_factor``) — and both reduce to one lower edge, because no -# reference anywhere declares an upper bound. A band's upper edge is its -# sibling's lower edge within the same compiled contract target. Edges must +# ``band_period_factor``) — and both reduce to one lower edge. A band's upper +# edge is its sibling's lower edge within the same compiled contract target, +# except for DWP's half-open labels ("£20.00 to under £40.00", "Under £20.00"), +# which publish their own exclusive upper edge and keep it. Edges must # never derive from an exclusion-pruned roster, or excluding a band silently # widens its lower neighbour; only the compiled register's top band runs to # infinity unless the binding declares a source-unit ``band_upper_bound``. @@ -33,13 +34,22 @@ _BAND_LOWER_BOUND_SUFFIX = "_lower_bound" _LEDGER_FILTER_PREFIX = "ledger_filter_" _RANGE_LABEL = re.compile( - r"([\d,]+(?:\.\d+)?)\s*(?:to|–|—|-)\s*(?:£\s*)?([\d,]+(?:\.\d+)?)", + r"([\d,]+(?:\.\d+)?)\s*(?:to(?:\s+under)?|–|—|-)\s*(?:£\s*)?([\d,]+(?:\.\d+)?)", re.IGNORECASE, ) _OPEN_LABEL = re.compile( r"([\d,]+(?:\.\d+)?)\s*(?:or more|or over|and over|and above|\+)", re.IGNORECASE, ) +# DWP's half-open amount bands publish their own exclusive upper edge: +# "£20.00 to under £40.00", and the bottom band "Under £20.00" (lower edge +# zero). The bottom form needs the pound sign, so an age filter such as +# "Under 25" never reads as an amount band. +_HALF_OPEN_LABEL = re.compile( + r"^\s*£?\s*([\d,]+(?:\.\d+)?)\s*to\s+under\s*£?\s*([\d,]+(?:\.\d+)?)\s*$", + re.IGNORECASE, +) +_UNDER_LABEL = re.compile(r"^\s*under\s*£\s*([\d,]+(?:\.\d+)?)\s*$", re.IGNORECASE) _MISSING_COLUMN = re.compile(r"^'(?:([a-z_0-9]+)\.)?([A-Za-z_0-9]+)'$") #: Provider kinds whose values are additionally masked by the binding's @@ -342,6 +352,9 @@ def _band_lower_edge(spec: Any, binding: Mapping[str, Any]) -> float | None: if key.endswith(_BAND_LOWER_BOUND_SUFFIX): numeric.append((key, float(str(value).replace(",", "")))) continue + if _UNDER_LABEL.match(str(value)): + labelled.append((key, 0.0)) + continue match = _RANGE_LABEL.search(str(value)) or _OPEN_LABEL.search(str(value)) if match is not None: labelled.append((key, float(match.group(1).replace(",", "")))) @@ -352,6 +365,31 @@ def _band_lower_edge(spec: Any, binding: Mapping[str, Any]) -> float | None: return None +def _band_label_upper_edge(spec: Any, binding: Mapping[str, Any]) -> float | None: + """The exclusive upper edge a half-open band label publishes, if any. + + ``"£20.00 to under £40.00"`` and ``"Under £20.00"`` state their own upper + edge, so the band never borrows it from a sibling (whose exclusion would + otherwise widen it), in model units after ``band_period_factor``. + """ + + metadata = getattr(spec, "metadata", None) or {} + factor = float(binding.get("band_period_factor", 1) or 1) + uppers: list[tuple[str, float]] = [] + for key, value in sorted(metadata.items()): + if not key.startswith(_LEDGER_FILTER_PREFIX) or key.endswith( + _BAND_LOWER_BOUND_SUFFIX + ): + continue + match = _HALF_OPEN_LABEL.match(str(value)) or _UNDER_LABEL.match(str(value)) + if match is not None: + upper = match.group(match.lastindex or 1).replace(",", "") + uppers.append((key, float(upper))) + if not uppers: + return None + return _select_band_edge(spec, binding, uppers) * factor + + def _select_band_edge( spec: Any, binding: Mapping[str, Any], @@ -451,6 +489,15 @@ def _band_bounds( if edge > lower: upper = edge break + own_upper = _band_label_upper_edge(spec, binding) + if own_upper is not None: + if not own_upper > lower: + raise ValueError( + f"banded measure {getattr(spec, 'measure', '?')!r} publishes an " + f"upper edge {own_upper!r} that is not above its lower edge " + f"{lower!r}" + ) + upper = own_upper # A consumer may bind only the finite portion of a published histogram. # Declare its source-unit ceiling instead of allowing the last included # row to absorb a separately published, unbound top-coded category. 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 fd7408d26..7b9dbf194 100644 --- a/packages/microcosm-build/src/microcosm/build/target_reference_authoring.py +++ b/packages/microcosm-build/src/microcosm/build/target_reference_authoring.py @@ -790,6 +790,7 @@ def target_references_resource( in { "monthly_window_average", "monthly_window_sum_average", + "monthly_window_count_x_mean", "linear_combination", "scaled_by_ratio", "calendar_year_window", diff --git a/packages/microcosm-build/src/microcosm/build/uk_runtime/hmrc_uprating.py b/packages/microcosm-build/src/microcosm/build/uk_runtime/hmrc_uprating.py index ae884df96..e31e36111 100644 --- a/packages/microcosm-build/src/microcosm/build/uk_runtime/hmrc_uprating.py +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/hmrc_uprating.py @@ -39,6 +39,7 @@ from microcosm.build.ledger_targets import ( CALENDAR_YEAR_WINDOW_WEIGHTS, + MONTHLY_WINDOW_COUNT_X_MEAN, LedgerTargetReference, TargetRegistry, ) @@ -49,6 +50,21 @@ "policyengine-uk parameter ratio between 1 January of the fact's opening " "year and 1 January of the calibration year (the SPI donor rebasing convention)" ) +#: The month DWP's annual uprating takes effect. The engine keys a tax-year +#: rate at 1 January of the year it opens (policyengine-uk moves the April +#: values to 1 January), so a month from April on is paid at that year's rate +#: and January to March at the previous year's. +UK_BENEFIT_UPRATING_MONTH = 4 +UK_ENGINE_MONTHLY_INDEX_BASIS = ( + "policyengine-uk parameter ratio between 1 January of the year whose rate " + "is paid in each window month (from April, that year; before, the previous " + "year) and 1 January of the calibration year, per month" +) +UK_MONTHLY_UPRATING_ADJUDICATION = ( + "microcosm#1069 R1 (María, 2026-09-30): the State Pension level binds the " + "calendar-2025 Stat-Xplore points, each put on the engine's 2025 rate " + "basis, so only the February point (paid at the 2024-25 rate) moves" +) #: The parameter paths a UK reference may name behind the prefix. One per SPI #: income component the family binds, each the index the engine itself uprates @@ -351,6 +367,16 @@ def align_hmrc_row_by_engine_index( target_year = _target_year(reference) aligned = [] for spec in registry.specs: + if reference.value_operation == MONTHLY_WINDOW_COUNT_X_MEAN: + aligned.append( + _align_monthly_count_x_mean( + spec, + parameter_path=parameter_path, + parameter_value=parameter_value, + target_year=target_year, + ) + ) + continue opening_year = _opening_year(spec, reference) _refuse_fact_after_target(spec, opening_year, target_year) if opening_year == target_year: @@ -379,6 +405,75 @@ def align_hmrc_row_by_engine_index( return TargetRegistry(aligned, country="uk") +def _engine_rate_year(month: str) -> int: + """The engine year whose 1 January value is the rate paid in ``month``.""" + + year, number = int(month[:4]), int(month[5:7]) + return year if number >= UK_BENEFIT_UPRATING_MONTH else year - 1 + + +def _align_monthly_count_x_mean( + spec: Any, + *, + parameter_path: str, + parameter_value: ParameterValue, + target_year: int, +) -> Any: + """Restate every month's mean at the calibration year's engine rate. + + A count x mean window averages points on both sides of an April uprating; + each point's mean moves by ``rate(target) / rate(paid that month)``, so + only the points paid at an earlier year's rate change (microcosm#1069 R1). + The window value moves by the count x mean weighted factor, which leaves it + exactly as compiled when every point is already at the target rate. + """ + + members = json.loads(spec.metadata["ledger_window_count_x_mean_members"]) + to_instant = f"{target_year}-01-01" + to_value = parameter_value(parameter_path, to_instant) + weighted = unweighted = 0.0 + restated = [] + for member in members: + month = str(member["month"]) + if int(month[:4]) > target_year: + raise ValueError( + f"UK target {spec.name!r}: the window month {month} falls after " + f"the calibration year {target_year}; a declared uprating never " + "moves a value backwards." + ) + from_instant = f"{_engine_rate_year(month)}-01-01" + from_value = parameter_value(parameter_path, from_instant) + factor = to_value / from_value + product = float(member["count"]) * float(member["mean"]) + weighted += product * factor + unweighted += product + restated.append( + { + **member, + "uprating_from_instant": from_instant, + "uprating_from_value": f"{from_value:.15g}", + "uprating_factor": f"{factor:.15g}", + } + ) + ratio = weighted / unweighted if unweighted else 1.0 + metadata = { + **spec.metadata, + "uprating_index": f"{UK_ENGINE_PARAMETER_INDEX_PREFIX}{parameter_path}", + "uprating_index_basis": UK_ENGINE_MONTHLY_INDEX_BASIS, + "uprating_index_parameter": parameter_path, + "uprating_index_engine": f"policyengine-uk {_engine_version()}", + "uprating_index_to_instant": to_instant, + "uprating_index_to_value": f"{to_value:.15g}", + "uprating_window_members": json.dumps( + restated, sort_keys=True, separators=(",", ":") + ), + "uprating_factor": f"{ratio:.15g}", + "ledger_value_before_alignment": f"{spec.value:.15g}", + "uprating_adjudication": UK_MONTHLY_UPRATING_ADJUDICATION, + } + return replace(spec, value=spec.value * ratio, metadata=metadata) + + def _spi_band_lower_edge(spec: Any, reference: LedgerTargetReference) -> int: key = f"{_LEDGER_FILTER_PREFIX}total_income_lower_bound" raw = str(spec.metadata.get(key) or "").replace(",", "") diff --git a/packages/microcosm-build/src/microcosm/build/uk_runtime/uc_source_periods.py b/packages/microcosm-build/src/microcosm/build/uk_runtime/uc_source_periods.py index d647964c3..0a1408823 100644 --- a/packages/microcosm-build/src/microcosm/build/uk_runtime/uc_source_periods.py +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/uc_source_periods.py @@ -16,6 +16,7 @@ from typing import Any from microcosm.build.ledger_targets import ( + MONTHLY_WINDOW_COUNT_X_MEAN, MONTHLY_WINDOW_OPERATIONS, LedgerTargetReference, ) @@ -27,9 +28,21 @@ # Housing Benefit caseload rows bound on the same calendar-2025 window, and # since the PolicyEngine/chronicle#280 lane the three ESA caseload rows, bound on the four # quarterly points DWP publishes inside calendar 2025 (February, May, August, -# November) from the payment-type cube (chronicle#282). +# November) from the payment-type cube (chronicle#282). Since microcosm#1069 +# the State Pension and Pension Credit Stat-Xplore cubes bind on the same four +# calendar-2025 points (PolicyEngine/chronicle#302 via #305). SOURCE_MONTH_FAMILIES = frozenset( - {"dwp_universal_credit", "dwp_housing_benefit", "dwp_legacy_benefits"} + { + "dwp_universal_credit", + "dwp_housing_benefit", + "dwp_legacy_benefits", + "dwp_state_pension", + "dwp_pension_credit", + } +) +#: Operations over an explicit month list; they may cross calendar years. +_EXPLICIT_WINDOW_OPERATIONS = frozenset( + {*MONTHLY_WINDOW_OPERATIONS, MONTHLY_WINDOW_COUNT_X_MEAN} ) @@ -50,7 +63,7 @@ def uc_source_month_metadata( if not valid: raise ValueError("UK UC source_months must be a non-empty YYYY-MM list.") if months != sorted(set(months)) or ( - value_operation not in MONTHLY_WINDOW_OPERATIONS + value_operation not in _EXPLICIT_WINDOW_OPERATIONS and len({month[:4] for month in months}) != 1 ): raise ValueError( @@ -74,7 +87,7 @@ def validate_uc_source_month_coverage( or reference.value_operation not in { "calendar_year_average", - *MONTHLY_WINDOW_OPERATIONS, + *_EXPLICIT_WINDOW_OPERATIONS, } ): raise ValueError( @@ -88,14 +101,16 @@ def validate_uc_source_month_coverage( "UK UC source-month coverage metadata is invalid JSON." ) from error uc_source_month_metadata(expected, value_operation=reference.value_operation) - is_window = reference.value_operation in MONTHLY_WINDOW_OPERATIONS + is_window = reference.value_operation in _EXPLICIT_WINDOW_OPERATIONS if is_window and expected != reference.ledger_selector.get("period_value"): raise ValueError( "UK UC source-month coverage metadata must equal the declared source window." ) + # A count x mean window resolves its count and its mean in every month. cells_per_month = ( len(reference.value_operands) - if reference.value_operation == "monthly_window_sum_average" + if reference.value_operation + in {"monthly_window_sum_average", MONTHLY_WINDOW_COUNT_X_MEAN} else 1 ) @@ -158,6 +173,8 @@ def validate_uc_source_month_coverage( "uk_uc_source_period_basis": ( "mean_of_declared_monthly_cell_sums" if reference.value_operation == "monthly_window_sum_average" + else "mean_of_declared_monthly_count_x_mean" + if reference.value_operation == MONTHLY_WINDOW_COUNT_X_MEAN else "mean_of_declared_months" ), }, diff --git a/packages/microcosm-build/tests/engine_free/shared/test_ledger_monthly_count_x_mean.py b/packages/microcosm-build/tests/engine_free/shared/test_ledger_monthly_count_x_mean.py new file mode 100644 index 000000000..7e896817d --- /dev/null +++ b/packages/microcosm-build/tests/engine_free/shared/test_ledger_monthly_count_x_mean.py @@ -0,0 +1,303 @@ +"""The monthly count x mean window and DWP's half-open amount bands (microcosm#1069).""" + +import json +from types import SimpleNamespace + +import pytest + +from microcosm.build.ledger_targets import ( + MONTHLY_WINDOW_COUNT_X_MEAN, + LedgerTargetReference, + compile_ledger_target_references, +) +from microcosm.build.target_materialization import ( + _band_bounds, + _band_label_upper_edge, + _band_lower_edge, +) +from test_support.microcosm_build.ledger_monthly_count_x_mean import ( + COUNT, + MEAN, + MONTHS, + statx_fact, + statx_window, + window_reference, +) + + +def test_window_averages_count_times_mean_times_the_period_factor() -> None: + counts = (12_000_000, 12_050_000, 12_100_000, 12_150_000) + means = (221.0, 230.0, 230.5, 231.0) + + registry = compile_ledger_target_references( + list(reversed(statx_window(counts, means))), [window_reference()], country="uk" + ) + + (spec,) = registry.specs + expected = sum(c * m * 52 for c, m in zip(counts, means, strict=True)) / 4 + assert spec.value == pytest.approx(expected) + assert spec.metadata["ledger_value_operation"] == MONTHLY_WINDOW_COUNT_X_MEAN + assert spec.metadata["ledger_member_fact_count"] == "8" + assert spec.metadata["ledger_window_count_x_mean_period_factor"] == "52" + assert spec.metadata["ledger_window_count_x_mean_count_concept"] == COUNT + assert spec.metadata["ledger_window_count_x_mean_mean_concept"] == MEAN + assert spec.metadata["ledger_measure_unit"] == "gbp_per_week x 52" + members = json.loads(spec.metadata["ledger_window_count_x_mean_members"]) + assert [member["month"] for member in members] == list(MONTHS) + assert float(members[0]["count"]) == counts[0] + assert float(members[0]["mean"]) == means[0] + assert spec.metadata["ledger_source_release_key"] == "stat_xplore_2026_09_29" + + +def test_window_refuses_a_month_without_its_mean() -> None: + facts = statx_window((1.0,) * 4, (2.0,) * 4) + facts = [ + fact + for fact in facts + if not (fact["period"]["value"] == "2025-08" and "mean" in str(fact["label"])) + ] + + with pytest.raises(ValueError, match=r"missing \['2025-08 mean'\]"): + compile_ledger_target_references(facts, [window_reference()], country="uk") + + +def test_window_refuses_a_count_and_mean_from_different_cells() -> None: + facts = statx_window((1.0,) * 4, (2.0,) * 4) + # Every mean describes another group, so each role is one clean series + # and only the pairing can catch it. + for fact in facts[1::2]: + fact["layout"]["groupby_value_id"] = "new_state_pension" + + with pytest.raises(ValueError, match="different published cells in 2025-02"): + compile_ledger_target_references(facts, [window_reference()], country="uk") + + +def test_window_refuses_a_role_that_changes_series_inside_the_window() -> None: + facts = statx_window((1.0,) * 4, (2.0,) * 4) + facts[3]["layout"]["groupby_value_id"] = "new_state_pension" + + with pytest.raises(ValueError, match="more than one series for a role"): + compile_ledger_target_references(facts, [window_reference()], country="uk") + + +def test_window_refuses_members_from_two_publications() -> None: + facts = statx_window((1.0,) * 4, (2.0,) * 4) + facts[-1]["source"]["source_sha256"] = "b" * 64 + + with pytest.raises(ValueError, match="one publication"): + compile_ledger_target_references(facts, [window_reference()], country="uk") + + +def test_window_refuses_a_selected_fact_of_neither_concept() -> None: + reference = window_reference( + value_operands=( + {"role": "count", "concept": "dwp.pension_credit_benefit_units"}, + {"role": "mean", "concept": MEAN, "period_factor": 52}, + ) + ) + + with pytest.raises(ValueError, match="neither operand's"): + compile_ledger_target_references( + statx_window((1.0,) * 4, (2.0,) * 4), [reference], country="uk" + ) + + +def test_window_refuses_a_count_fact_published_as_a_mean() -> None: + facts = statx_window((1.0,) * 4, (2.0,) * 4) + for fact in facts[0::2]: + fact["aggregation"] = {"method": "mean"} + + with pytest.raises(ValueError, match="unsupported aggregation"): + compile_ledger_target_references(facts, [window_reference()], country="uk") + + +@pytest.mark.parametrize( + ("operands", "match"), + [ + ( + ( + {"role": "mean", "concept": MEAN}, + {"role": "count", "concept": COUNT}, + ), + "exactly ordered count/mean", + ), + ( + ( + {"role": "count", "concept": COUNT}, + {"role": "mean", "concept": COUNT}, + ), + "different concepts", + ), + ( + ( + {"role": "count", "concept": COUNT, "period_factor": 52}, + {"role": "mean", "concept": MEAN}, + ), + "takes only", + ), + ( + ( + {"role": "count", "concept": COUNT}, + {"role": "mean", "concept": MEAN, "period_factor": 0}, + ), + "finite positive", + ), + ( + ( + {"role": "count", "concept": COUNT}, + {"role": "mean", "concept": MEAN, "period_factor": True}, + ), + "finite positive", + ), + ( + ({"role": "count", "concept": COUNT}, {"role": "mean", "concept": ""}), + "must name its concept", + ), + ], +) +def test_window_operands_are_validated_on_thewindow_reference(operands, match) -> None: + with pytest.raises(ValueError, match=match): + window_reference(value_operands=operands) + + +def _band_spec(label: str) -> SimpleNamespace: + return SimpleNamespace( + measure="dwp/state_pension/recipients_by_amount", + metadata={"ledger_filter_grouped_amount_of_benefit": label}, + ) + + +@pytest.mark.parametrize( + ("label", "lower", "upper"), + [ + ("Under £20.00", 0.0, 1_040.0), + ("£20.00 to under £40.00", 1_040.0, 2_080.0), + ("£300.00 and over", 15_600.0, None), + ("£500.01 to £600.00", 26_000.52, None), + ("Under 25", None, None), + ("Nil payment", None, None), + ("all", None, None), + ], +) +def test_half_open_amount_labels_publish_their_own_upper_edge( + label, lower, upper +) -> None: + binding = {"groupby_variable": "state_pension", "band_period_factor": 52} + + assert _band_lower_edge(_band_spec(label), binding) == ( + pytest.approx(lower) if lower is not None else None + ) + assert _band_label_upper_edge(_band_spec(label), binding) == ( + pytest.approx(upper) if upper is not None else None + ) + + +def test_a_half_open_band_keeps_its_published_edge_when_a_sibling_is_missing() -> None: + binding = {"groupby_variable": "state_pension", "band_period_factor": 52} + # The £40 to £60 band is not bound, so the sibling rule would stretch the + # £20 to £40 band up to £60. + edges = [0.0, 1_040.0, 3_120.0] + + assert _band_bounds(_band_spec("£20.00 to under £40.00"), binding, edges) == ( + pytest.approx(1_040.0), + pytest.approx(2_080.0), + ) + assert _band_bounds(_band_spec("Under £20.00"), binding, edges) == ( + 0.0, + pytest.approx(1_040.0), + ) + + +def test_window_requires_the_source_window_period_policy() -> None: + # Its months are declared, like the single-series windows, so the target + # period never re-selects them (and never holds them for uprating). + with pytest.raises(ValueError, match="paired source_window period policy"): + window_reference(period_match_policy="latest_not_after") + + +def _single_age_fact(month: str, age: int, value: float) -> dict[str, object]: + fact = statx_fact(month, "count", value, group="new_state_pension") + fact["aggregate_fact_key"] = f"{fact['aggregate_fact_key']}-{age}" + fact["semantic_fact_key"] = f"{fact['semantic_fact_key']}-{age}" + fact["dimensions"] = { + "age_bands_and_single_year": age, + "category_of_pension": "New State Pension", + } + fact["universe_constraints"] = { + "domain": "social_security", + "constraints": [ + {"variable": "age", "operator": ">=", "value": age, "unit": "years"}, + {"variable": "age", "operator": "<", "value": age + 1, "unit": "years"}, + { + "variable": "age_bands_and_single_year", + "operator": "==", + "value": age, + }, + { + "variable": "category_of_pension", + "operator": "==", + "value": "New State Pension", + }, + ], + } + return fact + + +def _single_age_window(**overrides) -> LedgerTargetReference: + return LedgerTargetReference( + name="dwp/state_pension/recipients_66_67", + ledger_selector={ + "source_name": "dwp", + "source_concept": "dwp.state_pension_caseload", + "dimension_values": { + "age_bands_and_single_year": [66, 67], + "category_of_pension": "New State Pension", + }, + "period_type": "month", + "period_value": list(MONTHS), + }, + value_operation="monthly_window_sum_average", + value_operands=tuple( + { + "dimension_values": { + "age_bands_and_single_year": age, + "category_of_pension": "New State Pension", + } + } + for age in (66, 67) + ), + period_match_policy="source_window", + entity="person", + measure="person_count", + period=2025, + family="dwp_state_pension", + **overrides, + ) + + +def test_a_sum_window_over_single_years_accepts_each_cells_published_age_edges() -> ( + None +): + facts = [ + _single_age_fact(month, age, value) + for month in MONTHS + for age, value in ((66, 100.0), (67, 50.0)) + ] + + (spec,) = compile_ledger_target_references( + facts, [_single_age_window()], country="uk" + ).specs + + assert spec.value == 150.0 + + +def test_a_sum_window_still_refuses_cells_from_different_universes() -> None: + facts = [_single_age_fact(month, age, 1.0) for month in MONTHS for age in (66, 67)] + for fact in facts: + if fact["dimensions"]["age_bands_and_single_year"] == 67: + fact["universe_constraints"]["constraints"].append( + {"variable": "residence", "operator": "==", "value": "abroad"} + ) + + with pytest.raises(ValueError, match="cells must share source publication"): + compile_ledger_target_references(facts, [_single_age_window()], country="uk") diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_pension_window_consumers.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_pension_window_consumers.py new file mode 100644 index 000000000..cafdd03d9 --- /dev/null +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_pension_window_consumers.py @@ -0,0 +1,142 @@ +"""UK consumers of the pension count x mean window (microcosm#1069, c2).""" + +import json + +import pytest + +from microcosm.build.ledger_targets import ( + MONTHLY_WINDOW_COUNT_X_MEAN, + compile_ledger_target_references, +) +from microcosm.build.uk_runtime.hmrc_uprating import ( + UK_ENGINE_PARAMETER_INDEX_PREFIX, + align_hmrc_row_by_engine_index, +) +from microcosm.build.uk_runtime.uc_source_periods import ( + EXPECTED_SOURCE_MONTHS, + SOURCE_MONTH_FAMILIES, + uc_source_month_metadata, + validate_uc_source_month_coverage, +) +from test_support.microcosm_build.ledger_monthly_count_x_mean import ( + MONTHS, + statx_window, + window_reference, +) +from tools.generate_uk_target_references import _geography_id_for_target + +NSP = "gov.dwp.state_pension.new_state_pension.amount" +NSP_INDEX = f"{UK_ENGINE_PARAMETER_INDEX_PREFIX}{NSP}" +# The engine keys each tax year's weekly rate at 1 January of the year it +# opens: 221.20 for 2024-25 and 230.25 for 2025-26. +RATES = {"2024-01-01": 221.20, "2025-01-01": 230.25} +COUNTS = (12_000_000.0, 12_050_000.0, 12_100_000.0, 12_150_000.0) +MEANS = (221.0, 230.0, 230.5, 231.0) + + +def _rate(path: str, instant: str) -> float: + assert path == NSP + return RATES[instant] + + +def _compiled(**overrides): + reference = window_reference(uprating_index=NSP_INDEX, **overrides) + registry = compile_ledger_target_references( + statx_window(COUNTS, MEANS), [reference], country="uk" + ) + return reference, registry + + +def test_each_window_month_moves_to_the_rate_the_engine_pays_in_2025() -> None: + reference, compiled = _compiled() + + (spec,) = align_hmrc_row_by_engine_index( + reference, compiled, parameter_path=NSP, parameter_value=_rate + ).specs + + # Only February is paid at the 2024-25 rate; May onwards already at 2025-26. + factors = (230.25 / 221.20, 1.0, 1.0, 1.0) + expected = ( + sum( + count * mean * 52 * factor + for count, mean, factor in zip(COUNTS, MEANS, factors, strict=True) + ) + / 4 + ) + assert spec.value == pytest.approx(expected, rel=1e-12) + members = json.loads(spec.metadata["uprating_window_members"]) + assert [member["uprating_from_instant"] for member in members] == [ + "2024-01-01", + "2025-01-01", + "2025-01-01", + "2025-01-01", + ] + assert float(members[0]["uprating_factor"]) == pytest.approx(factors[0]) + assert spec.metadata["uprating_index_to_instant"] == "2025-01-01" + assert spec.metadata["ledger_value_before_alignment"] == ( + f"{compiled.specs[0].value:.15g}" + ) + assert "R1" in spec.metadata["uprating_adjudication"] + + +def test_a_window_already_at_the_target_rate_is_unchanged() -> None: + reference, compiled = _compiled() + flat = {"2024-01-01": 230.25, "2025-01-01": 230.25} + + (spec,) = align_hmrc_row_by_engine_index( + reference, + compiled, + parameter_path=NSP, + parameter_value=lambda _path, instant: flat[instant], + ).specs + + assert spec.value == compiled.specs[0].value + assert spec.metadata["uprating_factor"] == "1" + + +def test_a_window_month_after_the_calibration_year_is_refused() -> None: + _, compiled = _compiled() + + with pytest.raises(ValueError, match="never moves a value backwards"): + align_hmrc_row_by_engine_index( + window_reference(uprating_index=NSP_INDEX, period=2024), + compiled, + parameter_path=NSP, + parameter_value=_rate, + ) + + +def test_the_pension_families_declare_their_source_months() -> None: + assert {"dwp_state_pension", "dwp_pension_credit"} <= SOURCE_MONTH_FAMILIES + metadata = uc_source_month_metadata( + list(MONTHS), value_operation=MONTHLY_WINDOW_COUNT_X_MEAN + ) + reference = window_reference(metadata=metadata) + facts = statx_window(COUNTS, MEANS) + registry = compile_ledger_target_references(facts, [reference], country="uk") + + (spec,) = validate_uc_source_month_coverage(reference, registry, facts).specs + + # Each month resolves its count and its mean. + assert spec.metadata["uk_uc_source_month_count"] == "4" + assert spec.metadata["uk_uc_source_period_basis"] == ( + "mean_of_declared_monthly_count_x_mean" + ) + assert json.loads(spec.metadata[EXPECTED_SOURCE_MONTHS]) == list(MONTHS) + + +@pytest.mark.parametrize( + ("target_id", "geography_id"), + [ + ("dfc_ni.state_pension.recipients", "N92000002"), + ("dfc_ni.pension_credit.benefit_units", "N92000002"), + ("dwp.winter_fuel_payment.recipients", "K04000001"), + ("dwp.state_pension.recipients", "K03000001"), + ], +) +def test_pension_targets_pin_their_publishers_geography( + target_id: str, geography_id: str +) -> None: + target = {"target_id": target_id, "ledger_selector": {}} + + assert _geography_id_for_target(target) == geography_id diff --git a/packages/microcosm-calibrate/src/microcosm/calibrate/geography_constants.py b/packages/microcosm-calibrate/src/microcosm/calibrate/geography_constants.py index 058cd6c94..e3e96ccb6 100644 --- a/packages/microcosm-calibrate/src/microcosm/calibrate/geography_constants.py +++ b/packages/microcosm-calibrate/src/microcosm/calibrate/geography_constants.py @@ -25,6 +25,9 @@ { "K02000001": "United Kingdom", "K03000001": "Great Britain", + # DWP's Winter Fuel Payment statistics from winter 2024-25 (Scotland + # pays its own Pension Age Winter Heating Payment). + "K04000001": "England and Wales", "E92000001": "England", "W92000004": "Wales", "S92000003": "Scotland", diff --git a/packages/microcosm-calibrate/tests/engine_free/shared/test_diagnostics.py b/packages/microcosm-calibrate/tests/engine_free/shared/test_diagnostics.py index 8ef6f5efd..614bfdb7b 100644 --- a/packages/microcosm-calibrate/tests/engine_free/shared/test_diagnostics.py +++ b/packages/microcosm-calibrate/tests/engine_free/shared/test_diagnostics.py @@ -63,6 +63,7 @@ def test_shared_geography_constant_views_are_consistent() -> None: assert dict(UK_GEOGRAPHY_ID_TO_LABEL) == { "K02000001": "United Kingdom", "K03000001": "Great Britain", + "K04000001": "England and Wales", "E92000001": "England", "W92000004": "Wales", "S92000003": "Scotland", diff --git a/test_support/microcosm_build/ledger_monthly_count_x_mean.py b/test_support/microcosm_build/ledger_monthly_count_x_mean.py new file mode 100644 index 000000000..232c2d51b --- /dev/null +++ b/test_support/microcosm_build/ledger_monthly_count_x_mean.py @@ -0,0 +1,114 @@ +"""Stat-Xplore-shaped count and mean facts for the count x mean window tests.""" + +from __future__ import annotations + +from microcosm.build.ledger_targets import ( + MONTHLY_WINDOW_COUNT_X_MEAN, + LedgerTargetReference, +) + +COUNT = "dwp.state_pension_recipients" +MEAN = "dwp.state_pension_mean_weekly_amount" +MONTHS = ("2025-02", "2025-05", "2025-08", "2025-11") + + +def statx_fact( + month: str, + role: str, + value: float, + *, + group: str = "all", + release: str = "stat_xplore_2026_09_29", + sha: str = "a" * 64, +) -> dict[str, object]: + stamp = month.replace("-", "_") + mean = role == "mean" + record_set = "dwp.statx.state_pension.type" + (".mean" if mean else "") + return { + "aggregate_fact_key": f"ledger.aggregate_fact.v2:{role}-{group}-{stamp}", + "semantic_fact_key": f"ledger.semantic_fact.v2:{role}-{group}", + "label": f"Great Britain {month} State Pension {role}", + "source_release_key": release, + "value": value, + "period": {"type": "month", "value": month}, + "geography": { + "level": "country", + "id": "K03000001", + "name": "Great Britain", + "vintage": "current", + }, + "entity": {"name": "person", "role": "claimant"}, + "observed_measure": { + "source_name": "dwp", + "source_measure_id": "mean_weekly_amount" if mean else "recipients", + "source_concept": "dwp.state_pension_mean_weekly_amount" + if mean + else "dwp.state_pension_caseload", + "unit": "gbp_per_week" if mean else "count", + }, + "concept_alignment": { + "source_concept": "dwp.state_pension_mean_weekly_amount" + if mean + else "dwp.state_pension_caseload", + "canonical_concept": MEAN if mean else COUNT, + "relation": "source_label", + "authority": "dwp", + }, + "aggregation": {"method": "mean" if mean else "sum"}, + "source": { + "source_name": "dwp", + "source_table": "State Pension caseload and mean weekly amount", + "source_file": "state_pension_by_type.json", + "source_sha256": sha, + "vintage": "stat_xplore_2026_09_29", + }, + "dimensions": {"category_of_pension": group}, + "universe_constraints": {"domain": "social_security"}, + "layout": { + "record_set_id": f"{record_set}.month{stamp}", + "record_set_spec_id": f"{record_set}.month{stamp}.v1", + "groupby_dimension": "dwp.state_pension_type", + "groupby_value_id": group, + "measure_id": "mean_weekly_amount" if mean else "recipients", + }, + } + + +def statx_window(counts, means, **kwargs) -> list[dict[str, object]]: + return [ + fact + for month, count, mean in zip(MONTHS, counts, means, strict=True) + for fact in ( + statx_fact(month, "count", count, **kwargs), + statx_fact(month, "mean", mean, **kwargs), + ) + ] + + +def window_reference(**overrides) -> LedgerTargetReference: + fields = { + "name": "dwp/state_pension/amount", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload", + "dwp.state_pension_mean_weekly_amount", + ], + "geography_id": "K03000001", + "dimension_values": {"category_of_pension": "all"}, + "period_type": "month", + "period_value": list(MONTHS), + }, + "value_operation": MONTHLY_WINDOW_COUNT_X_MEAN, + "period_match_policy": "source_window", + "value_operands": ( + {"role": "count", "concept": COUNT}, + {"role": "mean", "concept": MEAN, "period_factor": 52}, + ), + "entity": "person", + "measure": "state_pension", + "period": 2025, + "family": "dwp_state_pension", + } + fields.update(overrides) + return LedgerTargetReference(**fields) diff --git a/tools/generate_uk_target_references.py b/tools/generate_uk_target_references.py index 06ca40871..1998e5902 100644 --- a/tools/generate_uk_target_references.py +++ b/tools/generate_uk_target_references.py @@ -34,6 +34,7 @@ UK_GEOGRAPHY_IDS = { "uk": "K02000001", "great_britain": "K03000001", + "england_and_wales": "K04000001", "england": "E92000001", "scotland": "S92000003", "wales": "W92000004", @@ -435,6 +436,14 @@ def _geography_composition( ("welshgov.", "wales"), ("nithc.", "northern_ireland"), ("dfi_ni.", "northern_ireland"), + # Northern Ireland's State Pension and Pension Credit come from DfC, not + # DWP (Chronicle stamps them N92000002); the substring rule sees no nation + # in "dfc_ni" (microcosm#1069). + ("dfc_ni.", "northern_ireland"), + # Scotland replaced Winter Fuel Payment with its Pension Age Winter + # Heating Payment from winter 2024-25, so DWP publishes the 2024-25 and + # 2025-26 statistics for England and Wales (K04000001) only (microcosm#1069). + ("dwp.winter_fuel_payment.", "england_and_wales"), ) # 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 From 5aab4fae8f74f27f05224ad087560a702717c52a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20Juaristi?= <127882282+juaristi22@users.noreply.github.com> Date: Wed, 30 Sep 2026 19:23:14 +0100 Subject: [PATCH 04/22] Bind the UK resident State Pension on the national surface (#1069 c3) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The contract gains 26 targets in the new dwp_state_pension family, which compile to 60 references. They come from the DWP Stat-Xplore and DfC NI facts of PolicyEngine/chronicle#302 (via #305), on the calendar-2025 window of four quarterly points (ruling R1). - Level: Great Britain residents' recipients (12.05m) and amount (£138.6bn, recipients times the mean weekly amount times 52, restated per point at the engine's 2025 rate), plus Northern Ireland (0.33m and £3.7bn). - Age: recipients by age band x sex x type, summed over the published single years. Only the cells DWP populates are bound, because the type follows the State Pension age date. - Area: recipients by type in the nine English regions, as a region-tier fan-out pinned to England. Scotland and Wales are their own rows, because DWP has no Northern Ireland cell for a twelve-area tier. - Weekly amount: recipients by weekly amount band x type, on the May to November points DWP pays at the 2025-26 rate. The detail measure pin leaves out the publisher's 'all' margin row. Also in this commit: - The dfc_ni provider and the two State Pension categories, so the local references restate the hierarchy. - A dwp_state_pension fan-out outcome in the generator. - Active national references move from 1152 to 1212. The 2025 incumbent parity receipt gains 60 ledger-only rows; the 2023 surface gains 58 (the two amounts cannot move from 2025 back to 2023). - A feed-gated test that the age and area shapes each partition the Great Britain caseload. Co-Authored-By: Claude Opus 5.5 --- .../uk-state-pension-targets-1069.added.md | 8 + ...ity_incumbent_2025_signed_differences.json | 426 +- ...ty_production_2023_signed_differences.json | 412 +- .../build/uk/local_target_references.json | 11 + .../build/uk/target_reference_membership.json | 1104 ++++- .../microcosm/build/uk/target_references.json | 3035 +++++++++++++ .../build/uk/uk_population_targets.json | 3746 ++++++++++++++++- .../engine_free/shared/test_country_spec.py | 5 +- .../uk/test_uk_national_calibration.py | 2 +- .../uk/test_uk_population_targets.py | 16 +- .../uk/test_uk_state_pension_targets.py | 214 + .../uk/test_uk_target_references.py | 25 +- .../uk/test_uk_uc_source_periods.py | 21 +- tools/generate_uk_target_references.py | 12 + 14 files changed, 8970 insertions(+), 67 deletions(-) create mode 100644 changelog.d/uk-state-pension-targets-1069.added.md create mode 100644 packages/microcosm-build/tests/engine_free/uk/test_uk_state_pension_targets.py diff --git a/changelog.d/uk-state-pension-targets-1069.added.md b/changelog.d/uk-state-pension-targets-1069.added.md new file mode 100644 index 000000000..6099c9a82 --- /dev/null +++ b/changelog.d/uk-state-pension-targets-1069.added.md @@ -0,0 +1,8 @@ +Bind the UK resident State Pension on the national surface (microcosm#1069 c3; PolicyEngine/chronicle#302 via #305). The calendar-2025 window is the mean of the four quarterly Stat-Xplore points (February, May, August and November 2025). There are 26 contract targets, compiling to 60 references in the new `dwp_state_pension` family. + +- **Level:** Great Britain residents' recipients (12.05m) and amount (£138.6bn), plus Northern Ireland from DfC (0.33m and £3.7bn). The amounts are recipients times the mean weekly amount times 52, restated per point at the engine's 2025 rate. +- **Age:** recipients by age band (66–69 to 90 and over) × sex × State Pension type, binding only the cells DWP populates. Type follows the State Pension age date, so 66–69 is all new State Pension and 75 and over all pre-2016. +- **Area:** recipients by type in the nine English regions (a region-tier fan-out pinned to England), with Scotland and Wales as their own rows. +- **Weekly amount:** recipients by weekly amount band × type. These keep only the May–November points, which DWP pays at the 2025-26 rate the engine pays. + +The contract gains the `dfc_ni` provider and the two State Pension categories, so the local references restate the hierarchy. 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 475c61706..ad49a2308 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": 1152, + "compiled_count": 1212, "counts_by_kind": { "calibration_drift": 555, "fixture_only": 53, - "ledger_only": 568 + "ledger_only": 628 }, - "difference_count": 1176, + "difference_count": 1236, "differences": [ { "fixture_value": 1608000.0, @@ -378,6 +378,20 @@ "period": 2025, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, + { + "kind": "ledger_only", + "ledger_value": 3710881810.1898503, + "name": "dfc_ni.state_pension.amount", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 330147.5, + "name": "dfc_ni.state_pension.recipients", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, { "kind": "ledger_only", "ledger_value": 95031.0, @@ -553,6 +567,412 @@ "period": 2025, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, + { + "kind": "ledger_only", + "ledger_value": 138623908111.01526, + "name": "dwp.state_pension.amount", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 12052874.0, + "name": "dwp.state_pension.recipients", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 1388613.5, + "name": "dwp.state_pension.recipients_female_66_69_new", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 717078.5, + "name": "dwp.state_pension.recipients_female_70_74_new", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 822163.0, + "name": "dwp.state_pension.recipients_female_70_74_pre_2016", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 1502398.25, + "name": "dwp.state_pension.recipients_female_75_79_pre_2016", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 1016169.75, + "name": "dwp.state_pension.recipients_female_80_84_pre_2016", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 644697.25, + "name": "dwp.state_pension.recipients_female_85_89_pre_2016", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 404408.75, + "name": "dwp.state_pension.recipients_female_90_plus_pre_2016", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 1323018.25, + "name": "dwp.state_pension.recipients_male_66_69_new", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 1222116.75, + "name": "dwp.state_pension.recipients_male_70_74_new", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 194617.75, + "name": "dwp.state_pension.recipients_male_70_74_pre_2016", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 1333148.5, + "name": "dwp.state_pension.recipients_male_75_79_pre_2016", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 823789.0, + "name": "dwp.state_pension.recipients_male_80_84_pre_2016", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 452540.25, + "name": "dwp.state_pension.recipients_male_85_89_pre_2016", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 207357.5, + "name": "dwp.state_pension.recipients_male_90_plus_pre_2016", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 221933.75, + "name": "dwp.state_pension.recipients_new_by_english_region@E12000001", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 542356.0, + "name": "dwp.state_pension.recipients_new_by_english_region@E12000002", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 406034.0, + "name": "dwp.state_pension.recipients_new_by_english_region@E12000003", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 363537.75, + "name": "dwp.state_pension.recipients_new_by_english_region@E12000004", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 416229.75, + "name": "dwp.state_pension.recipients_new_by_english_region@E12000005", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 457239.25, + "name": "dwp.state_pension.recipients_new_by_english_region@E12000006", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 421776.5, + "name": "dwp.state_pension.recipients_new_by_english_region@E12000007", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 658266.75, + "name": "dwp.state_pension.recipients_new_by_english_region@E12000008", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 464841.0, + "name": "dwp.state_pension.recipients_new_by_english_region@E12000009", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 124804.0, + "name": "dwp.state_pension.recipients_new_by_weekly_amount.100_00_to_under_150_00__new_state_pension", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 661720.6666666666, + "name": "dwp.state_pension.recipients_new_by_weekly_amount.150_00_to_under_200_00__new_state_pension", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 3390794.6666666665, + "name": "dwp.state_pension.recipients_new_by_weekly_amount.200_00_to_under_250_00__new_state_pension", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 2481.3333333333335, + "name": "dwp.state_pension.recipients_new_by_weekly_amount.20_00_to_under_40_00__new_state_pension", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 433550.3333333333, + "name": "dwp.state_pension.recipients_new_by_weekly_amount.250_00_to_under_300_00__new_state_pension", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 64770.0, + "name": "dwp.state_pension.recipients_new_by_weekly_amount.300_00_and_over__new_state_pension", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 2903.0, + "name": "dwp.state_pension.recipients_new_by_weekly_amount.40_00_to_under_60_00__new_state_pension", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 24329.333333333332, + "name": "dwp.state_pension.recipients_new_by_weekly_amount.60_00_to_under_80_00__new_state_pension", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 31134.333333333332, + "name": "dwp.state_pension.recipients_new_by_weekly_amount.80_00_to_under_100_00__new_state_pension", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 2401.3333333333335, + "name": "dwp.state_pension.recipients_new_by_weekly_amount.under_20_00__new_state_pension", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 445194.0, + "name": "dwp.state_pension.recipients_new_scotland", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 253534.75, + "name": "dwp.state_pension.recipients_new_wales", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 324237.75, + "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000001", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 835347.75, + "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000002", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 631830.75, + "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000003", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 586131.0, + "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000004", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 682017.5, + "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000005", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 782615.75, + "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000006", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 593093.25, + "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000007", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 1134987.25, + "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000008", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 806881.5, + "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000009", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 880177.3333333334, + "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.100_00_to_under_150_00__pre_2016_state_pension", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 1589409.6666666667, + "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.150_00_to_under_200_00__pre_2016_state_pension", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 2730401.3333333335, + "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.200_00_to_under_250_00__pre_2016_state_pension", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 8063.0, + "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.20_00_to_under_40_00__pre_2016_state_pension", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 1338030.3333333333, + "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.250_00_to_under_300_00__pre_2016_state_pension", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 737995.6666666666, + "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.300_00_and_over__pre_2016_state_pension", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 12135.666666666666, + "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.40_00_to_under_60_00__pre_2016_state_pension", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 17155.0, + "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.60_00_to_under_80_00__pre_2016_state_pension", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 23048.0, + "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.80_00_to_under_100_00__pre_2016_state_pension", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 12621.333333333334, + "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.under_20_00__pre_2016_state_pension", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 621000.25, + "name": "dwp.state_pension.recipients_pre_2016_scotland", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 403793.0, + "name": "dwp.state_pension.recipients_pre_2016_wales", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, { "kind": "ledger_only", "ledger_value": 1078514.5, 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 054da968c..65c7d5117 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": 842, + "compiled_count": 900, "counts_by_kind": { "calibration_drift": 120, "fixture_only": 17, - "ledger_only": 710 + "ledger_only": 768 }, - "difference_count": 847, + "difference_count": 905, "differences": [ { "fixture_value": 82000.0, @@ -126,6 +126,13 @@ "period": 2023, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, + { + "kind": "ledger_only", + "ledger_value": 330147.5, + "name": "dfc_ni.state_pension.recipients", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, { "kind": "ledger_only", "ledger_value": 124211.0, @@ -217,6 +224,405 @@ "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, + { + "kind": "ledger_only", + "ledger_value": 12052874.0, + "name": "dwp.state_pension.recipients", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 1388613.5, + "name": "dwp.state_pension.recipients_female_66_69_new", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 717078.5, + "name": "dwp.state_pension.recipients_female_70_74_new", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 822163.0, + "name": "dwp.state_pension.recipients_female_70_74_pre_2016", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 1502398.25, + "name": "dwp.state_pension.recipients_female_75_79_pre_2016", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 1016169.75, + "name": "dwp.state_pension.recipients_female_80_84_pre_2016", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 644697.25, + "name": "dwp.state_pension.recipients_female_85_89_pre_2016", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 404408.75, + "name": "dwp.state_pension.recipients_female_90_plus_pre_2016", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 1323018.25, + "name": "dwp.state_pension.recipients_male_66_69_new", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 1222116.75, + "name": "dwp.state_pension.recipients_male_70_74_new", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 194617.75, + "name": "dwp.state_pension.recipients_male_70_74_pre_2016", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 1333148.5, + "name": "dwp.state_pension.recipients_male_75_79_pre_2016", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 823789.0, + "name": "dwp.state_pension.recipients_male_80_84_pre_2016", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 452540.25, + "name": "dwp.state_pension.recipients_male_85_89_pre_2016", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 207357.5, + "name": "dwp.state_pension.recipients_male_90_plus_pre_2016", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 221933.75, + "name": "dwp.state_pension.recipients_new_by_english_region@E12000001", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 542356.0, + "name": "dwp.state_pension.recipients_new_by_english_region@E12000002", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 406034.0, + "name": "dwp.state_pension.recipients_new_by_english_region@E12000003", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 363537.75, + "name": "dwp.state_pension.recipients_new_by_english_region@E12000004", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 416229.75, + "name": "dwp.state_pension.recipients_new_by_english_region@E12000005", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 457239.25, + "name": "dwp.state_pension.recipients_new_by_english_region@E12000006", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 421776.5, + "name": "dwp.state_pension.recipients_new_by_english_region@E12000007", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 658266.75, + "name": "dwp.state_pension.recipients_new_by_english_region@E12000008", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 464841.0, + "name": "dwp.state_pension.recipients_new_by_english_region@E12000009", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 124804.0, + "name": "dwp.state_pension.recipients_new_by_weekly_amount.100_00_to_under_150_00__new_state_pension", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 661720.6666666666, + "name": "dwp.state_pension.recipients_new_by_weekly_amount.150_00_to_under_200_00__new_state_pension", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 3390794.6666666665, + "name": "dwp.state_pension.recipients_new_by_weekly_amount.200_00_to_under_250_00__new_state_pension", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 2481.3333333333335, + "name": "dwp.state_pension.recipients_new_by_weekly_amount.20_00_to_under_40_00__new_state_pension", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 433550.3333333333, + "name": "dwp.state_pension.recipients_new_by_weekly_amount.250_00_to_under_300_00__new_state_pension", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 64770.0, + "name": "dwp.state_pension.recipients_new_by_weekly_amount.300_00_and_over__new_state_pension", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 2903.0, + "name": "dwp.state_pension.recipients_new_by_weekly_amount.40_00_to_under_60_00__new_state_pension", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 24329.333333333332, + "name": "dwp.state_pension.recipients_new_by_weekly_amount.60_00_to_under_80_00__new_state_pension", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 31134.333333333332, + "name": "dwp.state_pension.recipients_new_by_weekly_amount.80_00_to_under_100_00__new_state_pension", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 2401.3333333333335, + "name": "dwp.state_pension.recipients_new_by_weekly_amount.under_20_00__new_state_pension", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 445194.0, + "name": "dwp.state_pension.recipients_new_scotland", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 253534.75, + "name": "dwp.state_pension.recipients_new_wales", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 324237.75, + "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000001", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 835347.75, + "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000002", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 631830.75, + "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000003", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 586131.0, + "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000004", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 682017.5, + "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000005", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 782615.75, + "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000006", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 593093.25, + "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000007", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 1134987.25, + "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000008", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 806881.5, + "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000009", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 880177.3333333334, + "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.100_00_to_under_150_00__pre_2016_state_pension", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 1589409.6666666667, + "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.150_00_to_under_200_00__pre_2016_state_pension", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 2730401.3333333335, + "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.200_00_to_under_250_00__pre_2016_state_pension", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 8063.0, + "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.20_00_to_under_40_00__pre_2016_state_pension", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 1338030.3333333333, + "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.250_00_to_under_300_00__pre_2016_state_pension", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 737995.6666666666, + "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.300_00_and_over__pre_2016_state_pension", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 12135.666666666666, + "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.40_00_to_under_60_00__pre_2016_state_pension", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 17155.0, + "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.60_00_to_under_80_00__pre_2016_state_pension", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 23048.0, + "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.80_00_to_under_100_00__pre_2016_state_pension", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 12621.333333333334, + "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.under_20_00__pre_2016_state_pension", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 621000.25, + "name": "dwp.state_pension.recipients_pre_2016_scotland", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 403793.0, + "name": "dwp.state_pension.recipients_pre_2016_wales", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, { "kind": "ledger_only", "ledger_value": 6197311.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 d4becbb06..6d0ae7b34 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 @@ -48,6 +48,9 @@ }, "mhclg": { "label": "Ministry of Housing, Communities and Local Government" + }, + "dfc_ni": { + "label": "Department for Communities (Northern Ireland)" } }, "categories": { @@ -206,6 +209,14 @@ "hmrc.income_tax_liabilities_statistics": { "provider_id": "hmrc", "label": "Income Tax liabilities statistics" + }, + "dwp.state_pension": { + "provider_id": "dwp", + "label": "State Pension" + }, + "dfc_ni.state_pension": { + "provider_id": "dfc_ni", + "label": "State Pension" } }, "target_categories": { 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 91efd90ba..749a3b2b2 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/target_reference_membership.json +++ b/packages/microcosm-build/src/microcosm/build/uk/target_reference_membership.json @@ -1,11 +1,11 @@ { "source_fact_feed": "chronicle-uk-825406f9-consumer-facts", "target_period": 2025, - "candidate_count": 1174, - "contract_target_count": 295, - "active_reference_count": 1152, + "candidate_count": 1234, + "contract_target_count": 321, + "active_reference_count": 1212, "status_counts": { - "active": 1152, + "active": 1212, "no_fact_at_or_before_period": 7, "signed_excluded": 15 }, @@ -3823,6 +3823,182 @@ "geography_id": "N92000002" } ] + }, + "dwp.state_pension.recipients": { + "geography_level": "country", + "geography_id": "K03000001" + }, + "dwp.state_pension.amount": { + "geography_level": "country", + "geography_id": "K03000001" + }, + "dfc_ni.state_pension.recipients": { + "geography_level": "country", + "geography_id": "N92000002" + }, + "dfc_ni.state_pension.amount": { + "geography_level": "country", + "geography_id": "N92000002" + }, + "dwp.state_pension.recipients_male_66_69_new": { + "geography_level": "country", + "geography_id": "K03000001" + }, + "dwp.state_pension.recipients_female_66_69_new": { + "geography_level": "country", + "geography_id": "K03000001" + }, + "dwp.state_pension.recipients_male_70_74_new": { + "geography_level": "country", + "geography_id": "K03000001" + }, + "dwp.state_pension.recipients_male_70_74_pre_2016": { + "geography_level": "country", + "geography_id": "K03000001" + }, + "dwp.state_pension.recipients_female_70_74_new": { + "geography_level": "country", + "geography_id": "K03000001" + }, + "dwp.state_pension.recipients_female_70_74_pre_2016": { + "geography_level": "country", + "geography_id": "K03000001" + }, + "dwp.state_pension.recipients_male_75_79_pre_2016": { + "geography_level": "country", + "geography_id": "K03000001" + }, + "dwp.state_pension.recipients_female_75_79_pre_2016": { + "geography_level": "country", + "geography_id": "K03000001" + }, + "dwp.state_pension.recipients_male_80_84_pre_2016": { + "geography_level": "country", + "geography_id": "K03000001" + }, + "dwp.state_pension.recipients_female_80_84_pre_2016": { + "geography_level": "country", + "geography_id": "K03000001" + }, + "dwp.state_pension.recipients_male_85_89_pre_2016": { + "geography_level": "country", + "geography_id": "K03000001" + }, + "dwp.state_pension.recipients_female_85_89_pre_2016": { + "geography_level": "country", + "geography_id": "K03000001" + }, + "dwp.state_pension.recipients_male_90_plus_pre_2016": { + "geography_level": "country", + "geography_id": "K03000001" + }, + "dwp.state_pension.recipients_female_90_plus_pre_2016": { + "geography_level": "country", + "geography_id": "K03000001" + }, + "dwp.state_pension.recipients_new_by_english_region": { + "geography_fanout": [ + { + "geography_level": "region", + "geography_id": "E12000001" + }, + { + "geography_level": "region", + "geography_id": "E12000002" + }, + { + "geography_level": "region", + "geography_id": "E12000003" + }, + { + "geography_level": "region", + "geography_id": "E12000004" + }, + { + "geography_level": "region", + "geography_id": "E12000005" + }, + { + "geography_level": "region", + "geography_id": "E12000006" + }, + { + "geography_level": "region", + "geography_id": "E12000007" + }, + { + "geography_level": "region", + "geography_id": "E12000008" + }, + { + "geography_level": "region", + "geography_id": "E12000009" + } + ] + }, + "dwp.state_pension.recipients_new_scotland": { + "geography_level": "country", + "geography_id": "S92000003" + }, + "dwp.state_pension.recipients_new_wales": { + "geography_level": "country", + "geography_id": "W92000004" + }, + "dwp.state_pension.recipients_pre_2016_by_english_region": { + "geography_fanout": [ + { + "geography_level": "region", + "geography_id": "E12000001" + }, + { + "geography_level": "region", + "geography_id": "E12000002" + }, + { + "geography_level": "region", + "geography_id": "E12000003" + }, + { + "geography_level": "region", + "geography_id": "E12000004" + }, + { + "geography_level": "region", + "geography_id": "E12000005" + }, + { + "geography_level": "region", + "geography_id": "E12000006" + }, + { + "geography_level": "region", + "geography_id": "E12000007" + }, + { + "geography_level": "region", + "geography_id": "E12000008" + }, + { + "geography_level": "region", + "geography_id": "E12000009" + } + ] + }, + "dwp.state_pension.recipients_pre_2016_scotland": { + "geography_level": "country", + "geography_id": "S92000003" + }, + "dwp.state_pension.recipients_pre_2016_wales": { + "geography_level": "country", + "geography_id": "W92000004" + }, + "dwp.state_pension.recipients_new_by_weekly_amount": { + "geography_level": "country", + "geography_id": "K03000001" + }, + "dwp.state_pension.recipients_pre_2016_by_weekly_amount": { + "geography_level": "country", + "geography_id": "K03000001" } }, "genuine_sum_residue": [ @@ -27781,51 +27957,893 @@ } } ] - } - }, - "fanout_family_outcomes": [ - { - "family": "hmrc_spi", - "status": "active_with_signed_property_amount_exclusion", - "active_reference_count": 169, - "signed_rationale": "SPI income-band targets fan out by strict total-income-band dimension pins, except the HMRC property-income amount surface. Those 13 rows are signed out because Ledger carries the official SPI Table 3.7 net property-income amounts, while the incumbent target applies the populace-side x1.9 property-income undercount adjustment traced to policyengine-uk-data PR #311 / issue #230 and HMRC Property Rental Income Statistics." }, - { - "family": "hmrc_itl", - "status": "active_calendar_year_window_anchors", - "active_reference_count": 33, - "signed_rationale": "The three HMRC Income Tax liabilities statistics targets (Income Tax payers, total income and Income Tax liabilities by eleven total-income bands, Table 2.5, July 2026) fan out by strict total-income-band pins and bind at the calendar-2025 window of HMRC's 2024-25 and 2025-26 source projections (three twelfths and nine twelfths; PolicyEngine/chronicle#280 lane, Mar\u00eda's ruling of 2026-09-22). They are the calibration-year anchors the SPI component bands lack; the OBR fiscal-year receipts row stays bound beside them." + "dwp.state_pension.recipients": { + "status": "active", + "candidates": [ + { + "name": "dwp.state_pension.recipients", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 4, + "matched_fact_count_in_source_window": 4, + "resolved_period": 2025, + "resolved_value": 12052874.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_f2e868eab6a5afc6f73ccfae" + } + ] }, - { - "family": "hmrc_spi_region", - "status": "active_region_tier_fanout_uprated", - "active_reference_count": 360, - "signed_rationale": "The thirty SPI 2023-24 Table 3.11 targets (Income Tax payers, total income and Income Tax liabilities by ten regional total-income bands) fan out over the twelve-area region tier (microcosm#905), one reference per area scoped by the household-region predicate, each row moved to the calendar-2025 calibration period by HMRC's own projected growth for the measure in the Table 2.5 band(s) the regional band spans (Income Tax liabilities statistics, July 2026; PolicyEngine/chronicle#280 lane). The publisher's regional bands stop at 200,000 and over, so that row takes the window over the 200k-500k, 500k-1m, 1m-2m and 2m+ bands together." + "dwp.state_pension.amount": { + "status": "active", + "candidates": [ + { + "name": "dwp.state_pension.amount", + "status": "active", + "matched_fact_count_overall": 8, + "matched_fact_count_at_or_before_period": 8, + "matched_fact_count_in_source_window": 8, + "resolved_period": 2025, + "resolved_value": 138623908111.01526, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_040841c571b5743340438be9", + "uprating": { + "index": "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount", + "factor": "1.00984637199515", + "value_before_uprating": "137272274234.284" + } + } + ] }, - { - "family": "dwp_universal_credit", - "status": "active_with_unmapped_vintage_residue_skipped", - "active_reference_count": 100, - "skipped_unmapped_fact_count": 12, - "signed_rationale": "UC payment-distribution targets fan out over family_type and monthly_award_amount_bands into incumbent-compatible annual-payment rows. The four source-only 'No payment' facts and eight overlapping source-only 'or over' facts are left out; no active reference may use the legacy nan_to_nan band name." + "dfc_ni.state_pension.recipients": { + "status": "active", + "candidates": [ + { + "name": "dfc_ni.state_pension.recipients", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 4, + "matched_fact_count_in_source_window": 4, + "resolved_period": 2025, + "resolved_value": 330147.5, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_d4760fdd674487fca8e784e2" + } + ] }, - { - "family": "council_tax_stock", - "status": "active_declared_rows", - "active_reference_count": 100, - "signed_rationale": "MHCLG council taxbase (England), Welsh Government CT1 (Wales) and Scottish Government CTAXBASE (Scotland) council-tax stock bands are declared as explicit target rows per band plus total (England and Scotland A-H, Wales A-I). The Welsh and Scottish rows resolve with their country-level geography and band pin; the English rows fan out over the nine English regions of the region tier (microcosm#905), each cell composed as the linear combination of the billing-authority facts the crosswalk places in that region (microcosm#929)." + "dfc_ni.state_pension.amount": { + "status": "active", + "candidates": [ + { + "name": "dfc_ni.state_pension.amount", + "status": "active", + "matched_fact_count_overall": 8, + "matched_fact_count_at_or_before_period": 8, + "matched_fact_count_in_source_window": 8, + "resolved_period": 2025, + "resolved_value": 3710881810.1898503, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_7d24b9929753d6b31c53cce4", + "uprating": { + "index": "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount", + "factor": "1.0098105097383", + "value_before_uprating": "3674829856.1" + } + } + ] }, - { - "family": "hmrc_cgt", - "status": "active_with_row_level_signed_exclusions", - "active_reference_count": 102, - "signed_rationale": "The FY2024-25 individual CGT observations fan out five ways (microcosm#725, #467, #1014): Table 6 age bands as dimension rows (the 0-15 band and the all-ages total are signed out row by row), Table 5 country/region cells over the twelve-area region tier restated on the individuals basis by the Table 1 share through the scaled_by_ratio operation, Table 2.1a size-of-gain bands under the incumbent banded names (the 0-2,999 band below the 2024 annual exempt amount is signed out), Table 4.1 Business Asset Disposal Relief and Investors' Relief claimants and qualifying gains by band of qualifying gain (the individuals total row, which restates the eight bands, is signed out), and Table 3's all-gains taxpayers and gains by taxable-income band, measured on the taxable income the engine's CGT formula stacks gains on and named by that band (the joint cells stay fenced). Chronicle's Table 2.1a package emits taxpayers and gains only, although the published sheet also carries an amounts-of-tax column, so liability binds nationally and by age band; a liability-by-size-of-gain family becomes possible once Chronicle emits that column." + "dwp.state_pension.recipients_male_66_69_new": { + "status": "active", + "candidates": [ + { + "name": "dwp.state_pension.recipients_male_66_69_new", + "status": "active", + "matched_fact_count_overall": 16, + "matched_fact_count_at_or_before_period": 16, + "matched_fact_count_in_source_window": 16, + "resolved_period": 2025, + "resolved_value": 1323018.25, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_f90d42d3b41d1cd122e1bc96" + } + ] }, - { - "family": "ons_population", - "status": "active_region_tier_fanout", - "active_reference_count": 108, - "signed_rationale": "The nine ONS population-by-age-band targets fan out over the twelve-area region tier (nine English regions at Chronicle's region level, Wales, Scotland and Northern Ireland at country level), one reference per area, each scoped on the spine by a household-region predicate and placed at the region grain of the cross-grain rule (microcosm#905). The former single UK-wide row per band is retired: the tier sums to it within the same publication." + "dwp.state_pension.recipients_female_66_69_new": { + "status": "active", + "candidates": [ + { + "name": "dwp.state_pension.recipients_female_66_69_new", + "status": "active", + "matched_fact_count_overall": 16, + "matched_fact_count_at_or_before_period": 16, + "matched_fact_count_in_source_window": 16, + "resolved_period": 2025, + "resolved_value": 1388613.5, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_c5cbedb94e282e12f237204e" + } + ] + }, + "dwp.state_pension.recipients_male_70_74_new": { + "status": "active", + "candidates": [ + { + "name": "dwp.state_pension.recipients_male_70_74_new", + "status": "active", + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "matched_fact_count_in_source_window": 20, + "resolved_period": 2025, + "resolved_value": 1222116.75, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_1d6c387978c7dcb31a3eb2f9" + } + ] + }, + "dwp.state_pension.recipients_male_70_74_pre_2016": { + "status": "active", + "candidates": [ + { + "name": "dwp.state_pension.recipients_male_70_74_pre_2016", + "status": "active", + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "matched_fact_count_in_source_window": 20, + "resolved_period": 2025, + "resolved_value": 194617.75, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_d2f0b8ce001fffdaf3af3d1c" + } + ] + }, + "dwp.state_pension.recipients_female_70_74_new": { + "status": "active", + "candidates": [ + { + "name": "dwp.state_pension.recipients_female_70_74_new", + "status": "active", + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "matched_fact_count_in_source_window": 20, + "resolved_period": 2025, + "resolved_value": 717078.5, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_5f23bd5308686d3879b58097" + } + ] + }, + "dwp.state_pension.recipients_female_70_74_pre_2016": { + "status": "active", + "candidates": [ + { + "name": "dwp.state_pension.recipients_female_70_74_pre_2016", + "status": "active", + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "matched_fact_count_in_source_window": 20, + "resolved_period": 2025, + "resolved_value": 822163.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_2b52033f8fc2c92f545c5472" + } + ] + }, + "dwp.state_pension.recipients_male_75_79_pre_2016": { + "status": "active", + "candidates": [ + { + "name": "dwp.state_pension.recipients_male_75_79_pre_2016", + "status": "active", + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "matched_fact_count_in_source_window": 20, + "resolved_period": 2025, + "resolved_value": 1333148.5, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_f1e0302e9fb24b411cf7acaa" + } + ] + }, + "dwp.state_pension.recipients_female_75_79_pre_2016": { + "status": "active", + "candidates": [ + { + "name": "dwp.state_pension.recipients_female_75_79_pre_2016", + "status": "active", + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "matched_fact_count_in_source_window": 20, + "resolved_period": 2025, + "resolved_value": 1502398.25, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_b0e7ea9a1c711aa2cd974913" + } + ] + }, + "dwp.state_pension.recipients_male_80_84_pre_2016": { + "status": "active", + "candidates": [ + { + "name": "dwp.state_pension.recipients_male_80_84_pre_2016", + "status": "active", + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "matched_fact_count_in_source_window": 20, + "resolved_period": 2025, + "resolved_value": 823789.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_414a97d3cb5a8e56646dc9fb" + } + ] + }, + "dwp.state_pension.recipients_female_80_84_pre_2016": { + "status": "active", + "candidates": [ + { + "name": "dwp.state_pension.recipients_female_80_84_pre_2016", + "status": "active", + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "matched_fact_count_in_source_window": 20, + "resolved_period": 2025, + "resolved_value": 1016169.75, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_ad548b86aefde2661cc4ffff" + } + ] + }, + "dwp.state_pension.recipients_male_85_89_pre_2016": { + "status": "active", + "candidates": [ + { + "name": "dwp.state_pension.recipients_male_85_89_pre_2016", + "status": "active", + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "matched_fact_count_in_source_window": 20, + "resolved_period": 2025, + "resolved_value": 452540.25, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_deab1a4a30a55e76ed713c27" + } + ] + }, + "dwp.state_pension.recipients_female_85_89_pre_2016": { + "status": "active", + "candidates": [ + { + "name": "dwp.state_pension.recipients_female_85_89_pre_2016", + "status": "active", + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "matched_fact_count_in_source_window": 20, + "resolved_period": 2025, + "resolved_value": 644697.25, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_7bfbbc2af979ffaa9db09fe5" + } + ] + }, + "dwp.state_pension.recipients_male_90_plus_pre_2016": { + "status": "active", + "candidates": [ + { + "name": "dwp.state_pension.recipients_male_90_plus_pre_2016", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 4, + "matched_fact_count_in_source_window": 4, + "resolved_period": 2025, + "resolved_value": 207357.5, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_65392f782c463d5c4458c188" + } + ] + }, + "dwp.state_pension.recipients_female_90_plus_pre_2016": { + "status": "active", + "candidates": [ + { + "name": "dwp.state_pension.recipients_female_90_plus_pre_2016", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 4, + "matched_fact_count_in_source_window": 4, + "resolved_period": 2025, + "resolved_value": 404408.75, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_32834cf0a5aa400ad3ea6632" + } + ] + }, + "dwp.state_pension.recipients_new_by_english_region": { + "status": "active", + "candidates": [ + { + "name": "dwp.state_pension.recipients_new_by_english_region@E12000001", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 4, + "geography_level": "region", + "geography_id": "E12000001", + "matched_fact_count_in_source_window": 4, + "resolved_period": 2025, + "resolved_value": 221933.75, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_3849cd7f9fb2c0a11406df09" + }, + { + "name": "dwp.state_pension.recipients_new_by_english_region@E12000002", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 4, + "geography_level": "region", + "geography_id": "E12000002", + "matched_fact_count_in_source_window": 4, + "resolved_period": 2025, + "resolved_value": 542356.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_3598d15875dc7df98a20123d" + }, + { + "name": "dwp.state_pension.recipients_new_by_english_region@E12000003", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 4, + "geography_level": "region", + "geography_id": "E12000003", + "matched_fact_count_in_source_window": 4, + "resolved_period": 2025, + "resolved_value": 406034.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_f7290dcc14753b1a54e005cf" + }, + { + "name": "dwp.state_pension.recipients_new_by_english_region@E12000004", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 4, + "geography_level": "region", + "geography_id": "E12000004", + "matched_fact_count_in_source_window": 4, + "resolved_period": 2025, + "resolved_value": 363537.75, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_a1a24b040c70a32bd4e354e6" + }, + { + "name": "dwp.state_pension.recipients_new_by_english_region@E12000005", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 4, + "geography_level": "region", + "geography_id": "E12000005", + "matched_fact_count_in_source_window": 4, + "resolved_period": 2025, + "resolved_value": 416229.75, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_9e4621361253499530e31b54" + }, + { + "name": "dwp.state_pension.recipients_new_by_english_region@E12000006", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 4, + "geography_level": "region", + "geography_id": "E12000006", + "matched_fact_count_in_source_window": 4, + "resolved_period": 2025, + "resolved_value": 457239.25, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_70971f09dfaeab499d7aeb7e" + }, + { + "name": "dwp.state_pension.recipients_new_by_english_region@E12000007", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 4, + "geography_level": "region", + "geography_id": "E12000007", + "matched_fact_count_in_source_window": 4, + "resolved_period": 2025, + "resolved_value": 421776.5, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_79d46ff506d2db6cd18e2148" + }, + { + "name": "dwp.state_pension.recipients_new_by_english_region@E12000008", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 4, + "geography_level": "region", + "geography_id": "E12000008", + "matched_fact_count_in_source_window": 4, + "resolved_period": 2025, + "resolved_value": 658266.75, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_abd2497289e3331cb7e82012" + }, + { + "name": "dwp.state_pension.recipients_new_by_english_region@E12000009", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 4, + "geography_level": "region", + "geography_id": "E12000009", + "matched_fact_count_in_source_window": 4, + "resolved_period": 2025, + "resolved_value": 464841.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_9f36f3a7a1a4d6d7ebaecbde" + } + ] + }, + "dwp.state_pension.recipients_new_scotland": { + "status": "active", + "candidates": [ + { + "name": "dwp.state_pension.recipients_new_scotland", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 4, + "matched_fact_count_in_source_window": 4, + "resolved_period": 2025, + "resolved_value": 445194.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_d9b8e48df3e64a1e63372634" + } + ] + }, + "dwp.state_pension.recipients_new_wales": { + "status": "active", + "candidates": [ + { + "name": "dwp.state_pension.recipients_new_wales", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 4, + "matched_fact_count_in_source_window": 4, + "resolved_period": 2025, + "resolved_value": 253534.75, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_b82917f7a577c897f0d3dd60" + } + ] + }, + "dwp.state_pension.recipients_pre_2016_by_english_region": { + "status": "active", + "candidates": [ + { + "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000001", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 4, + "geography_level": "region", + "geography_id": "E12000001", + "matched_fact_count_in_source_window": 4, + "resolved_period": 2025, + "resolved_value": 324237.75, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_1db0810df0a5b05c1fd0914a" + }, + { + "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000002", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 4, + "geography_level": "region", + "geography_id": "E12000002", + "matched_fact_count_in_source_window": 4, + "resolved_period": 2025, + "resolved_value": 835347.75, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_c8a6ef7647ae7caef2c80667" + }, + { + "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000003", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 4, + "geography_level": "region", + "geography_id": "E12000003", + "matched_fact_count_in_source_window": 4, + "resolved_period": 2025, + "resolved_value": 631830.75, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_139a07b36899bf4ace64291d" + }, + { + "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000004", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 4, + "geography_level": "region", + "geography_id": "E12000004", + "matched_fact_count_in_source_window": 4, + "resolved_period": 2025, + "resolved_value": 586131.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_011954008b768323576d61c8" + }, + { + "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000005", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 4, + "geography_level": "region", + "geography_id": "E12000005", + "matched_fact_count_in_source_window": 4, + "resolved_period": 2025, + "resolved_value": 682017.5, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_f7d63e0a74e6de675a11ed6f" + }, + { + "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000006", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 4, + "geography_level": "region", + "geography_id": "E12000006", + "matched_fact_count_in_source_window": 4, + "resolved_period": 2025, + "resolved_value": 782615.75, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_ecd6638d3a14dcee4ef46782" + }, + { + "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000007", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 4, + "geography_level": "region", + "geography_id": "E12000007", + "matched_fact_count_in_source_window": 4, + "resolved_period": 2025, + "resolved_value": 593093.25, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_b670e556716dbd64f9fe8178" + }, + { + "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000008", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 4, + "geography_level": "region", + "geography_id": "E12000008", + "matched_fact_count_in_source_window": 4, + "resolved_period": 2025, + "resolved_value": 1134987.25, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_b4d062de5c11bbac34b30be6" + }, + { + "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000009", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 4, + "geography_level": "region", + "geography_id": "E12000009", + "matched_fact_count_in_source_window": 4, + "resolved_period": 2025, + "resolved_value": 806881.5, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_5a45e1cc548ab80887ffe67f" + } + ] + }, + "dwp.state_pension.recipients_pre_2016_scotland": { + "status": "active", + "candidates": [ + { + "name": "dwp.state_pension.recipients_pre_2016_scotland", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 4, + "matched_fact_count_in_source_window": 4, + "resolved_period": 2025, + "resolved_value": 621000.25, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_0c208e973105fa7c8029b17f" + } + ] + }, + "dwp.state_pension.recipients_pre_2016_wales": { + "status": "active", + "candidates": [ + { + "name": "dwp.state_pension.recipients_pre_2016_wales", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 4, + "matched_fact_count_in_source_window": 4, + "resolved_period": 2025, + "resolved_value": 403793.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_5c95cf4efb7008b1f359e9ec" + } + ] + }, + "dwp.state_pension.recipients_new_by_weekly_amount": { + "status": "active", + "candidates": [ + { + "name": "dwp.state_pension.recipients_new_by_weekly_amount.under_20_00__new_state_pension", + "status": "active", + "matched_fact_count_overall": 3, + "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_in_source_window": 3, + "resolved_period": 2025, + "resolved_value": 2401.3333333333335, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_dc5561861c73ee31f86bfae3" + }, + { + "name": "dwp.state_pension.recipients_new_by_weekly_amount.100_00_to_under_150_00__new_state_pension", + "status": "active", + "matched_fact_count_overall": 3, + "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_in_source_window": 3, + "resolved_period": 2025, + "resolved_value": 124804.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_ffb27f4d7915353defe32986" + }, + { + "name": "dwp.state_pension.recipients_new_by_weekly_amount.150_00_to_under_200_00__new_state_pension", + "status": "active", + "matched_fact_count_overall": 3, + "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_in_source_window": 3, + "resolved_period": 2025, + "resolved_value": 661720.6666666666, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_86da47003654aefcff806052" + }, + { + "name": "dwp.state_pension.recipients_new_by_weekly_amount.20_00_to_under_40_00__new_state_pension", + "status": "active", + "matched_fact_count_overall": 3, + "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_in_source_window": 3, + "resolved_period": 2025, + "resolved_value": 2481.3333333333335, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_8cfd09ae2cadbb3594d4dad5" + }, + { + "name": "dwp.state_pension.recipients_new_by_weekly_amount.200_00_to_under_250_00__new_state_pension", + "status": "active", + "matched_fact_count_overall": 3, + "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_in_source_window": 3, + "resolved_period": 2025, + "resolved_value": 3390794.6666666665, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_d31686dffeaa07295af35f7b" + }, + { + "name": "dwp.state_pension.recipients_new_by_weekly_amount.250_00_to_under_300_00__new_state_pension", + "status": "active", + "matched_fact_count_overall": 3, + "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_in_source_window": 3, + "resolved_period": 2025, + "resolved_value": 433550.3333333333, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_a97b5dcb7950ad4cab590462" + }, + { + "name": "dwp.state_pension.recipients_new_by_weekly_amount.300_00_and_over__new_state_pension", + "status": "active", + "matched_fact_count_overall": 3, + "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_in_source_window": 3, + "resolved_period": 2025, + "resolved_value": 64770.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_234575a44d456803d36f9ec4" + }, + { + "name": "dwp.state_pension.recipients_new_by_weekly_amount.40_00_to_under_60_00__new_state_pension", + "status": "active", + "matched_fact_count_overall": 3, + "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_in_source_window": 3, + "resolved_period": 2025, + "resolved_value": 2903.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_94b2164b496c302cf91c77e6" + }, + { + "name": "dwp.state_pension.recipients_new_by_weekly_amount.60_00_to_under_80_00__new_state_pension", + "status": "active", + "matched_fact_count_overall": 3, + "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_in_source_window": 3, + "resolved_period": 2025, + "resolved_value": 24329.333333333332, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_405455404e78ca1ca8915baa" + }, + { + "name": "dwp.state_pension.recipients_new_by_weekly_amount.80_00_to_under_100_00__new_state_pension", + "status": "active", + "matched_fact_count_overall": 3, + "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_in_source_window": 3, + "resolved_period": 2025, + "resolved_value": 31134.333333333332, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_e76e2f663aa361fe4df2dc36" + } + ] + }, + "dwp.state_pension.recipients_pre_2016_by_weekly_amount": { + "status": "active", + "candidates": [ + { + "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.under_20_00__pre_2016_state_pension", + "status": "active", + "matched_fact_count_overall": 3, + "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_in_source_window": 3, + "resolved_period": 2025, + "resolved_value": 12621.333333333334, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_a9ffc9a251267e97840eeb90" + }, + { + "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.100_00_to_under_150_00__pre_2016_state_pension", + "status": "active", + "matched_fact_count_overall": 3, + "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_in_source_window": 3, + "resolved_period": 2025, + "resolved_value": 880177.3333333334, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_0a3f30c5e7b17728baa6576a" + }, + { + "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.150_00_to_under_200_00__pre_2016_state_pension", + "status": "active", + "matched_fact_count_overall": 3, + "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_in_source_window": 3, + "resolved_period": 2025, + "resolved_value": 1589409.6666666667, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_d3e4db18223e8507eeaaab8f" + }, + { + "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.20_00_to_under_40_00__pre_2016_state_pension", + "status": "active", + "matched_fact_count_overall": 3, + "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_in_source_window": 3, + "resolved_period": 2025, + "resolved_value": 8063.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_e18cb71ca3b17102c67c509a" + }, + { + "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.200_00_to_under_250_00__pre_2016_state_pension", + "status": "active", + "matched_fact_count_overall": 3, + "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_in_source_window": 3, + "resolved_period": 2025, + "resolved_value": 2730401.3333333335, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_8ff59898eaacc667e5d3a895" + }, + { + "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.250_00_to_under_300_00__pre_2016_state_pension", + "status": "active", + "matched_fact_count_overall": 3, + "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_in_source_window": 3, + "resolved_period": 2025, + "resolved_value": 1338030.3333333333, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_49fe17b08fad3d6420f9e283" + }, + { + "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.300_00_and_over__pre_2016_state_pension", + "status": "active", + "matched_fact_count_overall": 3, + "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_in_source_window": 3, + "resolved_period": 2025, + "resolved_value": 737995.6666666666, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_473df488b16a42cd28c857d0" + }, + { + "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.40_00_to_under_60_00__pre_2016_state_pension", + "status": "active", + "matched_fact_count_overall": 3, + "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_in_source_window": 3, + "resolved_period": 2025, + "resolved_value": 12135.666666666666, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_1e158bc3779f81fcac6382ac" + }, + { + "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.60_00_to_under_80_00__pre_2016_state_pension", + "status": "active", + "matched_fact_count_overall": 3, + "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_in_source_window": 3, + "resolved_period": 2025, + "resolved_value": 17155.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_3c529dd5476ae78f33fdba1b" + }, + { + "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.80_00_to_under_100_00__pre_2016_state_pension", + "status": "active", + "matched_fact_count_overall": 3, + "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_in_source_window": 3, + "resolved_period": 2025, + "resolved_value": 23048.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_01743bfc73ac3ee49e3fa953" + } + ] + } + }, + "fanout_family_outcomes": [ + { + "family": "hmrc_spi", + "status": "active_with_signed_property_amount_exclusion", + "active_reference_count": 169, + "signed_rationale": "SPI income-band targets fan out by strict total-income-band dimension pins, except the HMRC property-income amount surface. Those 13 rows are signed out because Ledger carries the official SPI Table 3.7 net property-income amounts, while the incumbent target applies the populace-side x1.9 property-income undercount adjustment traced to policyengine-uk-data PR #311 / issue #230 and HMRC Property Rental Income Statistics." + }, + { + "family": "hmrc_itl", + "status": "active_calendar_year_window_anchors", + "active_reference_count": 33, + "signed_rationale": "The three HMRC Income Tax liabilities statistics targets (Income Tax payers, total income and Income Tax liabilities by eleven total-income bands, Table 2.5, July 2026) fan out by strict total-income-band pins and bind at the calendar-2025 window of HMRC's 2024-25 and 2025-26 source projections (three twelfths and nine twelfths; PolicyEngine/chronicle#280 lane, Mar\u00eda's ruling of 2026-09-22). They are the calibration-year anchors the SPI component bands lack; the OBR fiscal-year receipts row stays bound beside them." + }, + { + "family": "hmrc_spi_region", + "status": "active_region_tier_fanout_uprated", + "active_reference_count": 360, + "signed_rationale": "The thirty SPI 2023-24 Table 3.11 targets (Income Tax payers, total income and Income Tax liabilities by ten regional total-income bands) fan out over the twelve-area region tier (microcosm#905), one reference per area scoped by the household-region predicate, each row moved to the calendar-2025 calibration period by HMRC's own projected growth for the measure in the Table 2.5 band(s) the regional band spans (Income Tax liabilities statistics, July 2026; PolicyEngine/chronicle#280 lane). The publisher's regional bands stop at 200,000 and over, so that row takes the window over the 200k-500k, 500k-1m, 1m-2m and 2m+ bands together." + }, + { + "family": "dwp_universal_credit", + "status": "active_with_unmapped_vintage_residue_skipped", + "active_reference_count": 100, + "skipped_unmapped_fact_count": 12, + "signed_rationale": "UC payment-distribution targets fan out over family_type and monthly_award_amount_bands into incumbent-compatible annual-payment rows. The four source-only 'No payment' facts and eight overlapping source-only 'or over' facts are left out; no active reference may use the legacy nan_to_nan band name." + }, + { + "family": "council_tax_stock", + "status": "active_declared_rows", + "active_reference_count": 100, + "signed_rationale": "MHCLG council taxbase (England), Welsh Government CT1 (Wales) and Scottish Government CTAXBASE (Scotland) council-tax stock bands are declared as explicit target rows per band plus total (England and Scotland A-H, Wales A-I). The Welsh and Scottish rows resolve with their country-level geography and band pin; the English rows fan out over the nine English regions of the region tier (microcosm#905), each cell composed as the linear combination of the billing-authority facts the crosswalk places in that region (microcosm#929)." + }, + { + "family": "hmrc_cgt", + "status": "active_with_row_level_signed_exclusions", + "active_reference_count": 102, + "signed_rationale": "The FY2024-25 individual CGT observations fan out five ways (microcosm#725, #467, #1014): Table 6 age bands as dimension rows (the 0-15 band and the all-ages total are signed out row by row), Table 5 country/region cells over the twelve-area region tier restated on the individuals basis by the Table 1 share through the scaled_by_ratio operation, Table 2.1a size-of-gain bands under the incumbent banded names (the 0-2,999 band below the 2024 annual exempt amount is signed out), Table 4.1 Business Asset Disposal Relief and Investors' Relief claimants and qualifying gains by band of qualifying gain (the individuals total row, which restates the eight bands, is signed out), and Table 3's all-gains taxpayers and gains by taxable-income band, measured on the taxable income the engine's CGT formula stacks gains on and named by that band (the joint cells stay fenced). Chronicle's Table 2.1a package emits taxpayers and gains only, although the published sheet also carries an amounts-of-tax column, so liability binds nationally and by age band; a liability-by-size-of-gain family becomes possible once Chronicle emits that column." + }, + { + "family": "ons_population", + "status": "active_region_tier_fanout", + "active_reference_count": 108, + "signed_rationale": "The nine ONS population-by-age-band targets fan out over the twelve-area region tier (nine English regions at Chronicle's region level, Wales, Scotland and Northern Ireland at country level), one reference per area, each scoped on the spine by a household-region predicate and placed at the region grain of the cross-grain rule (microcosm#905). The former single UK-wide row per band is retired: the tier sums to it within the same publication." + }, + { + "family": "dwp_state_pension", + "status": "active_english_region_and_amount_band_fanout", + "active_reference_count": 38, + "signed_rationale": "The State Pension recipients by type fan out over the nine English regions (Scotland and Wales are their own rows, since DWP publishes no Northern Ireland cell for a twelve-area tier) and over DWP's weekly amount bands, whose 'all' margin is a total row the detail measure pin leaves out (microcosm#1069)." } ], "signed_exclusion_rationales": [ diff --git a/packages/microcosm-build/src/microcosm/build/uk/target_references.json b/packages/microcosm-build/src/microcosm/build/uk/target_references.json index dcf5f0f2e..6809aa26e 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/target_references.json +++ b/packages/microcosm-build/src/microcosm/build/uk/target_references.json @@ -48,6 +48,9 @@ }, "mhclg": { "label": "Ministry of Housing, Communities and Local Government" + }, + "dfc_ni": { + "label": "Department for Communities (Northern Ireland)" } }, "categories": { @@ -206,9 +209,19 @@ "hmrc.income_tax_liabilities_statistics": { "provider_id": "hmrc", "label": "Income Tax liabilities statistics" + }, + "dwp.state_pension": { + "provider_id": "dwp", + "label": "State Pension" + }, + "dfc_ni.state_pension": { + "provider_id": "dfc_ni", + "label": "State Pension" } }, "target_categories": { + "dfc_ni.state_pension.amount": "dfc_ni.state_pension", + "dfc_ni.state_pension.recipients": "dfc_ni.state_pension", "dfe.funded_childcare.early_learning_2_year_olds": "dfe.funded_childcare", "dfe.funded_childcare.universal_only_children": "dfe.funded_childcare", "dfe.funded_childcare.working_parent_children_2_to_4": "dfe.funded_childcare", @@ -239,6 +252,30 @@ "dwp.hb.households_private_rented": "dwp.housing_benefit", "dwp.hb.households_social_rented": "dwp.housing_benefit", "dwp.jsa_claimants": "dwp.legacy_benefits", + "dwp.state_pension.amount": "dwp.state_pension", + "dwp.state_pension.recipients": "dwp.state_pension", + "dwp.state_pension.recipients_female_66_69_new": "dwp.state_pension", + "dwp.state_pension.recipients_female_70_74_new": "dwp.state_pension", + "dwp.state_pension.recipients_female_70_74_pre_2016": "dwp.state_pension", + "dwp.state_pension.recipients_female_75_79_pre_2016": "dwp.state_pension", + "dwp.state_pension.recipients_female_80_84_pre_2016": "dwp.state_pension", + "dwp.state_pension.recipients_female_85_89_pre_2016": "dwp.state_pension", + "dwp.state_pension.recipients_female_90_plus_pre_2016": "dwp.state_pension", + "dwp.state_pension.recipients_male_66_69_new": "dwp.state_pension", + "dwp.state_pension.recipients_male_70_74_new": "dwp.state_pension", + "dwp.state_pension.recipients_male_70_74_pre_2016": "dwp.state_pension", + "dwp.state_pension.recipients_male_75_79_pre_2016": "dwp.state_pension", + "dwp.state_pension.recipients_male_80_84_pre_2016": "dwp.state_pension", + "dwp.state_pension.recipients_male_85_89_pre_2016": "dwp.state_pension", + "dwp.state_pension.recipients_male_90_plus_pre_2016": "dwp.state_pension", + "dwp.state_pension.recipients_new_by_english_region": "dwp.state_pension", + "dwp.state_pension.recipients_new_by_weekly_amount": "dwp.state_pension", + "dwp.state_pension.recipients_new_scotland": "dwp.state_pension", + "dwp.state_pension.recipients_new_wales": "dwp.state_pension", + "dwp.state_pension.recipients_pre_2016_by_english_region": "dwp.state_pension", + "dwp.state_pension.recipients_pre_2016_by_weekly_amount": "dwp.state_pension", + "dwp.state_pension.recipients_pre_2016_scotland": "dwp.state_pension", + "dwp.state_pension.recipients_pre_2016_wales": "dwp.state_pension", "dwp.uc.households": "dwp.universal_credit", "dwp.uc.households_carer_element": "dwp.universal_credit", "dwp.uc.households_childcare_element": "dwp.universal_credit", @@ -491,6 +528,8 @@ "welshgov.council_tax_stock.total": "welshgov.council_tax_stock" }, "target_labels": { + "dfc_ni.state_pension.amount": "State Pension paid, Northern Ireland", + "dfc_ni.state_pension.recipients": "State Pension recipients, Northern Ireland", "dfe.funded_childcare.early_learning_2_year_olds": "Early learning 2 year olds", "dfe.funded_childcare.universal_only_children": "Universal only children", "dfe.funded_childcare.working_parent_children_2_to_4": "Working parent children 2 to 4", @@ -521,6 +560,30 @@ "dwp.hb.households_private_rented": "Housing Benefit claimants, private rented", "dwp.hb.households_social_rented": "Housing Benefit claimants, social rented", "dwp.jsa_claimants": "Jobseeker\u2019s Allowance claimants", + "dwp.state_pension.amount": "State Pension paid, Great Britain residents", + "dwp.state_pension.recipients": "State Pension recipients, Great Britain residents", + "dwp.state_pension.recipients_female_66_69_new": "State Pension recipients, female 66 to 69, New State Pension", + "dwp.state_pension.recipients_female_70_74_new": "State Pension recipients, female 70 to 74, New State Pension", + "dwp.state_pension.recipients_female_70_74_pre_2016": "State Pension recipients, female 70 to 74, Pre-2016 State Pension", + "dwp.state_pension.recipients_female_75_79_pre_2016": "State Pension recipients, female 75 to 79, Pre-2016 State Pension", + "dwp.state_pension.recipients_female_80_84_pre_2016": "State Pension recipients, female 80 to 84, Pre-2016 State Pension", + "dwp.state_pension.recipients_female_85_89_pre_2016": "State Pension recipients, female 85 to 89, Pre-2016 State Pension", + "dwp.state_pension.recipients_female_90_plus_pre_2016": "State Pension recipients, female 90 and over, Pre-2016 State Pension", + "dwp.state_pension.recipients_male_66_69_new": "State Pension recipients, male 66 to 69, New State Pension", + "dwp.state_pension.recipients_male_70_74_new": "State Pension recipients, male 70 to 74, New State Pension", + "dwp.state_pension.recipients_male_70_74_pre_2016": "State Pension recipients, male 70 to 74, Pre-2016 State Pension", + "dwp.state_pension.recipients_male_75_79_pre_2016": "State Pension recipients, male 75 to 79, Pre-2016 State Pension", + "dwp.state_pension.recipients_male_80_84_pre_2016": "State Pension recipients, male 80 to 84, Pre-2016 State Pension", + "dwp.state_pension.recipients_male_85_89_pre_2016": "State Pension recipients, male 85 to 89, Pre-2016 State Pension", + "dwp.state_pension.recipients_male_90_plus_pre_2016": "State Pension recipients, male 90 and over, Pre-2016 State Pension", + "dwp.state_pension.recipients_new_by_english_region": "State Pension recipients, New State Pension, English regions", + "dwp.state_pension.recipients_new_by_weekly_amount": "State Pension recipients by weekly amount, New State Pension", + "dwp.state_pension.recipients_new_scotland": "State Pension recipients, New State Pension, Scotland", + "dwp.state_pension.recipients_new_wales": "State Pension recipients, New State Pension, Wales", + "dwp.state_pension.recipients_pre_2016_by_english_region": "State Pension recipients, Pre-2016 State Pension, English regions", + "dwp.state_pension.recipients_pre_2016_by_weekly_amount": "State Pension recipients by weekly amount, Pre-2016 State Pension", + "dwp.state_pension.recipients_pre_2016_scotland": "State Pension recipients, Pre-2016 State Pension, Scotland", + "dwp.state_pension.recipients_pre_2016_wales": "State Pension recipients, Pre-2016 State Pension, Wales", "dwp.uc.households": "Universal Credit households", "dwp.uc.households_carer_element": "Households with carer entitlement", "dwp.uc.households_childcare_element": "Households receiving the childcare element", @@ -783,6 +846,7 @@ "calendar_year_window", "linear_combination", "monthly_window_average", + "monthly_window_count_x_mean", "monthly_window_sum_average", "scaled_by_ratio" ], @@ -41250,6 +41314,2977 @@ "uprating_index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", "uprating_from_period": "2023", "uprating_to_period": 2025 + }, + { + "name": "dwp.state_pension.recipients", + "ledger_selector": { + "source_name": "dwp", + "groupby_dimension": "dwp.state_pension_age_gender_type", + "dimensions": [ + "age_bands_and_single_year", + "category_of_pension", + "gender" + ], + "dimension_values": { + "age_bands_and_single_year": "all", + "category_of_pension": "all", + "gender": "all" + }, + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "total_recipients", + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "person", + "measure": "dwp/state_pension/recipients", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.state_pension.amount", + "ledger_selector": { + "source_name": "dwp", + "groupby_dimension": "dwp.state_pension_age_gender_type", + "dimensions": [ + "age_bands_and_single_year", + "category_of_pension", + "gender" + ], + "dimension_values": { + "age_bands_and_single_year": "all", + "category_of_pension": "all", + "gender": "all" + }, + "source_concept": [ + "dwp.state_pension_caseload", + "dwp.state_pension_mean_weekly_amount" + ], + "source_measure_id": [ + "total_recipients", + "total_mean_weekly_amount" + ], + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "person", + "measure": "dwp/state_pension/amount", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.amount", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "uprating_index": "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount", + "value_operation": "monthly_window_count_x_mean", + "value_operands": [ + { + "role": "count", + "concept": "dwp.state_pension_recipients" + }, + { + "role": "mean", + "concept": "dwp.state_pension_mean_weekly_amount", + "period_factor": 52 + } + ] + }, + { + "name": "dfc_ni.state_pension.recipients", + "ledger_selector": { + "source_name": "dfc_ni", + "dimensions": [], + "source_measure_id": "claimants_all", + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "N92000002" + }, + "entity": "person", + "measure": "dfc_ni/state_pension/recipients", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dfc_ni.state_pension.recipients", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dfc_ni.state_pension.amount", + "ledger_selector": { + "source_name": "dfc_ni", + "dimensions": [], + "source_measure_id": [ + "claimants_all", + "average_weekly_payment_all" + ], + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "N92000002" + }, + "entity": "person", + "measure": "dfc_ni/state_pension/amount", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dfc_ni.state_pension.amount", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "uprating_index": "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount", + "value_operation": "monthly_window_count_x_mean", + "value_operands": [ + { + "role": "count", + "concept": "dwp.state_pension_recipients" + }, + { + "role": "mean", + "concept": "dwp.state_pension_mean_weekly_amount", + "period_factor": 52 + } + ] + }, + { + "name": "dwp.state_pension.recipients_male_66_69_new", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_age_gender_type", + "dimensions": [ + "age_bands_and_single_year", + "category_of_pension", + "gender" + ], + "dimension_values": { + "age_bands_and_single_year": [ + 66, + 67, + 68, + 69 + ], + "category_of_pension": "New State Pension", + "gender": "Male" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "person", + "measure": "dwp/state_pension/recipients_male_66_69_new", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_male_66_69_new", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_sum_average", + "value_operands": [ + { + "dimension_values": { + "age_bands_and_single_year": 66, + "category_of_pension": "New State Pension", + "gender": "Male" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 67, + "category_of_pension": "New State Pension", + "gender": "Male" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 68, + "category_of_pension": "New State Pension", + "gender": "Male" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 69, + "category_of_pension": "New State Pension", + "gender": "Male" + } + } + ] + }, + { + "name": "dwp.state_pension.recipients_female_66_69_new", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_age_gender_type", + "dimensions": [ + "age_bands_and_single_year", + "category_of_pension", + "gender" + ], + "dimension_values": { + "age_bands_and_single_year": [ + 66, + 67, + 68, + 69 + ], + "category_of_pension": "New State Pension", + "gender": "Female" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "person", + "measure": "dwp/state_pension/recipients_female_66_69_new", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_female_66_69_new", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_sum_average", + "value_operands": [ + { + "dimension_values": { + "age_bands_and_single_year": 66, + "category_of_pension": "New State Pension", + "gender": "Female" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 67, + "category_of_pension": "New State Pension", + "gender": "Female" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 68, + "category_of_pension": "New State Pension", + "gender": "Female" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 69, + "category_of_pension": "New State Pension", + "gender": "Female" + } + } + ] + }, + { + "name": "dwp.state_pension.recipients_male_70_74_new", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_age_gender_type", + "dimensions": [ + "age_bands_and_single_year", + "category_of_pension", + "gender" + ], + "dimension_values": { + "age_bands_and_single_year": [ + 70, + 71, + 72, + 73, + 74 + ], + "category_of_pension": "New State Pension", + "gender": "Male" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "person", + "measure": "dwp/state_pension/recipients_male_70_74_new", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_male_70_74_new", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_sum_average", + "value_operands": [ + { + "dimension_values": { + "age_bands_and_single_year": 70, + "category_of_pension": "New State Pension", + "gender": "Male" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 71, + "category_of_pension": "New State Pension", + "gender": "Male" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 72, + "category_of_pension": "New State Pension", + "gender": "Male" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 73, + "category_of_pension": "New State Pension", + "gender": "Male" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 74, + "category_of_pension": "New State Pension", + "gender": "Male" + } + } + ] + }, + { + "name": "dwp.state_pension.recipients_male_70_74_pre_2016", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_age_gender_type", + "dimensions": [ + "age_bands_and_single_year", + "category_of_pension", + "gender" + ], + "dimension_values": { + "age_bands_and_single_year": [ + 70, + 71, + 72, + 73, + 74 + ], + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "person", + "measure": "dwp/state_pension/recipients_male_70_74_pre_2016", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_male_70_74_pre_2016", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_sum_average", + "value_operands": [ + { + "dimension_values": { + "age_bands_and_single_year": 70, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 71, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 72, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 73, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 74, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + } + } + ] + }, + { + "name": "dwp.state_pension.recipients_female_70_74_new", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_age_gender_type", + "dimensions": [ + "age_bands_and_single_year", + "category_of_pension", + "gender" + ], + "dimension_values": { + "age_bands_and_single_year": [ + 70, + 71, + 72, + 73, + 74 + ], + "category_of_pension": "New State Pension", + "gender": "Female" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "person", + "measure": "dwp/state_pension/recipients_female_70_74_new", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_female_70_74_new", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_sum_average", + "value_operands": [ + { + "dimension_values": { + "age_bands_and_single_year": 70, + "category_of_pension": "New State Pension", + "gender": "Female" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 71, + "category_of_pension": "New State Pension", + "gender": "Female" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 72, + "category_of_pension": "New State Pension", + "gender": "Female" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 73, + "category_of_pension": "New State Pension", + "gender": "Female" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 74, + "category_of_pension": "New State Pension", + "gender": "Female" + } + } + ] + }, + { + "name": "dwp.state_pension.recipients_female_70_74_pre_2016", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_age_gender_type", + "dimensions": [ + "age_bands_and_single_year", + "category_of_pension", + "gender" + ], + "dimension_values": { + "age_bands_and_single_year": [ + 70, + 71, + 72, + 73, + 74 + ], + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "person", + "measure": "dwp/state_pension/recipients_female_70_74_pre_2016", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_female_70_74_pre_2016", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_sum_average", + "value_operands": [ + { + "dimension_values": { + "age_bands_and_single_year": 70, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 71, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 72, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 73, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 74, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + } + } + ] + }, + { + "name": "dwp.state_pension.recipients_male_75_79_pre_2016", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_age_gender_type", + "dimensions": [ + "age_bands_and_single_year", + "category_of_pension", + "gender" + ], + "dimension_values": { + "age_bands_and_single_year": [ + 75, + 76, + 77, + 78, + 79 + ], + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "person", + "measure": "dwp/state_pension/recipients_male_75_79_pre_2016", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_male_75_79_pre_2016", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_sum_average", + "value_operands": [ + { + "dimension_values": { + "age_bands_and_single_year": 75, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 76, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 77, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 78, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 79, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + } + } + ] + }, + { + "name": "dwp.state_pension.recipients_female_75_79_pre_2016", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_age_gender_type", + "dimensions": [ + "age_bands_and_single_year", + "category_of_pension", + "gender" + ], + "dimension_values": { + "age_bands_and_single_year": [ + 75, + 76, + 77, + 78, + 79 + ], + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "person", + "measure": "dwp/state_pension/recipients_female_75_79_pre_2016", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_female_75_79_pre_2016", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_sum_average", + "value_operands": [ + { + "dimension_values": { + "age_bands_and_single_year": 75, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 76, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 77, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 78, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 79, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + } + } + ] + }, + { + "name": "dwp.state_pension.recipients_male_80_84_pre_2016", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_age_gender_type", + "dimensions": [ + "age_bands_and_single_year", + "category_of_pension", + "gender" + ], + "dimension_values": { + "age_bands_and_single_year": [ + 80, + 81, + 82, + 83, + 84 + ], + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "person", + "measure": "dwp/state_pension/recipients_male_80_84_pre_2016", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_male_80_84_pre_2016", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_sum_average", + "value_operands": [ + { + "dimension_values": { + "age_bands_and_single_year": 80, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 81, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 82, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 83, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 84, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + } + } + ] + }, + { + "name": "dwp.state_pension.recipients_female_80_84_pre_2016", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_age_gender_type", + "dimensions": [ + "age_bands_and_single_year", + "category_of_pension", + "gender" + ], + "dimension_values": { + "age_bands_and_single_year": [ + 80, + 81, + 82, + 83, + 84 + ], + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "person", + "measure": "dwp/state_pension/recipients_female_80_84_pre_2016", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_female_80_84_pre_2016", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_sum_average", + "value_operands": [ + { + "dimension_values": { + "age_bands_and_single_year": 80, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 81, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 82, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 83, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 84, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + } + } + ] + }, + { + "name": "dwp.state_pension.recipients_male_85_89_pre_2016", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_age_gender_type", + "dimensions": [ + "age_bands_and_single_year", + "category_of_pension", + "gender" + ], + "dimension_values": { + "age_bands_and_single_year": [ + 85, + 86, + 87, + 88, + 89 + ], + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "person", + "measure": "dwp/state_pension/recipients_male_85_89_pre_2016", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_male_85_89_pre_2016", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_sum_average", + "value_operands": [ + { + "dimension_values": { + "age_bands_and_single_year": 85, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 86, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 87, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 88, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 89, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + } + } + ] + }, + { + "name": "dwp.state_pension.recipients_female_85_89_pre_2016", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_age_gender_type", + "dimensions": [ + "age_bands_and_single_year", + "category_of_pension", + "gender" + ], + "dimension_values": { + "age_bands_and_single_year": [ + 85, + 86, + 87, + 88, + 89 + ], + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "person", + "measure": "dwp/state_pension/recipients_female_85_89_pre_2016", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_female_85_89_pre_2016", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_sum_average", + "value_operands": [ + { + "dimension_values": { + "age_bands_and_single_year": 85, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 86, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 87, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 88, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 89, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + } + } + ] + }, + { + "name": "dwp.state_pension.recipients_male_90_plus_pre_2016", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_age_gender_type", + "dimensions": [ + "age_bands_and_single_year", + "category_of_pension", + "gender" + ], + "dimension_values": { + "age_bands_and_single_year": "90 and over", + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "person", + "measure": "dwp/state_pension/recipients_male_90_plus_pre_2016", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_male_90_plus_pre_2016", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.state_pension.recipients_female_90_plus_pre_2016", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_age_gender_type", + "dimensions": [ + "age_bands_and_single_year", + "category_of_pension", + "gender" + ], + "dimension_values": { + "age_bands_and_single_year": "90 and over", + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "person", + "measure": "dwp/state_pension/recipients_female_90_plus_pre_2016", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_female_90_plus_pre_2016", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.state_pension.recipients_new_by_english_region@E12000001", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "groupby_dimension": "dwp.state_pension_region_type_gender", + "dimensions": [ + "category_of_pension", + "gender" + ], + "dimension_values": { + "category_of_pension": "New State Pension", + "gender": "all" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "region", + "geography_id": "E12000001" + }, + "entity": "person", + "measure": "dwp.state_pension.recipients_new_by_english_region@E12000001", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_new_by_english_region", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]", + "geography_level": "region", + "geography_id": "E12000001", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTH_EAST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.state_pension.recipients_new_by_english_region@E12000002", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "groupby_dimension": "dwp.state_pension_region_type_gender", + "dimensions": [ + "category_of_pension", + "gender" + ], + "dimension_values": { + "category_of_pension": "New State Pension", + "gender": "all" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "region", + "geography_id": "E12000002" + }, + "entity": "person", + "measure": "dwp.state_pension.recipients_new_by_english_region@E12000002", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_new_by_english_region", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]", + "geography_level": "region", + "geography_id": "E12000002", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTH_WEST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.state_pension.recipients_new_by_english_region@E12000003", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "groupby_dimension": "dwp.state_pension_region_type_gender", + "dimensions": [ + "category_of_pension", + "gender" + ], + "dimension_values": { + "category_of_pension": "New State Pension", + "gender": "all" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "region", + "geography_id": "E12000003" + }, + "entity": "person", + "measure": "dwp.state_pension.recipients_new_by_english_region@E12000003", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_new_by_english_region", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]", + "geography_level": "region", + "geography_id": "E12000003", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"YORKSHIRE\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.state_pension.recipients_new_by_english_region@E12000004", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "groupby_dimension": "dwp.state_pension_region_type_gender", + "dimensions": [ + "category_of_pension", + "gender" + ], + "dimension_values": { + "category_of_pension": "New State Pension", + "gender": "all" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "region", + "geography_id": "E12000004" + }, + "entity": "person", + "measure": "dwp.state_pension.recipients_new_by_english_region@E12000004", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_new_by_english_region", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]", + "geography_level": "region", + "geography_id": "E12000004", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"EAST_MIDLANDS\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.state_pension.recipients_new_by_english_region@E12000005", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "groupby_dimension": "dwp.state_pension_region_type_gender", + "dimensions": [ + "category_of_pension", + "gender" + ], + "dimension_values": { + "category_of_pension": "New State Pension", + "gender": "all" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "region", + "geography_id": "E12000005" + }, + "entity": "person", + "measure": "dwp.state_pension.recipients_new_by_english_region@E12000005", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_new_by_english_region", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]", + "geography_level": "region", + "geography_id": "E12000005", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"WEST_MIDLANDS\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.state_pension.recipients_new_by_english_region@E12000006", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "groupby_dimension": "dwp.state_pension_region_type_gender", + "dimensions": [ + "category_of_pension", + "gender" + ], + "dimension_values": { + "category_of_pension": "New State Pension", + "gender": "all" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "region", + "geography_id": "E12000006" + }, + "entity": "person", + "measure": "dwp.state_pension.recipients_new_by_english_region@E12000006", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_new_by_english_region", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]", + "geography_level": "region", + "geography_id": "E12000006", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"EAST_OF_ENGLAND\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.state_pension.recipients_new_by_english_region@E12000007", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "groupby_dimension": "dwp.state_pension_region_type_gender", + "dimensions": [ + "category_of_pension", + "gender" + ], + "dimension_values": { + "category_of_pension": "New State Pension", + "gender": "all" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "region", + "geography_id": "E12000007" + }, + "entity": "person", + "measure": "dwp.state_pension.recipients_new_by_english_region@E12000007", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_new_by_english_region", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]", + "geography_level": "region", + "geography_id": "E12000007", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"LONDON\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.state_pension.recipients_new_by_english_region@E12000008", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "groupby_dimension": "dwp.state_pension_region_type_gender", + "dimensions": [ + "category_of_pension", + "gender" + ], + "dimension_values": { + "category_of_pension": "New State Pension", + "gender": "all" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "region", + "geography_id": "E12000008" + }, + "entity": "person", + "measure": "dwp.state_pension.recipients_new_by_english_region@E12000008", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_new_by_english_region", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]", + "geography_level": "region", + "geography_id": "E12000008", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SOUTH_EAST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.state_pension.recipients_new_by_english_region@E12000009", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "groupby_dimension": "dwp.state_pension_region_type_gender", + "dimensions": [ + "category_of_pension", + "gender" + ], + "dimension_values": { + "category_of_pension": "New State Pension", + "gender": "all" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "region", + "geography_id": "E12000009" + }, + "entity": "person", + "measure": "dwp.state_pension.recipients_new_by_english_region@E12000009", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_new_by_english_region", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]", + "geography_level": "region", + "geography_id": "E12000009", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SOUTH_WEST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.state_pension.recipients_new_scotland", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "groupby_dimension": "dwp.state_pension_region_type_gender", + "dimensions": [ + "category_of_pension", + "gender" + ], + "dimension_values": { + "category_of_pension": "New State Pension", + "gender": "all" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "S92000003" + }, + "entity": "person", + "measure": "dwp/state_pension/recipients_new_scotland", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_new_scotland", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.state_pension.recipients_new_wales", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "groupby_dimension": "dwp.state_pension_region_type_gender", + "dimensions": [ + "category_of_pension", + "gender" + ], + "dimension_values": { + "category_of_pension": "New State Pension", + "gender": "all" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "W92000004" + }, + "entity": "person", + "measure": "dwp/state_pension/recipients_new_wales", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_new_wales", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000001", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "groupby_dimension": "dwp.state_pension_region_type_gender", + "dimensions": [ + "category_of_pension", + "gender" + ], + "dimension_values": { + "category_of_pension": "Pre-2016 State Pension", + "gender": "all" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "region", + "geography_id": "E12000001" + }, + "entity": "person", + "measure": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000001", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_pre_2016_by_english_region", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]", + "geography_level": "region", + "geography_id": "E12000001", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTH_EAST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000002", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "groupby_dimension": "dwp.state_pension_region_type_gender", + "dimensions": [ + "category_of_pension", + "gender" + ], + "dimension_values": { + "category_of_pension": "Pre-2016 State Pension", + "gender": "all" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "region", + "geography_id": "E12000002" + }, + "entity": "person", + "measure": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000002", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_pre_2016_by_english_region", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]", + "geography_level": "region", + "geography_id": "E12000002", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"NORTH_WEST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000003", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "groupby_dimension": "dwp.state_pension_region_type_gender", + "dimensions": [ + "category_of_pension", + "gender" + ], + "dimension_values": { + "category_of_pension": "Pre-2016 State Pension", + "gender": "all" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "region", + "geography_id": "E12000003" + }, + "entity": "person", + "measure": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000003", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_pre_2016_by_english_region", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]", + "geography_level": "region", + "geography_id": "E12000003", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"YORKSHIRE\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000004", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "groupby_dimension": "dwp.state_pension_region_type_gender", + "dimensions": [ + "category_of_pension", + "gender" + ], + "dimension_values": { + "category_of_pension": "Pre-2016 State Pension", + "gender": "all" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "region", + "geography_id": "E12000004" + }, + "entity": "person", + "measure": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000004", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_pre_2016_by_english_region", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]", + "geography_level": "region", + "geography_id": "E12000004", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"EAST_MIDLANDS\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000005", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "groupby_dimension": "dwp.state_pension_region_type_gender", + "dimensions": [ + "category_of_pension", + "gender" + ], + "dimension_values": { + "category_of_pension": "Pre-2016 State Pension", + "gender": "all" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "region", + "geography_id": "E12000005" + }, + "entity": "person", + "measure": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000005", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_pre_2016_by_english_region", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]", + "geography_level": "region", + "geography_id": "E12000005", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"WEST_MIDLANDS\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000006", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "groupby_dimension": "dwp.state_pension_region_type_gender", + "dimensions": [ + "category_of_pension", + "gender" + ], + "dimension_values": { + "category_of_pension": "Pre-2016 State Pension", + "gender": "all" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "region", + "geography_id": "E12000006" + }, + "entity": "person", + "measure": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000006", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_pre_2016_by_english_region", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]", + "geography_level": "region", + "geography_id": "E12000006", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"EAST_OF_ENGLAND\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000007", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "groupby_dimension": "dwp.state_pension_region_type_gender", + "dimensions": [ + "category_of_pension", + "gender" + ], + "dimension_values": { + "category_of_pension": "Pre-2016 State Pension", + "gender": "all" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "region", + "geography_id": "E12000007" + }, + "entity": "person", + "measure": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000007", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_pre_2016_by_english_region", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]", + "geography_level": "region", + "geography_id": "E12000007", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"LONDON\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000008", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "groupby_dimension": "dwp.state_pension_region_type_gender", + "dimensions": [ + "category_of_pension", + "gender" + ], + "dimension_values": { + "category_of_pension": "Pre-2016 State Pension", + "gender": "all" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "region", + "geography_id": "E12000008" + }, + "entity": "person", + "measure": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000008", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_pre_2016_by_english_region", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]", + "geography_level": "region", + "geography_id": "E12000008", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SOUTH_EAST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000009", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "groupby_dimension": "dwp.state_pension_region_type_gender", + "dimensions": [ + "category_of_pension", + "gender" + ], + "dimension_values": { + "category_of_pension": "Pre-2016 State Pension", + "gender": "all" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "region", + "geography_id": "E12000009" + }, + "entity": "person", + "measure": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000009", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_pre_2016_by_english_region", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]", + "geography_level": "region", + "geography_id": "E12000009", + "geography_predicate": "{\"entity\":\"household\",\"map_to\":\"person\",\"operator\":\"==\",\"reduce\":\"any\",\"value\":\"SOUTH_WEST\",\"variable\":\"region\"}", + "cross_grain_grain": "region" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.state_pension.recipients_pre_2016_scotland", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "groupby_dimension": "dwp.state_pension_region_type_gender", + "dimensions": [ + "category_of_pension", + "gender" + ], + "dimension_values": { + "category_of_pension": "Pre-2016 State Pension", + "gender": "all" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "S92000003" + }, + "entity": "person", + "measure": "dwp/state_pension/recipients_pre_2016_scotland", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_pre_2016_scotland", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.state_pension.recipients_pre_2016_wales", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "groupby_dimension": "dwp.state_pension_region_type_gender", + "dimensions": [ + "category_of_pension", + "gender" + ], + "dimension_values": { + "category_of_pension": "Pre-2016 State Pension", + "gender": "all" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "W92000004" + }, + "entity": "person", + "measure": "dwp/state_pension/recipients_pre_2016_wales", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_pre_2016_wales", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.state_pension.recipients_new_by_weekly_amount.under_20_00__new_state_pension", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_amount_band_type", + "dimensions": [ + "category_of_pension", + "grouped_amount_of_benefit" + ], + "dimension_values": { + "category_of_pension": "New State Pension", + "grouped_amount_of_benefit": "Under \u00a320.00" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "person", + "measure": "dwp.state_pension.recipients_new_by_weekly_amount.under_20_00__new_state_pension", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_new_by_weekly_amount", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.state_pension.recipients_new_by_weekly_amount.100_00_to_under_150_00__new_state_pension", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_amount_band_type", + "dimensions": [ + "category_of_pension", + "grouped_amount_of_benefit" + ], + "dimension_values": { + "category_of_pension": "New State Pension", + "grouped_amount_of_benefit": "\u00a3100.00 to under \u00a3150.00" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "person", + "measure": "dwp.state_pension.recipients_new_by_weekly_amount.100_00_to_under_150_00__new_state_pension", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_new_by_weekly_amount", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.state_pension.recipients_new_by_weekly_amount.150_00_to_under_200_00__new_state_pension", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_amount_band_type", + "dimensions": [ + "category_of_pension", + "grouped_amount_of_benefit" + ], + "dimension_values": { + "category_of_pension": "New State Pension", + "grouped_amount_of_benefit": "\u00a3150.00 to under \u00a3200.00" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "person", + "measure": "dwp.state_pension.recipients_new_by_weekly_amount.150_00_to_under_200_00__new_state_pension", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_new_by_weekly_amount", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.state_pension.recipients_new_by_weekly_amount.20_00_to_under_40_00__new_state_pension", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_amount_band_type", + "dimensions": [ + "category_of_pension", + "grouped_amount_of_benefit" + ], + "dimension_values": { + "category_of_pension": "New State Pension", + "grouped_amount_of_benefit": "\u00a320.00 to under \u00a340.00" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "person", + "measure": "dwp.state_pension.recipients_new_by_weekly_amount.20_00_to_under_40_00__new_state_pension", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_new_by_weekly_amount", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.state_pension.recipients_new_by_weekly_amount.200_00_to_under_250_00__new_state_pension", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_amount_band_type", + "dimensions": [ + "category_of_pension", + "grouped_amount_of_benefit" + ], + "dimension_values": { + "category_of_pension": "New State Pension", + "grouped_amount_of_benefit": "\u00a3200.00 to under \u00a3250.00" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "person", + "measure": "dwp.state_pension.recipients_new_by_weekly_amount.200_00_to_under_250_00__new_state_pension", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_new_by_weekly_amount", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.state_pension.recipients_new_by_weekly_amount.250_00_to_under_300_00__new_state_pension", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_amount_band_type", + "dimensions": [ + "category_of_pension", + "grouped_amount_of_benefit" + ], + "dimension_values": { + "category_of_pension": "New State Pension", + "grouped_amount_of_benefit": "\u00a3250.00 to under \u00a3300.00" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "person", + "measure": "dwp.state_pension.recipients_new_by_weekly_amount.250_00_to_under_300_00__new_state_pension", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_new_by_weekly_amount", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.state_pension.recipients_new_by_weekly_amount.300_00_and_over__new_state_pension", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_amount_band_type", + "dimensions": [ + "category_of_pension", + "grouped_amount_of_benefit" + ], + "dimension_values": { + "category_of_pension": "New State Pension", + "grouped_amount_of_benefit": "\u00a3300.00 and over" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "person", + "measure": "dwp.state_pension.recipients_new_by_weekly_amount.300_00_and_over__new_state_pension", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_new_by_weekly_amount", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.state_pension.recipients_new_by_weekly_amount.40_00_to_under_60_00__new_state_pension", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_amount_band_type", + "dimensions": [ + "category_of_pension", + "grouped_amount_of_benefit" + ], + "dimension_values": { + "category_of_pension": "New State Pension", + "grouped_amount_of_benefit": "\u00a340.00 to under \u00a360.00" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "person", + "measure": "dwp.state_pension.recipients_new_by_weekly_amount.40_00_to_under_60_00__new_state_pension", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_new_by_weekly_amount", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.state_pension.recipients_new_by_weekly_amount.60_00_to_under_80_00__new_state_pension", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_amount_band_type", + "dimensions": [ + "category_of_pension", + "grouped_amount_of_benefit" + ], + "dimension_values": { + "category_of_pension": "New State Pension", + "grouped_amount_of_benefit": "\u00a360.00 to under \u00a380.00" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "person", + "measure": "dwp.state_pension.recipients_new_by_weekly_amount.60_00_to_under_80_00__new_state_pension", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_new_by_weekly_amount", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.state_pension.recipients_new_by_weekly_amount.80_00_to_under_100_00__new_state_pension", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_amount_band_type", + "dimensions": [ + "category_of_pension", + "grouped_amount_of_benefit" + ], + "dimension_values": { + "category_of_pension": "New State Pension", + "grouped_amount_of_benefit": "\u00a380.00 to under \u00a3100.00" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "person", + "measure": "dwp.state_pension.recipients_new_by_weekly_amount.80_00_to_under_100_00__new_state_pension", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_new_by_weekly_amount", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.under_20_00__pre_2016_state_pension", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_amount_band_type", + "dimensions": [ + "category_of_pension", + "grouped_amount_of_benefit" + ], + "dimension_values": { + "category_of_pension": "Pre-2016 State Pension", + "grouped_amount_of_benefit": "Under \u00a320.00" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "person", + "measure": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.under_20_00__pre_2016_state_pension", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_pre_2016_by_weekly_amount", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.100_00_to_under_150_00__pre_2016_state_pension", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_amount_band_type", + "dimensions": [ + "category_of_pension", + "grouped_amount_of_benefit" + ], + "dimension_values": { + "category_of_pension": "Pre-2016 State Pension", + "grouped_amount_of_benefit": "\u00a3100.00 to under \u00a3150.00" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "person", + "measure": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.100_00_to_under_150_00__pre_2016_state_pension", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_pre_2016_by_weekly_amount", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.150_00_to_under_200_00__pre_2016_state_pension", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_amount_band_type", + "dimensions": [ + "category_of_pension", + "grouped_amount_of_benefit" + ], + "dimension_values": { + "category_of_pension": "Pre-2016 State Pension", + "grouped_amount_of_benefit": "\u00a3150.00 to under \u00a3200.00" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "person", + "measure": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.150_00_to_under_200_00__pre_2016_state_pension", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_pre_2016_by_weekly_amount", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.20_00_to_under_40_00__pre_2016_state_pension", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_amount_band_type", + "dimensions": [ + "category_of_pension", + "grouped_amount_of_benefit" + ], + "dimension_values": { + "category_of_pension": "Pre-2016 State Pension", + "grouped_amount_of_benefit": "\u00a320.00 to under \u00a340.00" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "person", + "measure": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.20_00_to_under_40_00__pre_2016_state_pension", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_pre_2016_by_weekly_amount", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.200_00_to_under_250_00__pre_2016_state_pension", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_amount_band_type", + "dimensions": [ + "category_of_pension", + "grouped_amount_of_benefit" + ], + "dimension_values": { + "category_of_pension": "Pre-2016 State Pension", + "grouped_amount_of_benefit": "\u00a3200.00 to under \u00a3250.00" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "person", + "measure": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.200_00_to_under_250_00__pre_2016_state_pension", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_pre_2016_by_weekly_amount", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.250_00_to_under_300_00__pre_2016_state_pension", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_amount_band_type", + "dimensions": [ + "category_of_pension", + "grouped_amount_of_benefit" + ], + "dimension_values": { + "category_of_pension": "Pre-2016 State Pension", + "grouped_amount_of_benefit": "\u00a3250.00 to under \u00a3300.00" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "person", + "measure": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.250_00_to_under_300_00__pre_2016_state_pension", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_pre_2016_by_weekly_amount", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.300_00_and_over__pre_2016_state_pension", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_amount_band_type", + "dimensions": [ + "category_of_pension", + "grouped_amount_of_benefit" + ], + "dimension_values": { + "category_of_pension": "Pre-2016 State Pension", + "grouped_amount_of_benefit": "\u00a3300.00 and over" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "person", + "measure": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.300_00_and_over__pre_2016_state_pension", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_pre_2016_by_weekly_amount", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.40_00_to_under_60_00__pre_2016_state_pension", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_amount_band_type", + "dimensions": [ + "category_of_pension", + "grouped_amount_of_benefit" + ], + "dimension_values": { + "category_of_pension": "Pre-2016 State Pension", + "grouped_amount_of_benefit": "\u00a340.00 to under \u00a360.00" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "person", + "measure": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.40_00_to_under_60_00__pre_2016_state_pension", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_pre_2016_by_weekly_amount", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.60_00_to_under_80_00__pre_2016_state_pension", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_amount_band_type", + "dimensions": [ + "category_of_pension", + "grouped_amount_of_benefit" + ], + "dimension_values": { + "category_of_pension": "Pre-2016 State Pension", + "grouped_amount_of_benefit": "\u00a360.00 to under \u00a380.00" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "person", + "measure": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.60_00_to_under_80_00__pre_2016_state_pension", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_pre_2016_by_weekly_amount", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.80_00_to_under_100_00__pre_2016_state_pension", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_amount_band_type", + "dimensions": [ + "category_of_pension", + "grouped_amount_of_benefit" + ], + "dimension_values": { + "category_of_pension": "Pre-2016 State Pension", + "grouped_amount_of_benefit": "\u00a380.00 to under \u00a3100.00" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "person", + "measure": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.80_00_to_under_100_00__pre_2016_state_pension", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.state_pension.recipients_pre_2016_by_weekly_amount", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" } ] } 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 661cb7618..0046e41bb 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 @@ -9,6 +9,7 @@ "calendar_year_average", "monthly_window_average", "monthly_window_sum_average", + "monthly_window_count_x_mean", "linear_combination", "scaled_by_ratio", "calendar_year_window" @@ -782,7 +783,33 @@ "hmrc.spi_region.income_tax_by_region_70000_100000": "New declaration backed by SPI 2023-24 Table 3.11 (income and tax by sex, region and country) in Chronicle (spi_income_by_region_2023_24), uprated to the calibration year by HMRC's projected growth in the containing Table 2.5 band(s); the incumbent registry has no regional SPI band metric (PolicyEngine/chronicle#280 lane).", "hmrc.spi_region.income_tax_by_region_100000_150000": "New declaration backed by SPI 2023-24 Table 3.11 (income and tax by sex, region and country) in Chronicle (spi_income_by_region_2023_24), uprated to the calibration year by HMRC's projected growth in the containing Table 2.5 band(s); the incumbent registry has no regional SPI band metric (PolicyEngine/chronicle#280 lane).", "hmrc.spi_region.income_tax_by_region_150000_200000": "New declaration backed by SPI 2023-24 Table 3.11 (income and tax by sex, region and country) in Chronicle (spi_income_by_region_2023_24), uprated to the calibration year by HMRC's projected growth in the containing Table 2.5 band(s); the incumbent registry has no regional SPI band metric (PolicyEngine/chronicle#280 lane).", - "hmrc.spi_region.income_tax_by_region_200000_plus": "New declaration backed by SPI 2023-24 Table 3.11 (income and tax by sex, region and country) in Chronicle (spi_income_by_region_2023_24), uprated to the calibration year by HMRC's projected growth in the containing Table 2.5 band(s); the incumbent registry has no regional SPI band metric (PolicyEngine/chronicle#280 lane)." + "hmrc.spi_region.income_tax_by_region_200000_plus": "New declaration backed by SPI 2023-24 Table 3.11 (income and tax by sex, region and country) in Chronicle (spi_income_by_region_2023_24), uprated to the calibration year by HMRC's projected growth in the containing Table 2.5 band(s); the incumbent registry has no regional SPI band metric (PolicyEngine/chronicle#280 lane).", + "dwp.state_pension.recipients": "Post-freeze fact family (DWP Stat-Xplore State Pension caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", + "dwp.state_pension.amount": "Post-freeze fact family (DWP Stat-Xplore State Pension caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", + "dfc_ni.state_pension.recipients": "Post-freeze fact family (DfC Northern Ireland State Pension statistics, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", + "dfc_ni.state_pension.amount": "Post-freeze fact family (DfC Northern Ireland State Pension statistics, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", + "dwp.state_pension.recipients_male_66_69_new": "Post-freeze fact family (DWP Stat-Xplore State Pension caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", + "dwp.state_pension.recipients_female_66_69_new": "Post-freeze fact family (DWP Stat-Xplore State Pension caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", + "dwp.state_pension.recipients_male_70_74_new": "Post-freeze fact family (DWP Stat-Xplore State Pension caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", + "dwp.state_pension.recipients_male_70_74_pre_2016": "Post-freeze fact family (DWP Stat-Xplore State Pension caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", + "dwp.state_pension.recipients_female_70_74_new": "Post-freeze fact family (DWP Stat-Xplore State Pension caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", + "dwp.state_pension.recipients_female_70_74_pre_2016": "Post-freeze fact family (DWP Stat-Xplore State Pension caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", + "dwp.state_pension.recipients_male_75_79_pre_2016": "Post-freeze fact family (DWP Stat-Xplore State Pension caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", + "dwp.state_pension.recipients_female_75_79_pre_2016": "Post-freeze fact family (DWP Stat-Xplore State Pension caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", + "dwp.state_pension.recipients_male_80_84_pre_2016": "Post-freeze fact family (DWP Stat-Xplore State Pension caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", + "dwp.state_pension.recipients_female_80_84_pre_2016": "Post-freeze fact family (DWP Stat-Xplore State Pension caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", + "dwp.state_pension.recipients_male_85_89_pre_2016": "Post-freeze fact family (DWP Stat-Xplore State Pension caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", + "dwp.state_pension.recipients_female_85_89_pre_2016": "Post-freeze fact family (DWP Stat-Xplore State Pension caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", + "dwp.state_pension.recipients_male_90_plus_pre_2016": "Post-freeze fact family (DWP Stat-Xplore State Pension caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", + "dwp.state_pension.recipients_female_90_plus_pre_2016": "Post-freeze fact family (DWP Stat-Xplore State Pension caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", + "dwp.state_pension.recipients_new_by_english_region": "Post-freeze fact family (DWP Stat-Xplore State Pension caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", + "dwp.state_pension.recipients_new_scotland": "Post-freeze fact family (DWP Stat-Xplore State Pension caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", + "dwp.state_pension.recipients_new_wales": "Post-freeze fact family (DWP Stat-Xplore State Pension caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", + "dwp.state_pension.recipients_pre_2016_by_english_region": "Post-freeze fact family (DWP Stat-Xplore State Pension caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", + "dwp.state_pension.recipients_pre_2016_scotland": "Post-freeze fact family (DWP Stat-Xplore State Pension caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", + "dwp.state_pension.recipients_pre_2016_wales": "Post-freeze fact family (DWP Stat-Xplore State Pension caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", + "dwp.state_pension.recipients_new_by_weekly_amount": "Post-freeze fact family (DWP Stat-Xplore State Pension caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", + "dwp.state_pension.recipients_pre_2016_by_weekly_amount": "Post-freeze fact family (DWP Stat-Xplore State Pension caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069)." }, "suppressed_ancestors": { "hmrc/salary_sacrifice_it_relief_basic_rate": { @@ -1110,7 +1137,33 @@ "hmrc.spi_region.income_tax_by_region_70000_100000", "hmrc.spi_region.income_tax_by_region_100000_150000", "hmrc.spi_region.income_tax_by_region_150000_200000", - "hmrc.spi_region.income_tax_by_region_200000_plus" + "hmrc.spi_region.income_tax_by_region_200000_plus", + "dwp.state_pension.recipients", + "dwp.state_pension.amount", + "dfc_ni.state_pension.recipients", + "dfc_ni.state_pension.amount", + "dwp.state_pension.recipients_male_66_69_new", + "dwp.state_pension.recipients_female_66_69_new", + "dwp.state_pension.recipients_male_70_74_new", + "dwp.state_pension.recipients_male_70_74_pre_2016", + "dwp.state_pension.recipients_female_70_74_new", + "dwp.state_pension.recipients_female_70_74_pre_2016", + "dwp.state_pension.recipients_male_75_79_pre_2016", + "dwp.state_pension.recipients_female_75_79_pre_2016", + "dwp.state_pension.recipients_male_80_84_pre_2016", + "dwp.state_pension.recipients_female_80_84_pre_2016", + "dwp.state_pension.recipients_male_85_89_pre_2016", + "dwp.state_pension.recipients_female_85_89_pre_2016", + "dwp.state_pension.recipients_male_90_plus_pre_2016", + "dwp.state_pension.recipients_female_90_plus_pre_2016", + "dwp.state_pension.recipients_new_by_english_region", + "dwp.state_pension.recipients_new_scotland", + "dwp.state_pension.recipients_new_wales", + "dwp.state_pension.recipients_pre_2016_by_english_region", + "dwp.state_pension.recipients_pre_2016_scotland", + "dwp.state_pension.recipients_pre_2016_wales", + "dwp.state_pension.recipients_new_by_weekly_amount", + "dwp.state_pension.recipients_pre_2016_by_weekly_amount" ] }, "profile_parity": { @@ -20250,6 +20303,3684 @@ "category_id": "hmrc.survey_of_personal_incomes", "label": "Income Tax liabilities by region, total income 200,000 and over" }, + { + "target_id": "dwp.state_pension.recipients", + "family": "dwp_state_pension", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "person", + "map_to": "household", + "concept": "uk.person.count", + "filters": [ + { + "concept": "uk.benefits.state_pension.amount", + "operator": ">", + "value": 0 + }, + { + "concept": "uk.geography.country", + "operator": "in", + "value": [ + "england", + "scotland", + "wales" + ] + } + ], + "source_months": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "bindings": { + "policyengine": { + "from_entity": "person", + "map_to": "household", + "metric_name": "dwp/state_pension/recipients", + "value_variable": "person_count", + "filters": [ + { + "variable": "state_pension", + "operator": ">", + "value": 0 + } + ], + "household_conditions": [ + { + "variable": "region", + "entity": "household", + "reduce": "any", + "operator": "in", + "value": [ + "NORTH_EAST", + "NORTH_WEST", + "YORKSHIRE", + "EAST_MIDLANDS", + "WEST_MIDLANDS", + "EAST_OF_ENGLAND", + "LONDON", + "SOUTH_EAST", + "SOUTH_WEST", + "WALES", + "SCOTLAND" + ], + "map_to": "person" + } + ], + "notes": "DWP Stat-Xplore State Pension caseload, Great Britain residents (PolicyEngine/chronicle#302 via #305): every recipient living in Great Britain, as the mean of the four quarterly points inside calendar 2025 (February, May, August, November), the Employment and Support Allowance window precedent (microcosm#1069 R1, R2). Pensioners paid abroad are outside the cube and outside any household frame." + }, + "axiom": { + "metric_name": "dwp/state_pension/recipients", + "status": "pending", + "value_rule": "uk.person.count" + } + }, + "ledger_selector": { + "source_name": "dwp", + "groupby_dimension": "dwp.state_pension_age_gender_type", + "dimensions": [ + "age_bands_and_single_year", + "category_of_pension", + "gender" + ], + "dimension_values": { + "age_bands_and_single_year": "all", + "category_of_pension": "all", + "gender": "all" + }, + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "total_recipients", + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "category_id": "dwp.state_pension", + "label": "State Pension recipients, Great Britain residents", + "value_operation": "monthly_window_average", + "period_match_policy": "source_window" + }, + { + "target_id": "dwp.state_pension.amount", + "family": "dwp_state_pension", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "person", + "map_to": "household", + "concept": "uk.benefits.state_pension.amount", + "filters": [ + { + "concept": "uk.geography.country", + "operator": "in", + "value": [ + "england", + "scotland", + "wales" + ] + } + ], + "source_months": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "bindings": { + "policyengine": { + "from_entity": "person", + "map_to": "household", + "metric_name": "dwp/state_pension/amount", + "value_variable": "state_pension", + "household_conditions": [ + { + "variable": "region", + "entity": "household", + "reduce": "any", + "operator": "in", + "value": [ + "NORTH_EAST", + "NORTH_WEST", + "YORKSHIRE", + "EAST_MIDLANDS", + "WEST_MIDLANDS", + "EAST_OF_ENGLAND", + "LONDON", + "SOUTH_EAST", + "SOUTH_WEST", + "WALES", + "SCOTLAND" + ], + "map_to": "person" + } + ], + "notes": "DWP Stat-Xplore State Pension caseload, Great Britain residents (PolicyEngine/chronicle#302 via #305): recipients times their mean weekly amount times 52 at each quarterly point inside calendar 2025, averaged (monthly_window_count_x_mean). Each point's mean is restated at the new State Pension rate the engine pays in 2025, so only February (paid at the 2024-25 rate) moves (microcosm#1069 R1)." + }, + "axiom": { + "metric_name": "dwp/state_pension/amount", + "status": "pending", + "value_rule": "uk.benefits.state_pension.amount" + } + }, + "ledger_selector": { + "source_name": "dwp", + "groupby_dimension": "dwp.state_pension_age_gender_type", + "dimensions": [ + "age_bands_and_single_year", + "category_of_pension", + "gender" + ], + "dimension_values": { + "age_bands_and_single_year": "all", + "category_of_pension": "all", + "gender": "all" + }, + "source_concept": [ + "dwp.state_pension_caseload", + "dwp.state_pension_mean_weekly_amount" + ], + "source_measure_id": [ + "total_recipients", + "total_mean_weekly_amount" + ], + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "category_id": "dwp.state_pension", + "label": "State Pension paid, Great Britain residents", + "value_operation": "monthly_window_count_x_mean", + "period_match_policy": "source_window", + "value_operands": [ + { + "role": "count", + "concept": "dwp.state_pension_recipients" + }, + { + "role": "mean", + "concept": "dwp.state_pension_mean_weekly_amount", + "period_factor": 52 + } + ], + "uprating_index": "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount", + "selector_note": "Restated per point by the new State Pension weekly rate the engine pays (221.20 for 2024-25, 230.25 for 2025-26 on the pinned engine)." + }, + { + "target_id": "dfc_ni.state_pension.recipients", + "family": "dwp_state_pension", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "person", + "map_to": "household", + "concept": "uk.person.count", + "filters": [ + { + "concept": "uk.benefits.state_pension.amount", + "operator": ">", + "value": 0 + }, + { + "concept": "uk.geography.country", + "equals": "northern_ireland" + } + ], + "source_months": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "bindings": { + "policyengine": { + "from_entity": "person", + "map_to": "household", + "metric_name": "dfc_ni/state_pension/recipients", + "value_variable": "person_count", + "filters": [ + { + "variable": "state_pension", + "operator": ">", + "value": 0 + } + ], + "household_conditions": [ + { + "variable": "region", + "entity": "household", + "reduce": "any", + "operator": "==", + "value": "NORTHERN_IRELAND", + "map_to": "person" + } + ], + "notes": "DfC Northern Ireland benefit statistics, State Pension (PolicyEngine/chronicle#302 via #305): all claimants, as the mean of the four quarterly points inside calendar 2025. With the Great Britain rows it completes the UK resident level (microcosm#1069 R2)." + }, + "axiom": { + "metric_name": "dfc_ni/state_pension/recipients", + "status": "pending", + "value_rule": "uk.person.count" + } + }, + "ledger_selector": { + "source_name": "dfc_ni", + "dimensions": [], + "source_measure_id": "claimants_all", + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "category_id": "dfc_ni.state_pension", + "label": "State Pension recipients, Northern Ireland", + "value_operation": "monthly_window_average", + "period_match_policy": "source_window" + }, + { + "target_id": "dfc_ni.state_pension.amount", + "family": "dwp_state_pension", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "person", + "map_to": "household", + "concept": "uk.benefits.state_pension.amount", + "filters": [ + { + "concept": "uk.geography.country", + "equals": "northern_ireland" + } + ], + "source_months": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "bindings": { + "policyengine": { + "from_entity": "person", + "map_to": "household", + "metric_name": "dfc_ni/state_pension/amount", + "value_variable": "state_pension", + "household_conditions": [ + { + "variable": "region", + "entity": "household", + "reduce": "any", + "operator": "==", + "value": "NORTHERN_IRELAND", + "map_to": "person" + } + ], + "notes": "DfC Northern Ireland benefit statistics, State Pension (PolicyEngine/chronicle#302 via #305): claimants times the average weekly payment times 52 at each quarterly point inside calendar 2025, averaged, with each point restated at the engine's 2025 rate (microcosm#1069 R1)." + }, + "axiom": { + "metric_name": "dfc_ni/state_pension/amount", + "status": "pending", + "value_rule": "uk.benefits.state_pension.amount" + } + }, + "ledger_selector": { + "source_name": "dfc_ni", + "dimensions": [], + "source_measure_id": [ + "claimants_all", + "average_weekly_payment_all" + ], + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "category_id": "dfc_ni.state_pension", + "label": "State Pension paid, Northern Ireland", + "value_operation": "monthly_window_count_x_mean", + "period_match_policy": "source_window", + "value_operands": [ + { + "role": "count", + "concept": "dwp.state_pension_recipients" + }, + { + "role": "mean", + "concept": "dwp.state_pension_mean_weekly_amount", + "period_factor": 52 + } + ], + "uprating_index": "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount" + }, + { + "target_id": "dwp.state_pension.recipients_male_66_69_new", + "family": "dwp_state_pension", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "person", + "map_to": "household", + "concept": "uk.person.count", + "filters": [ + { + "concept": "uk.benefits.state_pension.amount", + "operator": ">", + "value": 0 + }, + { + "concept": "uk.demographics.gender", + "equals": "male" + }, + { + "concept": "uk.demographics.age", + "operator": ">=", + "value": 66 + }, + { + "concept": "uk.demographics.age", + "operator": "<=", + "value": 69 + }, + { + "concept": "uk.benefits.state_pension.type", + "equals": "new" + }, + { + "concept": "uk.geography.country", + "operator": "in", + "value": [ + "england", + "scotland", + "wales" + ] + } + ], + "source_months": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "bindings": { + "policyengine": { + "from_entity": "person", + "map_to": "household", + "metric_name": "dwp/state_pension/recipients_male_66_69_new", + "value_variable": "person_count", + "filters": [ + { + "variable": "state_pension", + "operator": ">", + "value": 0 + }, + { + "variable": "gender", + "equals": "MALE" + }, + { + "variable": "age", + "operator": ">=", + "value": 66 + }, + { + "variable": "age", + "operator": "<=", + "value": 69 + }, + { + "variable": "state_pension_type", + "operator": "==", + "value": "NEW" + } + ], + "household_conditions": [ + { + "variable": "region", + "entity": "household", + "reduce": "any", + "operator": "in", + "value": [ + "NORTH_EAST", + "NORTH_WEST", + "YORKSHIRE", + "EAST_MIDLANDS", + "WEST_MIDLANDS", + "EAST_OF_ENGLAND", + "LONDON", + "SOUTH_EAST", + "SOUTH_WEST", + "WALES", + "SCOTLAND" + ], + "map_to": "person" + } + ], + "notes": "DWP Stat-Xplore State Pension caseload, Great Britain residents (PolicyEngine/chronicle#302 via #305): male recipients aged 66 to 69 on the New State Pension, summed over the published single years of age at each quarterly point inside calendar 2025 and averaged. Only the cells DWP populates are bound: the type follows the State Pension age date, so 66 to 69 is all new State Pension and 75 and over all pre-2016 (microcosm#1069 c3)." + }, + "axiom": { + "metric_name": "dwp/state_pension/recipients_male_66_69_new", + "status": "pending", + "value_rule": "uk.person.count" + } + }, + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_age_gender_type", + "dimensions": [ + "age_bands_and_single_year", + "category_of_pension", + "gender" + ], + "dimension_values": { + "age_bands_and_single_year": [ + 66, + 67, + 68, + 69 + ], + "category_of_pension": "New State Pension", + "gender": "Male" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "category_id": "dwp.state_pension", + "label": "State Pension recipients, male 66 to 69, New State Pension", + "value_operation": "monthly_window_sum_average", + "period_match_policy": "source_window", + "value_operands": [ + { + "dimension_values": { + "age_bands_and_single_year": 66, + "category_of_pension": "New State Pension", + "gender": "Male" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 67, + "category_of_pension": "New State Pension", + "gender": "Male" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 68, + "category_of_pension": "New State Pension", + "gender": "Male" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 69, + "category_of_pension": "New State Pension", + "gender": "Male" + } + } + ] + }, + { + "target_id": "dwp.state_pension.recipients_female_66_69_new", + "family": "dwp_state_pension", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "person", + "map_to": "household", + "concept": "uk.person.count", + "filters": [ + { + "concept": "uk.benefits.state_pension.amount", + "operator": ">", + "value": 0 + }, + { + "concept": "uk.demographics.gender", + "equals": "female" + }, + { + "concept": "uk.demographics.age", + "operator": ">=", + "value": 66 + }, + { + "concept": "uk.demographics.age", + "operator": "<=", + "value": 69 + }, + { + "concept": "uk.benefits.state_pension.type", + "equals": "new" + }, + { + "concept": "uk.geography.country", + "operator": "in", + "value": [ + "england", + "scotland", + "wales" + ] + } + ], + "source_months": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "bindings": { + "policyengine": { + "from_entity": "person", + "map_to": "household", + "metric_name": "dwp/state_pension/recipients_female_66_69_new", + "value_variable": "person_count", + "filters": [ + { + "variable": "state_pension", + "operator": ">", + "value": 0 + }, + { + "variable": "gender", + "equals": "FEMALE" + }, + { + "variable": "age", + "operator": ">=", + "value": 66 + }, + { + "variable": "age", + "operator": "<=", + "value": 69 + }, + { + "variable": "state_pension_type", + "operator": "==", + "value": "NEW" + } + ], + "household_conditions": [ + { + "variable": "region", + "entity": "household", + "reduce": "any", + "operator": "in", + "value": [ + "NORTH_EAST", + "NORTH_WEST", + "YORKSHIRE", + "EAST_MIDLANDS", + "WEST_MIDLANDS", + "EAST_OF_ENGLAND", + "LONDON", + "SOUTH_EAST", + "SOUTH_WEST", + "WALES", + "SCOTLAND" + ], + "map_to": "person" + } + ], + "notes": "DWP Stat-Xplore State Pension caseload, Great Britain residents (PolicyEngine/chronicle#302 via #305): female recipients aged 66 to 69 on the New State Pension, summed over the published single years of age at each quarterly point inside calendar 2025 and averaged. Only the cells DWP populates are bound: the type follows the State Pension age date, so 66 to 69 is all new State Pension and 75 and over all pre-2016 (microcosm#1069 c3)." + }, + "axiom": { + "metric_name": "dwp/state_pension/recipients_female_66_69_new", + "status": "pending", + "value_rule": "uk.person.count" + } + }, + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_age_gender_type", + "dimensions": [ + "age_bands_and_single_year", + "category_of_pension", + "gender" + ], + "dimension_values": { + "age_bands_and_single_year": [ + 66, + 67, + 68, + 69 + ], + "category_of_pension": "New State Pension", + "gender": "Female" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "category_id": "dwp.state_pension", + "label": "State Pension recipients, female 66 to 69, New State Pension", + "value_operation": "monthly_window_sum_average", + "period_match_policy": "source_window", + "value_operands": [ + { + "dimension_values": { + "age_bands_and_single_year": 66, + "category_of_pension": "New State Pension", + "gender": "Female" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 67, + "category_of_pension": "New State Pension", + "gender": "Female" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 68, + "category_of_pension": "New State Pension", + "gender": "Female" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 69, + "category_of_pension": "New State Pension", + "gender": "Female" + } + } + ] + }, + { + "target_id": "dwp.state_pension.recipients_male_70_74_new", + "family": "dwp_state_pension", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "person", + "map_to": "household", + "concept": "uk.person.count", + "filters": [ + { + "concept": "uk.benefits.state_pension.amount", + "operator": ">", + "value": 0 + }, + { + "concept": "uk.demographics.gender", + "equals": "male" + }, + { + "concept": "uk.demographics.age", + "operator": ">=", + "value": 70 + }, + { + "concept": "uk.demographics.age", + "operator": "<=", + "value": 74 + }, + { + "concept": "uk.benefits.state_pension.type", + "equals": "new" + }, + { + "concept": "uk.geography.country", + "operator": "in", + "value": [ + "england", + "scotland", + "wales" + ] + } + ], + "source_months": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "bindings": { + "policyengine": { + "from_entity": "person", + "map_to": "household", + "metric_name": "dwp/state_pension/recipients_male_70_74_new", + "value_variable": "person_count", + "filters": [ + { + "variable": "state_pension", + "operator": ">", + "value": 0 + }, + { + "variable": "gender", + "equals": "MALE" + }, + { + "variable": "age", + "operator": ">=", + "value": 70 + }, + { + "variable": "age", + "operator": "<=", + "value": 74 + }, + { + "variable": "state_pension_type", + "operator": "==", + "value": "NEW" + } + ], + "household_conditions": [ + { + "variable": "region", + "entity": "household", + "reduce": "any", + "operator": "in", + "value": [ + "NORTH_EAST", + "NORTH_WEST", + "YORKSHIRE", + "EAST_MIDLANDS", + "WEST_MIDLANDS", + "EAST_OF_ENGLAND", + "LONDON", + "SOUTH_EAST", + "SOUTH_WEST", + "WALES", + "SCOTLAND" + ], + "map_to": "person" + } + ], + "notes": "DWP Stat-Xplore State Pension caseload, Great Britain residents (PolicyEngine/chronicle#302 via #305): male recipients aged 70 to 74 on the New State Pension, summed over the published single years of age at each quarterly point inside calendar 2025 and averaged. Only the cells DWP populates are bound: the type follows the State Pension age date, so 66 to 69 is all new State Pension and 75 and over all pre-2016 (microcosm#1069 c3)." + }, + "axiom": { + "metric_name": "dwp/state_pension/recipients_male_70_74_new", + "status": "pending", + "value_rule": "uk.person.count" + } + }, + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_age_gender_type", + "dimensions": [ + "age_bands_and_single_year", + "category_of_pension", + "gender" + ], + "dimension_values": { + "age_bands_and_single_year": [ + 70, + 71, + 72, + 73, + 74 + ], + "category_of_pension": "New State Pension", + "gender": "Male" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "category_id": "dwp.state_pension", + "label": "State Pension recipients, male 70 to 74, New State Pension", + "value_operation": "monthly_window_sum_average", + "period_match_policy": "source_window", + "value_operands": [ + { + "dimension_values": { + "age_bands_and_single_year": 70, + "category_of_pension": "New State Pension", + "gender": "Male" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 71, + "category_of_pension": "New State Pension", + "gender": "Male" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 72, + "category_of_pension": "New State Pension", + "gender": "Male" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 73, + "category_of_pension": "New State Pension", + "gender": "Male" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 74, + "category_of_pension": "New State Pension", + "gender": "Male" + } + } + ] + }, + { + "target_id": "dwp.state_pension.recipients_male_70_74_pre_2016", + "family": "dwp_state_pension", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "person", + "map_to": "household", + "concept": "uk.person.count", + "filters": [ + { + "concept": "uk.benefits.state_pension.amount", + "operator": ">", + "value": 0 + }, + { + "concept": "uk.demographics.gender", + "equals": "male" + }, + { + "concept": "uk.demographics.age", + "operator": ">=", + "value": 70 + }, + { + "concept": "uk.demographics.age", + "operator": "<=", + "value": 74 + }, + { + "concept": "uk.benefits.state_pension.type", + "equals": "pre_2016" + }, + { + "concept": "uk.geography.country", + "operator": "in", + "value": [ + "england", + "scotland", + "wales" + ] + } + ], + "source_months": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "bindings": { + "policyengine": { + "from_entity": "person", + "map_to": "household", + "metric_name": "dwp/state_pension/recipients_male_70_74_pre_2016", + "value_variable": "person_count", + "filters": [ + { + "variable": "state_pension", + "operator": ">", + "value": 0 + }, + { + "variable": "gender", + "equals": "MALE" + }, + { + "variable": "age", + "operator": ">=", + "value": 70 + }, + { + "variable": "age", + "operator": "<=", + "value": 74 + }, + { + "variable": "state_pension_type", + "operator": "==", + "value": "BASIC" + } + ], + "household_conditions": [ + { + "variable": "region", + "entity": "household", + "reduce": "any", + "operator": "in", + "value": [ + "NORTH_EAST", + "NORTH_WEST", + "YORKSHIRE", + "EAST_MIDLANDS", + "WEST_MIDLANDS", + "EAST_OF_ENGLAND", + "LONDON", + "SOUTH_EAST", + "SOUTH_WEST", + "WALES", + "SCOTLAND" + ], + "map_to": "person" + } + ], + "notes": "DWP Stat-Xplore State Pension caseload, Great Britain residents (PolicyEngine/chronicle#302 via #305): male recipients aged 70 to 74 on the Pre-2016 State Pension, summed over the published single years of age at each quarterly point inside calendar 2025 and averaged. Only the cells DWP populates are bound: the type follows the State Pension age date, so 66 to 69 is all new State Pension and 75 and over all pre-2016 (microcosm#1069 c3)." + }, + "axiom": { + "metric_name": "dwp/state_pension/recipients_male_70_74_pre_2016", + "status": "pending", + "value_rule": "uk.person.count" + } + }, + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_age_gender_type", + "dimensions": [ + "age_bands_and_single_year", + "category_of_pension", + "gender" + ], + "dimension_values": { + "age_bands_and_single_year": [ + 70, + 71, + 72, + 73, + 74 + ], + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "category_id": "dwp.state_pension", + "label": "State Pension recipients, male 70 to 74, Pre-2016 State Pension", + "value_operation": "monthly_window_sum_average", + "period_match_policy": "source_window", + "value_operands": [ + { + "dimension_values": { + "age_bands_and_single_year": 70, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 71, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 72, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 73, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 74, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + } + } + ] + }, + { + "target_id": "dwp.state_pension.recipients_female_70_74_new", + "family": "dwp_state_pension", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "person", + "map_to": "household", + "concept": "uk.person.count", + "filters": [ + { + "concept": "uk.benefits.state_pension.amount", + "operator": ">", + "value": 0 + }, + { + "concept": "uk.demographics.gender", + "equals": "female" + }, + { + "concept": "uk.demographics.age", + "operator": ">=", + "value": 70 + }, + { + "concept": "uk.demographics.age", + "operator": "<=", + "value": 74 + }, + { + "concept": "uk.benefits.state_pension.type", + "equals": "new" + }, + { + "concept": "uk.geography.country", + "operator": "in", + "value": [ + "england", + "scotland", + "wales" + ] + } + ], + "source_months": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "bindings": { + "policyengine": { + "from_entity": "person", + "map_to": "household", + "metric_name": "dwp/state_pension/recipients_female_70_74_new", + "value_variable": "person_count", + "filters": [ + { + "variable": "state_pension", + "operator": ">", + "value": 0 + }, + { + "variable": "gender", + "equals": "FEMALE" + }, + { + "variable": "age", + "operator": ">=", + "value": 70 + }, + { + "variable": "age", + "operator": "<=", + "value": 74 + }, + { + "variable": "state_pension_type", + "operator": "==", + "value": "NEW" + } + ], + "household_conditions": [ + { + "variable": "region", + "entity": "household", + "reduce": "any", + "operator": "in", + "value": [ + "NORTH_EAST", + "NORTH_WEST", + "YORKSHIRE", + "EAST_MIDLANDS", + "WEST_MIDLANDS", + "EAST_OF_ENGLAND", + "LONDON", + "SOUTH_EAST", + "SOUTH_WEST", + "WALES", + "SCOTLAND" + ], + "map_to": "person" + } + ], + "notes": "DWP Stat-Xplore State Pension caseload, Great Britain residents (PolicyEngine/chronicle#302 via #305): female recipients aged 70 to 74 on the New State Pension, summed over the published single years of age at each quarterly point inside calendar 2025 and averaged. Only the cells DWP populates are bound: the type follows the State Pension age date, so 66 to 69 is all new State Pension and 75 and over all pre-2016 (microcosm#1069 c3)." + }, + "axiom": { + "metric_name": "dwp/state_pension/recipients_female_70_74_new", + "status": "pending", + "value_rule": "uk.person.count" + } + }, + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_age_gender_type", + "dimensions": [ + "age_bands_and_single_year", + "category_of_pension", + "gender" + ], + "dimension_values": { + "age_bands_and_single_year": [ + 70, + 71, + 72, + 73, + 74 + ], + "category_of_pension": "New State Pension", + "gender": "Female" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "category_id": "dwp.state_pension", + "label": "State Pension recipients, female 70 to 74, New State Pension", + "value_operation": "monthly_window_sum_average", + "period_match_policy": "source_window", + "value_operands": [ + { + "dimension_values": { + "age_bands_and_single_year": 70, + "category_of_pension": "New State Pension", + "gender": "Female" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 71, + "category_of_pension": "New State Pension", + "gender": "Female" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 72, + "category_of_pension": "New State Pension", + "gender": "Female" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 73, + "category_of_pension": "New State Pension", + "gender": "Female" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 74, + "category_of_pension": "New State Pension", + "gender": "Female" + } + } + ] + }, + { + "target_id": "dwp.state_pension.recipients_female_70_74_pre_2016", + "family": "dwp_state_pension", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "person", + "map_to": "household", + "concept": "uk.person.count", + "filters": [ + { + "concept": "uk.benefits.state_pension.amount", + "operator": ">", + "value": 0 + }, + { + "concept": "uk.demographics.gender", + "equals": "female" + }, + { + "concept": "uk.demographics.age", + "operator": ">=", + "value": 70 + }, + { + "concept": "uk.demographics.age", + "operator": "<=", + "value": 74 + }, + { + "concept": "uk.benefits.state_pension.type", + "equals": "pre_2016" + }, + { + "concept": "uk.geography.country", + "operator": "in", + "value": [ + "england", + "scotland", + "wales" + ] + } + ], + "source_months": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "bindings": { + "policyengine": { + "from_entity": "person", + "map_to": "household", + "metric_name": "dwp/state_pension/recipients_female_70_74_pre_2016", + "value_variable": "person_count", + "filters": [ + { + "variable": "state_pension", + "operator": ">", + "value": 0 + }, + { + "variable": "gender", + "equals": "FEMALE" + }, + { + "variable": "age", + "operator": ">=", + "value": 70 + }, + { + "variable": "age", + "operator": "<=", + "value": 74 + }, + { + "variable": "state_pension_type", + "operator": "==", + "value": "BASIC" + } + ], + "household_conditions": [ + { + "variable": "region", + "entity": "household", + "reduce": "any", + "operator": "in", + "value": [ + "NORTH_EAST", + "NORTH_WEST", + "YORKSHIRE", + "EAST_MIDLANDS", + "WEST_MIDLANDS", + "EAST_OF_ENGLAND", + "LONDON", + "SOUTH_EAST", + "SOUTH_WEST", + "WALES", + "SCOTLAND" + ], + "map_to": "person" + } + ], + "notes": "DWP Stat-Xplore State Pension caseload, Great Britain residents (PolicyEngine/chronicle#302 via #305): female recipients aged 70 to 74 on the Pre-2016 State Pension, summed over the published single years of age at each quarterly point inside calendar 2025 and averaged. Only the cells DWP populates are bound: the type follows the State Pension age date, so 66 to 69 is all new State Pension and 75 and over all pre-2016 (microcosm#1069 c3)." + }, + "axiom": { + "metric_name": "dwp/state_pension/recipients_female_70_74_pre_2016", + "status": "pending", + "value_rule": "uk.person.count" + } + }, + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_age_gender_type", + "dimensions": [ + "age_bands_and_single_year", + "category_of_pension", + "gender" + ], + "dimension_values": { + "age_bands_and_single_year": [ + 70, + 71, + 72, + 73, + 74 + ], + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "category_id": "dwp.state_pension", + "label": "State Pension recipients, female 70 to 74, Pre-2016 State Pension", + "value_operation": "monthly_window_sum_average", + "period_match_policy": "source_window", + "value_operands": [ + { + "dimension_values": { + "age_bands_and_single_year": 70, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 71, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 72, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 73, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 74, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + } + } + ] + }, + { + "target_id": "dwp.state_pension.recipients_male_75_79_pre_2016", + "family": "dwp_state_pension", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "person", + "map_to": "household", + "concept": "uk.person.count", + "filters": [ + { + "concept": "uk.benefits.state_pension.amount", + "operator": ">", + "value": 0 + }, + { + "concept": "uk.demographics.gender", + "equals": "male" + }, + { + "concept": "uk.demographics.age", + "operator": ">=", + "value": 75 + }, + { + "concept": "uk.demographics.age", + "operator": "<=", + "value": 79 + }, + { + "concept": "uk.benefits.state_pension.type", + "equals": "pre_2016" + }, + { + "concept": "uk.geography.country", + "operator": "in", + "value": [ + "england", + "scotland", + "wales" + ] + } + ], + "source_months": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "bindings": { + "policyengine": { + "from_entity": "person", + "map_to": "household", + "metric_name": "dwp/state_pension/recipients_male_75_79_pre_2016", + "value_variable": "person_count", + "filters": [ + { + "variable": "state_pension", + "operator": ">", + "value": 0 + }, + { + "variable": "gender", + "equals": "MALE" + }, + { + "variable": "age", + "operator": ">=", + "value": 75 + }, + { + "variable": "age", + "operator": "<=", + "value": 79 + }, + { + "variable": "state_pension_type", + "operator": "==", + "value": "BASIC" + } + ], + "household_conditions": [ + { + "variable": "region", + "entity": "household", + "reduce": "any", + "operator": "in", + "value": [ + "NORTH_EAST", + "NORTH_WEST", + "YORKSHIRE", + "EAST_MIDLANDS", + "WEST_MIDLANDS", + "EAST_OF_ENGLAND", + "LONDON", + "SOUTH_EAST", + "SOUTH_WEST", + "WALES", + "SCOTLAND" + ], + "map_to": "person" + } + ], + "notes": "DWP Stat-Xplore State Pension caseload, Great Britain residents (PolicyEngine/chronicle#302 via #305): male recipients aged 75 to 79 on the Pre-2016 State Pension, summed over the published single years of age at each quarterly point inside calendar 2025 and averaged. Only the cells DWP populates are bound: the type follows the State Pension age date, so 66 to 69 is all new State Pension and 75 and over all pre-2016 (microcosm#1069 c3)." + }, + "axiom": { + "metric_name": "dwp/state_pension/recipients_male_75_79_pre_2016", + "status": "pending", + "value_rule": "uk.person.count" + } + }, + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_age_gender_type", + "dimensions": [ + "age_bands_and_single_year", + "category_of_pension", + "gender" + ], + "dimension_values": { + "age_bands_and_single_year": [ + 75, + 76, + 77, + 78, + 79 + ], + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "category_id": "dwp.state_pension", + "label": "State Pension recipients, male 75 to 79, Pre-2016 State Pension", + "value_operation": "monthly_window_sum_average", + "period_match_policy": "source_window", + "value_operands": [ + { + "dimension_values": { + "age_bands_and_single_year": 75, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 76, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 77, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 78, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 79, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + } + } + ] + }, + { + "target_id": "dwp.state_pension.recipients_female_75_79_pre_2016", + "family": "dwp_state_pension", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "person", + "map_to": "household", + "concept": "uk.person.count", + "filters": [ + { + "concept": "uk.benefits.state_pension.amount", + "operator": ">", + "value": 0 + }, + { + "concept": "uk.demographics.gender", + "equals": "female" + }, + { + "concept": "uk.demographics.age", + "operator": ">=", + "value": 75 + }, + { + "concept": "uk.demographics.age", + "operator": "<=", + "value": 79 + }, + { + "concept": "uk.benefits.state_pension.type", + "equals": "pre_2016" + }, + { + "concept": "uk.geography.country", + "operator": "in", + "value": [ + "england", + "scotland", + "wales" + ] + } + ], + "source_months": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "bindings": { + "policyengine": { + "from_entity": "person", + "map_to": "household", + "metric_name": "dwp/state_pension/recipients_female_75_79_pre_2016", + "value_variable": "person_count", + "filters": [ + { + "variable": "state_pension", + "operator": ">", + "value": 0 + }, + { + "variable": "gender", + "equals": "FEMALE" + }, + { + "variable": "age", + "operator": ">=", + "value": 75 + }, + { + "variable": "age", + "operator": "<=", + "value": 79 + }, + { + "variable": "state_pension_type", + "operator": "==", + "value": "BASIC" + } + ], + "household_conditions": [ + { + "variable": "region", + "entity": "household", + "reduce": "any", + "operator": "in", + "value": [ + "NORTH_EAST", + "NORTH_WEST", + "YORKSHIRE", + "EAST_MIDLANDS", + "WEST_MIDLANDS", + "EAST_OF_ENGLAND", + "LONDON", + "SOUTH_EAST", + "SOUTH_WEST", + "WALES", + "SCOTLAND" + ], + "map_to": "person" + } + ], + "notes": "DWP Stat-Xplore State Pension caseload, Great Britain residents (PolicyEngine/chronicle#302 via #305): female recipients aged 75 to 79 on the Pre-2016 State Pension, summed over the published single years of age at each quarterly point inside calendar 2025 and averaged. Only the cells DWP populates are bound: the type follows the State Pension age date, so 66 to 69 is all new State Pension and 75 and over all pre-2016 (microcosm#1069 c3)." + }, + "axiom": { + "metric_name": "dwp/state_pension/recipients_female_75_79_pre_2016", + "status": "pending", + "value_rule": "uk.person.count" + } + }, + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_age_gender_type", + "dimensions": [ + "age_bands_and_single_year", + "category_of_pension", + "gender" + ], + "dimension_values": { + "age_bands_and_single_year": [ + 75, + 76, + 77, + 78, + 79 + ], + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "category_id": "dwp.state_pension", + "label": "State Pension recipients, female 75 to 79, Pre-2016 State Pension", + "value_operation": "monthly_window_sum_average", + "period_match_policy": "source_window", + "value_operands": [ + { + "dimension_values": { + "age_bands_and_single_year": 75, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 76, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 77, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 78, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 79, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + } + } + ] + }, + { + "target_id": "dwp.state_pension.recipients_male_80_84_pre_2016", + "family": "dwp_state_pension", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "person", + "map_to": "household", + "concept": "uk.person.count", + "filters": [ + { + "concept": "uk.benefits.state_pension.amount", + "operator": ">", + "value": 0 + }, + { + "concept": "uk.demographics.gender", + "equals": "male" + }, + { + "concept": "uk.demographics.age", + "operator": ">=", + "value": 80 + }, + { + "concept": "uk.demographics.age", + "operator": "<=", + "value": 84 + }, + { + "concept": "uk.benefits.state_pension.type", + "equals": "pre_2016" + }, + { + "concept": "uk.geography.country", + "operator": "in", + "value": [ + "england", + "scotland", + "wales" + ] + } + ], + "source_months": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "bindings": { + "policyengine": { + "from_entity": "person", + "map_to": "household", + "metric_name": "dwp/state_pension/recipients_male_80_84_pre_2016", + "value_variable": "person_count", + "filters": [ + { + "variable": "state_pension", + "operator": ">", + "value": 0 + }, + { + "variable": "gender", + "equals": "MALE" + }, + { + "variable": "age", + "operator": ">=", + "value": 80 + }, + { + "variable": "age", + "operator": "<=", + "value": 84 + }, + { + "variable": "state_pension_type", + "operator": "==", + "value": "BASIC" + } + ], + "household_conditions": [ + { + "variable": "region", + "entity": "household", + "reduce": "any", + "operator": "in", + "value": [ + "NORTH_EAST", + "NORTH_WEST", + "YORKSHIRE", + "EAST_MIDLANDS", + "WEST_MIDLANDS", + "EAST_OF_ENGLAND", + "LONDON", + "SOUTH_EAST", + "SOUTH_WEST", + "WALES", + "SCOTLAND" + ], + "map_to": "person" + } + ], + "notes": "DWP Stat-Xplore State Pension caseload, Great Britain residents (PolicyEngine/chronicle#302 via #305): male recipients aged 80 to 84 on the Pre-2016 State Pension, summed over the published single years of age at each quarterly point inside calendar 2025 and averaged. Only the cells DWP populates are bound: the type follows the State Pension age date, so 66 to 69 is all new State Pension and 75 and over all pre-2016 (microcosm#1069 c3)." + }, + "axiom": { + "metric_name": "dwp/state_pension/recipients_male_80_84_pre_2016", + "status": "pending", + "value_rule": "uk.person.count" + } + }, + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_age_gender_type", + "dimensions": [ + "age_bands_and_single_year", + "category_of_pension", + "gender" + ], + "dimension_values": { + "age_bands_and_single_year": [ + 80, + 81, + 82, + 83, + 84 + ], + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "category_id": "dwp.state_pension", + "label": "State Pension recipients, male 80 to 84, Pre-2016 State Pension", + "value_operation": "monthly_window_sum_average", + "period_match_policy": "source_window", + "value_operands": [ + { + "dimension_values": { + "age_bands_and_single_year": 80, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 81, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 82, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 83, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 84, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + } + } + ] + }, + { + "target_id": "dwp.state_pension.recipients_female_80_84_pre_2016", + "family": "dwp_state_pension", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "person", + "map_to": "household", + "concept": "uk.person.count", + "filters": [ + { + "concept": "uk.benefits.state_pension.amount", + "operator": ">", + "value": 0 + }, + { + "concept": "uk.demographics.gender", + "equals": "female" + }, + { + "concept": "uk.demographics.age", + "operator": ">=", + "value": 80 + }, + { + "concept": "uk.demographics.age", + "operator": "<=", + "value": 84 + }, + { + "concept": "uk.benefits.state_pension.type", + "equals": "pre_2016" + }, + { + "concept": "uk.geography.country", + "operator": "in", + "value": [ + "england", + "scotland", + "wales" + ] + } + ], + "source_months": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "bindings": { + "policyengine": { + "from_entity": "person", + "map_to": "household", + "metric_name": "dwp/state_pension/recipients_female_80_84_pre_2016", + "value_variable": "person_count", + "filters": [ + { + "variable": "state_pension", + "operator": ">", + "value": 0 + }, + { + "variable": "gender", + "equals": "FEMALE" + }, + { + "variable": "age", + "operator": ">=", + "value": 80 + }, + { + "variable": "age", + "operator": "<=", + "value": 84 + }, + { + "variable": "state_pension_type", + "operator": "==", + "value": "BASIC" + } + ], + "household_conditions": [ + { + "variable": "region", + "entity": "household", + "reduce": "any", + "operator": "in", + "value": [ + "NORTH_EAST", + "NORTH_WEST", + "YORKSHIRE", + "EAST_MIDLANDS", + "WEST_MIDLANDS", + "EAST_OF_ENGLAND", + "LONDON", + "SOUTH_EAST", + "SOUTH_WEST", + "WALES", + "SCOTLAND" + ], + "map_to": "person" + } + ], + "notes": "DWP Stat-Xplore State Pension caseload, Great Britain residents (PolicyEngine/chronicle#302 via #305): female recipients aged 80 to 84 on the Pre-2016 State Pension, summed over the published single years of age at each quarterly point inside calendar 2025 and averaged. Only the cells DWP populates are bound: the type follows the State Pension age date, so 66 to 69 is all new State Pension and 75 and over all pre-2016 (microcosm#1069 c3)." + }, + "axiom": { + "metric_name": "dwp/state_pension/recipients_female_80_84_pre_2016", + "status": "pending", + "value_rule": "uk.person.count" + } + }, + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_age_gender_type", + "dimensions": [ + "age_bands_and_single_year", + "category_of_pension", + "gender" + ], + "dimension_values": { + "age_bands_and_single_year": [ + 80, + 81, + 82, + 83, + 84 + ], + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "category_id": "dwp.state_pension", + "label": "State Pension recipients, female 80 to 84, Pre-2016 State Pension", + "value_operation": "monthly_window_sum_average", + "period_match_policy": "source_window", + "value_operands": [ + { + "dimension_values": { + "age_bands_and_single_year": 80, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 81, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 82, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 83, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 84, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + } + } + ] + }, + { + "target_id": "dwp.state_pension.recipients_male_85_89_pre_2016", + "family": "dwp_state_pension", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "person", + "map_to": "household", + "concept": "uk.person.count", + "filters": [ + { + "concept": "uk.benefits.state_pension.amount", + "operator": ">", + "value": 0 + }, + { + "concept": "uk.demographics.gender", + "equals": "male" + }, + { + "concept": "uk.demographics.age", + "operator": ">=", + "value": 85 + }, + { + "concept": "uk.demographics.age", + "operator": "<=", + "value": 89 + }, + { + "concept": "uk.benefits.state_pension.type", + "equals": "pre_2016" + }, + { + "concept": "uk.geography.country", + "operator": "in", + "value": [ + "england", + "scotland", + "wales" + ] + } + ], + "source_months": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "bindings": { + "policyengine": { + "from_entity": "person", + "map_to": "household", + "metric_name": "dwp/state_pension/recipients_male_85_89_pre_2016", + "value_variable": "person_count", + "filters": [ + { + "variable": "state_pension", + "operator": ">", + "value": 0 + }, + { + "variable": "gender", + "equals": "MALE" + }, + { + "variable": "age", + "operator": ">=", + "value": 85 + }, + { + "variable": "age", + "operator": "<=", + "value": 89 + }, + { + "variable": "state_pension_type", + "operator": "==", + "value": "BASIC" + } + ], + "household_conditions": [ + { + "variable": "region", + "entity": "household", + "reduce": "any", + "operator": "in", + "value": [ + "NORTH_EAST", + "NORTH_WEST", + "YORKSHIRE", + "EAST_MIDLANDS", + "WEST_MIDLANDS", + "EAST_OF_ENGLAND", + "LONDON", + "SOUTH_EAST", + "SOUTH_WEST", + "WALES", + "SCOTLAND" + ], + "map_to": "person" + } + ], + "notes": "DWP Stat-Xplore State Pension caseload, Great Britain residents (PolicyEngine/chronicle#302 via #305): male recipients aged 85 to 89 on the Pre-2016 State Pension, summed over the published single years of age at each quarterly point inside calendar 2025 and averaged. Only the cells DWP populates are bound: the type follows the State Pension age date, so 66 to 69 is all new State Pension and 75 and over all pre-2016 (microcosm#1069 c3)." + }, + "axiom": { + "metric_name": "dwp/state_pension/recipients_male_85_89_pre_2016", + "status": "pending", + "value_rule": "uk.person.count" + } + }, + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_age_gender_type", + "dimensions": [ + "age_bands_and_single_year", + "category_of_pension", + "gender" + ], + "dimension_values": { + "age_bands_and_single_year": [ + 85, + 86, + 87, + 88, + 89 + ], + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "category_id": "dwp.state_pension", + "label": "State Pension recipients, male 85 to 89, Pre-2016 State Pension", + "value_operation": "monthly_window_sum_average", + "period_match_policy": "source_window", + "value_operands": [ + { + "dimension_values": { + "age_bands_and_single_year": 85, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 86, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 87, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 88, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 89, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + } + } + ] + }, + { + "target_id": "dwp.state_pension.recipients_female_85_89_pre_2016", + "family": "dwp_state_pension", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "person", + "map_to": "household", + "concept": "uk.person.count", + "filters": [ + { + "concept": "uk.benefits.state_pension.amount", + "operator": ">", + "value": 0 + }, + { + "concept": "uk.demographics.gender", + "equals": "female" + }, + { + "concept": "uk.demographics.age", + "operator": ">=", + "value": 85 + }, + { + "concept": "uk.demographics.age", + "operator": "<=", + "value": 89 + }, + { + "concept": "uk.benefits.state_pension.type", + "equals": "pre_2016" + }, + { + "concept": "uk.geography.country", + "operator": "in", + "value": [ + "england", + "scotland", + "wales" + ] + } + ], + "source_months": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "bindings": { + "policyengine": { + "from_entity": "person", + "map_to": "household", + "metric_name": "dwp/state_pension/recipients_female_85_89_pre_2016", + "value_variable": "person_count", + "filters": [ + { + "variable": "state_pension", + "operator": ">", + "value": 0 + }, + { + "variable": "gender", + "equals": "FEMALE" + }, + { + "variable": "age", + "operator": ">=", + "value": 85 + }, + { + "variable": "age", + "operator": "<=", + "value": 89 + }, + { + "variable": "state_pension_type", + "operator": "==", + "value": "BASIC" + } + ], + "household_conditions": [ + { + "variable": "region", + "entity": "household", + "reduce": "any", + "operator": "in", + "value": [ + "NORTH_EAST", + "NORTH_WEST", + "YORKSHIRE", + "EAST_MIDLANDS", + "WEST_MIDLANDS", + "EAST_OF_ENGLAND", + "LONDON", + "SOUTH_EAST", + "SOUTH_WEST", + "WALES", + "SCOTLAND" + ], + "map_to": "person" + } + ], + "notes": "DWP Stat-Xplore State Pension caseload, Great Britain residents (PolicyEngine/chronicle#302 via #305): female recipients aged 85 to 89 on the Pre-2016 State Pension, summed over the published single years of age at each quarterly point inside calendar 2025 and averaged. Only the cells DWP populates are bound: the type follows the State Pension age date, so 66 to 69 is all new State Pension and 75 and over all pre-2016 (microcosm#1069 c3)." + }, + "axiom": { + "metric_name": "dwp/state_pension/recipients_female_85_89_pre_2016", + "status": "pending", + "value_rule": "uk.person.count" + } + }, + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_age_gender_type", + "dimensions": [ + "age_bands_and_single_year", + "category_of_pension", + "gender" + ], + "dimension_values": { + "age_bands_and_single_year": [ + 85, + 86, + 87, + 88, + 89 + ], + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "category_id": "dwp.state_pension", + "label": "State Pension recipients, female 85 to 89, Pre-2016 State Pension", + "value_operation": "monthly_window_sum_average", + "period_match_policy": "source_window", + "value_operands": [ + { + "dimension_values": { + "age_bands_and_single_year": 85, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 86, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 87, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 88, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + } + }, + { + "dimension_values": { + "age_bands_and_single_year": 89, + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + } + } + ] + }, + { + "target_id": "dwp.state_pension.recipients_male_90_plus_pre_2016", + "family": "dwp_state_pension", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "person", + "map_to": "household", + "concept": "uk.person.count", + "filters": [ + { + "concept": "uk.benefits.state_pension.amount", + "operator": ">", + "value": 0 + }, + { + "concept": "uk.demographics.gender", + "equals": "male" + }, + { + "concept": "uk.demographics.age", + "operator": ">=", + "value": 90 + }, + { + "concept": "uk.benefits.state_pension.type", + "equals": "pre_2016" + }, + { + "concept": "uk.geography.country", + "operator": "in", + "value": [ + "england", + "scotland", + "wales" + ] + } + ], + "source_months": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "bindings": { + "policyengine": { + "from_entity": "person", + "map_to": "household", + "metric_name": "dwp/state_pension/recipients_male_90_plus_pre_2016", + "value_variable": "person_count", + "filters": [ + { + "variable": "state_pension", + "operator": ">", + "value": 0 + }, + { + "variable": "gender", + "equals": "MALE" + }, + { + "variable": "age", + "operator": ">=", + "value": 90 + }, + { + "variable": "state_pension_type", + "operator": "==", + "value": "BASIC" + } + ], + "household_conditions": [ + { + "variable": "region", + "entity": "household", + "reduce": "any", + "operator": "in", + "value": [ + "NORTH_EAST", + "NORTH_WEST", + "YORKSHIRE", + "EAST_MIDLANDS", + "WEST_MIDLANDS", + "EAST_OF_ENGLAND", + "LONDON", + "SOUTH_EAST", + "SOUTH_WEST", + "WALES", + "SCOTLAND" + ], + "map_to": "person" + } + ], + "notes": "DWP Stat-Xplore State Pension caseload, Great Britain residents (PolicyEngine/chronicle#302 via #305): male recipients aged 90 and over on the Pre-2016 State Pension, summed over the published single years of age at each quarterly point inside calendar 2025 and averaged. Only the cells DWP populates are bound: the type follows the State Pension age date, so 66 to 69 is all new State Pension and 75 and over all pre-2016 (microcosm#1069 c3)." + }, + "axiom": { + "metric_name": "dwp/state_pension/recipients_male_90_plus_pre_2016", + "status": "pending", + "value_rule": "uk.person.count" + } + }, + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_age_gender_type", + "dimensions": [ + "age_bands_and_single_year", + "category_of_pension", + "gender" + ], + "dimension_values": { + "age_bands_and_single_year": "90 and over", + "category_of_pension": "Pre-2016 State Pension", + "gender": "Male" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "category_id": "dwp.state_pension", + "label": "State Pension recipients, male 90 and over, Pre-2016 State Pension", + "value_operation": "monthly_window_average", + "period_match_policy": "source_window" + }, + { + "target_id": "dwp.state_pension.recipients_female_90_plus_pre_2016", + "family": "dwp_state_pension", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "person", + "map_to": "household", + "concept": "uk.person.count", + "filters": [ + { + "concept": "uk.benefits.state_pension.amount", + "operator": ">", + "value": 0 + }, + { + "concept": "uk.demographics.gender", + "equals": "female" + }, + { + "concept": "uk.demographics.age", + "operator": ">=", + "value": 90 + }, + { + "concept": "uk.benefits.state_pension.type", + "equals": "pre_2016" + }, + { + "concept": "uk.geography.country", + "operator": "in", + "value": [ + "england", + "scotland", + "wales" + ] + } + ], + "source_months": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "bindings": { + "policyengine": { + "from_entity": "person", + "map_to": "household", + "metric_name": "dwp/state_pension/recipients_female_90_plus_pre_2016", + "value_variable": "person_count", + "filters": [ + { + "variable": "state_pension", + "operator": ">", + "value": 0 + }, + { + "variable": "gender", + "equals": "FEMALE" + }, + { + "variable": "age", + "operator": ">=", + "value": 90 + }, + { + "variable": "state_pension_type", + "operator": "==", + "value": "BASIC" + } + ], + "household_conditions": [ + { + "variable": "region", + "entity": "household", + "reduce": "any", + "operator": "in", + "value": [ + "NORTH_EAST", + "NORTH_WEST", + "YORKSHIRE", + "EAST_MIDLANDS", + "WEST_MIDLANDS", + "EAST_OF_ENGLAND", + "LONDON", + "SOUTH_EAST", + "SOUTH_WEST", + "WALES", + "SCOTLAND" + ], + "map_to": "person" + } + ], + "notes": "DWP Stat-Xplore State Pension caseload, Great Britain residents (PolicyEngine/chronicle#302 via #305): female recipients aged 90 and over on the Pre-2016 State Pension, summed over the published single years of age at each quarterly point inside calendar 2025 and averaged. Only the cells DWP populates are bound: the type follows the State Pension age date, so 66 to 69 is all new State Pension and 75 and over all pre-2016 (microcosm#1069 c3)." + }, + "axiom": { + "metric_name": "dwp/state_pension/recipients_female_90_plus_pre_2016", + "status": "pending", + "value_rule": "uk.person.count" + } + }, + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_age_gender_type", + "dimensions": [ + "age_bands_and_single_year", + "category_of_pension", + "gender" + ], + "dimension_values": { + "age_bands_and_single_year": "90 and over", + "category_of_pension": "Pre-2016 State Pension", + "gender": "Female" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "category_id": "dwp.state_pension", + "label": "State Pension recipients, female 90 and over, Pre-2016 State Pension", + "value_operation": "monthly_window_average", + "period_match_policy": "source_window" + }, + { + "target_id": "dwp.state_pension.recipients_new_by_english_region", + "family": "dwp_state_pension", + "geography_levels": [ + "country", + "region" + ], + "measurement": { + "entity": "person", + "map_to": "household", + "concept": "uk.person.count", + "filters": [ + { + "concept": "uk.benefits.state_pension.amount", + "operator": ">", + "value": 0 + }, + { + "concept": "uk.benefits.state_pension.type", + "equals": "new" + }, + { + "concept": "uk.geography.country", + "equals": "england" + } + ], + "source_months": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "bindings": { + "policyengine": { + "from_entity": "person", + "map_to": "household", + "metric_name": "dwp/state_pension/recipients_new_by_english_region", + "value_variable": "person_count", + "filters": [ + { + "variable": "state_pension", + "operator": ">", + "value": 0 + }, + { + "variable": "state_pension_type", + "operator": "==", + "value": "NEW" + } + ], + "household_conditions": [ + { + "variable": "country", + "entity": "household", + "reduce": "any", + "operator": "==", + "value": "ENGLAND", + "map_to": "person" + } + ], + "notes": "DWP Stat-Xplore State Pension caseload, Great Britain residents (PolicyEngine/chronicle#302 via #305): New State Pension recipients in each of the nine English regions (one row per region); Scotland and Wales are their own rows because the region tier fans out over England or the whole UK and DWP publishes no Northern Ireland cell, as the mean of the four quarterly points inside calendar 2025 (microcosm#1069 c3)." + }, + "axiom": { + "metric_name": "dwp/state_pension/recipients_new_by_english_region", + "status": "pending", + "value_rule": "uk.person.count" + } + }, + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "groupby_dimension": "dwp.state_pension_region_type_gender", + "dimensions": [ + "category_of_pension", + "gender" + ], + "dimension_values": { + "category_of_pension": "New State Pension", + "gender": "all" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "category_id": "dwp.state_pension", + "label": "State Pension recipients, New State Pension, English regions", + "value_operation": "monthly_window_average", + "period_match_policy": "source_window" + }, + { + "target_id": "dwp.state_pension.recipients_new_scotland", + "family": "dwp_state_pension", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "person", + "map_to": "household", + "concept": "uk.person.count", + "filters": [ + { + "concept": "uk.benefits.state_pension.amount", + "operator": ">", + "value": 0 + }, + { + "concept": "uk.benefits.state_pension.type", + "equals": "new" + }, + { + "concept": "uk.geography.country", + "equals": "scotland" + } + ], + "source_months": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "bindings": { + "policyengine": { + "from_entity": "person", + "map_to": "household", + "metric_name": "dwp/state_pension/recipients_new_scotland", + "value_variable": "person_count", + "filters": [ + { + "variable": "state_pension", + "operator": ">", + "value": 0 + }, + { + "variable": "state_pension_type", + "operator": "==", + "value": "NEW" + } + ], + "household_conditions": [ + { + "variable": "region", + "entity": "household", + "reduce": "any", + "operator": "==", + "value": "SCOTLAND", + "map_to": "person" + } + ], + "notes": "DWP Stat-Xplore State Pension caseload, Great Britain residents (PolicyEngine/chronicle#302 via #305): New State Pension recipients in Scotland, as the mean of the four quarterly points inside calendar 2025 (microcosm#1069 c3)." + }, + "axiom": { + "metric_name": "dwp/state_pension/recipients_new_scotland", + "status": "pending", + "value_rule": "uk.person.count" + } + }, + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "groupby_dimension": "dwp.state_pension_region_type_gender", + "dimensions": [ + "category_of_pension", + "gender" + ], + "dimension_values": { + "category_of_pension": "New State Pension", + "gender": "all" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "category_id": "dwp.state_pension", + "label": "State Pension recipients, New State Pension, Scotland", + "value_operation": "monthly_window_average", + "period_match_policy": "source_window" + }, + { + "target_id": "dwp.state_pension.recipients_new_wales", + "family": "dwp_state_pension", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "person", + "map_to": "household", + "concept": "uk.person.count", + "filters": [ + { + "concept": "uk.benefits.state_pension.amount", + "operator": ">", + "value": 0 + }, + { + "concept": "uk.benefits.state_pension.type", + "equals": "new" + }, + { + "concept": "uk.geography.country", + "equals": "wales" + } + ], + "source_months": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "bindings": { + "policyengine": { + "from_entity": "person", + "map_to": "household", + "metric_name": "dwp/state_pension/recipients_new_wales", + "value_variable": "person_count", + "filters": [ + { + "variable": "state_pension", + "operator": ">", + "value": 0 + }, + { + "variable": "state_pension_type", + "operator": "==", + "value": "NEW" + } + ], + "household_conditions": [ + { + "variable": "region", + "entity": "household", + "reduce": "any", + "operator": "==", + "value": "WALES", + "map_to": "person" + } + ], + "notes": "DWP Stat-Xplore State Pension caseload, Great Britain residents (PolicyEngine/chronicle#302 via #305): New State Pension recipients in Wales, as the mean of the four quarterly points inside calendar 2025 (microcosm#1069 c3)." + }, + "axiom": { + "metric_name": "dwp/state_pension/recipients_new_wales", + "status": "pending", + "value_rule": "uk.person.count" + } + }, + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "groupby_dimension": "dwp.state_pension_region_type_gender", + "dimensions": [ + "category_of_pension", + "gender" + ], + "dimension_values": { + "category_of_pension": "New State Pension", + "gender": "all" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "category_id": "dwp.state_pension", + "label": "State Pension recipients, New State Pension, Wales", + "value_operation": "monthly_window_average", + "period_match_policy": "source_window" + }, + { + "target_id": "dwp.state_pension.recipients_pre_2016_by_english_region", + "family": "dwp_state_pension", + "geography_levels": [ + "country", + "region" + ], + "measurement": { + "entity": "person", + "map_to": "household", + "concept": "uk.person.count", + "filters": [ + { + "concept": "uk.benefits.state_pension.amount", + "operator": ">", + "value": 0 + }, + { + "concept": "uk.benefits.state_pension.type", + "equals": "pre_2016" + }, + { + "concept": "uk.geography.country", + "equals": "england" + } + ], + "source_months": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "bindings": { + "policyengine": { + "from_entity": "person", + "map_to": "household", + "metric_name": "dwp/state_pension/recipients_pre_2016_by_english_region", + "value_variable": "person_count", + "filters": [ + { + "variable": "state_pension", + "operator": ">", + "value": 0 + }, + { + "variable": "state_pension_type", + "operator": "==", + "value": "BASIC" + } + ], + "household_conditions": [ + { + "variable": "country", + "entity": "household", + "reduce": "any", + "operator": "==", + "value": "ENGLAND", + "map_to": "person" + } + ], + "notes": "DWP Stat-Xplore State Pension caseload, Great Britain residents (PolicyEngine/chronicle#302 via #305): Pre-2016 State Pension recipients in each of the nine English regions (one row per region); Scotland and Wales are their own rows because the region tier fans out over England or the whole UK and DWP publishes no Northern Ireland cell, as the mean of the four quarterly points inside calendar 2025 (microcosm#1069 c3)." + }, + "axiom": { + "metric_name": "dwp/state_pension/recipients_pre_2016_by_english_region", + "status": "pending", + "value_rule": "uk.person.count" + } + }, + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "groupby_dimension": "dwp.state_pension_region_type_gender", + "dimensions": [ + "category_of_pension", + "gender" + ], + "dimension_values": { + "category_of_pension": "Pre-2016 State Pension", + "gender": "all" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "category_id": "dwp.state_pension", + "label": "State Pension recipients, Pre-2016 State Pension, English regions", + "value_operation": "monthly_window_average", + "period_match_policy": "source_window" + }, + { + "target_id": "dwp.state_pension.recipients_pre_2016_scotland", + "family": "dwp_state_pension", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "person", + "map_to": "household", + "concept": "uk.person.count", + "filters": [ + { + "concept": "uk.benefits.state_pension.amount", + "operator": ">", + "value": 0 + }, + { + "concept": "uk.benefits.state_pension.type", + "equals": "pre_2016" + }, + { + "concept": "uk.geography.country", + "equals": "scotland" + } + ], + "source_months": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "bindings": { + "policyengine": { + "from_entity": "person", + "map_to": "household", + "metric_name": "dwp/state_pension/recipients_pre_2016_scotland", + "value_variable": "person_count", + "filters": [ + { + "variable": "state_pension", + "operator": ">", + "value": 0 + }, + { + "variable": "state_pension_type", + "operator": "==", + "value": "BASIC" + } + ], + "household_conditions": [ + { + "variable": "region", + "entity": "household", + "reduce": "any", + "operator": "==", + "value": "SCOTLAND", + "map_to": "person" + } + ], + "notes": "DWP Stat-Xplore State Pension caseload, Great Britain residents (PolicyEngine/chronicle#302 via #305): Pre-2016 State Pension recipients in Scotland, as the mean of the four quarterly points inside calendar 2025 (microcosm#1069 c3)." + }, + "axiom": { + "metric_name": "dwp/state_pension/recipients_pre_2016_scotland", + "status": "pending", + "value_rule": "uk.person.count" + } + }, + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "groupby_dimension": "dwp.state_pension_region_type_gender", + "dimensions": [ + "category_of_pension", + "gender" + ], + "dimension_values": { + "category_of_pension": "Pre-2016 State Pension", + "gender": "all" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "category_id": "dwp.state_pension", + "label": "State Pension recipients, Pre-2016 State Pension, Scotland", + "value_operation": "monthly_window_average", + "period_match_policy": "source_window" + }, + { + "target_id": "dwp.state_pension.recipients_pre_2016_wales", + "family": "dwp_state_pension", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "person", + "map_to": "household", + "concept": "uk.person.count", + "filters": [ + { + "concept": "uk.benefits.state_pension.amount", + "operator": ">", + "value": 0 + }, + { + "concept": "uk.benefits.state_pension.type", + "equals": "pre_2016" + }, + { + "concept": "uk.geography.country", + "equals": "wales" + } + ], + "source_months": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "bindings": { + "policyengine": { + "from_entity": "person", + "map_to": "household", + "metric_name": "dwp/state_pension/recipients_pre_2016_wales", + "value_variable": "person_count", + "filters": [ + { + "variable": "state_pension", + "operator": ">", + "value": 0 + }, + { + "variable": "state_pension_type", + "operator": "==", + "value": "BASIC" + } + ], + "household_conditions": [ + { + "variable": "region", + "entity": "household", + "reduce": "any", + "operator": "==", + "value": "WALES", + "map_to": "person" + } + ], + "notes": "DWP Stat-Xplore State Pension caseload, Great Britain residents (PolicyEngine/chronicle#302 via #305): Pre-2016 State Pension recipients in Wales, as the mean of the four quarterly points inside calendar 2025 (microcosm#1069 c3)." + }, + "axiom": { + "metric_name": "dwp/state_pension/recipients_pre_2016_wales", + "status": "pending", + "value_rule": "uk.person.count" + } + }, + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "groupby_dimension": "dwp.state_pension_region_type_gender", + "dimensions": [ + "category_of_pension", + "gender" + ], + "dimension_values": { + "category_of_pension": "Pre-2016 State Pension", + "gender": "all" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "category_id": "dwp.state_pension", + "label": "State Pension recipients, Pre-2016 State Pension, Wales", + "value_operation": "monthly_window_average", + "period_match_policy": "source_window" + }, + { + "target_id": "dwp.state_pension.recipients_new_by_weekly_amount", + "family": "dwp_state_pension", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "person", + "map_to": "household", + "concept": "uk.person.count", + "filters": [ + { + "concept": "uk.benefits.state_pension.amount", + "operator": ">", + "value": 0 + }, + { + "concept": "uk.benefits.state_pension.type", + "equals": "new" + }, + { + "concept": "uk.geography.country", + "operator": "in", + "value": [ + "england", + "scotland", + "wales" + ] + } + ], + "source_months": [ + "2025-05", + "2025-08", + "2025-11" + ] + }, + "bindings": { + "policyengine": { + "from_entity": "person", + "map_to": "household", + "metric_name": "dwp/state_pension/recipients_new_by_weekly_amount", + "value_variable": "person_count", + "groupby_variable": "state_pension", + "band_period_factor": 52, + "band_filter_dimension": "grouped_amount_of_benefit", + "filters": [ + { + "variable": "state_pension", + "operator": ">", + "value": 0 + }, + { + "variable": "state_pension_type", + "operator": "==", + "value": "NEW" + } + ], + "household_conditions": [ + { + "variable": "region", + "entity": "household", + "reduce": "any", + "operator": "in", + "value": [ + "NORTH_EAST", + "NORTH_WEST", + "YORKSHIRE", + "EAST_MIDLANDS", + "WEST_MIDLANDS", + "EAST_OF_ENGLAND", + "LONDON", + "SOUTH_EAST", + "SOUTH_WEST", + "WALES", + "SCOTLAND" + ], + "map_to": "person" + } + ], + "notes": "DWP Stat-Xplore State Pension caseload, Great Britain residents (PolicyEngine/chronicle#302 via #305): New State Pension recipients by weekly amount band (DWP's half-open bands, 'Under £20.00' to '£300.00 and over'), sliced on the engine's annual State Pension at 52 weeks. Counts by band cannot be restated to another year's rates, so the window keeps the May, August and November 2025 points, which DWP pays at the 2025-26 rate the engine pays (microcosm#1069 R1). The publisher's 'all' margin is a total row and is left out by the detail measure pin." + }, + "axiom": { + "metric_name": "dwp/state_pension/recipients_new_by_weekly_amount", + "status": "pending", + "value_rule": "uk.person.count" + } + }, + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_amount_band_type", + "dimensions": [ + "category_of_pension", + "grouped_amount_of_benefit" + ], + "dimension_values": { + "category_of_pension": "New State Pension" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-05", + "2025-08", + "2025-11" + ] + }, + "category_id": "dwp.state_pension", + "label": "State Pension recipients by weekly amount, New State Pension", + "value_operation": "monthly_window_average", + "period_match_policy": "source_window" + }, + { + "target_id": "dwp.state_pension.recipients_pre_2016_by_weekly_amount", + "family": "dwp_state_pension", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "person", + "map_to": "household", + "concept": "uk.person.count", + "filters": [ + { + "concept": "uk.benefits.state_pension.amount", + "operator": ">", + "value": 0 + }, + { + "concept": "uk.benefits.state_pension.type", + "equals": "pre_2016" + }, + { + "concept": "uk.geography.country", + "operator": "in", + "value": [ + "england", + "scotland", + "wales" + ] + } + ], + "source_months": [ + "2025-05", + "2025-08", + "2025-11" + ] + }, + "bindings": { + "policyengine": { + "from_entity": "person", + "map_to": "household", + "metric_name": "dwp/state_pension/recipients_pre_2016_by_weekly_amount", + "value_variable": "person_count", + "groupby_variable": "state_pension", + "band_period_factor": 52, + "band_filter_dimension": "grouped_amount_of_benefit", + "filters": [ + { + "variable": "state_pension", + "operator": ">", + "value": 0 + }, + { + "variable": "state_pension_type", + "operator": "==", + "value": "BASIC" + } + ], + "household_conditions": [ + { + "variable": "region", + "entity": "household", + "reduce": "any", + "operator": "in", + "value": [ + "NORTH_EAST", + "NORTH_WEST", + "YORKSHIRE", + "EAST_MIDLANDS", + "WEST_MIDLANDS", + "EAST_OF_ENGLAND", + "LONDON", + "SOUTH_EAST", + "SOUTH_WEST", + "WALES", + "SCOTLAND" + ], + "map_to": "person" + } + ], + "notes": "DWP Stat-Xplore State Pension caseload, Great Britain residents (PolicyEngine/chronicle#302 via #305): Pre-2016 State Pension recipients by weekly amount band (DWP's half-open bands, 'Under £20.00' to '£300.00 and over'), sliced on the engine's annual State Pension at 52 weeks. Counts by band cannot be restated to another year's rates, so the window keeps the May, August and November 2025 points, which DWP pays at the 2025-26 rate the engine pays (microcosm#1069 R1). The publisher's 'all' margin is a total row and is left out by the detail measure pin." + }, + "axiom": { + "metric_name": "dwp/state_pension/recipients_pre_2016_by_weekly_amount", + "status": "pending", + "value_rule": "uk.person.count" + } + }, + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.state_pension_caseload" + ], + "source_measure_id": "recipients", + "groupby_dimension": "dwp.state_pension_amount_band_type", + "dimensions": [ + "category_of_pension", + "grouped_amount_of_benefit" + ], + "dimension_values": { + "category_of_pension": "Pre-2016 State Pension" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-05", + "2025-08", + "2025-11" + ] + }, + "category_id": "dwp.state_pension", + "label": "State Pension recipients by weekly amount, Pre-2016 State Pension", + "value_operation": "monthly_window_average", + "period_match_policy": "source_window" + }, { "target_id": "hmrc.self_employment_income.amount", "family": "hmrc", @@ -23186,6 +26917,9 @@ }, "mhclg": { "label": "Ministry of Housing, Communities and Local Government" + }, + "dfc_ni": { + "label": "Department for Communities (Northern Ireland)" } }, "categories": { @@ -23344,6 +27078,14 @@ "hmrc.income_tax_liabilities_statistics": { "provider_id": "hmrc", "label": "Income Tax liabilities statistics" + }, + "dwp.state_pension": { + "provider_id": "dwp", + "label": "State Pension" + }, + "dfc_ni.state_pension": { + "provider_id": "dfc_ni", + "label": "State Pension" } } } diff --git a/packages/microcosm-build/tests/engine_free/shared/test_country_spec.py b/packages/microcosm-build/tests/engine_free/shared/test_country_spec.py index 86a922987..0dd25fad2 100644 --- a/packages/microcosm-build/tests/engine_free/shared/test_country_spec.py +++ b/packages/microcosm-build/tests/engine_free/shared/test_country_spec.py @@ -1125,7 +1125,7 @@ def test_uk_target_references_accept_regenerated_contract_fields(self) -> None: references = {reference.name: reference for reference in spec.target_references} assert ( - len(references) == 1152 + len(references) == 1212 ) # PolicyEngine/chronicle#280 lane: 705 + 33 HMRC liabilities rows (Table 2.5, three # measures by eleven bands) + 26 SPI savings-interest rows (two measures by # thirteen bands) + 360 SPI Table 3.11 region-tier rows (three measures by @@ -1135,7 +1135,8 @@ def test_uk_target_references_accept_regenerated_contract_fields(self) -> None: # cells and Wales gains ten country rows (bands A-I + total); # microcosm#725/#467: 24 CGT age-band rows, 24 region-tier cells and # 24 size-of-gain rows; microcosm#1014: 16 Table 4.1 BADR/IR band rows - # and 12 Table 3 taxable-income margin rows + # and 12 Table 3 taxable-income margin rows; microcosm#1069: 60 State + # Pension rows (4 levels, 14 age-by-sex cells, 22 area cells, 20 bands) assert references["obr.esa"].value_operation == "calendar_year_window" assert references["dwp.uc.households"].value_operation == ( "monthly_window_sum_average" diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_national_calibration.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_national_calibration.py index 2fe9d8e70..641950020 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_national_calibration.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_national_calibration.py @@ -53,7 +53,7 @@ from microcosm.calibrate.artifacts import decode_problem from microcosm.frame import EntitySchema, Frame, MassChange, WeightKind, Weights -ACTIVE_REFERENCE_COUNT = 1152 +ACTIVE_REFERENCE_COUNT = 1212 def _uc_reference(**overrides) -> LedgerTargetReference: diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_population_targets.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_population_targets.py index 95cb37a9c..eb5b15314 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_population_targets.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_population_targets.py @@ -176,6 +176,7 @@ def test_uk_population_targets_shape_order_and_registry_accounting() -> None: "calendar_year_average", "monthly_window_average", "monthly_window_sum_average", + "monthly_window_count_x_mean", "linear_combination", "scaled_by_ratio", "calendar_year_window", @@ -185,7 +186,8 @@ def test_uk_population_targets_shape_order_and_registry_accounting() -> None: "operation": "sum", "assertion_policy": "observed_only", } - assert len(resource["targets"]) == 346 + # 26 State Pension targets since microcosm#1069 c3. + assert len(resource["targets"]) == 372 providers = resource["hierarchy"]["providers"] categories = resource["hierarchy"]["categories"] @@ -199,10 +201,10 @@ def test_uk_population_targets_shape_order_and_registry_accounting() -> None: 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) == 295 + assert len(registry_scope) == 321 assert len(profile_scope) == 51 - assert target_ids[:295] == registry_scope - assert target_ids[295:] == profile_scope + assert target_ids[:321] == registry_scope + assert target_ids[321:] == profile_scope parity = resource["registry_parity"] assert parity["pinned_ref"] == "12a1e028afeef08d8b2d74ee03fd9de3a78b2dd3" @@ -216,7 +218,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) == 194 - assert len(unmapped_declarations) == 101 + assert len(unmapped_declarations) == 127 suppressed_ancestors = parity["suppressed_ancestors"] assert len(suppressed_ancestors) == 5 assert set(suppressed_ancestors).isdisjoint(parity["mapped"]) @@ -335,7 +337,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) == 346 + assert len(target_ids) == 372 assert len(target_ids) == len(set(target_ids)) @@ -803,7 +805,7 @@ def test_uc_payment_bands_share_administrative_family_but_keep_source_window() - def test_paid_joint_diagnostics_do_not_add_active_targets() -> None: targets = _load()["targets"] - assert len(targets) == 346 + assert len(targets) == 372 assert not any( f.get("variable") == "uc_calibration_child_entitlement" for target in targets diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_state_pension_targets.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_state_pension_targets.py new file mode 100644 index 000000000..394ed543f --- /dev/null +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_state_pension_targets.py @@ -0,0 +1,214 @@ +"""The State Pension target rows (microcosm#1069 c3).""" + +from __future__ import annotations + +import hashlib +import json +import os +import re +from pathlib import Path + +import pytest + +from microcosm.build.country_spec import load_country_spec +from microcosm.build.ledger_targets import compile_ledger_target_references +from microcosm.build.uk_runtime.chronicle_feed import load_uk_chronicle_feed +from microcosm.build.uk_runtime.local_targets import load_uk_population_contract +from test_support.paths import paths_for + +_TEST_PATHS = paths_for("microcosm-build") +AGE_CELL = re.compile(r"^dwp\.state_pension\.recipients_(male|female)_\d+_(\d+|plus)_") +STABLE_UK_FACT_FEED_NAME = ".codex-work/consumer_facts_uk.jsonl" +PUBLISHER_TYPE_TO_ENGINE = { + "New State Pension": "NEW", + "Pre-2016 State Pension": "BASIC", +} +GB_REGIONS = { + "NORTH_EAST", + "NORTH_WEST", + "YORKSHIRE", + "EAST_MIDLANDS", + "WEST_MIDLANDS", + "EAST_OF_ENGLAND", + "LONDON", + "SOUTH_EAST", + "SOUTH_WEST", + "WALES", + "SCOTLAND", +} + + +def _pension_targets() -> list[dict]: + return [ + target + for target in load_uk_population_contract()["targets"] + if target["family"] == "dwp_state_pension" + ] + + +def _pension_references() -> list: + return [ + reference + for reference in load_country_spec("uk").target_references + if reference.family == "dwp_state_pension" + ] + + +def _filter(binding: dict, variable: str, operator: str = "==") -> list: + return [ + predicate.get("value", predicate.get("equals")) + for predicate in binding.get("filters", ()) + if predicate["variable"] == variable + and predicate.get("operator", "==") == operator + ] + + +def test_the_state_pension_family_is_26_targets_and_60_references() -> None: + targets = _pension_targets() + references = _pension_references() + + assert len(targets) == 26 + assert len(references) == 60 + assert {target["category_id"] for target in targets} == { + "dwp.state_pension", + "dfc_ni.state_pension", + } + assert all(target["period_match_policy"] == "source_window" for target in targets) + + +def test_every_row_binds_the_population_its_selector_names() -> None: + for target in _pension_targets(): + binding = target["bindings"]["policyengine"] + selector = target["ledger_selector"] + cells = selector.get("dimension_values", {}) + conditions = binding["household_conditions"] + assert len(conditions) == 1, target["target_id"] + (condition,) = conditions + assert condition["map_to"] == "person" + if target["target_id"].startswith("dfc_ni."): + assert condition["value"] == "NORTHERN_IRELAND" + elif target["target_id"].endswith("_by_english_region"): + assert (condition["variable"], condition["value"]) == ( + "country", + "ENGLAND", + ) + elif target["target_id"].endswith(("_scotland", "_wales")): + assert condition["value"] == target["target_id"].rsplit("_", 1)[1].upper() + else: + assert set(condition["value"]) == GB_REGIONS + if binding.get("value_variable") == "person_count": + assert _filter(binding, "state_pension", ">") == [0] + publisher_type = cells.get("category_of_pension") + if publisher_type not in (None, "all"): + assert _filter(binding, "state_pension_type") == [ + PUBLISHER_TYPE_TO_ENGINE[publisher_type] + ], target["target_id"] + ages = cells.get("age_bands_and_single_year") + if ages not in (None, "all"): + low = _filter(binding, "age", ">=") + high = _filter(binding, "age", "<=") + if ages == "90 and over": + assert (low, high) == ([90], []) + else: + assert (low, high) == ([min(ages)], [max(ages)]) + assert [ + operand["dimension_values"]["age_bands_and_single_year"] + for operand in target["value_operands"] + ] == list(ages) + + +def test_the_amounts_multiply_recipients_by_the_weekly_mean_at_2025_rates() -> None: + amounts = [ + target + for target in _pension_targets() + if target["target_id"].endswith(".amount") + ] + + assert [target["target_id"] for target in amounts] == [ + "dwp.state_pension.amount", + "dfc_ni.state_pension.amount", + ] + for target in amounts: + assert target["value_operation"] == "monthly_window_count_x_mean" + assert target["value_operands"][1]["period_factor"] == 52 + assert target["uprating_index"] == ( + "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount" + ) + assert target["bindings"]["policyengine"]["value_variable"] == "state_pension" + + +def test_the_amount_bands_keep_the_points_paid_at_the_2025_26_rate() -> None: + bands = [ + target + for target in _pension_targets() + if target["target_id"].endswith("_by_weekly_amount") + ] + + assert len(bands) == 2 + for target in bands: + binding = target["bindings"]["policyengine"] + assert target["measurement"]["source_months"] == [ + "2025-05", + "2025-08", + "2025-11", + ] + assert binding["groupby_variable"] == "state_pension" + assert binding["band_period_factor"] == 52 + # The detail measure leaves out the publisher's 'all' margin row. + assert target["ledger_selector"]["source_measure_id"] == "recipients" + rows = [ + reference.name + for reference in _pension_references() + if "_by_weekly_amount." in reference.name + ] + assert len(rows) == 20 + assert not any("grouped_amount_of_benefit_all" in name for name in rows) + + +def _state_pension_facts() -> list[dict]: + """The pinned feed's State Pension facts, or skip (the artifact is untracked).""" + + root = _TEST_PATHS.repository + configured = os.environ.get("CHRONICLE_UK_FACTS") + feed = Path(configured) if configured else root / STABLE_UK_FACT_FEED_NAME + if feed.is_dir(): + feed = feed / "consumer_facts.jsonl" + if not feed.is_file(): + pytest.skip("pinned UK Chronicle consumer feed is not present") + assert hashlib.sha256(feed.read_bytes()).hexdigest() == ( + load_uk_chronicle_feed().facts_sha256 + ) + with feed.open(encoding="utf-8") as handle: + return [ + json.loads(line) + for line in handle + if "state-pension" in line or "state_pension" in line + ] + + +def test_the_shape_rows_reconcile_with_the_great_britain_level() -> None: + """Feed-gated: every shape partitions the resident caseload it describes.""" + + references = [ + reference + for reference in _pension_references() + if not reference.name.endswith(".amount") + and "_by_weekly_amount." not in reference.name + ] + compiled = compile_ledger_target_references( + _state_pension_facts(), references, country="uk" + ) + values = {spec.name: spec.value for spec in compiled.specs} + total = values["dwp.state_pension.recipients"] + ages = sum(value for name, value in values.items() if AGE_CELL.match(name)) + areas = sum( + value + for name, value in values.items() + if "_by_english_region@" in name or name.endswith(("_scotland", "_wales")) + ) + + # DWP's unknown ages (740) and the near-empty type cells left unbound are + # the only difference. + assert ages == pytest.approx(total, abs=1_000) + assert areas == pytest.approx(total, abs=1_000) + assert values["dfc_ni.state_pension.recipients"] == pytest.approx(330_147.5) diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_target_references.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_target_references.py index 021bc9e11..2444d254f 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_target_references.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_target_references.py @@ -64,7 +64,7 @@ _TEST_PATHS = paths_for("microcosm-build") -ACTIVE_REFERENCE_COUNT = 1152 +ACTIVE_REFERENCE_COUNT = 1212 REGION_TIER_LEVEL = {code: level for level, code in UK_REGION_TIER} UK_DATA_REPO = "policyengine-" + "uk-data" @@ -229,6 +229,7 @@ def test_uk_target_references_follow_contract_derivation_rules() -> None: "calendar_year_window", "linear_combination", "monthly_window_average", + "monthly_window_count_x_mean", "monthly_window_sum_average", "scaled_by_ratio", ] @@ -749,7 +750,7 @@ def test_uk_target_reference_membership_report_is_packaged() -> None: assert membership["target_period"] == 2025 assert membership["active_reference_count"] == ACTIVE_REFERENCE_COUNT assert membership["status_counts"] == { - "active": 1152, + "active": 1212, "no_fact_at_or_before_period": 7, "signed_excluded": 15, } @@ -859,6 +860,19 @@ def test_uk_target_reference_membership_report_is_packaged() -> None: "the same publication." ), }, + { + "family": "dwp_state_pension", + "status": "active_english_region_and_amount_band_fanout", + # 18 English-region cells and 20 weekly amount bands (microcosm#1069). + "active_reference_count": 38, + "signed_rationale": ( + "The State Pension recipients by type fan out over the nine " + "English regions (Scotland and Wales are their own rows, since " + "DWP publishes no Northern Ireland cell for a twelve-area tier) " + "and over DWP's weekly amount bands, whose 'all' margin is a " + "total row the detail measure pin leaves out (microcosm#1069)." + ), + }, ] rationales = membership["signed_exclusion_rationales"] cgt_rows = [entry for entry in rationales if entry["family"] == "hmrc_cgt"] @@ -1489,7 +1503,7 @@ def test_two_level_targets_fan_out_over_the_region_tier() -> None: for target in contract["targets"] if sorted(target.get("geography_levels") or ()) == ["country", "region"] ] - assert len(two_level) == 50 + assert len(two_level) == 52 ons = [target_id for target_id in two_level if target_id.startswith("ons.")] mhclg = [target_id for target_id in two_level if target_id.startswith("mhclg.")] hmrc = [target_id for target_id in two_level if target_id.startswith("hmrc.cgt.")] @@ -1566,8 +1580,9 @@ def test_two_level_targets_fan_out_over_the_region_tier() -> None: candidates = membership["targets"][target_id]["candidates"] assert [entry["geography_id"] for entry in candidates] == cells assert {entry["status"] for entry in candidates} == {"active"} - # 108 ONS + 81 MHCLG + 24 CGT + 360 SPI Table 3.11 region-tier rows. - assert sum(len(by_contract[target_id]) for target_id in two_level) == 573 + # 108 ONS + 81 MHCLG + 24 CGT + 360 SPI Table 3.11 region-tier rows, and + # 18 English-region State Pension cells (microcosm#1069). + assert sum(len(by_contract[target_id]) for target_id in two_level) == 591 # The twelve ONS cells of a band sum to the retired UK row of the same # publication (the 0-9 band: 7,553,013 at mid-2024). zero_to_nine = membership["targets"]["ons.population.age_0_9_by_region"] diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_uc_source_periods.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_uc_source_periods.py index 94e4cdefd..4be2a353b 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_uc_source_periods.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_uc_source_periods.py @@ -551,9 +551,28 @@ def test_shipped_uc_monthly_references_preserve_each_declared_window(): assert reference.value_operation == "monthly_window_sum_average" assert reference.period_match_policy == "source_window" assert json.loads(reference.metadata[EXPECTED_SOURCE_MONTHS]) == esa_quarters + # The State Pension rows bind the four quarterly points inside calendar + # 2025; the amount bands keep the three DWP pays at the 2025-26 rate the + # engine pays (microcosm#1069 R1). + pension = [ + reference for reference in references if reference.family == "dwp_state_pension" + ] + assert len(pension) == 60 + for reference in pension: + months = json.loads(reference.metadata[EXPECTED_SOURCE_MONTHS]) + assert months == reference.ledger_selector["period_value"] + assert reference.period_match_policy == "source_window" + assert months == ( + esa_quarters[1:] if "_by_weekly_amount." in reference.name else esa_quarters + ) assert not any( EXPECTED_SOURCE_MONTHS in reference.metadata for reference in references if reference.family - not in {"dwp_universal_credit", "dwp_housing_benefit", "dwp_legacy_benefits"} + not in { + "dwp_universal_credit", + "dwp_housing_benefit", + "dwp_legacy_benefits", + "dwp_state_pension", + } ) diff --git a/tools/generate_uk_target_references.py b/tools/generate_uk_target_references.py index 1998e5902..b5dfb8782 100644 --- a/tools/generate_uk_target_references.py +++ b/tools/generate_uk_target_references.py @@ -929,6 +929,18 @@ def _add_uk_membership_accounting( "the same publication." ), }, + { + "family": "dwp_state_pension", + "status": "active_english_region_and_amount_band_fanout", + "active_reference_count": fanout_counts.get("dwp_state_pension", 0), + "signed_rationale": ( + "The State Pension recipients by type fan out over the nine " + "English regions (Scotland and Wales are their own rows, since " + "DWP publishes no Northern Ireland cell for a twelve-area tier) " + "and over DWP's weekly amount bands, whose 'all' margin is a " + "total row the detail measure pin leaves out (microcosm#1069)." + ), + }, ] report["signed_exclusion_rationales"] = [ { From 07646c8d603ac3376121e7d9f05d5413e01741c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20Juaristi?= <127882282+juaristi22@users.noreply.github.com> Date: Thu, 1 Oct 2026 11:06:35 +0100 Subject: [PATCH 05/22] Keep the OBR State Pension line and DWP's forecast lines as diagnostics (#1069 c4) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Rulings R4 and R2: obr.state_pension leaves the fit. The OBR FY2025-26 forecast (£146.19bn) counts Great Britain plus pensioners paid abroad and leaves out Northern Ireland, so it measures a different quantity from the resident level that c3 binds. - The exact OBR figure, plus DWP Spring 2026's Great Britain total (£146.07bn) and paid-abroad line (£5.63bn), ride on dwp.state_pension.amount as metadata only. DWP's caseload lines (13.204m, of which 1.088m abroad) ride on dwp.state_pension.recipients. - The diagnostic attachment, written for the CGT cash forecast alone, is now driven by the contract's diagnostic_references. Each declaration names its metadata prefix and value unit. - UK_REQUIRED_TARGET_DIAGNOSTICS names the declarations each target requires, so a missing or misdirected declaration still refuses the target. The CGT metadata keys are unchanged. - The incumbent obr/state_pension row moves to registry_parity.excluded. Active national references go from 1212 to 1211. - The compile-parity receipts give the fixture-only OBR row and the 60 State Pension rows their ruled rationales. - The UC support probes protect dwp.state_pension.amount in place of the OBR line. - The spec-only entrypoint guard also admits a fact identity under ledger_fact_key. One of the new keys' digests starts with a letter. Co-Authored-By: Claude Opus 5.5 --- ...-state-pension-diagnostics-1069.changed.md | 7 + ...ity_incumbent_2025_signed_differences.json | 141 ++++++------ ...ty_production_2023_signed_differences.json | 116 +++++----- .../build/uk/target_reference_membership.json | 27 +-- .../microcosm/build/uk/target_references.json | 22 -- .../build/uk/uk_population_targets.json | 201 ++++++++++++++---- .../build/uk_runtime/ledger_targets.py | 139 ++++++++---- .../engine_free/shared/test_country_spec.py | 3 +- .../shared/test_spec_only_country_packages.py | 5 +- .../engine_free/uk/test_uk_cgt_targets.py | 3 +- .../uk/test_uk_national_calibration.py | 2 +- .../uk/test_uk_population_targets.py | 17 +- .../uk/test_uk_state_pension_targets.py | 111 ++++++++++ .../uk/test_uk_target_references.py | 4 +- .../uk/test_uk_uc_support_diagnostics.py | 2 +- ...edger_compile_parity_signed_differences.py | 26 +++ tools/diagnose_uk_uc_lp_evidence.py | 2 +- tools/diagnose_uk_uc_support.py | 4 +- 18 files changed, 559 insertions(+), 273 deletions(-) create mode 100644 changelog.d/uk-state-pension-diagnostics-1069.changed.md diff --git a/changelog.d/uk-state-pension-diagnostics-1069.changed.md b/changelog.d/uk-state-pension-diagnostics-1069.changed.md new file mode 100644 index 000000000..97db5b7c0 --- /dev/null +++ b/changelog.d/uk-state-pension-diagnostics-1069.changed.md @@ -0,0 +1,7 @@ +Move the OBR State Pension line out of the UK fit and keep it, with DWP's forecast-table lines, as diagnostics beside the bound resident level (microcosm#1069 c4, rulings R2 and R4). + +- **Why:** the OBR FY2025-26 forecast (£146.19bn) counts Great Britain plus pensioners paid abroad and leaves out Northern Ireland. It is a different quantity from the resident level that the DWP Stat-Xplore and DfC rows now bind. +- **What is attached:** `dwp.state_pension.amount` carries the exact OBR figure and DWP Spring 2026's Great Britain total (£146.07bn) and paid-abroad line (£5.63bn) as metadata only. `dwp.state_pension.recipients` carries DWP's caseload lines (13.204m, of which 1.088m are abroad). +- **How:** the diagnostic attachment, until now written for the CGT cash forecast alone, is driven by the contract's `diagnostic_references`. Each declaration names its metadata prefix and value unit. +- **Fail-closed:** `UK_REQUIRED_TARGET_DIAGNOSTICS` names the declarations each target requires, so a missing or misdirected one still refuses the target. The CGT diagnostic's metadata is unchanged. +- **Knock-on changes:** the incumbent `obr/state_pension` row moves to `registry_parity.excluded`, and the compile-parity receipts give it and the State Pension rows their ruled rationales. The UC support probes protect `dwp.state_pension.amount` in its place. 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 ad49a2308..7100d2f53 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,8 +1,8 @@ { - "compiled_count": 1212, + "compiled_count": 1211, "counts_by_kind": { - "calibration_drift": 555, - "fixture_only": 53, + "calibration_drift": 554, + "fixture_only": 54, "ledger_only": 628 }, "difference_count": 1236, @@ -238,6 +238,13 @@ "period": 2025, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, + { + "fixture_value": 146185954351.57382, + "kind": "fixture_only", + "name": "obr.state_pension", + "period": 2025, + "reason": "microcosm#1069 (ruling R4) moves the OBR FY2025-26 State Pension forecast out of the fit: it counts Great Britain plus pensioners paid abroad and leaves out Northern Ireland, a different quantity from the resident level the DWP Stat-Xplore and DfC rows bind. The exact forecast is retained as diagnostic provenance on dwp.state_pension.amount, so the frozen fixture's fitted row is fixture-only on the current surface." + }, { "fixture_value": 82000.0, "kind": "fixture_only", @@ -383,14 +390,14 @@ "ledger_value": 3710881810.1898503, "name": "dfc_ni.state_pension.amount", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 330147.5, "name": "dfc_ni.state_pension.recipients", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", @@ -572,406 +579,406 @@ "ledger_value": 138623908111.01526, "name": "dwp.state_pension.amount", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 12052874.0, "name": "dwp.state_pension.recipients", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 1388613.5, "name": "dwp.state_pension.recipients_female_66_69_new", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 717078.5, "name": "dwp.state_pension.recipients_female_70_74_new", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 822163.0, "name": "dwp.state_pension.recipients_female_70_74_pre_2016", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 1502398.25, "name": "dwp.state_pension.recipients_female_75_79_pre_2016", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 1016169.75, "name": "dwp.state_pension.recipients_female_80_84_pre_2016", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 644697.25, "name": "dwp.state_pension.recipients_female_85_89_pre_2016", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 404408.75, "name": "dwp.state_pension.recipients_female_90_plus_pre_2016", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 1323018.25, "name": "dwp.state_pension.recipients_male_66_69_new", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 1222116.75, "name": "dwp.state_pension.recipients_male_70_74_new", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 194617.75, "name": "dwp.state_pension.recipients_male_70_74_pre_2016", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 1333148.5, "name": "dwp.state_pension.recipients_male_75_79_pre_2016", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 823789.0, "name": "dwp.state_pension.recipients_male_80_84_pre_2016", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 452540.25, "name": "dwp.state_pension.recipients_male_85_89_pre_2016", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 207357.5, "name": "dwp.state_pension.recipients_male_90_plus_pre_2016", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 221933.75, "name": "dwp.state_pension.recipients_new_by_english_region@E12000001", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 542356.0, "name": "dwp.state_pension.recipients_new_by_english_region@E12000002", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 406034.0, "name": "dwp.state_pension.recipients_new_by_english_region@E12000003", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 363537.75, "name": "dwp.state_pension.recipients_new_by_english_region@E12000004", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 416229.75, "name": "dwp.state_pension.recipients_new_by_english_region@E12000005", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 457239.25, "name": "dwp.state_pension.recipients_new_by_english_region@E12000006", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 421776.5, "name": "dwp.state_pension.recipients_new_by_english_region@E12000007", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 658266.75, "name": "dwp.state_pension.recipients_new_by_english_region@E12000008", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 464841.0, "name": "dwp.state_pension.recipients_new_by_english_region@E12000009", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 124804.0, "name": "dwp.state_pension.recipients_new_by_weekly_amount.100_00_to_under_150_00__new_state_pension", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 661720.6666666666, "name": "dwp.state_pension.recipients_new_by_weekly_amount.150_00_to_under_200_00__new_state_pension", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 3390794.6666666665, "name": "dwp.state_pension.recipients_new_by_weekly_amount.200_00_to_under_250_00__new_state_pension", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 2481.3333333333335, "name": "dwp.state_pension.recipients_new_by_weekly_amount.20_00_to_under_40_00__new_state_pension", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 433550.3333333333, "name": "dwp.state_pension.recipients_new_by_weekly_amount.250_00_to_under_300_00__new_state_pension", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 64770.0, "name": "dwp.state_pension.recipients_new_by_weekly_amount.300_00_and_over__new_state_pension", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 2903.0, "name": "dwp.state_pension.recipients_new_by_weekly_amount.40_00_to_under_60_00__new_state_pension", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 24329.333333333332, "name": "dwp.state_pension.recipients_new_by_weekly_amount.60_00_to_under_80_00__new_state_pension", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 31134.333333333332, "name": "dwp.state_pension.recipients_new_by_weekly_amount.80_00_to_under_100_00__new_state_pension", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 2401.3333333333335, "name": "dwp.state_pension.recipients_new_by_weekly_amount.under_20_00__new_state_pension", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 445194.0, "name": "dwp.state_pension.recipients_new_scotland", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 253534.75, "name": "dwp.state_pension.recipients_new_wales", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 324237.75, "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000001", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 835347.75, "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000002", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 631830.75, "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000003", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 586131.0, "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000004", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 682017.5, "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000005", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 782615.75, "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000006", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 593093.25, "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000007", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 1134987.25, "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000008", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 806881.5, "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000009", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 880177.3333333334, "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.100_00_to_under_150_00__pre_2016_state_pension", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 1589409.6666666667, "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.150_00_to_under_200_00__pre_2016_state_pension", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 2730401.3333333335, "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.200_00_to_under_250_00__pre_2016_state_pension", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 8063.0, "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.20_00_to_under_40_00__pre_2016_state_pension", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 1338030.3333333333, "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.250_00_to_under_300_00__pre_2016_state_pension", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 737995.6666666666, "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.300_00_and_over__pre_2016_state_pension", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 12135.666666666666, "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.40_00_to_under_60_00__pre_2016_state_pension", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 17155.0, "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.60_00_to_under_80_00__pre_2016_state_pension", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 23048.0, "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.80_00_to_under_100_00__pre_2016_state_pension", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 12621.333333333334, "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.under_20_00__pre_2016_state_pension", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 621000.25, "name": "dwp.state_pension.recipients_pre_2016_scotland", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 403793.0, "name": "dwp.state_pension.recipients_pre_2016_wales", "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", @@ -7806,14 +7813,6 @@ "period": 2025, "reason": "Period basis (PolicyEngine/chronicle#280 lane, María's rule of 2026-09-22 that fiscal-year facts take only the months to the end of the calibration calendar year): ours binds the OBR March 2026 line at the calendar-2025 window, three twelfths of FY2024-25 and nine twelfths of FY2025-26, on the same series; the frozen incumbent fixture holds the FY2025-26 value alone." }, - { - "fixture_value": 146185954351.57382, - "kind": "calibration_drift", - "ledger_value": 144133374882.29138, - "name": "obr.state_pension", - "period": 2025, - "reason": "Period basis (PolicyEngine/chronicle#280 lane, María's rule of 2026-09-22 that fiscal-year facts take only the months to the end of the calibration calendar year): ours binds the OBR March 2026 line at the calendar-2025 window, three twelfths of FY2024-25 and nine twelfths of FY2025-26, on the same series; the frozen incumbent fixture holds the FY2025-26 value alone." - }, { "fixture_value": 3194800881.520547, "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 65c7d5117..cb568ea8d 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 @@ -131,7 +131,7 @@ "ledger_value": 330147.5, "name": "dfc_ni.state_pension.recipients", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", @@ -229,399 +229,399 @@ "ledger_value": 12052874.0, "name": "dwp.state_pension.recipients", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 1388613.5, "name": "dwp.state_pension.recipients_female_66_69_new", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 717078.5, "name": "dwp.state_pension.recipients_female_70_74_new", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 822163.0, "name": "dwp.state_pension.recipients_female_70_74_pre_2016", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 1502398.25, "name": "dwp.state_pension.recipients_female_75_79_pre_2016", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 1016169.75, "name": "dwp.state_pension.recipients_female_80_84_pre_2016", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 644697.25, "name": "dwp.state_pension.recipients_female_85_89_pre_2016", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 404408.75, "name": "dwp.state_pension.recipients_female_90_plus_pre_2016", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 1323018.25, "name": "dwp.state_pension.recipients_male_66_69_new", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 1222116.75, "name": "dwp.state_pension.recipients_male_70_74_new", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 194617.75, "name": "dwp.state_pension.recipients_male_70_74_pre_2016", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 1333148.5, "name": "dwp.state_pension.recipients_male_75_79_pre_2016", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 823789.0, "name": "dwp.state_pension.recipients_male_80_84_pre_2016", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 452540.25, "name": "dwp.state_pension.recipients_male_85_89_pre_2016", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 207357.5, "name": "dwp.state_pension.recipients_male_90_plus_pre_2016", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 221933.75, "name": "dwp.state_pension.recipients_new_by_english_region@E12000001", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 542356.0, "name": "dwp.state_pension.recipients_new_by_english_region@E12000002", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 406034.0, "name": "dwp.state_pension.recipients_new_by_english_region@E12000003", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 363537.75, "name": "dwp.state_pension.recipients_new_by_english_region@E12000004", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 416229.75, "name": "dwp.state_pension.recipients_new_by_english_region@E12000005", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 457239.25, "name": "dwp.state_pension.recipients_new_by_english_region@E12000006", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 421776.5, "name": "dwp.state_pension.recipients_new_by_english_region@E12000007", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 658266.75, "name": "dwp.state_pension.recipients_new_by_english_region@E12000008", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 464841.0, "name": "dwp.state_pension.recipients_new_by_english_region@E12000009", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 124804.0, "name": "dwp.state_pension.recipients_new_by_weekly_amount.100_00_to_under_150_00__new_state_pension", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 661720.6666666666, "name": "dwp.state_pension.recipients_new_by_weekly_amount.150_00_to_under_200_00__new_state_pension", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 3390794.6666666665, "name": "dwp.state_pension.recipients_new_by_weekly_amount.200_00_to_under_250_00__new_state_pension", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 2481.3333333333335, "name": "dwp.state_pension.recipients_new_by_weekly_amount.20_00_to_under_40_00__new_state_pension", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 433550.3333333333, "name": "dwp.state_pension.recipients_new_by_weekly_amount.250_00_to_under_300_00__new_state_pension", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 64770.0, "name": "dwp.state_pension.recipients_new_by_weekly_amount.300_00_and_over__new_state_pension", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 2903.0, "name": "dwp.state_pension.recipients_new_by_weekly_amount.40_00_to_under_60_00__new_state_pension", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 24329.333333333332, "name": "dwp.state_pension.recipients_new_by_weekly_amount.60_00_to_under_80_00__new_state_pension", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 31134.333333333332, "name": "dwp.state_pension.recipients_new_by_weekly_amount.80_00_to_under_100_00__new_state_pension", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 2401.3333333333335, "name": "dwp.state_pension.recipients_new_by_weekly_amount.under_20_00__new_state_pension", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 445194.0, "name": "dwp.state_pension.recipients_new_scotland", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 253534.75, "name": "dwp.state_pension.recipients_new_wales", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 324237.75, "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000001", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 835347.75, "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000002", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 631830.75, "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000003", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 586131.0, "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000004", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 682017.5, "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000005", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 782615.75, "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000006", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 593093.25, "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000007", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 1134987.25, "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000008", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 806881.5, "name": "dwp.state_pension.recipients_pre_2016_by_english_region@E12000009", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 880177.3333333334, "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.100_00_to_under_150_00__pre_2016_state_pension", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 1589409.6666666667, "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.150_00_to_under_200_00__pre_2016_state_pension", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 2730401.3333333335, "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.200_00_to_under_250_00__pre_2016_state_pension", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 8063.0, "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.20_00_to_under_40_00__pre_2016_state_pension", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 1338030.3333333333, "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.250_00_to_under_300_00__pre_2016_state_pension", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 737995.6666666666, "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.300_00_and_over__pre_2016_state_pension", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 12135.666666666666, "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.40_00_to_under_60_00__pre_2016_state_pension", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 17155.0, "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.60_00_to_under_80_00__pre_2016_state_pension", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 23048.0, "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.80_00_to_under_100_00__pre_2016_state_pension", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 12621.333333333334, "name": "dwp.state_pension.recipients_pre_2016_by_weekly_amount.under_20_00__pre_2016_state_pension", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 621000.25, "name": "dwp.state_pension.recipients_pre_2016_scotland", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", "ledger_value": 403793.0, "name": "dwp.state_pension.recipients_pre_2016_wales", "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, { "kind": "ledger_only", 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 749a3b2b2..9d2577c03 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/target_reference_membership.json +++ b/packages/microcosm-build/src/microcosm/build/uk/target_reference_membership.json @@ -1,11 +1,11 @@ { "source_fact_feed": "chronicle-uk-825406f9-consumer-facts", "target_period": 2025, - "candidate_count": 1234, - "contract_target_count": 321, - "active_reference_count": 1212, + "candidate_count": 1233, + "contract_target_count": 320, + "active_reference_count": 1211, "status_counts": { - "active": 1212, + "active": 1211, "no_fact_at_or_before_period": 7, "signed_excluded": 15 }, @@ -98,10 +98,6 @@ "geography_level": "country", "geography_id": "K02000001" }, - "obr.state_pension": { - "geography_level": "country", - "geography_id": "K02000001" - }, "obr.statutory_maternity_pay": { "geography_level": "country", "geography_id": "K02000001" @@ -11272,21 +11268,6 @@ } ] }, - "obr.state_pension": { - "status": "active", - "candidates": [ - { - "name": "obr.state_pension", - "status": "active", - "matched_fact_count_overall": 7, - "matched_fact_count_at_or_before_period": 2, - "resolved_period": 2025, - "resolved_value": 144133374882.29138, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_567e55f9f73df2808c1c4be8" - } - ] - }, "obr.statutory_maternity_pay": { "status": "active", "candidates": [ 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 6809aa26e..6e9dc11fa 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/target_references.json +++ b/packages/microcosm-build/src/microcosm/build/uk/target_references.json @@ -412,7 +412,6 @@ "obr.pension_credit": "obr.efo_expenditure", "obr.pip": "obr.efo_expenditure", "obr.sdlt": "obr.efo_receipts", - "obr.state_pension": "obr.efo_expenditure", "obr.statutory_maternity_pay": "obr.efo_expenditure", "obr.tv_licence_fee": "obr.efo_expenditure", "obr.universal_credit": "obr.efo_expenditure", @@ -720,7 +719,6 @@ "obr.pension_credit": "Pension credit", "obr.pip": "Personal Independence Payment", "obr.sdlt": "Stamp Duty Land Tax", - "obr.state_pension": "State pension", "obr.statutory_maternity_pay": "Statutory maternity pay", "obr.tv_licence_fee": "TV licence fee", "obr.universal_credit": "Universal Credit expenditure", @@ -1197,26 +1195,6 @@ "assertion_policy": "allow_source_projection", "value_operation": "calendar_year_window" }, - { - "name": "obr.state_pension", - "ledger_selector": { - "source_name": "obr", - "source_concept": "obr.state_pension", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001" - }, - "entity": "person", - "measure": "obr/state_pension", - "family": "obr", - "period": 2025, - "metadata": { - "contract_target_id": "obr.state_pension", - "measure_kind": "prepared_column" - }, - "assertion_policy": "allow_source_projection", - "value_operation": "calendar_year_window" - }, { "name": "obr.statutory_maternity_pay", "ledger_selector": { 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 0046e41bb..7772a6d7d 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 @@ -24,8 +24,8 @@ "pinned_ref": "12a1e028afeef08d8b2d74ee03fd9de3a78b2dd3", "pinned_version": "1.56.16", "registry_rows": 652, - "mapped_rows": 627, - "excluded_rows": 25, + "mapped_rows": 626, + "excluded_rows": 26, "mapped": { "dwp/benefit_capped_households": "dwp.benefit_cap.capped_households", "dwp/esa_claimants": "dwp.esa_claimants", @@ -366,7 +366,6 @@ "obr/salary_sacrifice_users_below_cap": "hmrc.salary_sacrifice.users_below_cap", "obr/salary_sacrifice_users_total": "hmrc.salary_sacrifice.users_total", "obr/sdlt": "obr.sdlt", - "obr/state_pension": "obr.state_pension", "obr/statutory_maternity_pay": "obr.statutory_maternity_pay", "obr/tv_licence_fee": "obr.tv_licence_fee", "obr/universal_credit_in_cap": "obr.universal_credit_in_cap", @@ -680,7 +679,8 @@ "ons/tenure_england_rented_privately": "England tenure counts come from an LA-grain workbook uk-data code-sums; ruled non-portable as national facts on chronicle#133 - moved to the wave-3 LA package (chronicle#134).", "ons/tenure_england_social_rent": "England tenure counts come from an LA-grain workbook uk-data code-sums; ruled non-portable as national facts on chronicle#133 - moved to the wave-3 LA package (chronicle#134).", "ons/tenure_england_total": "England tenure counts come from an LA-grain workbook uk-data code-sums; ruled non-portable as national facts on chronicle#133 - moved to the wave-3 LA package (chronicle#134).", - "obr/capital_gains_tax": "Observed FY2024-25 treatment (#875): the incumbent OBR cash forecast is retained only as diagnostic provenance. It has no same-basis liability mapping and is removed from fitting; no source value is adjusted." + "obr/capital_gains_tax": "Observed FY2024-25 treatment (#875): the incumbent OBR cash forecast is retained only as diagnostic provenance. It has no same-basis liability mapping and is removed from fitting; no source value is adjusted.", + "obr/state_pension": "Resident treatment (microcosm#1069 R4): the incumbent OBR FY State Pension forecast counts Great Britain plus pensioners paid abroad and leaves out Northern Ireland. The DWP Stat-Xplore and DfC resident level is bound instead and the exact OBR FY2025-26 figure is retained only as diagnostic provenance on dwp.state_pension.amount; no source value is adjusted." }, "unmapped_declarations": { "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.", @@ -865,7 +865,6 @@ "obr.jobseekers_allowance", "obr.pension_credit", "obr.pip", - "obr.state_pension", "obr.statutory_maternity_pay", "obr.tv_licence_fee", "obr.universal_credit_in_cap", @@ -2465,41 +2464,6 @@ "label": "Personal Independence Payment", "value_operation": "calendar_year_window" }, - { - "target_id": "obr.state_pension", - "family": "obr", - "geography_levels": [ - "country" - ], - "measurement": { - "entity": "person", - "concept": "uk.benefits.state_pension.amount", - "map_to": "household" - }, - "bindings": { - "policyengine": { - "metric_name": "obr/state_pension", - "value_variable": "state_pension", - "from_entity": "person", - "map_to": "household", - "notes": "Bound at the calendar-2025 window of the OBR fiscal years (three twelfths of FY2024-25, nine twelfths of FY2025-26; calendar_year_window), María's rule of 2026-09-22 that fiscal-year facts take only the months to the end of the calibration calendar year (PolicyEngine/chronicle#280 lane)." - }, - "axiom": { - "metric_name": "obr/state_pension", - "status": "pending", - "value_rule": "uk.benefits.state_pension.amount" - } - }, - "assertion_policy": "allow_source_projection", - "ledger_selector": { - "source_name": "obr", - "source_concept": "obr.state_pension", - "entity_name": "person" - }, - "category_id": "obr.efo_expenditure", - "label": "State pension", - "value_operation": "calendar_year_window" - }, { "target_id": "obr.statutory_maternity_pay", "family": "obr", @@ -26846,6 +26810,11 @@ "diagnostic_references": { "obr.capital_gains_tax": { "attach_to_target": "hmrc.cgt.liability_total", + "metadata_prefix": "cgt_cash_diagnostic", + "value_unit": "gbp", + "receipt_metadata": { + "cgt_cash_reconciliation_status": "unresolved" + }, "required_period_type": "fiscal_year", "required_assertion": "source_projection", "reference": { @@ -26869,6 +26838,158 @@ "ledger_fact_key": "ledger.aggregate_fact.v2:93699bb9caa7ec0d6833f420" }, "notes": "Original March 2026 OBR FY2025-26 cash forecast retained unchanged as diagnostic provenance only. No liability-to-cash payment bridge is identified; never insert this diagnostic into the fitting registry." + }, + "obr.state_pension": { + "attach_to_target": "dwp.state_pension.amount", + "metadata_prefix": "obr_state_pension_diagnostic", + "value_unit": "gbp", + "required_period_type": "fiscal_year", + "required_assertion": "source_projection", + "reference": { + "name": "obr.state_pension", + "ledger_selector": { + "source_name": "obr", + "source_concept": "obr.state_pension", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001" + }, + "entity": "person", + "measure": "obr/state_pension", + "family": "obr", + "period": 2025, + "metadata": { + "diagnostic_role": "efo_forecast_definition_differs" + }, + "assertion_policy": "allow_source_projection", + "period_match_policy": "exact", + "ledger_fact_key": "ledger.aggregate_fact.v2:567e55f9f73df2808c1c4be8" + }, + "notes": "March 2026 OBR FY2025-26 State Pension forecast retained unchanged as diagnostic provenance (microcosm#1069 R4). It matches DWP's Great Britain total including pensioners paid outside the UK and, on that evidence, leaves out Northern Ireland, so it measures a different quantity from the bound resident level; never insert it into the fitting registry." + }, + "dwp.state_pension.forecast_expenditure": { + "attach_to_target": "dwp.state_pension.amount", + "metadata_prefix": "dwp_forecast_state_pension_diagnostic", + "value_unit": "gbp", + "required_period_type": "fiscal_year", + "required_assertion": "source_projection", + "reference": { + "name": "dwp.state_pension.forecast_expenditure", + "ledger_selector": { + "source_name": "dwp", + "source_concept": "dwp.benefit_expenditure_amount", + "entity_name": "government", + "geography_level": "country", + "geography_id": "K03000001", + "dimension_values": { + "benefit_forecast_line": "state_pension__total" + } + }, + "entity": "person", + "measure": "dwp/state_pension/forecast_expenditure", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "diagnostic_role": "forecast_table_line_definition_differs" + }, + "assertion_policy": "allow_source_projection", + "period_match_policy": "exact", + "ledger_fact_key": "ledger.aggregate_fact.v2:0d513485be6af9f8b0ee51a6" + }, + "notes": "DWP benefit expenditure and caseload tables, Spring 2026, FY2025-26 (PolicyEngine/chronicle#302 via #305), retained as diagnostic provenance beside the resident level (microcosm#1069 R2): the forecast line counts Great Britain including pensioners paid outside the UK and, being a fiscal-year projection, is a different quantity from the bound calendar-2025 resident rows. Never insert it into the fitting registry." + }, + "dwp.state_pension.forecast_expenditure_paid_abroad": { + "attach_to_target": "dwp.state_pension.amount", + "metadata_prefix": "dwp_forecast_state_pension_paid_abroad_diagnostic", + "value_unit": "gbp", + "required_period_type": "fiscal_year", + "required_assertion": "source_projection", + "reference": { + "name": "dwp.state_pension.forecast_expenditure_paid_abroad", + "ledger_selector": { + "source_name": "dwp", + "source_concept": "dwp.benefit_expenditure_amount", + "entity_name": "government", + "geography_level": "country", + "geography_id": "K03000001", + "dimension_values": { + "benefit_forecast_line": "state_pension__state_pension_paid_outside_uk_included_above" + } + }, + "entity": "person", + "measure": "dwp/state_pension/forecast_expenditure_paid_abroad", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "diagnostic_role": "forecast_table_line_definition_differs" + }, + "assertion_policy": "allow_source_projection", + "period_match_policy": "exact", + "ledger_fact_key": "ledger.aggregate_fact.v2:64a0093265b3a376331360ed" + }, + "notes": "DWP benefit expenditure and caseload tables, Spring 2026, FY2025-26 (PolicyEngine/chronicle#302 via #305), retained as diagnostic provenance beside the resident level (microcosm#1069 R2): the forecast line counts Great Britain including pensioners paid outside the UK and, being a fiscal-year projection, is a different quantity from the bound calendar-2025 resident rows. Never insert it into the fitting registry." + }, + "dwp.state_pension.forecast_caseload": { + "attach_to_target": "dwp.state_pension.recipients", + "metadata_prefix": "dwp_forecast_state_pension_caseload_diagnostic", + "value_unit": "count", + "required_period_type": "fiscal_year", + "required_assertion": "source_projection", + "reference": { + "name": "dwp.state_pension.forecast_caseload", + "ledger_selector": { + "source_name": "dwp", + "source_concept": "dwp.benefit_caseload_count", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K03000001", + "dimension_values": { + "benefit_forecast_line": "state_pension__total_state_pension_caseload" + } + }, + "entity": "person", + "measure": "dwp/state_pension/forecast_caseload", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "diagnostic_role": "forecast_table_line_definition_differs" + }, + "assertion_policy": "allow_source_projection", + "period_match_policy": "exact", + "ledger_fact_key": "ledger.aggregate_fact.v2:20717cd0a29cd2184abe1e6f" + }, + "notes": "DWP benefit expenditure and caseload tables, Spring 2026, FY2025-26 (PolicyEngine/chronicle#302 via #305), retained as diagnostic provenance beside the resident level (microcosm#1069 R2): the forecast line counts Great Britain including pensioners paid outside the UK and, being a fiscal-year projection, is a different quantity from the bound calendar-2025 resident rows. Never insert it into the fitting registry." + }, + "dwp.state_pension.forecast_caseload_paid_abroad": { + "attach_to_target": "dwp.state_pension.recipients", + "metadata_prefix": "dwp_forecast_state_pension_caseload_paid_abroad_diagnostic", + "value_unit": "count", + "required_period_type": "fiscal_year", + "required_assertion": "source_projection", + "reference": { + "name": "dwp.state_pension.forecast_caseload_paid_abroad", + "ledger_selector": { + "source_name": "dwp", + "source_concept": "dwp.benefit_caseload_count", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K03000001", + "dimension_values": { + "benefit_forecast_line": "state_pension__state_pension_paid_outside_uk_included_above" + } + }, + "entity": "person", + "measure": "dwp/state_pension/forecast_caseload_paid_abroad", + "family": "dwp_state_pension", + "period": 2025, + "metadata": { + "diagnostic_role": "forecast_table_line_definition_differs" + }, + "assertion_policy": "allow_source_projection", + "period_match_policy": "exact", + "ledger_fact_key": "ledger.aggregate_fact.v2:fc1a88f15ba47efd9dc496ef" + }, + "notes": "DWP benefit expenditure and caseload tables, Spring 2026, FY2025-26 (PolicyEngine/chronicle#302 via #305), retained as diagnostic provenance beside the resident level (microcosm#1069 R2): the forecast line counts Great Britain including pensioners paid outside the UK and, being a fiscal-year projection, is a different quantity from the bound calendar-2025 resident rows. Never insert it into the fitting registry." } }, "hierarchy": { diff --git a/packages/microcosm-build/src/microcosm/build/uk_runtime/ledger_targets.py b/packages/microcosm-build/src/microcosm/build/uk_runtime/ledger_targets.py index 0295d73f7..f3dd74c3b 100644 --- a/packages/microcosm-build/src/microcosm/build/uk_runtime/ledger_targets.py +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/ledger_targets.py @@ -516,11 +516,13 @@ def compile_uk_target_registry( registry = validate_uc_source_month_coverage( restamped, registry, candidate_facts ) - if reference.name == "hmrc.cgt.liability_total": - cash_metadata = _cgt_cash_diagnostic_metadata(fact_rows) + if reference.name in UK_REQUIRED_TARGET_DIAGNOSTICS: + diagnostic_metadata = _attached_diagnostic_metadata( + fact_rows, reference.name + ) registry = TargetRegistry( ( - replace(row, metadata={**row.metadata, **cash_metadata}) + replace(row, metadata={**row.metadata, **diagnostic_metadata}) for row in registry.specs ), country="uk", @@ -762,43 +764,100 @@ def _assert_region_facts_resolved_at_region( return registry -def _cgt_cash_diagnostic_metadata( +#: Bound targets that carry publisher figures they replaced or sit beside, as +#: diagnostics compiled in isolation and never fitted. Each named declaration +#: in the contract's ``diagnostic_references`` must exist and attach to the +#: target that requires it; a missing or misdirected one refuses the target. +UK_REQUIRED_TARGET_DIAGNOSTICS: Mapping[str, tuple[str, ...]] = MappingProxyType( + { + "hmrc.cgt.liability_total": ("obr.capital_gains_tax",), + # microcosm#1069 R2, R4: the resident level is bound; OBR's forecast and + # DWP's forecast-table lines are kept beside it. + "dwp.state_pension.amount": ( + "obr.state_pension", + "dwp.state_pension.forecast_expenditure", + "dwp.state_pension.forecast_expenditure_paid_abroad", + ), + "dwp.state_pension.recipients": ( + "dwp.state_pension.forecast_caseload", + "dwp.state_pension.forecast_caseload_paid_abroad", + ), + } +) +_DIAGNOSTIC_PERIOD_TYPES = frozenset(("fiscal_year", "tax_year", "calendar_year")) +_DIAGNOSTIC_ASSERTION_POLICIES = MappingProxyType( + {"source_projection": "allow_source_projection", "observation": "observed_only"} +) + + +def _attached_diagnostic_metadata( facts: tuple[Mapping[str, Any], ...], + target_name: str, ) -> dict[str, str]: - """Retain the original forecast without adding a cash row to fitting. + """Every diagnostic ``target_name`` requires, compiled beside it.""" - The cash period and exact Chronicle fact identity are consumer declarations, - independent of the calibration period. The normal TargetSpec metadata path - carries this receipt into both national and local registries. Unavailable - diagnostic data must not disable independently observed HMRC targets. - """ contract = json.loads( importlib_resources.files("microcosm.build.uk") .joinpath(UK_POPULATION_TARGETS_RESOURCE) .read_text(encoding="utf-8") ) + declarations = contract.get("diagnostic_references") or {} + metadata: dict[str, str] = {} + for key in UK_REQUIRED_TARGET_DIAGNOSTICS[target_name]: + declaration = declarations.get(key) + if declaration is None: + raise ValueError( + f"Invalid diagnostic declaration {key!r}: missing from the " + f"contract, which {target_name!r} requires." + ) + if declaration.get("attach_to_target") != target_name: + raise ValueError( + f"Invalid diagnostic declaration {key!r}: unexpected receiving " + f"target {declaration.get('attach_to_target')!r}." + ) + metadata.update(_diagnostic_reference_metadata(facts, key, declaration)) + return metadata + + +def _diagnostic_reference_metadata( + facts: tuple[Mapping[str, Any], ...], + key: str, + declaration: Mapping[str, Any], +) -> dict[str, str]: + """Retain an original publisher figure without adding a row to fitting. + + The figure's period and exact Chronicle fact identity are consumer + declarations, independent of the calibration period. The normal TargetSpec + metadata path carries the receipt into both national and local registries, + under the declaration's ``metadata_prefix``. Unavailable diagnostic data + must not disable the independently observed target it sits beside; a + malformed declaration is a compile error. + """ + try: - declaration = contract["diagnostic_references"]["obr.capital_gains_tax"] - if declaration["attach_to_target"] != "hmrc.cgt.liability_total": - raise ValueError("unexpected receiving target") + prefix = str(declaration["metadata_prefix"]) + unit = str(declaration["value_unit"]) reference = LedgerTargetReference(**declaration["reference"]) + if not prefix.isidentifier() or not unit.isidentifier(): + raise ValueError("metadata_prefix and value_unit must be plain keys") if not reference.ledger_fact_key: - raise ValueError("the original forecast must have an exact fact pin") + raise ValueError("the publisher figure must have an exact fact pin") if ( - reference.name != "obr.capital_gains_tax" + reference.name != key or reference.period_match_policy != "exact" - or reference.assertion_policy != "allow_source_projection" - or declaration["required_period_type"] != "fiscal_year" - or declaration["required_assertion"] != "source_projection" + or declaration["required_period_type"] not in _DIAGNOSTIC_PERIOD_TYPES + or _DIAGNOSTIC_ASSERTION_POLICIES.get(declaration["required_assertion"]) + != reference.assertion_policy ): - raise ValueError("expected an exactly dated OBR cash forecast declaration") - except (KeyError, TypeError, ValueError) as error: - raise ValueError(f"Invalid CGT cash diagnostic declaration: {error}") from error + raise ValueError("expected an exactly dated publisher-figure declaration") + receipt = { + str(name): str(value) + for name, value in (declaration.get("receipt_metadata") or {}).items() + } + except (AttributeError, KeyError, TypeError, ValueError) as error: + raise ValueError(f"Invalid diagnostic declaration {key!r}: {error}") from error - metadata = { - "cgt_cash_diagnostic_role": "diagnostic_only_not_in_fit", - "cgt_cash_reconciliation_status": "unresolved", - } + metadata = {f"{prefix}_role": "diagnostic_only_not_in_fit", **receipt} try: candidates = tuple( fact @@ -808,30 +867,28 @@ def _cgt_cash_diagnostic_metadata( == declaration["required_period_type"] and fact.get("assertion") == declaration["required_assertion"] ) - (cash,) = compile_ledger_target_references( + (figure,) = compile_ledger_target_references( candidates, [reference], country="uk" ).specs - if cash.metadata["ledger_fact_period"] != str(reference.period): - raise ValueError("forecast period does not match its declaration") + if figure.metadata["ledger_fact_period"] != str(reference.period): + raise ValueError("diagnostic period does not match its declaration") except ValueError as error: return { **metadata, - "cgt_cash_diagnostic_status": "unavailable", - "cgt_cash_diagnostic_unavailable_reason": str(error), - "cgt_cash_diagnostic_expected_fact_key": reference.ledger_fact_key, - "cgt_cash_diagnostic_expected_period": str(reference.period), - "cgt_cash_diagnostic_expected_period_type": declaration[ - "required_period_type" - ], - "cgt_cash_diagnostic_expected_assertion": declaration["required_assertion"], + f"{prefix}_status": "unavailable", + f"{prefix}_unavailable_reason": str(error), + f"{prefix}_expected_fact_key": reference.ledger_fact_key, + f"{prefix}_expected_period": str(reference.period), + f"{prefix}_expected_period_type": declaration["required_period_type"], + f"{prefix}_expected_assertion": declaration["required_assertion"], } return { **metadata, - "cgt_cash_diagnostic_status": "available", - "cgt_cash_diagnostic_value_gbp": str(cash.value), - "cgt_cash_diagnostic_period": str(cash.period), - "cgt_cash_diagnostic_source": cash.source, - **{f"cgt_cash_diagnostic_{key}": value for key, value in cash.metadata.items()}, + f"{prefix}_status": "available", + f"{prefix}_value_{unit}": str(figure.value), + f"{prefix}_period": str(figure.period), + f"{prefix}_source": figure.source, + **{f"{prefix}_{name}": value for name, value in figure.metadata.items()}, } diff --git a/packages/microcosm-build/tests/engine_free/shared/test_country_spec.py b/packages/microcosm-build/tests/engine_free/shared/test_country_spec.py index 0dd25fad2..f6d1373e8 100644 --- a/packages/microcosm-build/tests/engine_free/shared/test_country_spec.py +++ b/packages/microcosm-build/tests/engine_free/shared/test_country_spec.py @@ -1125,7 +1125,7 @@ def test_uk_target_references_accept_regenerated_contract_fields(self) -> None: references = {reference.name: reference for reference in spec.target_references} assert ( - len(references) == 1212 + len(references) == 1211 ) # PolicyEngine/chronicle#280 lane: 705 + 33 HMRC liabilities rows (Table 2.5, three # measures by eleven bands) + 26 SPI savings-interest rows (two measures by # thirteen bands) + 360 SPI Table 3.11 region-tier rows (three measures by @@ -1137,6 +1137,7 @@ def test_uk_target_references_accept_regenerated_contract_fields(self) -> None: # 24 size-of-gain rows; microcosm#1014: 16 Table 4.1 BADR/IR band rows # and 12 Table 3 taxable-income margin rows; microcosm#1069: 60 State # Pension rows (4 levels, 14 age-by-sex cells, 22 area cells, 20 bands) + # less the OBR State Pension line, now a diagnostic assert references["obr.esa"].value_operation == "calendar_year_window" assert references["dwp.uc.households"].value_operation == ( "monthly_window_sum_average" diff --git a/packages/microcosm-build/tests/engine_free/shared/test_spec_only_country_packages.py b/packages/microcosm-build/tests/engine_free/shared/test_spec_only_country_packages.py index 3f18c1687..d8415b236 100644 --- a/packages/microcosm-build/tests/engine_free/shared/test_spec_only_country_packages.py +++ b/packages/microcosm-build/tests/engine_free/shared/test_spec_only_country_packages.py @@ -315,9 +315,10 @@ def _is_compiler_identity_field(*, key: str, value: object, location: str) -> bo ) # A Ledger fact identity (``ledger.aggregate_fact.v2:``) is content # addressing data, never an entrypoint; the colon separates the key kind - # from its digest and the digest can happen to start with a letter. + # from its digest and the digest can happen to start with a letter. A + # diagnostic reference pins the same identity as its ``ledger_fact_key``. ledger_fact_identity = ( - key == "aggregate_fact_key" + key in {"aggregate_fact_key", "ledger_fact_key"} and isinstance(value, str) and re.fullmatch(r"ledger\.[a-z_]+\.v\d+:[0-9a-f]{24}", value) is not None ) diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_cgt_targets.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_cgt_targets.py index 04b6de8cb..b5b57c52c 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_cgt_targets.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_cgt_targets.py @@ -344,7 +344,8 @@ def test_malformed_cash_declaration_remains_a_compile_error( compilation = compile_cgt(_facts(), target_period=2025) assert "hmrc.cgt.liability_total" not in {r.name for r in compilation.registry} assert any( - "cash diagnostic declaration" in r["reason"] for r in compilation.unsupported + "diagnostic declaration 'obr.capital_gains_tax'" in r["reason"] + for r in compilation.unsupported ) diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_national_calibration.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_national_calibration.py index 641950020..81bddebb2 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_national_calibration.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_national_calibration.py @@ -53,7 +53,7 @@ from microcosm.calibrate.artifacts import decode_problem from microcosm.frame import EntitySchema, Frame, MassChange, WeightKind, Weights -ACTIVE_REFERENCE_COUNT = 1212 +ACTIVE_REFERENCE_COUNT = 1211 def _uc_reference(**overrides) -> LedgerTargetReference: diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_population_targets.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_population_targets.py index eb5b15314..2c51d0942 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_population_targets.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_population_targets.py @@ -186,8 +186,9 @@ def test_uk_population_targets_shape_order_and_registry_accounting() -> None: "operation": "sum", "assertion_policy": "observed_only", } - # 26 State Pension targets since microcosm#1069 c3. - assert len(resource["targets"]) == 372 + # 26 State Pension targets since microcosm#1069 c3; the OBR State Pension + # line became a diagnostic in c4. + assert len(resource["targets"]) == 371 providers = resource["hierarchy"]["providers"] categories = resource["hierarchy"]["categories"] @@ -201,10 +202,10 @@ def test_uk_population_targets_shape_order_and_registry_accounting() -> None: 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) == 321 + assert len(registry_scope) == 320 assert len(profile_scope) == 51 - assert target_ids[:321] == registry_scope - assert target_ids[321:] == profile_scope + assert target_ids[:320] == registry_scope + assert target_ids[320:] == profile_scope parity = resource["registry_parity"] assert parity["pinned_ref"] == "12a1e028afeef08d8b2d74ee03fd9de3a78b2dd3" @@ -217,7 +218,7 @@ def test_uk_population_targets_shape_order_and_registry_accounting() -> None: assert set(mapped_target_ids).isdisjoint(unmapped_declarations) assert mapped_target_ids | set(unmapped_declarations) == set(registry_scope) assert all(reason for reason in unmapped_declarations.values()) - assert len(mapped_target_ids) == 194 + assert len(mapped_target_ids) == 193 assert len(unmapped_declarations) == 127 suppressed_ancestors = parity["suppressed_ancestors"] assert len(suppressed_ancestors) == 5 @@ -337,7 +338,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) == 372 + assert len(target_ids) == 371 assert len(target_ids) == len(set(target_ids)) @@ -805,7 +806,7 @@ def test_uc_payment_bands_share_administrative_family_but_keep_source_window() - def test_paid_joint_diagnostics_do_not_add_active_targets() -> None: targets = _load()["targets"] - assert len(targets) == 372 + assert len(targets) == 371 assert not any( f.get("variable") == "uc_calibration_child_entitlement" for target in targets diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_state_pension_targets.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_state_pension_targets.py index 394ed543f..052732e66 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_state_pension_targets.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_state_pension_targets.py @@ -212,3 +212,114 @@ def test_the_shape_rows_reconcile_with_the_great_britain_level() -> None: assert ages == pytest.approx(total, abs=1_000) assert areas == pytest.approx(total, abs=1_000) assert values["dfc_ni.state_pension.recipients"] == pytest.approx(330_147.5) + + +STATE_PENSION_DIAGNOSTICS = { + "obr.state_pension": "dwp.state_pension.amount", + "dwp.state_pension.forecast_expenditure": "dwp.state_pension.amount", + "dwp.state_pension.forecast_expenditure_paid_abroad": "dwp.state_pension.amount", + "dwp.state_pension.forecast_caseload": "dwp.state_pension.recipients", + "dwp.state_pension.forecast_caseload_paid_abroad": "dwp.state_pension.recipients", +} + + +def test_the_obr_line_is_a_diagnostic_beside_the_resident_level() -> None: + from microcosm.build.uk_runtime.ledger_targets import ( + UK_REQUIRED_TARGET_DIAGNOSTICS, + ) + + contract = load_uk_population_contract() + diagnostics = contract["diagnostic_references"] + assert "obr.state_pension" not in {t["target_id"] for t in contract["targets"]} + parity = contract["registry_parity"] + assert "obr/state_pension" in parity["excluded"] + assert "obr/state_pension" not in parity["mapped"] + assert { + name: diagnostics[name]["attach_to_target"] + for name in STATE_PENSION_DIAGNOSTICS + } == STATE_PENSION_DIAGNOSTICS + # Closed world: every declared diagnostic is required by the target it + # attaches to, and every requirement is declared. + required = { + name: target + for target, names in UK_REQUIRED_TARGET_DIAGNOSTICS.items() + for name in names + } + assert { + name: declaration["attach_to_target"] + for name, declaration in diagnostics.items() + } == required + + +def test_the_state_pension_diagnostics_carry_the_published_forecasts() -> None: + """Feed-gated: each diagnostic resolves its exact FY2025-26 fact.""" + + from microcosm.build.uk_runtime.ledger_targets import ( + _attached_diagnostic_metadata, + ) + + root = _TEST_PATHS.repository + configured = os.environ.get("CHRONICLE_UK_FACTS") + feed = Path(configured) if configured else root / STABLE_UK_FACT_FEED_NAME + if feed.is_dir(): + feed = feed / "consumer_facts.jsonl" + if not feed.is_file(): + pytest.skip("pinned UK Chronicle consumer feed is not present") + with feed.open(encoding="utf-8") as handle: + facts = tuple( + json.loads(line) + for line in handle + if '"obr.state_pension"' in line or "benefit-expenditure-caseload" in line + ) + + amount = _attached_diagnostic_metadata(facts, "dwp.state_pension.amount") + recipients = _attached_diagnostic_metadata(facts, "dwp.state_pension.recipients") + + assert amount["obr_state_pension_diagnostic_role"] == "diagnostic_only_not_in_fit" + assert float(amount["obr_state_pension_diagnostic_value_gbp"]) == pytest.approx( + 146_185_954_351.574 + ) + assert float(amount["dwp_forecast_state_pension_diagnostic_value_gbp"]) == ( + pytest.approx(146_071_196_250.359) + ) + assert float( + amount["dwp_forecast_state_pension_paid_abroad_diagnostic_value_gbp"] + ) == pytest.approx(5_629_144_317.972) + assert ( + float(recipients["dwp_forecast_state_pension_caseload_diagnostic_value_count"]) + == 13_204_000 + ) + assert ( + float( + recipients[ + "dwp_forecast_state_pension_caseload_paid_abroad_diagnostic_value_count" + ] + ) + == 1_088_000 + ) + assert { + value + for key, value in {**amount, **recipients}.items() + if key.endswith("_status") + } == {"available"} + + +def test_a_missing_state_pension_diagnostic_refuses_the_resident_level( + tmp_path, monkeypatch +) -> None: + from microcosm.build.uk_runtime import ledger_targets + + contract = load_uk_population_contract() + del contract["diagnostic_references"]["obr.state_pension"] + (tmp_path / "uk_population_targets.json").write_text(json.dumps(contract)) + original_files = ledger_targets.importlib_resources.files + monkeypatch.setattr( + ledger_targets.importlib_resources, + "files", + lambda package: ( + tmp_path if package == "microcosm.build.uk" else original_files(package) + ), + ) + + with pytest.raises(ValueError, match="'obr.state_pension': missing"): + ledger_targets._attached_diagnostic_metadata((), "dwp.state_pension.amount") diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_target_references.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_target_references.py index 2444d254f..30ff4c224 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_target_references.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_target_references.py @@ -64,7 +64,7 @@ _TEST_PATHS = paths_for("microcosm-build") -ACTIVE_REFERENCE_COUNT = 1212 +ACTIVE_REFERENCE_COUNT = 1211 REGION_TIER_LEVEL = {code: level for level, code in UK_REGION_TIER} UK_DATA_REPO = "policyengine-" + "uk-data" @@ -750,7 +750,7 @@ def test_uk_target_reference_membership_report_is_packaged() -> None: assert membership["target_period"] == 2025 assert membership["active_reference_count"] == ACTIVE_REFERENCE_COUNT assert membership["status_counts"] == { - "active": 1212, + "active": 1211, "no_fact_at_or_before_period": 7, "signed_excluded": 15, } diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_uc_support_diagnostics.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_uc_support_diagnostics.py index 4dcbb4bc9..5551c6ffd 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_uc_support_diagnostics.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_uc_support_diagnostics.py @@ -207,7 +207,7 @@ def write_saved_run(tmp_path, **overrides): *sorted(support_tool.KNOWN_ZERO_ROWS), "obr.income_tax", "obr.ni", - "obr.state_pension", + "dwp.state_pension.amount", "obr.child_benefit", "hmrc/employment_income_count_income_band_0_to_5000", ] diff --git a/tools/build_uk_ledger_compile_parity_signed_differences.py b/tools/build_uk_ledger_compile_parity_signed_differences.py index d2f0c4899..7f897fa19 100644 --- a/tools/build_uk_ledger_compile_parity_signed_differences.py +++ b/tools/build_uk_ledger_compile_parity_signed_differences.py @@ -110,6 +110,25 @@ class ParityReceiptSpec: "dwp.esa_contrib_claimants", "dwp.esa_income_claimants", ) + +#: microcosm#1069: the resident State Pension level replaces the OBR line in +#: the fit (ruling R4); the exact OBR forecast stays as diagnostic provenance. +_OBR_STATE_PENSION_DIAGNOSTIC_RATIONALE = ( + "microcosm#1069 (ruling R4) moves the OBR FY2025-26 State Pension forecast " + "out of the fit: it counts Great Britain plus pensioners paid abroad and " + "leaves out Northern Ireland, a different quantity from the resident level " + "the DWP Stat-Xplore and DfC rows bind. The exact forecast is retained as " + "diagnostic provenance on dwp.state_pension.amount, so the frozen fixture's " + "fitted row is fixture-only on the current surface." +) +_STATE_PENSION_PREFIXES = ("dwp.state_pension.", "dfc_ni.state_pension.") +_STATE_PENSION_LEDGER_ONLY_RATIONALE = ( + "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great " + "Britain) and DfC (Northern Ireland) on the four quarterly points inside " + "calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by " + "sex by type, area by type and weekly amount band by type. The frozen fixture " + "has no State Pension caseload or resident-level row." +) _INCOME_ANCHOR_PREFIXES = ("hmrc.itl.", "hmrc.spi.savings_interest_income.") _CGT_OBSERVED_RATIONALES = { @@ -593,6 +612,13 @@ def _add_signed_rationale_notes( row["reason"] = _WELSHGOV_COUNTRY_BASIS_RATIONALE elif name.startswith("welshgov.council_tax_stock.band_i"): row["reason"] = _WELSH_BAND_I_LEDGER_ONLY_RATIONALE + elif name == "obr.state_pension" and row.get("kind") == "fixture_only": + row["reason"] = _OBR_STATE_PENSION_DIAGNOSTIC_RATIONALE + elif ( + name.startswith(_STATE_PENSION_PREFIXES) + and row.get("kind") == "ledger_only" + ): + row["reason"] = _STATE_PENSION_LEDGER_ONLY_RATIONALE elif fixture_resource != "registry_parity_fixture_2025.json": continue elif name in _CGT_OBSERVED_RATIONALES: diff --git a/tools/diagnose_uk_uc_lp_evidence.py b/tools/diagnose_uk_uc_lp_evidence.py index 960a6a922..8e3312bd2 100644 --- a/tools/diagnose_uk_uc_lp_evidence.py +++ b/tools/diagnose_uk_uc_lp_evidence.py @@ -576,7 +576,7 @@ def bounded_redistribution(run): in [ "obr.income_tax@2025", "obr.ni@2025", - "obr.state_pension@2025", + "dwp.state_pension.amount@2025", "obr.child_benefit@2025", ] ], diff --git a/tools/diagnose_uk_uc_support.py b/tools/diagnose_uk_uc_support.py index 7891bc978..8da101cea 100644 --- a/tools/diagnose_uk_uc_support.py +++ b/tools/diagnose_uk_uc_support.py @@ -255,7 +255,9 @@ def supported_uc_probe(matrix, targets, prior, names, rows, tolerance=0.05): def protected_subset_probe(matrix, targets, prior, names, tolerance=0.05): - obr = ["obr.income_tax", "obr.ni", "obr.state_pension", "obr.child_benefit"] + # The bound State Pension level (microcosm#1069 moved the OBR line to a + # diagnostic). + obr = ["obr.income_tax", "obr.ni", "dwp.state_pension.amount", "obr.child_benefit"] employment = [ str(name).rsplit("@", 1)[0] for name in names From a2bfee0a03f0c57ac15b41474c6b12991b33c080 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20Juaristi?= <127882282+juaristi22@users.noreply.github.com> Date: Thu, 1 Oct 2026 13:24:15 +0100 Subject: [PATCH 06/22] =?UTF-8?q?Sign=20out=20the=20empty=20new=20State=20?= =?UTF-8?q?Pension=20=C2=A340-=C2=A360=20band=20(#1069)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit DWP's new State Pension "£40.00 to under £60.00" weekly-amount cell (2,903 recipients over May to November 2025, 0.06% of new State Pension recipients) has no record on the frame: the nearest reporters sit at £58.59 a week and restate to £60.99 at the 2025-26 rate, so the c4 measurement arm fitted the row at -100% and the target-fit battery blocked the H5 on it. The row is signed out of the weekly-amount fan-out in target_reference_signed_exclusions.json (María, in session, 2026-10-01); the other nine new State Pension bands stay bound. Active references 1,211 -> 1,210 (signed out 16); the dwp_state_pension family binds 59 of its 60 references. The generator now lists dwp_state_pension row sign-outs beside the hmrc_cgt ones in the membership report's signed_exclusion_rationales. Co-Authored-By: Claude Opus 5.5 --- .../uk-state-pension-targets-1069.added.md | 4 +- ...ity_incumbent_2025_signed_differences.json | 13 ++----- ...ty_production_2023_signed_differences.json | 13 ++----- .../build/uk/target_reference_membership.json | 29 ++++++++------ .../target_reference_signed_exclusions.json | 13 +++++++ .../microcosm/build/uk/target_references.json | 39 ------------------- .../engine_free/shared/test_country_spec.py | 5 ++- .../uk/test_uk_national_calibration.py | 2 +- .../uk/test_uk_state_pension_targets.py | 8 ++-- .../uk/test_uk_target_references.py | 31 +++++++++++---- .../uk/test_uk_uc_source_periods.py | 2 +- tools/generate_uk_target_references.py | 19 +++++++-- 12 files changed, 89 insertions(+), 89 deletions(-) diff --git a/changelog.d/uk-state-pension-targets-1069.added.md b/changelog.d/uk-state-pension-targets-1069.added.md index 6099c9a82..1d3d23197 100644 --- a/changelog.d/uk-state-pension-targets-1069.added.md +++ b/changelog.d/uk-state-pension-targets-1069.added.md @@ -1,8 +1,8 @@ -Bind the UK resident State Pension on the national surface (microcosm#1069 c3; PolicyEngine/chronicle#302 via #305). The calendar-2025 window is the mean of the four quarterly Stat-Xplore points (February, May, August and November 2025). There are 26 contract targets, compiling to 60 references in the new `dwp_state_pension` family. +Bind the UK resident State Pension on the national surface (microcosm#1069 c3; PolicyEngine/chronicle#302 via #305). The calendar-2025 window is the mean of the four quarterly Stat-Xplore points (February, May, August and November 2025). There are 26 contract targets, compiling to 60 references in the new `dwp_state_pension` family, of which 59 are bound. - **Level:** Great Britain residents' recipients (12.05m) and amount (£138.6bn), plus Northern Ireland from DfC (0.33m and £3.7bn). The amounts are recipients times the mean weekly amount times 52, restated per point at the engine's 2025 rate. - **Age:** recipients by age band (66–69 to 90 and over) × sex × State Pension type, binding only the cells DWP populates. Type follows the State Pension age date, so 66–69 is all new State Pension and 75 and over all pre-2016. - **Area:** recipients by type in the nine English regions (a region-tier fan-out pinned to England), with Scotland and Wales as their own rows. -- **Weekly amount:** recipients by weekly amount band × type. These keep only the May–November points, which DWP pays at the 2025-26 rate the engine pays. +- **Weekly amount:** recipients by weekly amount band × type. These keep only the May–November points, which DWP pays at the 2025-26 rate the engine pays. The new State Pension £40.00 to under £60.00 band (2,903 recipients) has no record on the frame, so it is signed out in `target_reference_signed_exclusions.json`. The contract gains the `dfc_ni` provider and the two State Pension categories, so the local references restate the hierarchy. 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 7100d2f53..765d6d1c1 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": 1211, + "compiled_count": 1210, "counts_by_kind": { "calibration_drift": 554, "fixture_only": 54, - "ledger_only": 628 + "ledger_only": 627 }, - "difference_count": 1236, + "difference_count": 1235, "differences": [ { "fixture_value": 1608000.0, @@ -791,13 +791,6 @@ "period": 2025, "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, - { - "kind": "ledger_only", - "ledger_value": 2903.0, - "name": "dwp.state_pension.recipients_new_by_weekly_amount.40_00_to_under_60_00__new_state_pension", - "period": 2025, - "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." - }, { "kind": "ledger_only", "ledger_value": 24329.333333333332, 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 cb568ea8d..7d6b3bc6e 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": 900, + "compiled_count": 899, "counts_by_kind": { "calibration_drift": 120, "fixture_only": 17, - "ledger_only": 768 + "ledger_only": 767 }, - "difference_count": 905, + "difference_count": 904, "differences": [ { "fixture_value": 82000.0, @@ -434,13 +434,6 @@ "period": 2023, "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." }, - { - "kind": "ledger_only", - "ledger_value": 2903.0, - "name": "dwp.state_pension.recipients_new_by_weekly_amount.40_00_to_under_60_00__new_state_pension", - "period": 2023, - "reason": "microcosm#1069 binds the resident State Pension from DWP Stat-Xplore (Great Britain) and DfC (Northern Ireland) on the four quarterly points inside calendar 2025 (PolicyEngine/chronicle#302 via #305): the level, age band by sex by type, area by type and weekly amount band by type. The frozen fixture has no State Pension caseload or resident-level row." - }, { "kind": "ledger_only", "ledger_value": 24329.333333333332, 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 9d2577c03..535e865bc 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 @@ -3,11 +3,11 @@ "target_period": 2025, "candidate_count": 1233, "contract_target_count": 320, - "active_reference_count": 1211, + "active_reference_count": 1210, "status_counts": { - "active": 1211, + "active": 1210, "no_fact_at_or_before_period": 7, - "signed_excluded": 15 + "signed_excluded": 16 }, "geography_pins": { "obr.income_tax": { @@ -28627,14 +28627,14 @@ }, { "name": "dwp.state_pension.recipients_new_by_weekly_amount.40_00_to_under_60_00__new_state_pension", - "status": "active", + "status": "signed_excluded", "matched_fact_count_overall": 3, "matched_fact_count_at_or_before_period": 3, - "matched_fact_count_in_source_window": 3, - "resolved_period": 2025, - "resolved_value": 2903.0, - "resolved_fact_period": "2025-11", - "resolved_fact_key": "ledger_aggregate_fact_v2_94b2164b496c302cf91c77e6" + "signed_row": { + "dimension": "grouped_amount_of_benefit", + "value": "\u00a340.00 to under \u00a360.00" + }, + "signed_rationale": "DWP's new State Pension \u00a340.00 to under \u00a360.00 a week cell (2,903 recipients over May to November 2025, 0.06% of new State Pension recipients) has no record on the frame: about thirty distinct new State Pension recipients report under \u00a3100 a week in FRS 2024-25, and the two nearest (\u00a358.59 a week) restate to \u00a360.99 at the 2025 rate the engine pays, so the row would always measure zero. Signed out of the weekly-amount fan-out; the other nine new State Pension bands stay bound." }, { "name": "dwp.state_pension.recipients_new_by_weekly_amount.60_00_to_under_80_00__new_state_pension", @@ -28823,8 +28823,8 @@ { "family": "dwp_state_pension", "status": "active_english_region_and_amount_band_fanout", - "active_reference_count": 38, - "signed_rationale": "The State Pension recipients by type fan out over the nine English regions (Scotland and Wales are their own rows, since DWP publishes no Northern Ireland cell for a twelve-area tier) and over DWP's weekly amount bands, whose 'all' margin is a total row the detail measure pin leaves out (microcosm#1069)." + "active_reference_count": 37, + "signed_rationale": "The State Pension recipients by type fan out over the nine English regions (Scotland and Wales are their own rows, since DWP publishes no Northern Ireland cell for a twelve-area tier) and over DWP's weekly amount bands, whose 'all' margin is a total row the detail measure pin leaves out; the empty new State Pension \u00a340-\u00a360 band is signed out (microcosm#1069)." } ], "signed_exclusion_rationales": [ @@ -28840,6 +28840,13 @@ "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." }, + { + "family": "dwp_state_pension", + "target_id": "dwp.state_pension.recipients_new_by_weekly_amount", + "row": "dwp.state_pension.recipients_new_by_weekly_amount.40_00_to_under_60_00__new_state_pension", + "status": "signed_excluded", + "signed_rationale": "DWP's new State Pension \u00a340.00 to under \u00a360.00 a week cell (2,903 recipients over May to November 2025, 0.06% of new State Pension recipients) has no record on the frame: about thirty distinct new State Pension recipients report under \u00a3100 a week in FRS 2024-25, and the two nearest (\u00a358.59 a week) restate to \u00a360.99 at the 2025 rate the engine pays, so the row would always measure zero. Signed out of the weekly-amount fan-out; the other nine new State Pension bands stay bound." + }, { "family": "hmrc_cgt", "target_id": "hmrc.cgt.badr_ir_qualifying_gains_by_band", 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 c6348cbb1..4ec8dfd0f 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 @@ -155,6 +155,19 @@ "dimension": "cgt_badr_ir_gain_band", "value": "total" } + }, + { + "target_id": "dwp.state_pension.recipients_new_by_weekly_amount", + "reason_id": "no_frame_support", + "rationale": "DWP's new State Pension £40.00 to under £60.00 a week cell (2,903 recipients over May to November 2025, 0.06% of new State Pension recipients) has no record on the frame: about thirty distinct new State Pension recipients report under £100 a week in FRS 2024-25, and the two nearest (£58.59 a week) restate to £60.99 at the 2025 rate the engine pays, so the row would always measure zero. Signed out of the weekly-amount fan-out; the other nine new State Pension bands stay bound.", + "tracking": "microcosm#1069", + "approved_by": "juaristi22", + "approved_on": "2026-10-01", + "adjudication": "María in session, 2026-10-01: remove the empty band (microcosm#1069 c4 measurement arm, the row fitted at -100%)", + "row": { + "dimension": "grouped_amount_of_benefit", + "value": "£40.00 to under £60.00" + } } ] } 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 6e9dc11fa..6a392c62a 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/target_references.json +++ b/packages/microcosm-build/src/microcosm/build/uk/target_references.json @@ -43757,45 +43757,6 @@ "period_match_policy": "source_window", "value_operation": "monthly_window_average" }, - { - "name": "dwp.state_pension.recipients_new_by_weekly_amount.40_00_to_under_60_00__new_state_pension", - "ledger_selector": { - "source_name": "dwp", - "source_concept": [ - "dwp.state_pension_caseload" - ], - "source_measure_id": "recipients", - "groupby_dimension": "dwp.state_pension_amount_band_type", - "dimensions": [ - "category_of_pension", - "grouped_amount_of_benefit" - ], - "dimension_values": { - "category_of_pension": "New State Pension", - "grouped_amount_of_benefit": "\u00a340.00 to under \u00a360.00" - }, - "entity_name": "person", - "period_type": "month", - "period_value": [ - "2025-05", - "2025-08", - "2025-11" - ], - "geography_level": "country", - "geography_id": "K03000001" - }, - "entity": "person", - "measure": "dwp.state_pension.recipients_new_by_weekly_amount.40_00_to_under_60_00__new_state_pension", - "family": "dwp_state_pension", - "period": 2025, - "metadata": { - "contract_target_id": "dwp.state_pension.recipients_new_by_weekly_amount", - "measure_kind": "prepared_column", - "uk_uc_expected_source_months": "[\"2025-05\",\"2025-08\",\"2025-11\"]" - }, - "period_match_policy": "source_window", - "value_operation": "monthly_window_average" - }, { "name": "dwp.state_pension.recipients_new_by_weekly_amount.60_00_to_under_80_00__new_state_pension", "ledger_selector": { diff --git a/packages/microcosm-build/tests/engine_free/shared/test_country_spec.py b/packages/microcosm-build/tests/engine_free/shared/test_country_spec.py index f6d1373e8..23194e753 100644 --- a/packages/microcosm-build/tests/engine_free/shared/test_country_spec.py +++ b/packages/microcosm-build/tests/engine_free/shared/test_country_spec.py @@ -1125,7 +1125,7 @@ def test_uk_target_references_accept_regenerated_contract_fields(self) -> None: references = {reference.name: reference for reference in spec.target_references} assert ( - len(references) == 1211 + len(references) == 1210 ) # PolicyEngine/chronicle#280 lane: 705 + 33 HMRC liabilities rows (Table 2.5, three # measures by eleven bands) + 26 SPI savings-interest rows (two measures by # thirteen bands) + 360 SPI Table 3.11 region-tier rows (three measures by @@ -1137,7 +1137,8 @@ def test_uk_target_references_accept_regenerated_contract_fields(self) -> None: # 24 size-of-gain rows; microcosm#1014: 16 Table 4.1 BADR/IR band rows # and 12 Table 3 taxable-income margin rows; microcosm#1069: 60 State # Pension rows (4 levels, 14 age-by-sex cells, 22 area cells, 20 bands) - # less the OBR State Pension line, now a diagnostic + # less the OBR State Pension line, now a diagnostic, and the signed-out + # empty new State Pension £40-£60 band assert references["obr.esa"].value_operation == "calendar_year_window" assert references["dwp.uc.households"].value_operation == ( "monthly_window_sum_average" diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_national_calibration.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_national_calibration.py index 81bddebb2..52fa1c591 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_national_calibration.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_national_calibration.py @@ -53,7 +53,7 @@ from microcosm.calibrate.artifacts import decode_problem from microcosm.frame import EntitySchema, Frame, MassChange, WeightKind, Weights -ACTIVE_REFERENCE_COUNT = 1211 +ACTIVE_REFERENCE_COUNT = 1210 def _uc_reference(**overrides) -> LedgerTargetReference: diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_state_pension_targets.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_state_pension_targets.py index 052732e66..6792e7e40 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_state_pension_targets.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_state_pension_targets.py @@ -63,12 +63,13 @@ def _filter(binding: dict, variable: str, operator: str = "==") -> list: ] -def test_the_state_pension_family_is_26_targets_and_60_references() -> None: +def test_the_state_pension_family_is_26_targets_and_59_references() -> None: targets = _pension_targets() references = _pension_references() assert len(targets) == 26 - assert len(references) == 60 + # The empty new State Pension £40-£60 band is signed out (no frame support). + assert len(references) == 59 assert {target["category_id"] for target in targets} == { "dwp.state_pension", "dfc_ni.state_pension", @@ -161,8 +162,9 @@ def test_the_amount_bands_keep_the_points_paid_at_the_2025_26_rate() -> None: for reference in _pension_references() if "_by_weekly_amount." in reference.name ] - assert len(rows) == 20 + assert len(rows) == 19 assert not any("grouped_amount_of_benefit_all" in name for name in rows) + assert not any("40_00_to_under_60_00__new_state_pension" in name for name in rows) def _state_pension_facts() -> list[dict]: diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_target_references.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_target_references.py index 30ff4c224..d0b272f5b 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_target_references.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_target_references.py @@ -64,7 +64,7 @@ _TEST_PATHS = paths_for("microcosm-build") -ACTIVE_REFERENCE_COUNT = 1211 +ACTIVE_REFERENCE_COUNT = 1210 REGION_TIER_LEVEL = {code: level for level, code in UK_REGION_TIER} UK_DATA_REPO = "policyengine-" + "uk-data" @@ -750,9 +750,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": 1211, + "active": 1210, "no_fact_at_or_before_period": 7, - "signed_excluded": 15, + "signed_excluded": 16, } assert membership["genuine_sum_residue"] assert membership["uprating_holds"] @@ -863,14 +863,16 @@ def test_uk_target_reference_membership_report_is_packaged() -> None: { "family": "dwp_state_pension", "status": "active_english_region_and_amount_band_fanout", - # 18 English-region cells and 20 weekly amount bands (microcosm#1069). - "active_reference_count": 38, + # 18 English-region cells and 19 weekly amount bands: the empty new + # State Pension £40-£60 band is signed out (microcosm#1069). + "active_reference_count": 37, "signed_rationale": ( "The State Pension recipients by type fan out over the nine " "English regions (Scotland and Wales are their own rows, since " "DWP publishes no Northern Ireland cell for a twelve-area tier) " "and over DWP's weekly amount bands, whose 'all' margin is a " - "total row the detail measure pin leaves out (microcosm#1069)." + "total row the detail measure pin leaves out; the empty new " + "State Pension £40-£60 band is signed out (microcosm#1069)." ), }, ] @@ -895,7 +897,22 @@ def test_uk_target_reference_membership_report_is_packaged() -> None: ("hmrc.cgt.taxpayers_by_gain_band", "hmrc/cgt_taxpayers_band_0"), ] assert all(entry["status"] == "signed_excluded" for entry in cgt_rows) - assert [entry for entry in rationales if entry["family"] != "hmrc_cgt"] == [ + pension_rows = [ + entry for entry in rationales if entry["family"] == "dwp_state_pension" + ] + assert [(entry["target_id"], entry["row"]) for entry in pension_rows] == [ + ( + "dwp.state_pension.recipients_new_by_weekly_amount", + "dwp.state_pension.recipients_new_by_weekly_amount." + "40_00_to_under_60_00__new_state_pension", + ) + ] + assert "no record on the frame" in pension_rows[0]["signed_rationale"] + assert [ + entry + for entry in rationales + if entry["family"] not in {"hmrc_cgt", "dwp_state_pension"} + ] == [ { "family": "hmrc_spi", "target_id": "hmrc.spi.property_income.amount_by_total_income_band", diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_uc_source_periods.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_uc_source_periods.py index 4be2a353b..9bf44daff 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_uc_source_periods.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_uc_source_periods.py @@ -557,7 +557,7 @@ def test_shipped_uc_monthly_references_preserve_each_declared_window(): pension = [ reference for reference in references if reference.family == "dwp_state_pension" ] - assert len(pension) == 60 + assert len(pension) == 59 for reference in pension: months = json.loads(reference.metadata[EXPECTED_SOURCE_MONTHS]) assert months == reference.ledger_selector["period_value"] diff --git a/tools/generate_uk_target_references.py b/tools/generate_uk_target_references.py index b5dfb8782..d3334ae1f 100644 --- a/tools/generate_uk_target_references.py +++ b/tools/generate_uk_target_references.py @@ -938,7 +938,8 @@ def _add_uk_membership_accounting( "English regions (Scotland and Wales are their own rows, since " "DWP publishes no Northern Ireland cell for a twelve-area tier) " "and over DWP's weekly amount bands, whose 'all' margin is a " - "total row the detail measure pin leaves out (microcosm#1069)." + "total row the detail measure pin leaves out; the empty new " + "State Pension £40-£60 band is signed out (microcosm#1069)." ), }, ] @@ -960,15 +961,27 @@ def _add_uk_membership_accounting( ]["candidates"][0]["signed_rationale"], }, ] + row_families = ( + ("hmrc.cgt.", "hmrc_cgt"), + ("dwp.state_pension.", "dwp_state_pension"), + ) for target_id, entry in sorted(report["targets"].items()): - if not str(target_id).startswith("hmrc.cgt."): + family = next( + ( + name + for prefix, name in row_families + if str(target_id).startswith(prefix) + ), + None, + ) + if family is None: continue for candidate in entry["candidates"]: if candidate.get("status") != "signed_excluded": continue report["signed_exclusion_rationales"].append( { - "family": "hmrc_cgt", + "family": family, "target_id": target_id, "row": candidate["name"], "status": "signed_excluded", From dae9cc91618a6a711aa906234cd5484b10ad947a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20Juaristi?= <127882282+juaristi22@users.noreply.github.com> Date: Thu, 1 Oct 2026 14:05:33 +0100 Subject: [PATCH 07/22] Query the SPI donor forest at the middle of each person's year of age (#1069) The c4 measurement arm left 31% of the frame's 66-year-olds without State Pension against DWP's ~3%. In the c4 spine, 330 of the 402 such records are SPI-channel synthetic people (88% of their weight): the SPI channel shows no State Pension for 100% at 65, 51% at 66 and 6% at 67, while FRS respondents show 7% at 66. Since c5 the donors carry a drawn fractional age (a whole year plus a uniform fraction) and no donor below State Pension age has State Pension. Frame people carry a whole-year age, so a 66-year-old queried at exactly 66.0 sits on the forest's split at that birthday and lands with the 65-year-old donors whenever the split falls just above it; the zero State Pension leaf then sets the stage-2 receipt bridge. A synthetic forest reproduces it: queried at the whole year no 66-year-old draws State Pension, at the middle of the year all of them do. - Stage 1 (and the base-channel dividend redraw, which reuses the forest) now queries floor(age) + 0.5, the middle of the year of age; stage 2 compares frame ages with frame ages and is unchanged. The rule is in the stage evidence as donor_age_draw.stage1_query_age. - Band carriers draw only donors whose drawn age is on their side of State Pension age (the published 65-74 band straddles it), before the age-band and regional narrowing; the receipt counts the side-matched carriers. 32 of the 330 came from this path. The H2 fixture's synthetic CGT asset-type facts move with the SPI draws. Co-Authored-By: Claude Opus 5.5 --- .../uk-spi-state-pension-age-1069.fixed.md | 2 +- .../microcosm/build/uk_runtime/spi_income.py | 79 +++++++++-- .../engine_free/uk/test_uk_spi_pension_age.py | 131 ++++++++++++++++++ .../sources/cgt_asset_type_facts.json | 56 ++++---- 4 files changed, 225 insertions(+), 43 deletions(-) diff --git a/changelog.d/uk-spi-state-pension-age-1069.fixed.md b/changelog.d/uk-spi-state-pension-age-1069.fixed.md index 758d38986..15ee3b69b 100644 --- a/changelog.d/uk-spi-state-pension-age-1069.fixed.md +++ b/changelog.d/uk-spi-state-pension-age-1069.fixed.md @@ -1 +1 @@ -Make the UK SPI income stage respect State Pension age (#1069). SPI donor ages are now drawn within each AGERANGE band by the ONS mid-2023 single-year populations of the donor's sex, vendored from the pinned Chronicle feed as `uk/ons_single_year_age_populations.json` and declared as a stage artifact. Donors receiving State Pension (`SRP > 0`) are drawn at or above the engine's State Pension age, and a band's below-SPA population share is drawn from its non-recipients, with any shortfall receipted. The 65–74 band edge is corrected so that 74-year-olds fall in band 6. Band carriers draw from their own SPI age band when that pool holds 20 records (composites never age-match), then narrow by region as before. A deterministic guard zeroes State Pension, Pension Credit and Winter Fuel reports below State Pension age: the SPI State Pension leaf before the stage-2 receipt bridge, the base channel's State Pension reports before stage 2 trains on them, and the SPI channel's three reports after stage 2. A receipt records the rows, weighted people and pounds removed at each step. +Make the UK SPI income stage respect State Pension age (#1069). SPI donor ages are now drawn within each AGERANGE band by the ONS mid-2023 single-year populations of the donor's sex, vendored from the pinned Chronicle feed as `uk/ons_single_year_age_populations.json` and declared as a stage artifact. Donors receiving State Pension (`SRP > 0`) are drawn at or above the engine's State Pension age, and a band's below-SPA population share is drawn from its non-recipients, with any shortfall receipted. The 65–74 band edge is corrected so that 74-year-olds fall in band 6. The stage-1 forest is queried at the middle of each person's year of age (whole-year age plus half a year), because donors carry a fractional age: at the whole year a 66-year-old sat on the forest's split at State Pension age and drew a 65-year-old donor's zero State Pension leaf about half the time. Band carriers draw only donors on their own side of State Pension age, then from their own SPI age band when that pool holds 20 records (composites never age-match), then narrow by region as before. A deterministic guard zeroes State Pension, Pension Credit and Winter Fuel reports below State Pension age: the SPI State Pension leaf before the stage-2 receipt bridge, the base channel's State Pension reports before stage 2 trains on them, and the SPI channel's three reports after stage 2. A receipt records the rows, weighted people and pounds removed at each step. diff --git a/packages/microcosm-build/src/microcosm/build/uk_runtime/spi_income.py b/packages/microcosm-build/src/microcosm/build/uk_runtime/spi_income.py index 8499fd399..c734c632a 100644 --- a/packages/microcosm-build/src/microcosm/build/uk_runtime/spi_income.py +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/spi_income.py @@ -259,6 +259,13 @@ "Pension age, and the band's below-State-Pension-age population share is " "drawn from its non-recipients" ) +#: Donors carry a drawn fractional age and frame people a whole-year one, so +#: the stage-1 forest is queried at the middle of each person's year of age. +#: At the whole year a person sits on any split the forest places at that +#: birthday; at State Pension age, below which no donor draws State Pension, +#: about half of the frame's 66-year-olds drew a 65-year-old donor's zero +#: State Pension leaf (microcosm#1069, c4 measurement arm). +SPI_STAGE1_QUERY_AGE_RULE = "whole-year age plus half a year" _SPI_REGION_MAP = { 1: "NORTH_EAST", 2: "NORTH_WEST", @@ -681,7 +688,10 @@ def impute_uk_spi_income_support( raise TypeError("donor_table must be a pandas DataFrame.") raw_donor = donor_table.copy(deep=True) donor = _prepare_spi_donor(raw_donor, seed=seed, age_model=donor_age_model) - donor_age_draw = dict(donor.attrs.get("age_draw", {})) + donor_age_draw = { + **donor.attrs.get("age_draw", {}), + "stage1_query_age": SPI_STAGE1_QUERY_AGE_RULE, + } donor_full = donor donor_fit_weights = donor["FACT"].to_numpy(dtype=np.float64) if donor_sample_size is not None: @@ -746,10 +756,9 @@ def impute_uk_spi_income_support( ) person = _seed_frs_hmrc_auxiliary_leaves(person, spi_people=spi_people) - recipient_predictors = _person_predictors( + recipient_predictors = _stage1_query_predictors( person.loc[spi_channel_people], household, - income_predictors=(), ) donor_predictors, encoded_recipient = _encode_predictor_pair( donor[["age", "gender", "region"]], @@ -816,6 +825,9 @@ def impute_uk_spi_income_support( household=household, spi_people=spi_people, uprating_factors=uprating_factors, + state_pension_age=( + None if donor_age_model is None else donor_age_model.state_pension_age + ), **dict(band_donor_resample), ) guard_receipts: list[Mapping[str, object]] = [] @@ -937,11 +949,7 @@ def impute_uk_spi_income_support( guard_receipts.append(receipt) if base_redraw_columns: - base_predictors = _person_predictors( - person.loc[base_people], - household, - income_predictors=(), - ) + base_predictors = _stage1_query_predictors(person.loc[base_people], household) _, encoded_base = _encode_predictor_pair( donor[["age", "gender", "region"]], base_predictors, @@ -1030,6 +1038,7 @@ def _resample_band_donor_leaves( regional_pool_minimum: int, seed: int, age_pool_minimum: int | None = None, + state_pension_age: int | None = None, ) -> tuple[pd.DataFrame, dict[str, object]]: """Give every reserved band carrier a band-conditional tape draw. @@ -1044,7 +1053,11 @@ def _resample_band_donor_leaves( ``age_pool_minimum`` the band pool first narrows to the records in the carrier's published SPI age band (composites, which carry none, never age-match) when that pool holds at least ``age_pool_minimum`` records, - and the regional narrowing then applies within it (microcosm#1069). One + and the regional narrowing then applies within it (microcosm#1069). With + ``state_pension_age`` the band pool first keeps only the records whose + drawn age is on the carrier's side of State Pension age, since the + published age band 65 to 74 straddles it and a carrier at or over it must + not inherit the zero State Pension leaf of a donor drawn below it. One record is drawn FACT-weighted with replacement and all stage-1 leaves are copied from it, then uprated exactly as the forest draws were; the accounting aggregates derive after the draw as usual. Composite records @@ -1060,6 +1073,10 @@ def _resample_band_donor_leaves( not isinstance(age_pool_minimum, int) or age_pool_minimum <= 0 ): raise ValueError("age_pool_minimum must be a positive integer or None.") + if state_pension_age is not None and ( + not isinstance(state_pension_age, int) or state_pension_age <= 0 + ): + raise ValueError("state_pension_age must be a positive integer or None.") lowers = sorted(int(value) for value in lower_bounds) if not lowers or len(set(lowers)) != len(lowers): raise ValueError("band donor lower bounds must be distinct.") @@ -1143,18 +1160,38 @@ def _resample_band_donor_leaves( if donor_agerange is not None else np.zeros(len(carrier_rows), dtype=np.int64) ) + if state_pension_age is not None and "age" not in donor.columns: + raise ValueError("State Pension age pooling needs the prepared donor's age.") + donor_pension_age = ( + donor["age"].to_numpy(dtype=float) >= state_pension_age + if state_pension_age is not None + else None + ) + carrier_pension_age = ( + carrier_rows["age"].to_numpy(dtype=float) >= state_pension_age + if state_pension_age is not None + else np.zeros(len(carrier_rows), dtype=bool) + ) rng = np.random.default_rng(seed) drawn = np.empty(len(carrier_rows), dtype=np.int64) matched = np.zeros(len(carrier_rows), dtype=bool) age_matched = np.zeros(len(carrier_rows), dtype=bool) - pool_cache: dict[tuple[int, str, int], tuple[np.ndarray, bool, bool]] = {} - for index, (band, region, code) in enumerate( - zip(bands, regions, carrier_agerange, strict=True) + side_matched = np.zeros(len(carrier_rows), dtype=bool) + pool_cache: dict[ + tuple[int, str, int, bool], tuple[np.ndarray, bool, bool, bool] + ] = {} + for index, (band, region, code, pension_age) in enumerate( + zip(bands, regions, carrier_agerange, carrier_pension_age, strict=True) ): lower = int(band) - key = (lower, region, int(code)) + key = (lower, region, int(code), bool(pension_age)) if key not in pool_cache: base = pools[lower] + base_is_sided = False + if donor_pension_age is not None: + sided = base[donor_pension_age[base] == bool(pension_age)] + if sided.size: + base, base_is_sided = sided, True base_is_aged = False if donor_agerange is not None: aged = base[donor_agerange[base] == int(code)] @@ -1166,8 +1203,9 @@ def _resample_band_donor_leaves( regional if regional_ok else base, regional_ok, base_is_aged, + base_is_sided, ) - pool, matched[index], age_matched[index] = pool_cache[key] + pool, matched[index], age_matched[index], side_matched[index] = pool_cache[key] weights = fact[pool] drawn[index] = int(rng.choice(pool, p=weights / weights.sum())) leaves = leaf_values[drawn] * factors @@ -1198,6 +1236,7 @@ def _resample_band_donor_leaves( "pool_weighted_taxpayers": float(fact[pool].sum()), "regional_matched_carriers": int(matched[mask].sum()), "age_matched_carriers": int(age_matched[mask].sum()), + "state_pension_age_matched_carriers": int(side_matched[mask].sum()), "realized_min_total_income": ( float(realized.min()) if realized.size else None ), @@ -1218,6 +1257,7 @@ def _resample_band_donor_leaves( ), "regional_pool_minimum": regional_pool_minimum, "age_pool_minimum": age_pool_minimum, + "state_pension_age": state_pension_age, "seed": seed, "weighting": "FACT", "with_replacement": True, @@ -1679,6 +1719,17 @@ def _person_predictors( return result +def _stage1_query_predictors( + person: pd.DataFrame, + household: pd.DataFrame, +) -> pd.DataFrame: + """Stage-1 query predictors: age at the middle of the year of age.""" + + predictors = _person_predictors(person, household, income_predictors=()) + predictors["age"] = np.floor(predictors["age"].to_numpy(dtype=np.float64)) + 0.5 + return predictors + + def _encode_predictor_pair( train: pd.DataFrame, target: pd.DataFrame, diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_spi_pension_age.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_spi_pension_age.py index 393c50848..e940dbe94 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_spi_pension_age.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_spi_pension_age.py @@ -268,3 +268,134 @@ def test_band_resample_without_age_pooling_keeps_the_legacy_pools() -> None: assert receipt["age_pool_minimum"] is None assert receipt["bands"][0]["age_matched_carriers"] == 0 + + +def test_stage1_queries_sit_at_the_middle_of_the_year_of_age() -> None: + person = pd.DataFrame( + { + "person_household_id": [1, 1, 2], + "age": [65, 66, 74], + "gender": ["MALE", "FEMALE", "MALE"], + } + ) + household = pd.DataFrame({"household_id": [1, 2], "region": ["LONDON", "WALES"]}) + + predictors = spi_income._stage1_query_predictors(person, household) + + assert predictors["age"].tolist() == [65.5, 66.5, 74.5] + assert predictors["region"].tolist() == ["LONDON", "LONDON", "WALES"] + + +def test_whole_year_frame_ages_draw_state_pension_from_their_own_year() -> None: + # Donors carry a fractional age and State Pension from 66.0. A frame + # person aged 66 queried at the whole year sits on the forest's split at + # that birthday; at the middle of the year every 66-year-old draws from + # the donors who have reached State Pension age (microcosm#1069). + from microcosm.frame import WeightKind + + rng = np.random.default_rng(0) + count = 4_000 + ages = rng.integers(60, 75, size=count) + rng.random(count) + donor = pd.DataFrame( + { + "age": ages, + "gender": np.where(rng.random(count) < 0.5, "MALE", "FEMALE"), + "region": "LONDON", + } + ) + targets = pd.DataFrame( + { + spi_income.SPI_HMRC_STATE_PENSION_INCOME_COLUMN: np.where( + ages >= 66.0, 9_000.0 + 1_500.0 * rng.random(count), 0.0 + ), + "employment_income": np.where(ages < 66.0, 25_000.0, 4_000.0) + * rng.random(count), + } + ) + person = pd.DataFrame( + { + "person_household_id": np.ones(900, dtype=int), + "age": np.repeat([65, 66, 67], 300), + "gender": "MALE", + } + ) + household = pd.DataFrame({"household_id": [1], "region": ["LONDON"]}) + encoded_donor, encoded_query = spi_income._encode_predictor_pair( + donor, spi_income._stage1_query_predictors(person, household) + ) + frame = spi_income._person_fit_frame( + predictors=encoded_donor, + targets=targets, + weights=np.ones(count), + weight_kind=WeightKind.DESIGN, + ) + forest = spi_income._qrf_class()(n_estimators=50, seed=42).fit( + frame, + list(encoded_donor.columns), + list(targets.columns), + weights="design", + ) + + draws = forest.predict(encoded_query) + + receives = draws[spi_income.SPI_HMRC_STATE_PENSION_INCOME_COLUMN].to_numpy() > 0.0 + by_age = { + age: receives[person["age"].to_numpy() == age].mean() for age in (65, 66, 67) + } + assert by_age == {65: 0.0, 66: 1.0, 67: 1.0} + + +def _pension_age_band_inputs(carrier_age: float): + person, donor, household = _band_resample_inputs(carrier_age=carrier_age) + # Every donor sits in the 65 to 74 band: the first 30 drawn at 65 without + # State Pension, the rest at 66 to 74 with it. + donor["agerange"] = 6 + donor["age"] = [65.5] * 30 + [70.0] * 30 + donor[spi_income.SPI_HMRC_STATE_PENSION_INCOME_COLUMN] = [0.0] * 30 + [ + 10_000.0 + ] * 30 + return person, donor, household + + +@pytest.mark.parametrize("seed", range(5)) +@pytest.mark.parametrize(("carrier_age", "receives"), [(66.0, True), (65.0, False)]) +def test_band_carriers_draw_donors_on_their_side_of_state_pension_age( + seed: int, carrier_age: float, receives: bool +) -> None: + person, donor, household = _pension_age_band_inputs(carrier_age) + factors = dict.fromkeys(spi_income.SPI_INCOME_QRF_OUTPUT_COLUMNS, 1.0) + + result, receipt = spi_income._resample_band_donor_leaves( + person, + donor, + household=household, + spi_people=pd.Series([True]), + uprating_factors=factors, + lower_bounds=(200_000,), + regional_pool_minimum=5, + seed=seed, + age_pool_minimum=10, + state_pension_age=66, + ) + + drawn = result.loc[0, spi_income.SPI_HMRC_STATE_PENSION_INCOME_COLUMN] + assert bool(drawn > 0.0) is receives + assert receipt["state_pension_age"] == 66 + assert receipt["bands"][0]["state_pension_age_matched_carriers"] == 1 + + +def test_band_resample_refuses_state_pension_age_pooling_without_donor_ages() -> None: + person, donor, household = _band_resample_inputs(carrier_age=66.0) + factors = dict.fromkeys(spi_income.SPI_INCOME_QRF_OUTPUT_COLUMNS, 1.0) + with pytest.raises(ValueError, match="needs the prepared donor's age"): + spi_income._resample_band_donor_leaves( + person, + donor, + household=household, + spi_people=pd.Series([True]), + uprating_factors=factors, + lower_bounds=(200_000,), + regional_pool_minimum=5, + seed=0, + state_pension_age=66, + ) diff --git a/packages/microcosm-graph/tests/fixtures/parity/uk_spine/sources/cgt_asset_type_facts.json b/packages/microcosm-graph/tests/fixtures/parity/uk_spine/sources/cgt_asset_type_facts.json index 1442634c0..c0483ec6d 100644 --- a/packages/microcosm-graph/tests/fixtures/parity/uk_spine/sources/cgt_asset_type_facts.json +++ b/packages/microcosm-graph/tests/fixtures/parity/uk_spine/sources/cgt_asset_type_facts.json @@ -2,70 +2,70 @@ "resource": "synthetic-cgt-asset-type.json", "resource_sha256": "synthetic", "source_commit": "synthetic", - "table4_all_gains": 84705219.38879342, + "table4_all_gains": 86655426.83250126, "table4_all_tax": 0.0, - "table4_all_taxpayers": 188.8832820855615, + "table4_all_taxpayers": 195.41619652406416, "table4_bands": [ { - "gains": 83627.53122927491, + "gains": 109840.39630094224, "lower_bound": 0, "tax": null, - "taxpayers": 17.250828877005347, + "taxpayers": 24.259368315508024, "upper_bound": 10000 }, { - "gains": 416423.92947875377, + "gains": 295037.83445945487, "lower_bound": 10000, "tax": null, - "taxpayers": 23.58249331550802, + "taxpayers": 16.718953877005347, "upper_bound": 25000 }, { - "gains": 676391.7687965892, + "gains": 670624.8999690153, "lower_bound": 25000, "tax": null, - "taxpayers": 16.445203877005348, + "taxpayers": 16.677703877005346, "upper_bound": 50000 }, { - "gains": 1267316.4722515403, + "gains": 1747761.0683609226, "lower_bound": 50000, "tax": null, - "taxpayers": 16.693328877005346, + "taxpayers": 23.899993315508024, "upper_bound": 100000 }, { - "gains": 4226964.067228878, + "gains": 3426307.334439975, "lower_bound": 100000, "tax": null, - "taxpayers": 24.17936831550802, + "taxpayers": 16.62770387700535, "upper_bound": 250000 }, { - "gains": 5987065.982816234, + "gains": 6671519.656755672, "lower_bound": 250000, "tax": null, - "taxpayers": 16.17832887700535, + "taxpayers": 16.10457887700535, "upper_bound": 500000 }, { - "gains": 14285778.567473445, + "gains": 17017684.572696567, "lower_bound": 500000, "tax": null, - "taxpayers": 16.79207887700535, + "taxpayers": 24.41124331550802, "upper_bound": 1000000 }, { - "gains": 57761651.06951871, + "gains": 56716651.069518715, "lower_bound": 1000000, "tax": null, - "taxpayers": 57.761651069518706, + "taxpayers": 56.71665106951872, "upper_bound": null } ], - "table4_individuals_gains": 84705219.38879342, + "table4_individuals_gains": 86655426.83250126, "table4_individuals_tax": 0.0, - "table4_individuals_taxpayers": 188.8832820855615, + "table4_individuals_taxpayers": 195.41619652406416, "table4_trusts_gains": 0.0, "table4_trusts_tax": 0.0, "table7_total_disposals": 2743095.2380952383, @@ -114,12 +114,12 @@ "proceeds": 9000000000.0 } ], - "table8a_disposals_total": 356.2860529411764, - "table8a_gains_total": 485713226.6102749, - "table8a_tax_total": 97142645.32205498, - "table8a_taxpayers_total": 323.8964117647058, - "table8b_all_gains": 485713226.6102749, - "table8b_all_taxpayers": 323.8964117647058, - "table8b_individuals_gains": 485713226.6102749, - "table8b_individuals_taxpayers": 323.8964117647058 + "table8a_disposals_total": 366.18495, + "table8a_gains_total": 568557969.6792814, + "table8a_tax_total": 113711593.93585628, + "table8a_taxpayers_total": 332.8954090909091, + "table8b_all_gains": 568557969.6792814, + "table8b_all_taxpayers": 332.8954090909091, + "table8b_individuals_gains": 568557969.6792814, + "table8b_individuals_taxpayers": 332.8954090909091 } From 7cac27b2721b5d9f1ebbe3be1d4dfe01b40ea7ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20Juaristi?= <127882282+juaristi22@users.noreply.github.com> Date: Thu, 1 Oct 2026 14:20:35 +0100 Subject: [PATCH 08/22] Allocate the SPI channel's prior mass by region and State Pension age status (#1069 c6, provisional share) PROVISIONAL: the pension-age share is 0.5 (stratification only) until the measurement arms choose it; this commit is amended with the measured share. Every adult in an SPI support household carries a taxpayer's SPI income, and the channel's 10,000 households are drawn unweighted and each given its region's average weight. FRS pensioner households carry lower design weights than the average, so the region-only allocation gave the channel more pension-age mass than the FRS design gives pension-age households: at prior weights on the c4 spine the channel held 5.67m pension-age households against 4.44m in the FRS channel, and 7.81m of the 13.88m people aged 66 and over (design weights give about 12.1m; ONS 12.4m). Its pension-age taxpayer share is 83% against the FRS channel's 68% (HMRC: 67% of State Pension recipients pay income tax). - build_uk_spi_support_channel takes pension_age_share and state_pension_age: within each region it splits households with a member at or over State Pension age (a stratum derived for the allocation and never written to the frame) and gives the channel that share of their mass, 50% of the rest. The receipt carries both shares, the State Pension age and the pension-age masses. - The stage reads State Pension age from the engine at the build instant (the c5 guard's source); the manifest declares pension_age_share and pension_age_stratum beside the reviewed constant, and the parser refuses drift. - uk_stage_spi_support_channel_mass checks the declared pension-age share against the receipt. The schema, the coverage manifest and the charter-H2 fixture move with the stage contract. Co-Authored-By: Claude Opus 5.5 --- .../uk-spi-channel-pension-age-1069.fixed.md | 1 + .../spec_engine/schema/sources.schema.json | 6 + .../src/microcosm/build/uk/gates.json | 3 +- .../uk/release_input_coverage_manifest.json | 30 ++-- .../src/microcosm/build/uk/source_stages.json | 4 +- .../src/microcosm/build/uk/spec/sources.yaml | 4 +- .../build/uk_runtime/battery_bindings.py | 2 + .../microcosm/build/uk_runtime/spi_spine.py | 62 +++++++- .../microcosm/build/uk_runtime/spi_support.py | 133 ++++++++++++++++-- .../build/uk_runtime/stage_health.py | 39 ++++- .../tests/engine_free/uk/test_uk_spi_spine.py | 40 +++++- .../engine_free/uk/test_uk_spi_support.py | 116 +++++++++++++++ .../engine_free/uk/test_uk_stage_health.py | 41 ++++++ .../sources/cgt_asset_type_facts.json | 56 ++++---- .../parity/uk_spine/sources/fixture.json | 4 +- .../fixtures/parity/uk_spine/uk_spine.json | 2 +- 16 files changed, 469 insertions(+), 74 deletions(-) create mode 100644 changelog.d/uk-spi-channel-pension-age-1069.fixed.md diff --git a/changelog.d/uk-spi-channel-pension-age-1069.fixed.md b/changelog.d/uk-spi-channel-pension-age-1069.fixed.md new file mode 100644 index 000000000..cf65729b6 --- /dev/null +++ b/changelog.d/uk-spi-channel-pension-age-1069.fixed.md @@ -0,0 +1 @@ +Allocate the UK SPI support channel's prior mass by region × State Pension age status (#1069). The channel's 10,000 households are drawn unweighted and every adult in them carries a taxpayer's SPI income, and a region-only allocation gave each of them the region's average weight, so the channel held more pension-age mass than the FRS design gives pension-age households (5.67m against 4.44m pension-age households in the FRS channel, 13.9m people aged 66 and over against about 12.1m at design weights). Within each region the allocation now splits households with a member at or over the engine's State Pension age from the rest; the channel takes 50% of the stratum mass of households without one and the declared pension-age share of those with one. The receipt records both shares and the pension-age masses, and the stage gate checks both. 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 f74b88bac..ddffdcf56 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 @@ -7331,6 +7331,12 @@ "conservation": { "type": "string" }, + "pension_age_share": { + "type": "number" + }, + "pension_age_stratum": { + "type": "string" + }, "share": { "type": "number" }, diff --git a/packages/microcosm-build/src/microcosm/build/uk/gates.json b/packages/microcosm-build/src/microcosm/build/uk/gates.json index 0eebdd801..86cba9adb 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/gates.json +++ b/packages/microcosm-build/src/microcosm/build/uk/gates.json @@ -418,11 +418,12 @@ "stage": "spi_support_channel", "check": "spi_support_channel", "spi_prior_mass_share": 0.5, + "pension_age_spi_prior_mass_share": 0.5, "absolute_tolerance": 0.0, "household_weight_kind": "importance", "minimum_spi_households": 1 }, - "notes": "Stage-time mass gate over the SPI support-channel receipt." + "notes": "Stage-time mass gate over the SPI support-channel receipt: the channel's prior share of households without a member at or over State Pension age, and its share of those with one (microcosm#1069)." }, { "id": "uk_stage_hmrc_spi_income_spine_identity", 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 99b9e0dd3..acfeb95ff 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 @@ -468,7 +468,7 @@ "required_mass_change_reason": "Capital-gains incidence anchor moves the mass of non-liable clone households back to their paired originals until the sub-exempt and loss-making clone mass match the Advani-Summers reporter composition at the redrawn liable mass; every pair's mass and the total household mass are conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "91367dc23af9e167b0d0748340e5e77240460b386a1df8defbb3545d3d3cf986", + "source_manifest_sha256": "144b6e5f5c60023c9e74ccd715e72f05b0e230d899866caa355e23128c7d4543", "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, the HMRC Table 3 redrawn gains on the spine and Advani-Summers capital-gains incidence" @@ -491,7 +491,7 @@ "capital_gains" ], "source_manifest": "source_stages.json", - "source_manifest_sha256": "91367dc23af9e167b0d0748340e5e77240460b386a1df8defbb3545d3d3cf986", + "source_manifest_sha256": "144b6e5f5c60023c9e74ccd715e72f05b0e230d899866caa355e23128c7d4543", "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" @@ -513,7 +513,7 @@ "required_mass_change_reason": "Capital-gains support split divides the wealthiest households of each HMRC Table 3 income band into light copies at equal weight; every household's mass and the total household mass are conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "91367dc23af9e167b0d0748340e5e77240460b386a1df8defbb3545d3d3cf986", + "source_manifest_sha256": "144b6e5f5c60023c9e74ccd715e72f05b0e230d899866caa355e23128c7d4543", "source_vintages": { "source": "HMRC Capital Gains Tax statistics, July 2026 release, Table 3 for 2024-25, via the vendored conditioning facts", "survey": "Family Resources Survey 2024-25, SPI synthetic support and HMRC Capital Gains Tax statistics Table 3 (2024-25 individuals by size of gain and taxable income)" @@ -542,7 +542,7 @@ "required_mass_change_reason": "ETB public-services imputation on the source spine: household weights pass through unchanged and total household mass is conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "91367dc23af9e167b0d0748340e5e77240460b386a1df8defbb3545d3d3cf986", + "source_manifest_sha256": "144b6e5f5c60023c9e74ccd715e72f05b0e230d899866caa355e23128c7d4543", "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" @@ -562,7 +562,7 @@ "required_mass_change_reason": "ETB VAT expenditure-rate imputation on the source spine: household weights pass through unchanged and total household mass is conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "91367dc23af9e167b0d0748340e5e77240460b386a1df8defbb3545d3d3cf986", + "source_manifest_sha256": "144b6e5f5c60023c9e74ccd715e72f05b0e230d899866caa355e23128c7d4543", "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" @@ -584,7 +584,7 @@ "required_mass_change_reason": "CGT asset-type assignment on the source spine: household weights pass through unchanged and total household mass is conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "91367dc23af9e167b0d0748340e5e77240460b386a1df8defbb3545d3d3cf986", + "source_manifest_sha256": "144b6e5f5c60023c9e74ccd715e72f05b0e230d899866caa355e23128c7d4543", "source_vintages": { "source": "https://www.gov.uk/government/statistics/capital-gains-tax-statistics", "survey": "HMRC Capital Gains Tax statistics 2026 release, Table 8 (UK residential property disposals, 2024-25, administrative), Table 4.1 (individuals claiming Business Asset Disposal Relief or Investors' Relief by band of qualifying gain, 2024-25, administrative) and Table 7 (disposals, proceeds and gains by asset type, 2023-24, sample-based), vendored from the pinned Chronicle feed" @@ -608,7 +608,7 @@ "capital_gains" ], "source_manifest": "source_stages.json", - "source_manifest_sha256": "91367dc23af9e167b0d0748340e5e77240460b386a1df8defbb3545d3d3cf986", + "source_manifest_sha256": "144b6e5f5c60023c9e74ccd715e72f05b0e230d899866caa355e23128c7d4543", "source_vintages": { "conditioning_resource": "hmrc_cgt_conditioning_facts.json", "conditioning_resource_sha256": "067ba21c12aeb4e95e6a8a16141dbaa075e8787ed875a005f549cab6e91a6b56", @@ -697,7 +697,7 @@ "full_frs_tei_band_unavailable" ], "source_manifest": "source_stages.json", - "source_manifest_sha256": "91367dc23af9e167b0d0748340e5e77240460b386a1df8defbb3545d3d3cf986", + "source_manifest_sha256": "144b6e5f5c60023c9e74ccd715e72f05b0e230d899866caa355e23128c7d4543", "source_vintages": { "hmrc_surface": "2023-24", "mapped_build_period": "2024", @@ -738,7 +738,7 @@ "required_mass_change_reason": "LCFS consumption imputation on the source spine: household weights pass through unchanged and total household mass is conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "91367dc23af9e167b0d0748340e5e77240460b386a1df8defbb3545d3d3cf986", + "source_manifest_sha256": "144b6e5f5c60023c9e74ccd715e72f05b0e230d899866caa355e23128c7d4543", "source_vintages": { "source": "UK Data Service SN 9468 Living Costs and Food Survey 2023-24 household/person tabs and the vendored Chronicle facts for NEED 2023 mean kWh, the FY2024-25 Ofgem cap levels, road-fuel outturn (DESNZ, HMRC, ONS), the DfT VEH1103 licensed-car stock, NTS bus use and the DfT and devolved bus finance tables.", "survey": "Living Costs and Food Survey 2023-24" @@ -764,7 +764,7 @@ "required_mass_change_reason": "NTS bus-travel imputation on the source spine: household weights pass through unchanged and total household mass is conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "91367dc23af9e167b0d0748340e5e77240460b386a1df8defbb3545d3d3cf986", + "source_manifest_sha256": "144b6e5f5c60023c9e74ccd715e72f05b0e230d899866caa355e23128c7d4543", "source_vintages": { "source": "Department for Transport National Travel Survey, UK Data Service SN 5340 (End User Licence, 19th edition, November 2025), DOI 10.5255/UKDA-SN-5340-19; local licensed tab files (household, individual, trip); England residents only from 2013.", "survey": "National Travel Survey 2002-2024" @@ -785,7 +785,7 @@ "property_wealth" ], "source_manifest": "source_stages.json", - "source_manifest_sha256": "91367dc23af9e167b0d0748340e5e77240460b386a1df8defbb3545d3d3cf986", + "source_manifest_sha256": "144b6e5f5c60023c9e74ccd715e72f05b0e230d899866caa355e23128c7d4543", "source_vintages": { "source": "MHCLG dwellings and ONS UK House Price Index December 2025 regional average prices.", "survey": "Public regional property reference" @@ -809,7 +809,7 @@ "employee_pension_contributions" ], "source_manifest": "source_stages.json", - "source_manifest_sha256": "91367dc23af9e167b0d0748340e5e77240460b386a1df8defbb3545d3d3cf986", + "source_manifest_sha256": "144b6e5f5c60023c9e74ccd715e72f05b0e230d899866caa355e23128c7d4543", "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" @@ -831,7 +831,7 @@ "student_loan_plan" ], "source_manifest": "source_stages.json", - "source_manifest_sha256": "91367dc23af9e167b0d0748340e5e77240460b386a1df8defbb3545d3d3cf986", + "source_manifest_sha256": "144b6e5f5c60023c9e74ccd715e72f05b0e230d899866caa355e23128c7d4543", "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" @@ -853,7 +853,7 @@ "required_mass_change_reason": "WAS Lifetime ISA imputation on the source spine: household weights pass through unchanged and total household mass is conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "91367dc23af9e167b0d0748340e5e77240460b386a1df8defbb3545d3d3cf986", + "source_manifest_sha256": "144b6e5f5c60023c9e74ccd715e72f05b0e230d899866caa355e23128c7d4543", "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 round-8 person and household tabs (interviews April 2020 to March 2022, Great Britain).", "survey": "Wealth and Assets Survey round 8" @@ -888,7 +888,7 @@ "required_mass_change_reason": "WAS wealth imputation on the source spine: household weights pass through unchanged and total household mass is conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "91367dc23af9e167b0d0748340e5e77240460b386a1df8defbb3545d3d3cf986", + "source_manifest_sha256": "144b6e5f5c60023c9e74ccd715e72f05b0e230d899866caa355e23128c7d4543", "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 26a627f52..82e095093 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/source_stages.json +++ b/packages/microcosm-build/src/microcosm/build/uk/source_stages.json @@ -1376,6 +1376,8 @@ "strata": [ "region" ], + "pension_age_share": 0.5, + "pension_age_stratum": "any_member_at_or_over_state_pension_age", "weight_kind_out": "importance", "conservation": "exact_total" } @@ -1405,7 +1407,7 @@ "source_household_id", "source_year" ], - "notes": "Stacks the pre-clone SPI support channel, gates the 10,000 zero-weight synthetic households under a stage-local declaration, and allocates 50 percent of each region stratum prior mass to the SPI channel with exact national conservation." + "notes": "Stacks the pre-clone SPI support channel, gates the 10,000 zero-weight synthetic households under a stage-local declaration, and allocates prior mass with exact national conservation within each region, split by whether the household has a member at or over State Pension age (the engine's at the build instant): the SPI channel takes 50 percent of the stratum mass of households without one and pension_age_share of those with one. The channel's households are drawn unweighted with one weight per stratum and every adult in them carries a taxpayer's income, so a region-only allocation gave the channel more pension-age mass than the FRS design gives pension-age households (microcosm#1069)." }, { "stage": "spi_income_band_donors", 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 d367a1e11..2b60a652f 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/spec/sources.yaml +++ b/packages/microcosm-build/src/microcosm/build/uk/spec/sources.yaml @@ -1195,6 +1195,8 @@ stages: share: 0.5 strata: - region + pension_age_share: 0.5 + pension_age_stratum: any_member_at_or_over_state_pension_age weight_kind_out: importance conservation: exact_total outputs: @@ -1220,7 +1222,7 @@ stages: - household_source_id - source_household_id - source_year - notes: Stacks the pre-clone SPI support channel, gates the 10,000 zero-weight synthetic households under a stage-local declaration, and allocates 50 percent of each region stratum prior mass to the SPI channel with exact national conservation. + notes: "Stacks the pre-clone SPI support channel, gates the 10,000 zero-weight synthetic households under a stage-local declaration, and allocates prior mass with exact national conservation within each region, split by whether the household has a member at or over State Pension age (the engine's at the build instant): the SPI channel takes 50 percent of the stratum mass of households without one and pension_age_share of those with one. The channel's households are drawn unweighted with one weight per stratum and every adult in them carries a taxpayer's income, so a region-only allocation gave the channel more pension-age mass than the FRS design gives pension-age households (microcosm#1069)." - stage: spi_income_band_donors survey: Survey of Personal Incomes Public Use Tape 2022-23 and HMRC Income Tax liabilities statistics July 2026 Table 2.5 source: Reserved SPI support households for the HMRC Table 2.5 total-income bands from GBP 200,000, stacked at the published band taxpayer count over the donors per band (PolicyEngine/chronicle#280 lane). diff --git a/packages/microcosm-build/src/microcosm/build/uk_runtime/battery_bindings.py b/packages/microcosm-build/src/microcosm/build/uk_runtime/battery_bindings.py index 874daf82c..98cd670c5 100644 --- a/packages/microcosm-build/src/microcosm/build/uk_runtime/battery_bindings.py +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/battery_bindings.py @@ -1617,6 +1617,8 @@ def _ledger_compile_parity_required_artifacts( "maximum_stock_relative_deviation", "maximum_relative_mass_imbalance", "spi_prior_mass_share", + # microcosm#1069 c6 spi_support_channel stage-health check. + "pension_age_spi_prior_mass_share", "absolute_tolerance", "household_weight_kind", "minimum_spi_households", diff --git a/packages/microcosm-build/src/microcosm/build/uk_runtime/spi_spine.py b/packages/microcosm-build/src/microcosm/build/uk_runtime/spi_spine.py index 4dd4a4dcc..0701e7a78 100644 --- a/packages/microcosm-build/src/microcosm/build/uk_runtime/spi_spine.py +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/spi_spine.py @@ -20,6 +20,7 @@ _materialize_source_leaves, _read_raw_frs_table, ) +from microcosm.build.uk_runtime.frs_take_up import uk_take_up_population_policy from microcosm.build.uk_runtime.hmrc_income import ( HMRCIncomeTargetSet, materialize_hmrc_spi_income_band_targets, @@ -238,6 +239,14 @@ SPI_SPINE_BASE_REDRAW_COLUMNS = ("dividend_income",) SPI_SPINE_SUPPORT_CHANNELS = {"base": "frs", "synthetic": SPI_SYNTHETIC_SUPPORT_CHANNEL} SPI_SPINE_PRECLONE_GATE_NAME = "e7_spi_synthetic_preclone" +#: The reviewed SPI-channel prior share of households with a member at or over +#: State Pension age, and the stratum rule the manifest declares beside it +#: (microcosm#1069 c6). The channel's households are drawn unweighted with one +#: weight per region, so a region-only allocation gave the channel more +#: pension-age mass than the FRS design gives pension-age households, every +#: adult of it on a taxpayer's income. +SPI_SPINE_PENSION_AGE_PRIOR_MASS_SHARE = 0.5 +SPI_SPINE_PENSION_AGE_STRATUM = "any_member_at_or_over_state_pension_age" SPI_SPINE_EFFECTIVE_MASS_COLUMNS = ("gift_aid", "charitable_investment_gifts") @@ -422,18 +431,29 @@ class UKSPISupportChannelStageTransform: # by the survey-side sample fraction so the prior-mass pairing holds at # every rung (f100 keeps the declared count exactly). sample_fraction: float = 1.0 + # The engine's State Pension age at the build instant; None reads it from + # policyengine-uk (tests without the engine pass it). + state_pension_age: int | None = None # Populated only by a live run; resume paths must re-run or skip evidence. last_result: UKSPISupportResult | None = field(default=None, init=False) def __call__(self, frame: Frame) -> Frame: validate_uk_national_frame(frame) tables = engine_tables(frame) - count, share, strata, declarations = _support_stage_parameters( - self.stage, - seed=self.seed, + count, share, strata, declarations, pension_age_share = ( + _support_stage_parameters(self.stage, seed=self.seed) ) if self.sample_fraction != 1.0 and count is not None: count = max(1, int(round(count * self.sample_fraction))) + state_pension_age = None + if pension_age_share is not None: + state_pension_age = ( + self.state_pension_age + if self.state_pension_age is not None + else uk_take_up_population_policy( + uk_time_period(frame) + ).state_pension_age + ) result = build_uk_spi_support_channel( tables["person"], tables["benunit"], @@ -446,6 +466,8 @@ def __call__(self, frame: Frame) -> Frame: input_weight_kind=uk_household_weight_kind(frame), mass_log=frame.mass_log, zero_weight_declarations=declarations, + pension_age_share=pension_age_share, + state_pension_age=state_pension_age, ) if result.household_weight_kind is not WeightKind.IMPORTANCE: got = ( @@ -484,6 +506,15 @@ def checkpoint_metadata(self) -> dict[str, object]: "stage": "spi_support_channel", "spi_households": self.last_result.n_spi_households, "spi_prior_mass_share": self.last_result.spi_prior_mass_share, + "pension_age_spi_prior_mass_share": ( + self.last_result.pension_age_spi_prior_mass_share + ), + "state_pension_age": self.last_result.state_pension_age, + "pension_age_allocation": ( + None + if self.last_result.pension_age_allocation is None + else dict(self.last_result.pension_age_allocation) + ), "household_weight_kind": ( self.last_result.household_weight_kind.value if self.last_result.household_weight_kind is not None @@ -893,7 +924,13 @@ def _support_stage_parameters( stage: SourceStageSpec, *, seed: int, -) -> tuple[int, float, tuple[str, ...], tuple[UKZeroWeightStratumDeclaration, ...]]: +) -> tuple[ + int, + float, + tuple[str, ...], + tuple[UKZeroWeightStratumDeclaration, ...], + float | None, +]: stack = _operation(stage, "stack_zero_weight_donors") gate = _operation(stage, "gate_zero_weight_strata") allocation = _operation(stage, "allocate_zero_weight_prior_mass") @@ -918,6 +955,22 @@ def _support_stage_parameters( strata = tuple(allocation.parameters.get("strata", ())) if strata != ("region",): raise ValueError("SPI support spine allocation must use strata ['region'].") + pension_age_share = allocation.parameters.get("pension_age_share") + if pension_age_share is not None: + if pension_age_share != SPI_SPINE_PENSION_AGE_PRIOR_MASS_SHARE: + raise ValueError( + "SPI support pension-age prior-mass share drifted from " + f"{SPI_SPINE_PENSION_AGE_PRIOR_MASS_SHARE}." + ) + if allocation.parameters.get("pension_age_stratum") != ( + SPI_SPINE_PENSION_AGE_STRATUM + ): + raise ValueError( + "SPI support pension-age stratum must be " + f"{SPI_SPINE_PENSION_AGE_STRATUM!r}." + ) + elif "pension_age_stratum" in allocation.parameters: + raise ValueError("SPI support pension-age stratum declared without a share.") declarations = _coerce_declarations(gate.parameters.get("declarations", ())) if len(declarations) != 1: raise ValueError("SPI support gate must declare exactly one pre-clone stratum.") @@ -936,6 +989,7 @@ def _support_stage_parameters( float(allocation.parameters["share"]), strata, declarations, + None if pension_age_share is None else float(pension_age_share), ) diff --git a/packages/microcosm-build/src/microcosm/build/uk_runtime/spi_support.py b/packages/microcosm-build/src/microcosm/build/uk_runtime/spi_support.py index d34949cbd..6299ea52e 100644 --- a/packages/microcosm-build/src/microcosm/build/uk_runtime/spi_support.py +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/spi_support.py @@ -10,7 +10,7 @@ from __future__ import annotations from collections.abc import Mapping, Sequence -from dataclasses import dataclass +from dataclasses import dataclass, replace from typing import Any import numpy as np @@ -45,6 +45,10 @@ "Allocate 50% of certified UK national household prior mass to the " "rebuilt 2022-23 SPI support channel; total national mass is conserved." ) +#: The allocation stratum that separates households with a member at or over +#: State Pension age (microcosm#1069). It is derived for the allocation only and +#: never written to the frame. +SPI_PENSION_AGE_STRATUM_COLUMN = "household_has_state_pension_age_member" SPI_INCOME_COMPONENT_COLUMNS = ( "employment_income", @@ -190,6 +194,9 @@ class UKSPISupportResult: mass_log: tuple[MassChangeRecord, ...] = () replaced_spi_households: int = 0 spi_prior_mass_share: float = 0.0 + pension_age_spi_prior_mass_share: float | None = None + state_pension_age: int | None = None + pension_age_allocation: Mapping[str, float] | None = None @property def n_spi_households(self) -> int: @@ -458,8 +465,19 @@ def build_uk_spi_support_channel( zero_weight_declarations: ( Sequence[UKZeroWeightStratumDeclaration] | Sequence[Mapping[str, Any]] ) = (), + pension_age_share: float | None = None, + state_pension_age: int | None = None, ) -> UKSPISupportResult: - """Stack the E7 SPI support channel and allocate prior mass by stratum.""" + """Stack the E7 SPI support channel and allocate prior mass by stratum. + + With ``pension_age_share`` the strata also split households with a member + at or over ``state_pension_age`` from the rest, and the SPI channel takes + that share of the pension-age strata's mass (``spi_prior_mass_share`` of + the others). Every adult in an SPI household carries a taxpayer's income, + and the channel's households are drawn unweighted with one weight per + region, so without the split the channel holds more pension-age mass than + the FRS design gives pension-age households (microcosm#1069). + """ if not isinstance(input_weight_kind, WeightKind): raise TypeError("input_weight_kind must be a WeightKind.") @@ -475,6 +493,19 @@ def build_uk_spi_support_channel( stratum_columns = tuple(str(column) for column in strata_columns) if not stratum_columns or any(not column for column in stratum_columns): raise ValueError("strata_columns must contain non-empty column names.") + if pension_age_share is not None: + pension_share = float(pension_age_share) + if not np.isfinite(pension_share) or not 0.0 < pension_share < 1.0: + raise ValueError("pension_age_share must be finite and in (0, 1).") + if not isinstance(state_pension_age, int) or state_pension_age <= 0: + raise ValueError( + "pension_age_share needs a positive integer state_pension_age." + ) + if SPI_PENSION_AGE_STRATUM_COLUMN in stratum_columns: + raise ValueError( + f"{SPI_PENSION_AGE_STRATUM_COLUMN} is derived by the allocation; " + "do not pass it as a stratum column." + ) stacked = create_uk_spi_support_tables( person=person, @@ -495,15 +526,51 @@ def build_uk_spi_support_channel( "UK SPI support pre-clone zero-weight gate failed: " f"{list(gate.failures)}." ) - return _allocate_spi_prior_mass( + if pension_age_share is None: + return _allocate_spi_prior_mass( + stacked, + spi_prior_mass_share=share, + input_weight_kind=input_weight_kind, + mass_log=mass_log, + strata_columns=stratum_columns, + ) + pension_age = _households_with_member_at_or_over( + stacked.person, stacked.household, age=int(state_pension_age) + ) + flagged = replace( stacked, + household=stacked.household.assign( + **{SPI_PENSION_AGE_STRATUM_COLUMN: pension_age} + ), + ) + allocated = _allocate_spi_prior_mass( + flagged, spi_prior_mass_share=share, input_weight_kind=input_weight_kind, mass_log=mass_log, - strata_columns=stratum_columns, + strata_columns=(*stratum_columns, SPI_PENSION_AGE_STRATUM_COLUMN), + pension_age_share=float(pension_age_share), + ) + return replace( + allocated, + household=allocated.household.drop(columns=[SPI_PENSION_AGE_STRATUM_COLUMN]), + state_pension_age=int(state_pension_age), ) +def _households_with_member_at_or_over( + person: pd.DataFrame, household: pd.DataFrame, *, age: int +) -> np.ndarray: + """True where a household has a member aged ``age`` or over.""" + + _require_columns(person, ("person_household_id", "age"), label="person") + ages = pd.to_numeric(person["age"], errors="coerce") + if ages.isna().any(): + raise ValueError("person.age must be numeric to form the pension-age strata.") + members = set(person.loc[ages.ge(age), "person_household_id"]) + return household["household_id"].isin(members).to_numpy(dtype=bool) + + def fill_support_channel_from_source( frame: pd.DataFrame, donor: pd.DataFrame, @@ -579,7 +646,8 @@ def fill_support_channel_from_source( def _coerce_zero_weight_declarations( - declarations: Sequence[UKZeroWeightStratumDeclaration] | Sequence[Mapping[str, Any]], + declarations: Sequence[UKZeroWeightStratumDeclaration] + | Sequence[Mapping[str, Any]], ) -> tuple[UKZeroWeightStratumDeclaration, ...]: materialized: list[UKZeroWeightStratumDeclaration] = [] for declaration in declarations: @@ -779,6 +847,7 @@ def _allocate_spi_prior_mass( input_weight_kind: WeightKind, mass_log: tuple[MassChangeRecord, ...], strata_columns: tuple[str, ...], + pension_age_share: float | None = None, ) -> UKSPISupportResult: household = result.household.copy() channels = household[support_channel_column("household")] @@ -803,11 +872,9 @@ def _allocate_spi_prior_mass( dropna=False, ) stratum_base_mass = grouped["_base_mass"].transform("sum").to_numpy(dtype=float) - stratum_spi_count = grouped["_spi_count"].transform("sum").to_numpy( - dtype=np.int64 - ) - unrepresented_base = base_mask & (stratum_base_mass > 0.0) & ( - stratum_spi_count == 0 + stratum_spi_count = grouped["_spi_count"].transform("sum").to_numpy(dtype=np.int64) + unrepresented_base = ( + base_mask & (stratum_base_mass > 0.0) & (stratum_spi_count == 0) ) if unrepresented_base.any(): examples = ( @@ -831,11 +898,23 @@ def _allocate_spi_prior_mass( "mass and a positive support quota." ) + pension_age = ( + household[SPI_PENSION_AGE_STRATUM_COLUMN].to_numpy(dtype=bool) + if pension_age_share is not None + else np.zeros(len(household), dtype=bool) + ) + household_share = np.where( + pension_age, + spi_prior_mass_share if pension_age_share is None else pension_age_share, + spi_prior_mass_share, + ) final_weights = np.zeros_like(pre_weights) - final_weights[base_mask] = pre_weights[base_mask] * (1.0 - spi_prior_mass_share) + final_weights[base_mask] = pre_weights[base_mask] * ( + 1.0 - household_share[base_mask] + ) final_weights[spi_mask] = ( stratum_base_mass[spi_mask] - * spi_prior_mass_share + * household_share[spi_mask] / stratum_spi_count[spi_mask] ) @@ -859,8 +938,21 @@ def _allocate_spi_prior_mass( old_total=old_total, new_total=allocated_weights.total, declared_factor=1.0, - reason=_spi_prior_mass_change_reason(spi_prior_mass_share), + reason=_spi_prior_mass_change_reason( + spi_prior_mass_share, pension_age_share=pension_age_share + ), ) + pension_age_allocation = None + if pension_age_share is not None: + final = allocated_weights.values + pension_age_allocation = { + "pension_age_households": int((pension_age & base_mask).sum()), + "pension_age_spi_households": int((pension_age & spi_mask).sum()), + "pension_age_prior_mass": float(pre_weights[pension_age].sum()), + "pension_age_spi_mass": float(final[pension_age & spi_mask].sum()), + "other_prior_mass": float(pre_weights[~pension_age].sum()), + "other_spi_mass": float(final[~pension_age & spi_mask].sum()), + } return UKSPISupportResult( person=result.person, benunit=result.benunit, @@ -870,6 +962,8 @@ def _allocate_spi_prior_mass( household_weight_kind=WeightKind.IMPORTANCE, mass_log=(*mass_log, allocation_record), spi_prior_mass_share=spi_prior_mass_share, + pension_age_spi_prior_mass_share=pension_age_share, + pension_age_allocation=pension_age_allocation, ) @@ -996,7 +1090,17 @@ def _positive_float_from_bits(bits: int) -> float: return float(np.asarray(bits, dtype=np.uint64).view(np.float64)) -def _spi_prior_mass_change_reason(share: float) -> str: +def _spi_prior_mass_change_reason( + share: float, *, pension_age_share: float | None = None +) -> str: + if pension_age_share is not None: + return ( + f"Allocate {share:.12g} of certified UK national household prior mass " + "in households without, and " + f"{pension_age_share:.12g} in households with, a member at or over " + "State Pension age to the rebuilt 2022-23 SPI support channel; total " + "national mass is conserved." + ) if np.isclose(share, DEFAULT_SPI_PRIOR_MASS_SHARE, rtol=0.0, atol=0.0): return SPI_PRIOR_MASS_CHANGE_REASON return ( @@ -1177,6 +1281,7 @@ def _require_entity(entity: str) -> str: "SPI_HMRC_UNEMPLOYMENT_BENEFIT_INCOME_COLUMN", "SPI_INCOME_IMPUTATION_COLUMNS", "SPI_INCOME_QRF_OUTPUT_COLUMNS", + "SPI_PENSION_AGE_STRATUM_COLUMN", "SPI_PRIOR_MASS_CHANGE_REASON", "SPI_REPLACEMENT_STRATA_COLUMNS", "UKSPISupportResult", diff --git a/packages/microcosm-build/src/microcosm/build/uk_runtime/stage_health.py b/packages/microcosm-build/src/microcosm/build/uk_runtime/stage_health.py index 53d7cb8e6..4fa536ff6 100644 --- a/packages/microcosm-build/src/microcosm/build/uk_runtime/stage_health.py +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/stage_health.py @@ -751,22 +751,49 @@ def _spi_support_channel_gate( evidence.get("spi_prior_mass_share"), label=f"{stage}.spi_prior_mass_share" ) failures = [] - if abs(share - expected_share) > _finite_number( + tolerance = _finite_number( parameters.get("absolute_tolerance", 0.0), label=f"{stage}.absolute_tolerance" - ): + ) + if abs(share - expected_share) > tolerance: failures.append( f"{stage}: spi_prior_mass_share {share} != declared {expected_share}." ) + details = { + "spi_prior_mass_share": share, + "spi_households": evidence.get("spi_households"), + } + if "pension_age_spi_prior_mass_share" in parameters: + # microcosm#1069 c6: the channel takes its own share of the strata of + # households with a member at or over State Pension age. + expected_pension_share = _finite_number( + parameters["pension_age_spi_prior_mass_share"], + label=f"{stage}.pension_age_spi_prior_mass_share", + ) + pension_share = evidence.get("pension_age_spi_prior_mass_share") + details["pension_age_spi_prior_mass_share"] = pension_share + if pension_share is None: + failures.append( + f"{stage}: the receipt carries no pension_age_spi_prior_mass_share." + ) + elif ( + abs( + _finite_number( + pension_share, label=f"{stage}.pension_age_spi_prior_mass_share" + ) + - expected_pension_share + ) + > tolerance + ): + failures.append( + f"{stage}: pension_age_spi_prior_mass_share {pension_share} != " + f"declared {expected_pension_share}." + ) if evidence.get("household_weight_kind") != parameters.get("household_weight_kind"): failures.append(f"{stage}: household_weight_kind drifted.") if int(evidence.get("spi_households", 0)) < int( parameters["minimum_spi_households"] ): failures.append(f"{stage}: spi_households below declared minimum.") - details = { - "spi_prior_mass_share": share, - "spi_households": evidence.get("spi_households"), - } return ( _fail(stage, check, failures, details) if failures diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_spi_spine.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_spi_spine.py index 0f7c40666..d31aa6005 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_spi_spine.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_spi_spine.py @@ -28,6 +28,7 @@ ) from microcosm.build.uk_runtime.spi_spine import ( EMPLOYER_PENSION_CONTRIBUTIONS_COLUMN, + SPI_SPINE_PENSION_AGE_PRIOR_MASS_SHARE, UKFRSHMRCSpineLeavesStageTransform, UKSPIIncomeSpineStageTransform, UKSPISupportChannelStageTransform, @@ -700,13 +701,48 @@ def test_income_stage_parameters_refuse_stage2_output_drift() -> None: def test_support_stage_parameters_accept_the_committed_manifest() -> None: - count, share, strata, declarations = _support_stage_parameters( + count, share, strata, declarations, pension_age_share = _support_stage_parameters( _committed_stage("spi_support_channel"), seed=42 ) assert count == 10000 assert share == 0.5 assert strata == ("region",) assert len(declarations) == 1 + assert pension_age_share == SPI_SPINE_PENSION_AGE_PRIOR_MASS_SHARE + + +@pytest.mark.parametrize( + ("changes", "message"), + [ + ({"pension_age_share": 0.31}, "pension-age prior-mass share drifted"), + ( + {"pension_age_stratum": "household_head_at_state_pension_age"}, + "stratum must", + ), + ( + {"pension_age_share": None}, + "pension-age stratum declared without a share", + ), + ], +) +def test_support_stage_parameters_refuse_pension_age_drift( + changes: dict, message: str +) -> None: + committed = _committed_stage("spi_support_channel") + operations = [] + for operation in committed.operations: + payload = {"kind": operation.kind, **dict(operation.parameters)} + if operation.kind == "allocate_zero_weight_prior_mass": + payload.update(changes) + payload = { + key: value for key, value in payload.items() if value is not None + } + operations.append(payload) + stage = SourceStageSpec.from_mapping( + {**committed.__dict__, "operations": operations} + ) + with pytest.raises(ValueError, match=message): + _support_stage_parameters(stage, seed=42) def test_support_transform_refuses_missing_builder_weight_kind(monkeypatch) -> None: @@ -727,7 +763,7 @@ def _stub_builder(*_args, **_kwargs) -> UKSPISupportResult: _stub_builder, ) transform = UKSPISupportChannelStageTransform( - stage=_committed_stage("spi_support_channel") + stage=_committed_stage("spi_support_channel"), state_pension_age=66 ) with pytest.raises(ValueError, match="importance household weights"): diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_spi_support.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_spi_support.py index 229259797..6af30dfa7 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_spi_support.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_spi_support.py @@ -677,3 +677,119 @@ def test_spi_fill_rejects_missing_source_ids() -> None: entity="person", columns=["employment_income"], ) + + +def _pension_age_frames(): + household = pd.DataFrame( + { + "household_id": [1, 2, 3, 4], + "household_weight": [10.0, 30.0, 20.0, 40.0], + "region": ["LONDON"] * 4, + } + ) + person = pd.DataFrame( + { + "person_id": [1001, 2001, 3001, 3002, 4001], + "person_household_id": [1, 2, 3, 3, 4], + "person_benunit_id": [101, 201, 301, 301, 401], + "age": [70, 40, 66, 30, 65], + "employment_income": [0.0] * 5, + } + ) + benunit = pd.DataFrame({"benunit_id": [101, 201, 301, 401]}) + return person, benunit, household + + +def test_build_spi_support_channel_gives_pension_age_households_their_own_share() -> ( + None +): + person, benunit, household = _pension_age_frames() + + result = build_uk_spi_support_channel( + person=person, + benunit=benunit, + household=household, + spi_household_count=4, + seed=42, + source_year=2023, + strata_columns=("region",), + pension_age_share=0.2, + state_pension_age=66, + ) + + # Households 1 and 3 have a member at or over 66 (30 of the 100 prior + # mass): the SPI channel takes 20% of it and 50% of the other 70. + channel = support_channel_column("household") + table = result.household.set_index(["source_household_id", channel])[ + "household_weight" + ] + spi, base = SPI_SYNTHETIC_SUPPORT_CHANNEL, BASE_FRS_SUPPORT_CHANNEL + assert table[(1, base)] == pytest.approx(8.0) + assert table[(3, base)] == pytest.approx(16.0) + assert table[(1, spi)] + table[(3, spi)] == pytest.approx(6.0) + assert table[(2, base)] == pytest.approx(15.0) + assert table[(4, base)] == pytest.approx(20.0) + assert table[(2, spi)] + table[(4, spi)] == pytest.approx(35.0) + assert result.household["household_weight"].sum() == 100.0 + assert spi_support.SPI_PENSION_AGE_STRATUM_COLUMN not in result.household + assert result.pension_age_spi_prior_mass_share == 0.2 + assert result.state_pension_age == 66 + assert result.pension_age_allocation == { + "pension_age_households": 2, + "pension_age_spi_households": 2, + "pension_age_prior_mass": 30.0, + "pension_age_spi_mass": pytest.approx(6.0), + "other_prior_mass": 70.0, + "other_spi_mass": pytest.approx(35.0), + } + assert "0.2 in households with" in result.mass_log[-1].reason + + +def test_build_spi_support_channel_without_a_pension_age_share_is_unchanged() -> None: + person, benunit, household = _pension_age_frames() + + result = build_uk_spi_support_channel( + person=person, + benunit=benunit, + household=household, + spi_household_count=4, + seed=42, + source_year=2023, + strata_columns=("region",), + ) + + assert result.pension_age_spi_prior_mass_share is None + assert result.pension_age_allocation is None + assert result.mass_log[-1].reason == SPI_PRIOR_MASS_CHANGE_REASON + + +@pytest.mark.parametrize( + ("kwargs", "message"), + [ + ({"pension_age_share": 1.0, "state_pension_age": 66}, "finite and in"), + ({"pension_age_share": 0.2}, "positive integer state_pension_age"), + ( + { + "pension_age_share": 0.2, + "state_pension_age": 66, + "strata_columns": ("region", "household_has_state_pension_age_member"), + }, + "derived by the allocation", + ), + ], +) +def test_build_spi_support_channel_refuses_invalid_pension_age_arguments( + kwargs: dict, message: str +) -> None: + person, benunit, household = _pension_age_frames() + arguments = {"strata_columns": ("region",), **kwargs} + with pytest.raises(ValueError, match=message): + build_uk_spi_support_channel( + person=person, + benunit=benunit, + household=household, + spi_household_count=4, + seed=42, + source_year=2023, + **arguments, + ) diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_stage_health.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_stage_health.py index 45d20b764..1541d0ae3 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_stage_health.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_stage_health.py @@ -1425,3 +1425,44 @@ def test_spi_income_band_donor_support_gate_checks_every_reserved_band() -> None assert not result.passed and "differ from the published" in " ".join( result.failures ) + + +def test_spi_support_channel_checks_the_declared_pension_age_share() -> None: + evidence = { + "stage": "spi_support_channel", + "spi_prior_mass_share": 0.5, + "pension_age_spi_prior_mass_share": 0.25, + "household_weight_kind": "importance", + "spi_households": 10, + } + parameters = { + "stage": "spi_support_channel", + "check": "spi_support_channel", + "spi_prior_mass_share": 0.5, + "pension_age_spi_prior_mass_share": 0.25, + "absolute_tolerance": 0.0, + "household_weight_kind": "importance", + "minimum_spi_households": 10, + } + + def gate(evidence, parameters): + return uk_stage_health_gate( + evidence=evidence, + stage="spi_support_channel", + check="spi_support_channel", + parameters=parameters, + ) + + passed = gate(evidence, parameters) + assert _passed(passed) + assert passed.details["pension_age_spi_prior_mass_share"] == 0.25 + drifted = gate(evidence, {**parameters, "pension_age_spi_prior_mass_share": 0.5}) + assert not drifted.passed + assert "pension_age_spi_prior_mass_share 0.25 != declared 0.5" in str( + drifted.failures + ) + missing = gate( + {k: v for k, v in evidence.items() if k != "pension_age_spi_prior_mass_share"}, + parameters, + ) + assert not missing.passed diff --git a/packages/microcosm-graph/tests/fixtures/parity/uk_spine/sources/cgt_asset_type_facts.json b/packages/microcosm-graph/tests/fixtures/parity/uk_spine/sources/cgt_asset_type_facts.json index c0483ec6d..c333f59b7 100644 --- a/packages/microcosm-graph/tests/fixtures/parity/uk_spine/sources/cgt_asset_type_facts.json +++ b/packages/microcosm-graph/tests/fixtures/parity/uk_spine/sources/cgt_asset_type_facts.json @@ -2,70 +2,70 @@ "resource": "synthetic-cgt-asset-type.json", "resource_sha256": "synthetic", "source_commit": "synthetic", - "table4_all_gains": 86655426.83250126, + "table4_all_gains": 86659823.95675428, "table4_all_tax": 0.0, - "table4_all_taxpayers": 195.41619652406416, + "table4_all_taxpayers": 195.41087509549274, "table4_bands": [ { - "gains": 109840.39630094224, + "gains": 109844.32589737896, "lower_bound": 0, "tax": null, - "taxpayers": 24.259368315508024, + "taxpayers": 24.261122420598333, "upper_bound": 10000 }, { - "gains": 295037.83445945487, + "gains": 295006.5491158912, "lower_bound": 10000, "tax": null, - "taxpayers": 16.718953877005347, + "taxpayers": 16.717161184066104, "upper_bound": 25000 }, { - "gains": 670624.8999690153, + "gains": 670416.39230188, "lower_bound": 25000, "tax": null, - "taxpayers": 16.677703877005346, + "taxpayers": 16.67354418899221, "upper_bound": 50000 }, { - "gains": 1747761.0683609226, + "gains": 1747662.027771732, "lower_bound": 50000, "tax": null, - "taxpayers": 23.899993315508024, + "taxpayers": 23.89852410368536, "upper_bound": 100000 }, { - "gains": 3426307.334439975, + "gains": 3425714.5235730945, "lower_bound": 100000, "tax": null, - "taxpayers": 16.62770387700535, + "taxpayers": 16.624203877005346, "upper_bound": 250000 }, { - "gains": 6671519.656755672, + "gains": 6670462.63062136, "lower_bound": 250000, "tax": null, - "taxpayers": 16.10457887700535, + "taxpayers": 16.10222666025658, "upper_bound": 500000 }, { - "gains": 17017684.572696567, + "gains": 17020711.347642235, "lower_bound": 500000, "tax": null, - "taxpayers": 24.41124331550802, + "taxpayers": 24.414086501058105, "upper_bound": 1000000 }, { - "gains": 56716651.069518715, + "gains": 56720006.159830704, "lower_bound": 1000000, "tax": null, - "taxpayers": 56.71665106951872, + "taxpayers": 56.7200061598307, "upper_bound": null } ], - "table4_individuals_gains": 86655426.83250126, + "table4_individuals_gains": 86659823.95675428, "table4_individuals_tax": 0.0, - "table4_individuals_taxpayers": 195.41619652406416, + "table4_individuals_taxpayers": 195.41087509549274, "table4_trusts_gains": 0.0, "table4_trusts_tax": 0.0, "table7_total_disposals": 2743095.2380952383, @@ -114,12 +114,12 @@ "proceeds": 9000000000.0 } ], - "table8a_disposals_total": 366.18495, - "table8a_gains_total": 568557969.6792814, - "table8a_tax_total": 113711593.93585628, - "table8a_taxpayers_total": 332.8954090909091, - "table8b_all_gains": 568557969.6792814, - "table8b_all_taxpayers": 332.8954090909091, - "table8b_individuals_gains": 568557969.6792814, - "table8b_individuals_taxpayers": 332.8954090909091 + "table8a_disposals_total": 366.17505, + "table8a_gains_total": 568549737.3060771, + "table8a_tax_total": 113709947.46121544, + "table8a_taxpayers_total": 332.88640909090907, + "table8b_all_gains": 568549737.3060771, + "table8b_all_taxpayers": 332.88640909090907, + "table8b_individuals_gains": 568549737.3060771, + "table8b_individuals_taxpayers": 332.88640909090907 } 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 396cca31d..6089d7016 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 @@ -4460,7 +4460,7 @@ "source_household_id", "source_year" ], - "notes": "Stacks the pre-clone SPI support channel, gates the 10,000 zero-weight synthetic households under a stage-local declaration, and allocates 50 percent of each region stratum prior mass to the SPI channel with exact national conservation.", + "notes": "Stacks the pre-clone SPI support channel, gates the 10,000 zero-weight synthetic households under a stage-local declaration, and allocates prior mass with exact national conservation within each region, split by whether the household has a member at or over State Pension age (the engine's at the build instant): the SPI channel takes 50 percent of the stratum mass of households without one and pension_age_share of those with one. The channel's households are drawn unweighted with one weight per stratum and every adult in them carries a taxpayer's income, so a region-only allocation gave the channel more pension-age mass than the FRS design gives pension-age households (microcosm#1069).", "operations": [ { "channels": { @@ -4490,6 +4490,8 @@ { "conservation": "exact_total", "kind": "allocate_zero_weight_prior_mass", + "pension_age_share": 0.5, + "pension_age_stratum": "any_member_at_or_over_state_pension_age", "share": 0.5, "strata": [ "region" 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 238d5a6a9..61beee295 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":[{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":"care_hours","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":"is_uc_claimant","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":"would_claim_carers_allowance","dtype":"bool","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"sample_fraction":1.0,"sample_seed":578,"stage_contract_sha256":"047d30937efb21e39259fdbed5597751e4f5a0c341ea583c7446e4c9c11eba48","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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":"care_hours","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":"is_uc_claimant","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":"would_claim_carers_allowance","dtype":"bool","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"age_tail","stage_contract_sha256":"963a34f38caede2525e3b8735f904bb70a1bbef5a272f0eefd4346343444484f","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage frs_relationships.","id":"frs_relationships","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","is_household_head"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_relationships@1","mass":"conserve","outputs":[{"column":"relationship_to_head","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"ons_family_role","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"ons_family_index","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"ons_household_type","dtype":"string","entity":"household","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_relationships","stage_contract_sha256":"30628808d06d9829ebcbcf460cd355a01261e78c7c73e6006c75bec2e3d60c33","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage frs_employment.","id":"frs_employment","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["ons_household_type","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_employment","stage_contract_sha256":"ddbefaf05b44788d794a6e4b0e8926c14318d66e50d2f11f50ca549538bbf60c","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_council_tax","stage_contract_sha256":"3381cd9f7a736514d5073c57480e07f5098890f3ca9ed3865392043594771eb9","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_disability","stage_contract_sha256":"ac500b4cb1bc04d4fb72d198592dd376d61da8c150921a6ac53914ac18be0508","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_education","stage_contract_sha256":"836cb0f5a582fee1425190e96c9cb81bdef859bd236c8b6bc27660b6e3d0c2f8","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","ons_household_type","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"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","ons_household_type","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","ons_household_type","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_education_grant_split","stage_contract_sha256":"8718f014b90498c2cc7c754289775ca4a41452d9b978d8cbc5f34b64cbdc7df2","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage frs_take_up.","id":"frs_take_up","inputs":[{"columns":["frs_benunit_capital","is_married"],"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":"would_claim_uc_childcare","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"maximum_extended_childcare_hours_usage","dtype":"float64","entity":"benunit","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_take_up","stage_contract_sha256":"067d31b7fbe733d1d182588705e9ce79df0c8e5f6e8f519314765af49b1b00d7","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_person_draws","stage_contract_sha256":"7e0af955541ec5669dcdf1de4e1e6ca642853e48b775ec4e25238b41491df324","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_household_draws","stage_contract_sha256":"c74c63b09264319c4bf0049dabba00ecd0ce660beb7b53d6dae71518434bc949","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"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","would_claim_uc_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","ons_household_type","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":["brma","region"],"entity":"household","rows":"all"},{"columns":["age","employee_pension_contributions"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_hmrc_spine_leaves","stage_contract_sha256":"2bb3d068003489b47cc8676ac26c203ce3c39a9b6e92f3ecd0a3c06acd6addc4","time_period":"2024"},"population":"frs_brma.checkpoint","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"frs_brma.checkpoint","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","would_claim_uc_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","ons_household_type","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"spi_support_channel","citation":"","description":"Run structural UK stage spi_income_band_donors.","id":"spi_income_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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.spi_income_band_donors@1","mass":"free","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","household_source_id","int64"],["household","household_support_channel","string"],["household","household_support_clone_index","int64"],["household","household_is_spi_synthetic","bool"],["household","household_is_spi_income_band_donor","bool"],["household","spi_income_band_donor_lower_bound","float64"],["person","person_is_spi_income_band_carrier","bool"]],"expand_weight_entity":"household","expand_weight_kind":"importance","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"spi_income_band_donors","stage_contract_sha256":"190a40ab145b001993733553f45b3e8e5adfe999f598231481ab6706447d5f3c","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"base":null,"citation":"","description":"Own the cells materialized by spi_income_band_donors.","id":"spi_income_band_donors.owned","inputs":[],"kernel":"uk.claim@1","mass":"conserve","outputs":[{"column":"person_source_id","dtype":"int64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"person_support_channel","dtype":"string","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"person_support_clone_index","dtype":"int64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"benunit_source_id","dtype":"int64","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"benunit_support_channel","dtype":"string","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"benunit_support_clone_index","dtype":"int64","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_source_id","dtype":"int64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_support_channel","dtype":"string","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_support_clone_index","dtype":"int64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_is_spi_synthetic","dtype":"bool","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_is_spi_income_band_donor","dtype":"bool","entity":"household","ownership":"produced","rows":"all"},{"column":"spi_income_band_donor_lower_bound","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"person_is_spi_income_band_carrier","dtype":"bool","entity":"person","ownership":"produced","rows":"all"}],"params":{"materialized_expand_outputs":["household.household_is_spi_income_band_donor","household.spi_income_band_donor_lower_bound","person.person_is_spi_income_band_carrier"]},"population":"spi_income_band_donors","sources":[],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","relationship_to_head","ons_family_role","ons_family_index","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","ossben_identifiable_subset","srp_regular_code5","person_source_id","person_support_channel","person_support_clone_index","person_is_spi_income_band_carrier"],"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"},{"column":"would_claim_carers_allowance","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"hmrc_spi_income_spine","stage_contract_sha256":"834334536c1c6add6648b801272c61ca2f597a54c82553a943667200b9e6c4ce","time_period":"2024"},"population":"spi_income_band_donors","sources":["frs"],"structural":"none","weights":null},{"base":"spi_income_band_donors","citation":"","description":"Ownership boundary before spi_housing_shell rewrites.","id":"spi_housing_shell.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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage spi_housing_shell.","id":"spi_housing_shell","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["council_tax_single_adult_raw","household_support_channel","ons_household_type","region"],"entity":"household","rows":"all"},{"columns":["age","dividend_income","employment_income","is_household_head","other_investment_income","private_pension_income","property_income","savings_interest_income","self_employment_income","state_pension_reported","would_claim_carers_allowance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.spi_housing_shell@1","mass":"conserve","outputs":[{"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":"council_tax_band","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","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_reported","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"rent","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":"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":"subrent","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_rebate","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"housing_benefit_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"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"spi_housing_shell","stage_contract_sha256":"809f19fd33ff79ceda005e8cc3fa89ae40b297dceca26a7658b6259267987890","time_period":"2024"},"population":"spi_housing_shell.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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.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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"was_wealth","stage_contract_sha256":"366e019c41ee2a28bcd61bbaa62a024ed0bb4b30b3ffc4d87ab23b340b4076bf","time_period":"2024"},"population":"spi_housing_shell.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage was_lisa.","id":"was_lisa","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.was_lisa@1","mass":"conserve","outputs":[{"column":"has_lifetime_isa","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"lifetime_isa_balance","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"household_lifetime_isa_balance","dtype":"float64","entity":"household","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"was_lisa","stage_contract_sha256":"f1d0f962e84d32007821b32e4e03a8af9443acc0ed3d1836ff094dcbacb928da","time_period":"2024"},"population":"spi_housing_shell.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"spi_housing_shell.boundary","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":["household_lifetime_isa_balance","household_support_channel","region"],"entity":"household","rows":"all"},{"columns":["age"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"regional_property_uprating","stage_contract_sha256":"acb342e8ca1770556c5682a9411c5ead5d61dd1420cfe6b0305ed14a3407fb25","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage nts_bus_travel.","id":"nts_bus_travel","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.nts_bus_travel@1","mass":"conserve","outputs":[{"column":"local_bus_use_band","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"bus_in_london_trips","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"other_local_bus_trips","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"local_bus_trips","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"bus_pass_eligible","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"local_bus_single_fare_share","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"household_local_bus_trips","dtype":"float64","entity":"household","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"nts_bus_travel","stage_contract_sha256":"59767eeb246755f4636e2abbbc9ab3370a64c6142e01cda21a12cb01be95e535","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"lcfs_consumption","stage_contract_sha256":"f428215b7d66e1297688cfc8dce94e670268fb26a6681ca5f0e6e0641cfaf076","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"etb_vat","stage_contract_sha256":"5a2b777d88315bcccb72477c088a136c634131e0bc1a339b7287217ee5cfd8d3","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"etb_services","stage_contract_sha256":"991be160f2f2c28cf7eadc911b3214aca8bf5be441676fe21a87ba12888c5c25","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"regional_property_uprating.boundary","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"uc_reporter_redraw","stage_contract_sha256":"7e94e034cad29c5bae566ffb875c42cddf3a1025c15496907e783ceff1144f8b","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","is_benunit_head","is_parent","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"uc_capital_coherence","stage_contract_sha256":"059f27ee687ee15385b246d43068b17aeecbe3645ccc41fd52fcad06a006a081","time_period":"2024"},"population":"uc_capital_coherence.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"uc_deduction_attributes","stage_contract_sha256":"6bc7e3ec1a5712e23ca1b7d2956e8b17f2526b94431ba3e5a9294b04658e4fe0","time_period":"2024"},"population":"uc_capital_coherence.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"uc_capital_coherence.boundary","citation":"","description":"Run structural UK stage cgt_support_split.","id":"cgt_support_split","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.cgt_support_split@1","mass":"conserve","outputs":[],"params":{"expand_cells":[["household","household_is_cgt_support_copy","bool"],["household","cgt_support_copies","int64"],["household","cgt_support_copy_index","int64"]],"expand_weight_entity":"household","expand_weight_kind":"importance","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"cgt_support_split","stage_contract_sha256":"30b37e1c4e122db18391c5f76f1a6d432aea970275bcda7a52126dacc923490b","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"base":null,"citation":"","description":"Own the cells materialized by cgt_support_split.","id":"cgt_support_split.owned","inputs":[],"kernel":"uk.claim@1","mass":"conserve","outputs":[{"column":"household_is_cgt_support_copy","dtype":"bool","entity":"household","ownership":"produced","rows":"all"},{"column":"cgt_support_copies","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"cgt_support_copy_index","dtype":"int64","entity":"household","ownership":"produced","rows":"all"}],"params":{"materialized_expand_outputs":["household.household_is_cgt_support_copy","household.cgt_support_copies","household.cgt_support_copy_index"]},"population":"cgt_support_split","sources":[],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"cgt_support_split","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","household_is_cgt_support_copy","cgt_support_copies","cgt_support_copy_index"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"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","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"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":"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","household_is_cgt_support_copy","cgt_support_copies","cgt_support_copy_index","household_is_capital_gains_clone"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","capital_gains"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":["cgt_support_copies","corporate_wealth","gross_financial_wealth","household_is_cgt_support_copy","non_residential_property_value","other_residential_property_value","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"hmrc_cgt_gains_spine","stage_contract_sha256":"ff740a36b03dcda73b889aa43bde7cff5d178de7b3da38e487320c68342bf9a3","time_period":"2024"},"population":"hmrc_cgt_gains_spine.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage hmrc_cgt_asset_type_spine.","id":"hmrc_cgt_asset_type_spine","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["corporate_wealth","gross_financial_wealth","other_residential_property_value","region","stocks_and_shares_isa"],"entity":"household","rows":"all"},{"columns":["age","capital_gains","dividend_income","property_income","self_employment_income"],"entity":"person","rows":"all"}],"kernel":"uk.stage.hmrc_cgt_asset_type_spine@1","mass":"conserve","outputs":[{"column":"capital_gains_asset_type","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"capital_gains_residential_property","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"capital_gains_badr","dtype":"float64","entity":"person","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"hmrc_cgt_asset_type_spine","stage_contract_sha256":"c918223197c706279b37d1b32d0ff3885fb1cd7b65b2e50d0308ab508ed0ed64","time_period":"2024"},"population":"hmrc_cgt_gains_spine.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"hmrc_cgt_gains_spine.boundary","citation":"","description":"Run structural UK stage cgt_incidence_anchor.","id":"cgt_incidence_anchor","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["household_is_capital_gains_clone","region"],"entity":"household","rows":"all"},{"columns":["age","capital_gains","capital_gains_badr","dividend_income","employment_income","miscellaneous_income","private_pension_income","property_income","savings_interest_income","self_employment_income","state_pension_reported"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.cgt_incidence_anchor@1","mass":"conserve","outputs":[],"params":{"expand_cells":[],"expand_weight_entity":"household","expand_weight_kind":"importance","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"cgt_incidence_anchor","stage_contract_sha256":"b79ce806015de2f1e1703fa68bf4ad871c6df54b5b32633c864632ab68919a48","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","household_is_cgt_support_copy","cgt_support_copies","cgt_support_copy_index","household_is_capital_gains_clone"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","capital_gains","capital_gains_asset_type","capital_gains_residential_property","capital_gains_badr"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"salary_sacrifice","stage_contract_sha256":"89b589d19fcb99b265cb40d08cf2b9ff7955bd41b6de0e8c9ff4dc6f35be1eb6","time_period":"2024"},"population":"cgt_incidence_anchor","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"student_loans","stage_contract_sha256":"f2936c5e22a0e9b097437e3f3aabaf06c4561d5c25a9b7c05e720a6553f73bbc","time_period":"2024"},"population":"cgt_incidence_anchor","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":[{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":"care_hours","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":"is_uc_claimant","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":"would_claim_carers_allowance","dtype":"bool","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"sample_fraction":1.0,"sample_seed":578,"stage_contract_sha256":"047d30937efb21e39259fdbed5597751e4f5a0c341ea583c7446e4c9c11eba48","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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":"care_hours","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":"is_uc_claimant","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":"would_claim_carers_allowance","dtype":"bool","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"age_tail","stage_contract_sha256":"963a34f38caede2525e3b8735f904bb70a1bbef5a272f0eefd4346343444484f","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage frs_relationships.","id":"frs_relationships","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","is_household_head"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_relationships@1","mass":"conserve","outputs":[{"column":"relationship_to_head","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"ons_family_role","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"ons_family_index","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"ons_household_type","dtype":"string","entity":"household","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_relationships","stage_contract_sha256":"30628808d06d9829ebcbcf460cd355a01261e78c7c73e6006c75bec2e3d60c33","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage frs_employment.","id":"frs_employment","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["ons_household_type","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_employment","stage_contract_sha256":"ddbefaf05b44788d794a6e4b0e8926c14318d66e50d2f11f50ca549538bbf60c","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_council_tax","stage_contract_sha256":"3381cd9f7a736514d5073c57480e07f5098890f3ca9ed3865392043594771eb9","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_disability","stage_contract_sha256":"ac500b4cb1bc04d4fb72d198592dd376d61da8c150921a6ac53914ac18be0508","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_education","stage_contract_sha256":"836cb0f5a582fee1425190e96c9cb81bdef859bd236c8b6bc27660b6e3d0c2f8","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","ons_household_type","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"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","ons_household_type","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","ons_household_type","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_education_grant_split","stage_contract_sha256":"8718f014b90498c2cc7c754289775ca4a41452d9b978d8cbc5f34b64cbdc7df2","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage frs_take_up.","id":"frs_take_up","inputs":[{"columns":["frs_benunit_capital","is_married"],"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":"would_claim_uc_childcare","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"maximum_extended_childcare_hours_usage","dtype":"float64","entity":"benunit","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_take_up","stage_contract_sha256":"067d31b7fbe733d1d182588705e9ce79df0c8e5f6e8f519314765af49b1b00d7","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_person_draws","stage_contract_sha256":"7e0af955541ec5669dcdf1de4e1e6ca642853e48b775ec4e25238b41491df324","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_household_draws","stage_contract_sha256":"c74c63b09264319c4bf0049dabba00ecd0ce660beb7b53d6dae71518434bc949","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"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","would_claim_uc_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","ons_household_type","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":["brma","region"],"entity":"household","rows":"all"},{"columns":["age","employee_pension_contributions"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_hmrc_spine_leaves","stage_contract_sha256":"2bb3d068003489b47cc8676ac26c203ce3c39a9b6e92f3ecd0a3c06acd6addc4","time_period":"2024"},"population":"frs_brma.checkpoint","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"frs_brma.checkpoint","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","would_claim_uc_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","ons_household_type","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"spi_support_channel","stage_contract_sha256":"a9c85eb66fad3587e1c1fae46fee6972b9e554097e724c9e399f4560edfed61c","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"spi_support_channel","citation":"","description":"Run structural UK stage spi_income_band_donors.","id":"spi_income_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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.spi_income_band_donors@1","mass":"free","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","household_source_id","int64"],["household","household_support_channel","string"],["household","household_support_clone_index","int64"],["household","household_is_spi_synthetic","bool"],["household","household_is_spi_income_band_donor","bool"],["household","spi_income_band_donor_lower_bound","float64"],["person","person_is_spi_income_band_carrier","bool"]],"expand_weight_entity":"household","expand_weight_kind":"importance","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"spi_income_band_donors","stage_contract_sha256":"190a40ab145b001993733553f45b3e8e5adfe999f598231481ab6706447d5f3c","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"base":null,"citation":"","description":"Own the cells materialized by spi_income_band_donors.","id":"spi_income_band_donors.owned","inputs":[],"kernel":"uk.claim@1","mass":"conserve","outputs":[{"column":"person_source_id","dtype":"int64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"person_support_channel","dtype":"string","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"person_support_clone_index","dtype":"int64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"benunit_source_id","dtype":"int64","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"benunit_support_channel","dtype":"string","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"benunit_support_clone_index","dtype":"int64","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_source_id","dtype":"int64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_support_channel","dtype":"string","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_support_clone_index","dtype":"int64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_is_spi_synthetic","dtype":"bool","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_is_spi_income_band_donor","dtype":"bool","entity":"household","ownership":"produced","rows":"all"},{"column":"spi_income_band_donor_lower_bound","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"person_is_spi_income_band_carrier","dtype":"bool","entity":"person","ownership":"produced","rows":"all"}],"params":{"materialized_expand_outputs":["household.household_is_spi_income_band_donor","household.spi_income_band_donor_lower_bound","person.person_is_spi_income_band_carrier"]},"population":"spi_income_band_donors","sources":[],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","relationship_to_head","ons_family_role","ons_family_index","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","ossben_identifiable_subset","srp_regular_code5","person_source_id","person_support_channel","person_support_clone_index","person_is_spi_income_band_carrier"],"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"},{"column":"would_claim_carers_allowance","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"hmrc_spi_income_spine","stage_contract_sha256":"834334536c1c6add6648b801272c61ca2f597a54c82553a943667200b9e6c4ce","time_period":"2024"},"population":"spi_income_band_donors","sources":["frs"],"structural":"none","weights":null},{"base":"spi_income_band_donors","citation":"","description":"Ownership boundary before spi_housing_shell rewrites.","id":"spi_housing_shell.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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage spi_housing_shell.","id":"spi_housing_shell","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["council_tax_single_adult_raw","household_support_channel","ons_household_type","region"],"entity":"household","rows":"all"},{"columns":["age","dividend_income","employment_income","is_household_head","other_investment_income","private_pension_income","property_income","savings_interest_income","self_employment_income","state_pension_reported","would_claim_carers_allowance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.spi_housing_shell@1","mass":"conserve","outputs":[{"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":"council_tax_band","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","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_reported","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"rent","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":"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":"subrent","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_rebate","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"housing_benefit_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"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"spi_housing_shell","stage_contract_sha256":"809f19fd33ff79ceda005e8cc3fa89ae40b297dceca26a7658b6259267987890","time_period":"2024"},"population":"spi_housing_shell.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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.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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"was_wealth","stage_contract_sha256":"366e019c41ee2a28bcd61bbaa62a024ed0bb4b30b3ffc4d87ab23b340b4076bf","time_period":"2024"},"population":"spi_housing_shell.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage was_lisa.","id":"was_lisa","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.was_lisa@1","mass":"conserve","outputs":[{"column":"has_lifetime_isa","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"lifetime_isa_balance","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"household_lifetime_isa_balance","dtype":"float64","entity":"household","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"was_lisa","stage_contract_sha256":"f1d0f962e84d32007821b32e4e03a8af9443acc0ed3d1836ff094dcbacb928da","time_period":"2024"},"population":"spi_housing_shell.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"spi_housing_shell.boundary","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":["household_lifetime_isa_balance","household_support_channel","region"],"entity":"household","rows":"all"},{"columns":["age"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"regional_property_uprating","stage_contract_sha256":"acb342e8ca1770556c5682a9411c5ead5d61dd1420cfe6b0305ed14a3407fb25","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage nts_bus_travel.","id":"nts_bus_travel","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.nts_bus_travel@1","mass":"conserve","outputs":[{"column":"local_bus_use_band","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"bus_in_london_trips","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"other_local_bus_trips","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"local_bus_trips","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"bus_pass_eligible","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"local_bus_single_fare_share","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"household_local_bus_trips","dtype":"float64","entity":"household","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"nts_bus_travel","stage_contract_sha256":"59767eeb246755f4636e2abbbc9ab3370a64c6142e01cda21a12cb01be95e535","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"lcfs_consumption","stage_contract_sha256":"f428215b7d66e1297688cfc8dce94e670268fb26a6681ca5f0e6e0641cfaf076","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"etb_vat","stage_contract_sha256":"5a2b777d88315bcccb72477c088a136c634131e0bc1a339b7287217ee5cfd8d3","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"etb_services","stage_contract_sha256":"991be160f2f2c28cf7eadc911b3214aca8bf5be441676fe21a87ba12888c5c25","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"regional_property_uprating.boundary","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"uc_reporter_redraw","stage_contract_sha256":"7e94e034cad29c5bae566ffb875c42cddf3a1025c15496907e783ceff1144f8b","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","is_benunit_head","is_parent","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"uc_capital_coherence","stage_contract_sha256":"059f27ee687ee15385b246d43068b17aeecbe3645ccc41fd52fcad06a006a081","time_period":"2024"},"population":"uc_capital_coherence.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"uc_deduction_attributes","stage_contract_sha256":"6bc7e3ec1a5712e23ca1b7d2956e8b17f2526b94431ba3e5a9294b04658e4fe0","time_period":"2024"},"population":"uc_capital_coherence.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"uc_capital_coherence.boundary","citation":"","description":"Run structural UK stage cgt_support_split.","id":"cgt_support_split","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.cgt_support_split@1","mass":"conserve","outputs":[],"params":{"expand_cells":[["household","household_is_cgt_support_copy","bool"],["household","cgt_support_copies","int64"],["household","cgt_support_copy_index","int64"]],"expand_weight_entity":"household","expand_weight_kind":"importance","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"cgt_support_split","stage_contract_sha256":"30b37e1c4e122db18391c5f76f1a6d432aea970275bcda7a52126dacc923490b","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"base":null,"citation":"","description":"Own the cells materialized by cgt_support_split.","id":"cgt_support_split.owned","inputs":[],"kernel":"uk.claim@1","mass":"conserve","outputs":[{"column":"household_is_cgt_support_copy","dtype":"bool","entity":"household","ownership":"produced","rows":"all"},{"column":"cgt_support_copies","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"cgt_support_copy_index","dtype":"int64","entity":"household","ownership":"produced","rows":"all"}],"params":{"materialized_expand_outputs":["household.household_is_cgt_support_copy","household.cgt_support_copies","household.cgt_support_copy_index"]},"population":"cgt_support_split","sources":[],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"cgt_support_split","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","household_is_cgt_support_copy","cgt_support_copies","cgt_support_copy_index"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"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","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"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":"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","household_is_cgt_support_copy","cgt_support_copies","cgt_support_copy_index","household_is_capital_gains_clone"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","capital_gains"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":["cgt_support_copies","corporate_wealth","gross_financial_wealth","household_is_cgt_support_copy","non_residential_property_value","other_residential_property_value","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"hmrc_cgt_gains_spine","stage_contract_sha256":"ff740a36b03dcda73b889aa43bde7cff5d178de7b3da38e487320c68342bf9a3","time_period":"2024"},"population":"hmrc_cgt_gains_spine.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage hmrc_cgt_asset_type_spine.","id":"hmrc_cgt_asset_type_spine","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["corporate_wealth","gross_financial_wealth","other_residential_property_value","region","stocks_and_shares_isa"],"entity":"household","rows":"all"},{"columns":["age","capital_gains","dividend_income","property_income","self_employment_income"],"entity":"person","rows":"all"}],"kernel":"uk.stage.hmrc_cgt_asset_type_spine@1","mass":"conserve","outputs":[{"column":"capital_gains_asset_type","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"capital_gains_residential_property","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"capital_gains_badr","dtype":"float64","entity":"person","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"hmrc_cgt_asset_type_spine","stage_contract_sha256":"c918223197c706279b37d1b32d0ff3885fb1cd7b65b2e50d0308ab508ed0ed64","time_period":"2024"},"population":"hmrc_cgt_gains_spine.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"hmrc_cgt_gains_spine.boundary","citation":"","description":"Run structural UK stage cgt_incidence_anchor.","id":"cgt_incidence_anchor","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["household_is_capital_gains_clone","region"],"entity":"household","rows":"all"},{"columns":["age","capital_gains","capital_gains_badr","dividend_income","employment_income","miscellaneous_income","private_pension_income","property_income","savings_interest_income","self_employment_income","state_pension_reported"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.cgt_incidence_anchor@1","mass":"conserve","outputs":[],"params":{"expand_cells":[],"expand_weight_entity":"household","expand_weight_kind":"importance","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"cgt_incidence_anchor","stage_contract_sha256":"b79ce806015de2f1e1703fa68bf4ad871c6df54b5b32633c864632ab68919a48","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","household_is_cgt_support_copy","cgt_support_copies","cgt_support_copy_index","household_is_capital_gains_clone"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","capital_gains","capital_gains_asset_type","capital_gains_residential_property","capital_gains_badr"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"salary_sacrifice","stage_contract_sha256":"89b589d19fcb99b265cb40d08cf2b9ff7955bd41b6de0e8c9ff4dc6f35be1eb6","time_period":"2024"},"population":"cgt_incidence_anchor","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"student_loans","stage_contract_sha256":"f2936c5e22a0e9b097437e3f3aabaf06c4561d5c25a9b7c05e720a6553f73bbc","time_period":"2024"},"population":"cgt_incidence_anchor","sources":["frs"],"structural":"none","weights":null}],"sources":[{"codec":"csv-tables","description":"Content-bound UK FRS and donor fixture/source bundle.","name":"frs"}]} From f795e9121f40ae677a329c5950529fe6dd63c1cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20Juaristi?= <127882282+juaristi22@users.noreply.github.com> Date: Thu, 1 Oct 2026 16:03:04 +0100 Subject: [PATCH 09/22] Bind the Pension Credit caseload and draw take-up by component after the SPI chain (#1069 c7) Rows (family dwp_pension_credit, 14 targets, CY2025 mean of the four quarterly Stat-Xplore points; PolicyEngine/chronicle#302 via #305): - Great Britain benefit units in payment (1,390,586). - Six type-by-partner cells: Guarantee Credit only, Savings Credit only and both, with and without a partner. The engine reads the type from the paid components (guarantee_credit and savings_credit each positive or zero where pension_credit > 0) and the partner cell from relation_type. - Six age bands (65-69 to 90 and over) on the eldest adult's age: both partners must have reached State Pension age to claim. DWP's partnered cells by age run from 1k to 30k, so the bands bind across type and partner rather than the full 36-cell grid. - Northern Ireland claimants (DfC). obr.pension_credit stays bound. Active national references 1,210 -> 1,224; the 2023 and 2025 parity receipts gain the ledger-only rows and the local receipt does not move. Take-up (R9). frs_take_up drew would_claim_pc early, on FRS incomes, at a flat 70% that misread the FYE 2020 publication, over every benefit unit. A new stage, pension_credit_take_up, after uc_capital_coherence and before CGT cloning: - materializes the engine's pre-take-up guarantee_credit, savings_credit and is_pension_credit_eligible (consumed only); - within each DWP take-up component (Guarantee Credit, with or without Savings Credit; Savings Credit only) a reporter claims and the other entitled units claim at r = (t*E - R) / (E - R), t being DWP's FYE 2024 caseload take-up (69% and 37%, checked against the gov.uk publication), E the component's entitled units and R its reporters, weighted at the stage's household weights; - uses frs_take_up's would_claim_pc identity stream, and rewrites the column (frs_take_up keeps its early draw for the intermediate engine simulations). A stage gate, uk_stage_pension_credit_take_up, checks each component's realised take-up (within 0.05, or at least the rate where reporters alone exceed it). The terminal take-up signal gate no longer measures would_claim_pc, whose rate is a share of entitled units. New stage surfaces: manifests, the assign_component_take_up_residual op kind and schema branch, graph cells and consumes (open surface, reader-isolation boundary), kernels, the fixture tool, the roster 35 -> 36, the take-up contract's two FYE 2024 rates, the microcosm-data gate maps, the coverage manifest and the charter-H2 fixture. Co-Authored-By: Claude Opus 5.5 --- changelog.d/uk-pension-credit-1069.added.md | 3 + .../src/microcosm/build/source_manifest.py | 1 + .../spec_engine/schema/sources.schema.json | 60 + .../src/microcosm/build/uk/gates.json | 16 +- ...ity_incumbent_2025_signed_differences.json | 104 +- ...ty_production_2023_signed_differences.json | 104 +- .../build/uk/local_target_references.json | 8 + .../uk/release_input_coverage_manifest.json | 30 +- .../src/microcosm/build/uk/source_stages.json | 52 + .../src/microcosm/build/uk/spec/sources.yaml | 35 + .../microcosm/build/uk/take_up_contract.json | 32 +- .../build/uk/target_reference_membership.json | 288 ++- .../microcosm/build/uk/target_references.json | 614 ++++++ .../build/uk/uk_population_targets.json | 1731 ++++++++++++++++- .../build/uk_runtime/battery_bindings.py | 3 + .../build/uk_runtime/calibration_run.py | 1 + .../microcosm/build/uk_runtime/frs_take_up.py | 4 +- .../src/microcosm/build/uk_runtime/graph.py | 7 + .../build/uk_runtime/graph_kernels.py | 18 +- .../uk_runtime/pension_credit_take_up.py | 360 ++++ .../microcosm/build/uk_runtime/spine_build.py | 8 + .../build/uk_runtime/stage_health.py | 55 + .../engine_free/shared/test_country_spec.py | 14 +- .../tests/engine_free/uk/test_uk_graph.py | 9 +- .../uk/test_uk_national_calibration.py | 2 +- .../uk/test_uk_pension_credit_take_up.py | 239 +++ .../uk/test_uk_pension_credit_targets.py | 175 ++ .../uk/test_uk_population_targets.py | 16 +- .../engine_free/uk/test_uk_source_stages.py | 6 + .../uk/test_uk_spine_acceptance_receipt.py | 4 + .../engine_free/uk/test_uk_stage_health.py | 38 + .../uk/test_uk_take_up_contract.py | 9 +- .../uk/test_uk_target_references.py | 4 +- .../uk/test_uk_uc_source_periods.py | 14 + .../src/microcosm/data/contract.py | 3 + .../tests/engine_free/shared/test_contract.py | 3 + .../parity/uk_spine/sources/fixture.json | 53 + .../fixtures/parity/uk_spine/uk_spine.json | 2 +- tools/graph_uk_spine_fixture.py | 12 +- 39 files changed, 4080 insertions(+), 57 deletions(-) create mode 100644 changelog.d/uk-pension-credit-1069.added.md create mode 100644 packages/microcosm-build/src/microcosm/build/uk_runtime/pension_credit_take_up.py create mode 100644 packages/microcosm-build/tests/engine_free/uk/test_uk_pension_credit_take_up.py create mode 100644 packages/microcosm-build/tests/engine_free/uk/test_uk_pension_credit_targets.py diff --git a/changelog.d/uk-pension-credit-1069.added.md b/changelog.d/uk-pension-credit-1069.added.md new file mode 100644 index 000000000..cca036d67 --- /dev/null +++ b/changelog.d/uk-pension-credit-1069.added.md @@ -0,0 +1,3 @@ +Bind the UK Pension Credit caseload and draw Pension Credit take-up by component (#1069 c7; PolicyEngine/chronicle#302 via #305). Fourteen caseload targets in the new `dwp_pension_credit` family, each the mean of the four quarterly Stat-Xplore points inside calendar 2025: the Great Britain total (1.39m benefit units), its six type-by-partner cells (Guarantee Credit only, Savings Credit only, both; with and without a partner), six age bands of the eldest adult, and the Northern Ireland total from DfC. `obr.pension_credit` stays bound. + +A new spine stage, `pension_credit_take_up`, redraws `would_claim_pc` after the SPI income chain. One temporary engine materialization gives each benefit unit's pre-take-up Guarantee Credit and Savings Credit; within each DWP take-up component (Guarantee Credit, Savings Credit only) a reporter claims and the other entitled units claim at r = (t·E − R)/(E − R), with t DWP's financial year ending 2024 caseload take-up (69% and 37%, replacing the flat 70% from FYE 2020), E the entitled units and R the reporters, weighted. A stage gate checks each component's realised take-up; the terminal take-up signal gate no longer measures `would_claim_pc`. The roster moves from 35 to 36 stages. diff --git a/packages/microcosm-build/src/microcosm/build/source_manifest.py b/packages/microcosm-build/src/microcosm/build/source_manifest.py index b4ace4fdf..5d95fc5b8 100644 --- a/packages/microcosm-build/src/microcosm/build/source_manifest.py +++ b/packages/microcosm-build/src/microcosm/build/source_manifest.py @@ -50,6 +50,7 @@ "assign_bus_use_incidence", "assign_bus_pass_eligibility", "assign_clipped_normal", + "assign_component_take_up_residual", "assign_period_constant", "assign_student_loan_plan_cohorts", "assign_main_asset_type", 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 ddffdcf56..1f9c63be1 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 @@ -6432,6 +6432,66 @@ } } }, + { + "type": "object", + "additionalProperties": false, + "required": [ + "kind", + "output", + "draw", + "seed", + "anchor", + "bands", + "weight_mapping", + "residual_rate" + ], + "properties": { + "kind": { + "const": "assign_component_take_up_residual" + }, + "output": { + "type": "string" + }, + "draw": { + "type": "string" + }, + "seed": { + "type": "integer" + }, + "anchor": { + "type": "string" + }, + "bands": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "required": [ + "name", + "rule", + "rate_key" + ], + "properties": { + "name": { + "type": "string" + }, + "rule": { + "type": "string" + }, + "rate_key": { + "type": "string" + } + } + } + }, + "weight_mapping": { + "type": "string" + }, + "residual_rate": { + "type": "string" + } + } + }, { "type": "object", "additionalProperties": false, diff --git a/packages/microcosm-build/src/microcosm/build/uk/gates.json b/packages/microcosm-build/src/microcosm/build/uk/gates.json index 86cba9adb..1dbeb0814 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/gates.json +++ b/packages/microcosm-build/src/microcosm/build/uk/gates.json @@ -441,6 +441,20 @@ }, "notes": "Stage-time SPI redraw identity gate over the HMRC SPI income spine receipt." }, + { + "id": "uk_stage_pension_credit_take_up", + "gate": "stage_health", + "phase": "transferred", + "criticality": "release_blocking", + "evidence_absent_blocks": true, + "parameters": { + "stage": "pension_credit_take_up", + "check": "pension_credit_take_up", + "maximum_take_up_deviation": 0.05, + "minimum_entitled_units": 1 + }, + "notes": "Stage-time gate over the Pension Credit take-up receipt (microcosm#1069 R9): each component band (Guarantee Credit, Savings Credit only) realizes its DWP FYE 2024 caseload take-up within 0.05 at the stage's weights, or at least the rate where its reporters alone exceed it. The terminal take-up signal gate no longer measures would_claim_pc, whose rate is a share of the entitled units the engine finds, not of every benefit unit." + }, { "id": "uk_stage_cgt_incidence_clone_mass", "gate": "stage_health", @@ -852,7 +866,7 @@ "parameters": { "maximum_share_deviation": 0.05 }, - "notes": "Every contract-driven stochastic flag must be non-constant and have a weighted share within +/-0.05 of its contract target." + "notes": "Every contract-driven stochastic flag must be non-constant and have a weighted share within +/-0.05 of its contract target. would_claim_pc is measured by uk_stage_pension_credit_take_up instead (microcosm#1069 R9)." }, { "id": "uk_brma_enum_domain", 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 765d6d1c1..925d6b1de 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": 1210, + "compiled_count": 1224, "counts_by_kind": { "calibration_drift": 554, "fixture_only": 54, - "ledger_only": 627 + "ledger_only": 641 }, - "difference_count": 1235, + "difference_count": 1249, "differences": [ { "fixture_value": 1608000.0, @@ -385,6 +385,13 @@ "period": 2025, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, + { + "kind": "ledger_only", + "ledger_value": 60195.0, + "name": "dfc_ni.pension_credit.benefit_units", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, { "kind": "ledger_only", "ledger_value": 3710881810.1898503, @@ -574,6 +581,97 @@ "period": 2025, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, + { + "kind": "ledger_only", + "ledger_value": 1390586.25, + "name": "dwp.pension_credit.benefit_units", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 179022.25, + "name": "dwp.pension_credit.benefit_units_65_69", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 282852.75, + "name": "dwp.pension_credit.benefit_units_70_74", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 367571.25, + "name": "dwp.pension_credit.benefit_units_75_79", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 261310.0, + "name": "dwp.pension_credit.benefit_units_80_84", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 177613.5, + "name": "dwp.pension_credit.benefit_units_85_89", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 122210.75, + "name": "dwp.pension_credit.benefit_units_90_plus", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 47246.25, + "name": "dwp.pension_credit.benefit_units_both_couple", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 366055.25, + "name": "dwp.pension_credit.benefit_units_both_single", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 96794.25, + "name": "dwp.pension_credit.benefit_units_guarantee_only_couple", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 715624.75, + "name": "dwp.pension_credit.benefit_units_guarantee_only_single", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 22458.0, + "name": "dwp.pension_credit.benefit_units_savings_only_couple", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 142408.25, + "name": "dwp.pension_credit.benefit_units_savings_only_single", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, { "kind": "ledger_only", "ledger_value": 138623908111.01526, 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 7d6b3bc6e..b71b328f3 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": 899, + "compiled_count": 913, "counts_by_kind": { "calibration_drift": 120, "fixture_only": 17, - "ledger_only": 767 + "ledger_only": 781 }, - "difference_count": 904, + "difference_count": 918, "differences": [ { "fixture_value": 82000.0, @@ -126,6 +126,13 @@ "period": 2023, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, + { + "kind": "ledger_only", + "ledger_value": 60195.0, + "name": "dfc_ni.pension_credit.benefit_units", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, { "kind": "ledger_only", "ledger_value": 330147.5, @@ -224,6 +231,97 @@ "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, + { + "kind": "ledger_only", + "ledger_value": 1390586.25, + "name": "dwp.pension_credit.benefit_units", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 179022.25, + "name": "dwp.pension_credit.benefit_units_65_69", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 282852.75, + "name": "dwp.pension_credit.benefit_units_70_74", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 367571.25, + "name": "dwp.pension_credit.benefit_units_75_79", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 261310.0, + "name": "dwp.pension_credit.benefit_units_80_84", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 177613.5, + "name": "dwp.pension_credit.benefit_units_85_89", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 122210.75, + "name": "dwp.pension_credit.benefit_units_90_plus", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 47246.25, + "name": "dwp.pension_credit.benefit_units_both_couple", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 366055.25, + "name": "dwp.pension_credit.benefit_units_both_single", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 96794.25, + "name": "dwp.pension_credit.benefit_units_guarantee_only_couple", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 715624.75, + "name": "dwp.pension_credit.benefit_units_guarantee_only_single", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 22458.0, + "name": "dwp.pension_credit.benefit_units_savings_only_couple", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 142408.25, + "name": "dwp.pension_credit.benefit_units_savings_only_single", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, { "kind": "ledger_only", "ledger_value": 12052874.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 6d0ae7b34..25db0d8aa 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 @@ -217,6 +217,14 @@ "dfc_ni.state_pension": { "provider_id": "dfc_ni", "label": "State Pension" + }, + "dwp.pension_credit": { + "provider_id": "dwp", + "label": "Pension Credit" + }, + "dfc_ni.pension_credit": { + "provider_id": "dfc_ni", + "label": "Pension Credit" } }, "target_categories": { 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 acfeb95ff..6eba49d22 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 @@ -468,7 +468,7 @@ "required_mass_change_reason": "Capital-gains incidence anchor moves the mass of non-liable clone households back to their paired originals until the sub-exempt and loss-making clone mass match the Advani-Summers reporter composition at the redrawn liable mass; every pair's mass and the total household mass are conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "144b6e5f5c60023c9e74ccd715e72f05b0e230d899866caa355e23128c7d4543", + "source_manifest_sha256": "2150fdd831ed2835a761b721ba44cd8f6ce45963873fec8751e424d01072c510", "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, the HMRC Table 3 redrawn gains on the spine and Advani-Summers capital-gains incidence" @@ -491,7 +491,7 @@ "capital_gains" ], "source_manifest": "source_stages.json", - "source_manifest_sha256": "144b6e5f5c60023c9e74ccd715e72f05b0e230d899866caa355e23128c7d4543", + "source_manifest_sha256": "2150fdd831ed2835a761b721ba44cd8f6ce45963873fec8751e424d01072c510", "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" @@ -513,7 +513,7 @@ "required_mass_change_reason": "Capital-gains support split divides the wealthiest households of each HMRC Table 3 income band into light copies at equal weight; every household's mass and the total household mass are conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "144b6e5f5c60023c9e74ccd715e72f05b0e230d899866caa355e23128c7d4543", + "source_manifest_sha256": "2150fdd831ed2835a761b721ba44cd8f6ce45963873fec8751e424d01072c510", "source_vintages": { "source": "HMRC Capital Gains Tax statistics, July 2026 release, Table 3 for 2024-25, via the vendored conditioning facts", "survey": "Family Resources Survey 2024-25, SPI synthetic support and HMRC Capital Gains Tax statistics Table 3 (2024-25 individuals by size of gain and taxable income)" @@ -542,7 +542,7 @@ "required_mass_change_reason": "ETB public-services imputation on the source spine: household weights pass through unchanged and total household mass is conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "144b6e5f5c60023c9e74ccd715e72f05b0e230d899866caa355e23128c7d4543", + "source_manifest_sha256": "2150fdd831ed2835a761b721ba44cd8f6ce45963873fec8751e424d01072c510", "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" @@ -562,7 +562,7 @@ "required_mass_change_reason": "ETB VAT expenditure-rate imputation on the source spine: household weights pass through unchanged and total household mass is conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "144b6e5f5c60023c9e74ccd715e72f05b0e230d899866caa355e23128c7d4543", + "source_manifest_sha256": "2150fdd831ed2835a761b721ba44cd8f6ce45963873fec8751e424d01072c510", "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" @@ -584,7 +584,7 @@ "required_mass_change_reason": "CGT asset-type assignment on the source spine: household weights pass through unchanged and total household mass is conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "144b6e5f5c60023c9e74ccd715e72f05b0e230d899866caa355e23128c7d4543", + "source_manifest_sha256": "2150fdd831ed2835a761b721ba44cd8f6ce45963873fec8751e424d01072c510", "source_vintages": { "source": "https://www.gov.uk/government/statistics/capital-gains-tax-statistics", "survey": "HMRC Capital Gains Tax statistics 2026 release, Table 8 (UK residential property disposals, 2024-25, administrative), Table 4.1 (individuals claiming Business Asset Disposal Relief or Investors' Relief by band of qualifying gain, 2024-25, administrative) and Table 7 (disposals, proceeds and gains by asset type, 2023-24, sample-based), vendored from the pinned Chronicle feed" @@ -608,7 +608,7 @@ "capital_gains" ], "source_manifest": "source_stages.json", - "source_manifest_sha256": "144b6e5f5c60023c9e74ccd715e72f05b0e230d899866caa355e23128c7d4543", + "source_manifest_sha256": "2150fdd831ed2835a761b721ba44cd8f6ce45963873fec8751e424d01072c510", "source_vintages": { "conditioning_resource": "hmrc_cgt_conditioning_facts.json", "conditioning_resource_sha256": "067ba21c12aeb4e95e6a8a16141dbaa075e8787ed875a005f549cab6e91a6b56", @@ -697,7 +697,7 @@ "full_frs_tei_band_unavailable" ], "source_manifest": "source_stages.json", - "source_manifest_sha256": "144b6e5f5c60023c9e74ccd715e72f05b0e230d899866caa355e23128c7d4543", + "source_manifest_sha256": "2150fdd831ed2835a761b721ba44cd8f6ce45963873fec8751e424d01072c510", "source_vintages": { "hmrc_surface": "2023-24", "mapped_build_period": "2024", @@ -738,7 +738,7 @@ "required_mass_change_reason": "LCFS consumption imputation on the source spine: household weights pass through unchanged and total household mass is conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "144b6e5f5c60023c9e74ccd715e72f05b0e230d899866caa355e23128c7d4543", + "source_manifest_sha256": "2150fdd831ed2835a761b721ba44cd8f6ce45963873fec8751e424d01072c510", "source_vintages": { "source": "UK Data Service SN 9468 Living Costs and Food Survey 2023-24 household/person tabs and the vendored Chronicle facts for NEED 2023 mean kWh, the FY2024-25 Ofgem cap levels, road-fuel outturn (DESNZ, HMRC, ONS), the DfT VEH1103 licensed-car stock, NTS bus use and the DfT and devolved bus finance tables.", "survey": "Living Costs and Food Survey 2023-24" @@ -764,7 +764,7 @@ "required_mass_change_reason": "NTS bus-travel imputation on the source spine: household weights pass through unchanged and total household mass is conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "144b6e5f5c60023c9e74ccd715e72f05b0e230d899866caa355e23128c7d4543", + "source_manifest_sha256": "2150fdd831ed2835a761b721ba44cd8f6ce45963873fec8751e424d01072c510", "source_vintages": { "source": "Department for Transport National Travel Survey, UK Data Service SN 5340 (End User Licence, 19th edition, November 2025), DOI 10.5255/UKDA-SN-5340-19; local licensed tab files (household, individual, trip); England residents only from 2013.", "survey": "National Travel Survey 2002-2024" @@ -785,7 +785,7 @@ "property_wealth" ], "source_manifest": "source_stages.json", - "source_manifest_sha256": "144b6e5f5c60023c9e74ccd715e72f05b0e230d899866caa355e23128c7d4543", + "source_manifest_sha256": "2150fdd831ed2835a761b721ba44cd8f6ce45963873fec8751e424d01072c510", "source_vintages": { "source": "MHCLG dwellings and ONS UK House Price Index December 2025 regional average prices.", "survey": "Public regional property reference" @@ -809,7 +809,7 @@ "employee_pension_contributions" ], "source_manifest": "source_stages.json", - "source_manifest_sha256": "144b6e5f5c60023c9e74ccd715e72f05b0e230d899866caa355e23128c7d4543", + "source_manifest_sha256": "2150fdd831ed2835a761b721ba44cd8f6ce45963873fec8751e424d01072c510", "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" @@ -831,7 +831,7 @@ "student_loan_plan" ], "source_manifest": "source_stages.json", - "source_manifest_sha256": "144b6e5f5c60023c9e74ccd715e72f05b0e230d899866caa355e23128c7d4543", + "source_manifest_sha256": "2150fdd831ed2835a761b721ba44cd8f6ce45963873fec8751e424d01072c510", "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" @@ -853,7 +853,7 @@ "required_mass_change_reason": "WAS Lifetime ISA imputation on the source spine: household weights pass through unchanged and total household mass is conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "144b6e5f5c60023c9e74ccd715e72f05b0e230d899866caa355e23128c7d4543", + "source_manifest_sha256": "2150fdd831ed2835a761b721ba44cd8f6ce45963873fec8751e424d01072c510", "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 round-8 person and household tabs (interviews April 2020 to March 2022, Great Britain).", "survey": "Wealth and Assets Survey round 8" @@ -888,7 +888,7 @@ "required_mass_change_reason": "WAS wealth imputation on the source spine: household weights pass through unchanged and total household mass is conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "144b6e5f5c60023c9e74ccd715e72f05b0e230d899866caa355e23128c7d4543", + "source_manifest_sha256": "2150fdd831ed2835a761b721ba44cd8f6ce45963873fec8751e424d01072c510", "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 82e095093..b991b4d06 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/source_stages.json +++ b/packages/microcosm-build/src/microcosm/build/uk/source_stages.json @@ -4399,6 +4399,58 @@ ], "notes": "Runs after the last universal_credit_reported writer and before CGT cloning. Redraws only SPI post-fill reporters from weighted base-FRS reporter capital within dependent-children band by is_uc_couple cells (two retained FRS claimant/partner roles, independently of legal is_married), then applies the monotone reported-UC OR refresh." }, + { + "stage": "pension_credit_take_up", + "survey": "Family Resources Survey 2024-25", + "source": "DWP Income-related benefits: estimates of take-up, financial year ending 2024 (Pension Credit caseload take-up by component), applied to PolicyEngine-UK pre-take-up Pension Credit entitlement after the SPI income chain.", + "grain": "benunit", + "artifacts": [], + "operations": [ + { + "kind": "materialize_rules_engine_predictors", + "predictors": [ + "guarantee_credit", + "savings_credit", + "is_pension_credit_eligible" + ], + "consumed_only": true + }, + { + "kind": "aggregate_person_to_benunit", + "method": "any_positive", + "consumed_only": true, + "aggregates": { + "pension_credit_reported_anchor": "pension_credit_reported" + } + }, + { + "kind": "assign_component_take_up_residual", + "output": "would_claim_pc", + "draw": "would_claim_pc", + "seed": 0, + "anchor": "pension_credit_reported_anchor", + "bands": [ + { + "name": "guarantee_credit", + "rule": "is_pension_credit_eligible AND guarantee_credit > 0", + "rate_key": "pension_credit_guarantee_credit" + }, + { + "name": "savings_credit_only", + "rule": "is_pension_credit_eligible AND guarantee_credit <= 0 AND savings_credit > 0", + "rate_key": "pension_credit_savings_credit_only" + } + ], + "weight_mapping": "household_to_benunit", + "residual_rate": "(rate * entitled - reporters) / (entitled - reporters), weighted, clipped to [0, 1]" + } + ], + "outputs": [], + "rewrites": [ + "would_claim_pc" + ], + "notes": "Runs after the SPI income chain and UC capital coherence, before CGT cloning (microcosm#1069 R9). One temporary engine materialization gives each benefit unit's pre-take-up Pension Credit entitlement (guarantee_credit, savings_credit, is_pension_credit_eligible; consumed only). Entitled units fall into DWP's take-up components, Guarantee Credit (with or without Savings Credit) and Savings Credit only; within a component a reporter claims and the other entitled units claim at r = (t * E - R) / (E - R), t being DWP's financial year ending 2024 caseload take-up (69% and 37%), E the component's entitled units and R its reporters, weighted at the stage's household weights. A unit with no entitlement claims only if it reports. The uniform draw is frs_take_up's would_claim_pc identity stream, whose early draw this rewrite replaces; units with every adult at or over State Pension age are the only ones the engine finds eligible." + }, { "stage": "uc_deduction_attributes", "survey": "DWP Universal Credit deductions statistics, March 2025 to February 2026", 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 2b60a652f..ffd0c8c03 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/spec/sources.yaml +++ b/packages/microcosm-build/src/microcosm/build/uk/spec/sources.yaml @@ -3564,6 +3564,41 @@ stages: - frs_benunit_capital - would_claim_uc notes: Runs after the last universal_credit_reported writer and before CGT cloning. Redraws only SPI post-fill reporters from weighted base-FRS reporter capital within dependent-children band by is_uc_couple cells (two retained FRS claimant/partner roles, independently of legal is_married), then applies the monotone reported-UC OR refresh. +- stage: pension_credit_take_up + survey: Family Resources Survey 2024-25 + source: 'DWP Income-related benefits: estimates of take-up, financial year ending 2024 (Pension Credit caseload take-up by component), applied to PolicyEngine-UK pre-take-up Pension Credit entitlement after the SPI income chain.' + grain: benunit + artifacts: [] + operations: + - kind: materialize_rules_engine_predictors + predictors: + - guarantee_credit + - savings_credit + - is_pension_credit_eligible + consumed_only: true + - kind: aggregate_person_to_benunit + method: any_positive + consumed_only: true + aggregates: + pension_credit_reported_anchor: pension_credit_reported + - kind: assign_component_take_up_residual + output: would_claim_pc + draw: would_claim_pc + seed: 0 + anchor: pension_credit_reported_anchor + bands: + - name: guarantee_credit + rule: is_pension_credit_eligible AND guarantee_credit > 0 + rate_key: pension_credit_guarantee_credit + - name: savings_credit_only + rule: is_pension_credit_eligible AND guarantee_credit <= 0 AND savings_credit > 0 + rate_key: pension_credit_savings_credit_only + weight_mapping: household_to_benunit + residual_rate: (rate * entitled - reporters) / (entitled - reporters), weighted, clipped to [0, 1] + outputs: [] + rewrites: + - would_claim_pc + notes: Runs after the SPI income chain and UC capital coherence, before CGT cloning (microcosm#1069 R9). One temporary engine materialization gives each benefit unit's pre-take-up Pension Credit entitlement (guarantee_credit, savings_credit, is_pension_credit_eligible; consumed only). Entitled units fall into DWP's take-up components, Guarantee Credit (with or without Savings Credit) and Savings Credit only; within a component a reporter claims and the other entitled units claim at r = (t * E - R) / (E - R), t being DWP's financial year ending 2024 caseload take-up (69% and 37%), E the component's entitled units and R its reporters, weighted at the stage's household weights. A unit with no entitlement claims only if it reports. The uniform draw is frs_take_up's would_claim_pc identity stream, whose early draw this rewrite replaces; units with every adult at or over State Pension age are the only ones the engine finds eligible. - stage: uc_deduction_attributes survey: DWP Universal Credit deductions statistics, March 2025 to February 2026 source: Department for Work and Pensions supplementary Tables 2, 5 and 6, sha-pinned by Chronicle package dwp-uc-deductions-march-2025-february-2026. 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 d4df82096..fc2cbcdbb 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 @@ -54,11 +54,41 @@ "source": { "source": "Income-related benefits: estimates of take-up, financial year 2019 to 2020", "agency": "DWP", - "citation": "Pension Credit take-up estimate used by the incumbent UK pipeline.", + "citation": "Pension Credit take-up estimate used by the incumbent UK pipeline. Since microcosm#1069 (R9) this is only frs_take_up's early draw on FRS incomes, which the intermediate engine simulations read; pension_credit_take_up replaces it after the SPI income chain with the FYE 2024 component rates.", "url": "https://www.gov.uk/government/statistics/income-related-benefits-estimates-of-take-up-financial-year-2019-to-2020/income-related-benefits-estimates-of-take-up-financial-year-2019-to-2020", "status": "sourced_administrative" } }, + { + "key": "pension_credit_guarantee_credit", + "output": "would_claim_pc", + "entity": "benunit", + "values": { + "2023-01-01": 0.69 + }, + "source": { + "source": "Income-related benefits: estimates of take-up, financial year ending 2024", + "agency": "DWP", + "citation": "Pension Credit caseload take-up, Guarantee Credit: 69% in FYE 2024 (all Pension Credit 62%). Applied by pension_credit_take_up as the share of the component's entitled benefit units who claim, reporters first (microcosm#1069 R9).", + "url": "https://www.gov.uk/government/statistics/income-related-benefits-estimates-of-take-up-financial-year-ending-2024/income-related-benefits-estimates-of-take-up-financial-year-ending-2024", + "status": "sourced_administrative" + } + }, + { + "key": "pension_credit_savings_credit_only", + "output": "would_claim_pc", + "entity": "benunit", + "values": { + "2023-01-01": 0.37 + }, + "source": { + "source": "Income-related benefits: estimates of take-up, financial year ending 2024", + "agency": "DWP", + "citation": "Pension Credit caseload take-up, Savings Credit only: 37% in FYE 2024 (all Pension Credit 62%). Applied by pension_credit_take_up as the share of the component's entitled benefit units who claim, reporters first (microcosm#1069 R9).", + "url": "https://www.gov.uk/government/statistics/income-related-benefits-estimates-of-take-up-financial-year-ending-2024/income-related-benefits-estimates-of-take-up-financial-year-ending-2024", + "status": "sourced_administrative" + } + }, { "key": "universal_credit", "output": "would_claim_uc", 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 535e865bc..205dd2da1 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/target_reference_membership.json +++ b/packages/microcosm-build/src/microcosm/build/uk/target_reference_membership.json @@ -1,11 +1,11 @@ { "source_fact_feed": "chronicle-uk-825406f9-consumer-facts", "target_period": 2025, - "candidate_count": 1233, - "contract_target_count": 320, - "active_reference_count": 1210, + "candidate_count": 1247, + "contract_target_count": 334, + "active_reference_count": 1224, "status_counts": { - "active": 1210, + "active": 1224, "no_fact_at_or_before_period": 7, "signed_excluded": 16 }, @@ -3995,6 +3995,62 @@ "dwp.state_pension.recipients_pre_2016_by_weekly_amount": { "geography_level": "country", "geography_id": "K03000001" + }, + "dwp.pension_credit.benefit_units": { + "geography_level": "country", + "geography_id": "K03000001" + }, + "dwp.pension_credit.benefit_units_guarantee_only_couple": { + "geography_level": "country", + "geography_id": "K03000001" + }, + "dwp.pension_credit.benefit_units_guarantee_only_single": { + "geography_level": "country", + "geography_id": "K03000001" + }, + "dwp.pension_credit.benefit_units_savings_only_couple": { + "geography_level": "country", + "geography_id": "K03000001" + }, + "dwp.pension_credit.benefit_units_savings_only_single": { + "geography_level": "country", + "geography_id": "K03000001" + }, + "dwp.pension_credit.benefit_units_both_couple": { + "geography_level": "country", + "geography_id": "K03000001" + }, + "dwp.pension_credit.benefit_units_both_single": { + "geography_level": "country", + "geography_id": "K03000001" + }, + "dwp.pension_credit.benefit_units_65_69": { + "geography_level": "country", + "geography_id": "K03000001" + }, + "dwp.pension_credit.benefit_units_70_74": { + "geography_level": "country", + "geography_id": "K03000001" + }, + "dwp.pension_credit.benefit_units_75_79": { + "geography_level": "country", + "geography_id": "K03000001" + }, + "dwp.pension_credit.benefit_units_80_84": { + "geography_level": "country", + "geography_id": "K03000001" + }, + "dwp.pension_credit.benefit_units_85_89": { + "geography_level": "country", + "geography_id": "K03000001" + }, + "dwp.pension_credit.benefit_units_90_plus": { + "geography_level": "country", + "geography_id": "K03000001" + }, + "dfc_ni.pension_credit.benefit_units": { + "geography_level": "country", + "geography_id": "N92000002" } }, "genuine_sum_residue": [ @@ -28774,6 +28830,230 @@ "resolved_fact_key": "ledger_aggregate_fact_v2_01743bfc73ac3ee49e3fa953" } ] + }, + "dwp.pension_credit.benefit_units": { + "status": "active", + "candidates": [ + { + "name": "dwp.pension_credit.benefit_units", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 4, + "matched_fact_count_in_source_window": 4, + "resolved_period": 2025, + "resolved_value": 1390586.25, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_1959918af196c44861e31167" + } + ] + }, + "dwp.pension_credit.benefit_units_guarantee_only_couple": { + "status": "active", + "candidates": [ + { + "name": "dwp.pension_credit.benefit_units_guarantee_only_couple", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 4, + "matched_fact_count_in_source_window": 4, + "resolved_period": 2025, + "resolved_value": 96794.25, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_091a1b6931243d1d3f5b35c1" + } + ] + }, + "dwp.pension_credit.benefit_units_guarantee_only_single": { + "status": "active", + "candidates": [ + { + "name": "dwp.pension_credit.benefit_units_guarantee_only_single", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 4, + "matched_fact_count_in_source_window": 4, + "resolved_period": 2025, + "resolved_value": 715624.75, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_122348c34ab5eb4857e379e0" + } + ] + }, + "dwp.pension_credit.benefit_units_savings_only_couple": { + "status": "active", + "candidates": [ + { + "name": "dwp.pension_credit.benefit_units_savings_only_couple", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 4, + "matched_fact_count_in_source_window": 4, + "resolved_period": 2025, + "resolved_value": 22458.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_48eceb66dbc0a8badeed5d21" + } + ] + }, + "dwp.pension_credit.benefit_units_savings_only_single": { + "status": "active", + "candidates": [ + { + "name": "dwp.pension_credit.benefit_units_savings_only_single", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 4, + "matched_fact_count_in_source_window": 4, + "resolved_period": 2025, + "resolved_value": 142408.25, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_4bba18fa22663b03e2c56da8" + } + ] + }, + "dwp.pension_credit.benefit_units_both_couple": { + "status": "active", + "candidates": [ + { + "name": "dwp.pension_credit.benefit_units_both_couple", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 4, + "matched_fact_count_in_source_window": 4, + "resolved_period": 2025, + "resolved_value": 47246.25, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_53774b182677de4df96ecd2b" + } + ] + }, + "dwp.pension_credit.benefit_units_both_single": { + "status": "active", + "candidates": [ + { + "name": "dwp.pension_credit.benefit_units_both_single", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 4, + "matched_fact_count_in_source_window": 4, + "resolved_period": 2025, + "resolved_value": 366055.25, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_35b6b695fc790496848d8a94" + } + ] + }, + "dwp.pension_credit.benefit_units_65_69": { + "status": "active", + "candidates": [ + { + "name": "dwp.pension_credit.benefit_units_65_69", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 4, + "matched_fact_count_in_source_window": 4, + "resolved_period": 2025, + "resolved_value": 179022.25, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_c6e9a9036eab7716e57dd68b" + } + ] + }, + "dwp.pension_credit.benefit_units_70_74": { + "status": "active", + "candidates": [ + { + "name": "dwp.pension_credit.benefit_units_70_74", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 4, + "matched_fact_count_in_source_window": 4, + "resolved_period": 2025, + "resolved_value": 282852.75, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_d8c9b2a912de0a21e93b5e8d" + } + ] + }, + "dwp.pension_credit.benefit_units_75_79": { + "status": "active", + "candidates": [ + { + "name": "dwp.pension_credit.benefit_units_75_79", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 4, + "matched_fact_count_in_source_window": 4, + "resolved_period": 2025, + "resolved_value": 367571.25, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_6e88be95734a1e2312fb284d" + } + ] + }, + "dwp.pension_credit.benefit_units_80_84": { + "status": "active", + "candidates": [ + { + "name": "dwp.pension_credit.benefit_units_80_84", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 4, + "matched_fact_count_in_source_window": 4, + "resolved_period": 2025, + "resolved_value": 261310.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_f92bbdf9046d27d8c45149a0" + } + ] + }, + "dwp.pension_credit.benefit_units_85_89": { + "status": "active", + "candidates": [ + { + "name": "dwp.pension_credit.benefit_units_85_89", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 4, + "matched_fact_count_in_source_window": 4, + "resolved_period": 2025, + "resolved_value": 177613.5, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_cf3443a3e0be02b52bf5651f" + } + ] + }, + "dwp.pension_credit.benefit_units_90_plus": { + "status": "active", + "candidates": [ + { + "name": "dwp.pension_credit.benefit_units_90_plus", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 4, + "matched_fact_count_in_source_window": 4, + "resolved_period": 2025, + "resolved_value": 122210.75, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_92e1c482a72763db14b6264d" + } + ] + }, + "dfc_ni.pension_credit.benefit_units": { + "status": "active", + "candidates": [ + { + "name": "dfc_ni.pension_credit.benefit_units", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 4, + "matched_fact_count_in_source_window": 4, + "resolved_period": 2025, + "resolved_value": 60195.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_31088d4513e7b7e4b21233d7" + } + ] } }, "fanout_family_outcomes": [ 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 6a392c62a..4f6a08230 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/target_references.json +++ b/packages/microcosm-build/src/microcosm/build/uk/target_references.json @@ -217,9 +217,18 @@ "dfc_ni.state_pension": { "provider_id": "dfc_ni", "label": "State Pension" + }, + "dwp.pension_credit": { + "provider_id": "dwp", + "label": "Pension Credit" + }, + "dfc_ni.pension_credit": { + "provider_id": "dfc_ni", + "label": "Pension Credit" } }, "target_categories": { + "dfc_ni.pension_credit.benefit_units": "dfc_ni.pension_credit", "dfc_ni.state_pension.amount": "dfc_ni.state_pension", "dfc_ni.state_pension.recipients": "dfc_ni.state_pension", "dfe.funded_childcare.early_learning_2_year_olds": "dfe.funded_childcare", @@ -252,6 +261,19 @@ "dwp.hb.households_private_rented": "dwp.housing_benefit", "dwp.hb.households_social_rented": "dwp.housing_benefit", "dwp.jsa_claimants": "dwp.legacy_benefits", + "dwp.pension_credit.benefit_units": "dwp.pension_credit", + "dwp.pension_credit.benefit_units_65_69": "dwp.pension_credit", + "dwp.pension_credit.benefit_units_70_74": "dwp.pension_credit", + "dwp.pension_credit.benefit_units_75_79": "dwp.pension_credit", + "dwp.pension_credit.benefit_units_80_84": "dwp.pension_credit", + "dwp.pension_credit.benefit_units_85_89": "dwp.pension_credit", + "dwp.pension_credit.benefit_units_90_plus": "dwp.pension_credit", + "dwp.pension_credit.benefit_units_both_couple": "dwp.pension_credit", + "dwp.pension_credit.benefit_units_both_single": "dwp.pension_credit", + "dwp.pension_credit.benefit_units_guarantee_only_couple": "dwp.pension_credit", + "dwp.pension_credit.benefit_units_guarantee_only_single": "dwp.pension_credit", + "dwp.pension_credit.benefit_units_savings_only_couple": "dwp.pension_credit", + "dwp.pension_credit.benefit_units_savings_only_single": "dwp.pension_credit", "dwp.state_pension.amount": "dwp.state_pension", "dwp.state_pension.recipients": "dwp.state_pension", "dwp.state_pension.recipients_female_66_69_new": "dwp.state_pension", @@ -527,6 +549,7 @@ "welshgov.council_tax_stock.total": "welshgov.council_tax_stock" }, "target_labels": { + "dfc_ni.pension_credit.benefit_units": "Pension Credit benefit units, Northern Ireland", "dfc_ni.state_pension.amount": "State Pension paid, Northern Ireland", "dfc_ni.state_pension.recipients": "State Pension recipients, Northern Ireland", "dfe.funded_childcare.early_learning_2_year_olds": "Early learning 2 year olds", @@ -559,6 +582,19 @@ "dwp.hb.households_private_rented": "Housing Benefit claimants, private rented", "dwp.hb.households_social_rented": "Housing Benefit claimants, social rented", "dwp.jsa_claimants": "Jobseeker\u2019s Allowance claimants", + "dwp.pension_credit.benefit_units": "Pension Credit benefit units, Great Britain", + "dwp.pension_credit.benefit_units_65_69": "Pension Credit benefit units, claimant aged 65 to 69", + "dwp.pension_credit.benefit_units_70_74": "Pension Credit benefit units, claimant aged 70 to 74", + "dwp.pension_credit.benefit_units_75_79": "Pension Credit benefit units, claimant aged 75 to 79", + "dwp.pension_credit.benefit_units_80_84": "Pension Credit benefit units, claimant aged 80 to 84", + "dwp.pension_credit.benefit_units_85_89": "Pension Credit benefit units, claimant aged 85 to 89", + "dwp.pension_credit.benefit_units_90_plus": "Pension Credit benefit units, claimant aged 90 and over", + "dwp.pension_credit.benefit_units_both_couple": "Pension Credit benefit units, Both Guarantee and Savings Credit, has a partner", + "dwp.pension_credit.benefit_units_both_single": "Pension Credit benefit units, Both Guarantee and Savings Credit, has no partner", + "dwp.pension_credit.benefit_units_guarantee_only_couple": "Pension Credit benefit units, Guarantee Credit only, has a partner", + "dwp.pension_credit.benefit_units_guarantee_only_single": "Pension Credit benefit units, Guarantee Credit only, has no partner", + "dwp.pension_credit.benefit_units_savings_only_couple": "Pension Credit benefit units, Savings Credit only, has a partner", + "dwp.pension_credit.benefit_units_savings_only_single": "Pension Credit benefit units, Savings Credit only, has no partner", "dwp.state_pension.amount": "State Pension paid, Great Britain residents", "dwp.state_pension.recipients": "State Pension recipients, Great Britain residents", "dwp.state_pension.recipients_female_66_69_new": "State Pension recipients, female 66 to 69, New State Pension", @@ -44224,6 +44260,584 @@ }, "period_match_policy": "source_window", "value_operation": "monthly_window_average" + }, + { + "name": "dwp.pension_credit.benefit_units", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.pension_credit_caseload" + ], + "source_measure_id": "total_claims", + "groupby_dimension": "dwp.pension_credit_type_partner_age", + "dimensions": [ + "age_bands_and_single_year", + "partner_indicator", + "type_of_pension_credit" + ], + "dimension_values": { + "age_bands_and_single_year": "all", + "partner_indicator": "all", + "type_of_pension_credit": "all" + }, + "entity_name": "benefit_unit", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "benunit", + "measure": "dwp/pension_credit/benefit_units", + "family": "dwp_pension_credit", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.pension_credit.benefit_units", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.pension_credit.benefit_units_guarantee_only_couple", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.pension_credit_caseload" + ], + "source_measure_id": "total_claims", + "groupby_dimension": "dwp.pension_credit_type_partner_age", + "dimensions": [ + "age_bands_and_single_year", + "partner_indicator", + "type_of_pension_credit" + ], + "dimension_values": { + "age_bands_and_single_year": "all", + "partner_indicator": "Has a partner", + "type_of_pension_credit": "Guarantee Credit only" + }, + "entity_name": "benefit_unit", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "benunit", + "measure": "dwp/pension_credit/benefit_units_guarantee_only_couple", + "family": "dwp_pension_credit", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.pension_credit.benefit_units_guarantee_only_couple", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.pension_credit.benefit_units_guarantee_only_single", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.pension_credit_caseload" + ], + "source_measure_id": "total_claims", + "groupby_dimension": "dwp.pension_credit_type_partner_age", + "dimensions": [ + "age_bands_and_single_year", + "partner_indicator", + "type_of_pension_credit" + ], + "dimension_values": { + "age_bands_and_single_year": "all", + "partner_indicator": "Has no partner", + "type_of_pension_credit": "Guarantee Credit only" + }, + "entity_name": "benefit_unit", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "benunit", + "measure": "dwp/pension_credit/benefit_units_guarantee_only_single", + "family": "dwp_pension_credit", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.pension_credit.benefit_units_guarantee_only_single", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.pension_credit.benefit_units_savings_only_couple", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.pension_credit_caseload" + ], + "source_measure_id": "total_claims", + "groupby_dimension": "dwp.pension_credit_type_partner_age", + "dimensions": [ + "age_bands_and_single_year", + "partner_indicator", + "type_of_pension_credit" + ], + "dimension_values": { + "age_bands_and_single_year": "all", + "partner_indicator": "Has a partner", + "type_of_pension_credit": "Savings Credit only" + }, + "entity_name": "benefit_unit", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "benunit", + "measure": "dwp/pension_credit/benefit_units_savings_only_couple", + "family": "dwp_pension_credit", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.pension_credit.benefit_units_savings_only_couple", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.pension_credit.benefit_units_savings_only_single", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.pension_credit_caseload" + ], + "source_measure_id": "total_claims", + "groupby_dimension": "dwp.pension_credit_type_partner_age", + "dimensions": [ + "age_bands_and_single_year", + "partner_indicator", + "type_of_pension_credit" + ], + "dimension_values": { + "age_bands_and_single_year": "all", + "partner_indicator": "Has no partner", + "type_of_pension_credit": "Savings Credit only" + }, + "entity_name": "benefit_unit", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "benunit", + "measure": "dwp/pension_credit/benefit_units_savings_only_single", + "family": "dwp_pension_credit", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.pension_credit.benefit_units_savings_only_single", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.pension_credit.benefit_units_both_couple", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.pension_credit_caseload" + ], + "source_measure_id": "total_claims", + "groupby_dimension": "dwp.pension_credit_type_partner_age", + "dimensions": [ + "age_bands_and_single_year", + "partner_indicator", + "type_of_pension_credit" + ], + "dimension_values": { + "age_bands_and_single_year": "all", + "partner_indicator": "Has a partner", + "type_of_pension_credit": "Both Guarantee and Savings Credit" + }, + "entity_name": "benefit_unit", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "benunit", + "measure": "dwp/pension_credit/benefit_units_both_couple", + "family": "dwp_pension_credit", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.pension_credit.benefit_units_both_couple", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.pension_credit.benefit_units_both_single", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.pension_credit_caseload" + ], + "source_measure_id": "total_claims", + "groupby_dimension": "dwp.pension_credit_type_partner_age", + "dimensions": [ + "age_bands_and_single_year", + "partner_indicator", + "type_of_pension_credit" + ], + "dimension_values": { + "age_bands_and_single_year": "all", + "partner_indicator": "Has no partner", + "type_of_pension_credit": "Both Guarantee and Savings Credit" + }, + "entity_name": "benefit_unit", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "benunit", + "measure": "dwp/pension_credit/benefit_units_both_single", + "family": "dwp_pension_credit", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.pension_credit.benefit_units_both_single", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.pension_credit.benefit_units_65_69", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.pension_credit_caseload" + ], + "source_measure_id": "total_claims", + "groupby_dimension": "dwp.pension_credit_type_partner_age", + "dimensions": [ + "age_bands_and_single_year", + "partner_indicator", + "type_of_pension_credit" + ], + "dimension_values": { + "age_bands_and_single_year": "65-69", + "partner_indicator": "all", + "type_of_pension_credit": "all" + }, + "entity_name": "benefit_unit", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "benunit", + "measure": "dwp/pension_credit/benefit_units_65_69", + "family": "dwp_pension_credit", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.pension_credit.benefit_units_65_69", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.pension_credit.benefit_units_70_74", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.pension_credit_caseload" + ], + "source_measure_id": "total_claims", + "groupby_dimension": "dwp.pension_credit_type_partner_age", + "dimensions": [ + "age_bands_and_single_year", + "partner_indicator", + "type_of_pension_credit" + ], + "dimension_values": { + "age_bands_and_single_year": "70-74", + "partner_indicator": "all", + "type_of_pension_credit": "all" + }, + "entity_name": "benefit_unit", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "benunit", + "measure": "dwp/pension_credit/benefit_units_70_74", + "family": "dwp_pension_credit", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.pension_credit.benefit_units_70_74", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.pension_credit.benefit_units_75_79", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.pension_credit_caseload" + ], + "source_measure_id": "total_claims", + "groupby_dimension": "dwp.pension_credit_type_partner_age", + "dimensions": [ + "age_bands_and_single_year", + "partner_indicator", + "type_of_pension_credit" + ], + "dimension_values": { + "age_bands_and_single_year": "75-79", + "partner_indicator": "all", + "type_of_pension_credit": "all" + }, + "entity_name": "benefit_unit", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "benunit", + "measure": "dwp/pension_credit/benefit_units_75_79", + "family": "dwp_pension_credit", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.pension_credit.benefit_units_75_79", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.pension_credit.benefit_units_80_84", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.pension_credit_caseload" + ], + "source_measure_id": "total_claims", + "groupby_dimension": "dwp.pension_credit_type_partner_age", + "dimensions": [ + "age_bands_and_single_year", + "partner_indicator", + "type_of_pension_credit" + ], + "dimension_values": { + "age_bands_and_single_year": "80-84", + "partner_indicator": "all", + "type_of_pension_credit": "all" + }, + "entity_name": "benefit_unit", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "benunit", + "measure": "dwp/pension_credit/benefit_units_80_84", + "family": "dwp_pension_credit", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.pension_credit.benefit_units_80_84", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.pension_credit.benefit_units_85_89", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.pension_credit_caseload" + ], + "source_measure_id": "total_claims", + "groupby_dimension": "dwp.pension_credit_type_partner_age", + "dimensions": [ + "age_bands_and_single_year", + "partner_indicator", + "type_of_pension_credit" + ], + "dimension_values": { + "age_bands_and_single_year": "85-89", + "partner_indicator": "all", + "type_of_pension_credit": "all" + }, + "entity_name": "benefit_unit", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "benunit", + "measure": "dwp/pension_credit/benefit_units_85_89", + "family": "dwp_pension_credit", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.pension_credit.benefit_units_85_89", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.pension_credit.benefit_units_90_plus", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.pension_credit_caseload" + ], + "source_measure_id": "total_claims", + "groupby_dimension": "dwp.pension_credit_type_partner_age", + "dimensions": [ + "age_bands_and_single_year", + "partner_indicator", + "type_of_pension_credit" + ], + "dimension_values": { + "age_bands_and_single_year": "90 and over", + "partner_indicator": "all", + "type_of_pension_credit": "all" + }, + "entity_name": "benefit_unit", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "benunit", + "measure": "dwp/pension_credit/benefit_units_90_plus", + "family": "dwp_pension_credit", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.pension_credit.benefit_units_90_plus", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dfc_ni.pension_credit.benefit_units", + "ledger_selector": { + "source_name": "dfc_ni", + "source_concept": [ + "dfc_ni.pension_credit_claimants" + ], + "source_measure_id": "claimants_all", + "dimensions": [], + "entity_name": "benefit_unit", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "N92000002" + }, + "entity": "benunit", + "measure": "dfc_ni/pension_credit/benefit_units", + "family": "dwp_pension_credit", + "period": 2025, + "metadata": { + "contract_target_id": "dfc_ni.pension_credit.benefit_units", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" } ] } 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 7772a6d7d..fe6d2eebc 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 @@ -809,7 +809,21 @@ "dwp.state_pension.recipients_pre_2016_scotland": "Post-freeze fact family (DWP Stat-Xplore State Pension caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", "dwp.state_pension.recipients_pre_2016_wales": "Post-freeze fact family (DWP Stat-Xplore State Pension caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", "dwp.state_pension.recipients_new_by_weekly_amount": "Post-freeze fact family (DWP Stat-Xplore State Pension caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", - "dwp.state_pension.recipients_pre_2016_by_weekly_amount": "Post-freeze fact family (DWP Stat-Xplore State Pension caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069)." + "dwp.state_pension.recipients_pre_2016_by_weekly_amount": "Post-freeze fact family (DWP Stat-Xplore State Pension caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", + "dwp.pension_credit.benefit_units": "Post-freeze fact family (DWP Stat-Xplore Pension Credit caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", + "dwp.pension_credit.benefit_units_guarantee_only_couple": "Post-freeze fact family (DWP Stat-Xplore Pension Credit caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", + "dwp.pension_credit.benefit_units_guarantee_only_single": "Post-freeze fact family (DWP Stat-Xplore Pension Credit caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", + "dwp.pension_credit.benefit_units_savings_only_couple": "Post-freeze fact family (DWP Stat-Xplore Pension Credit caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", + "dwp.pension_credit.benefit_units_savings_only_single": "Post-freeze fact family (DWP Stat-Xplore Pension Credit caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", + "dwp.pension_credit.benefit_units_both_couple": "Post-freeze fact family (DWP Stat-Xplore Pension Credit caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", + "dwp.pension_credit.benefit_units_both_single": "Post-freeze fact family (DWP Stat-Xplore Pension Credit caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", + "dwp.pension_credit.benefit_units_65_69": "Post-freeze fact family (DWP Stat-Xplore Pension Credit caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", + "dwp.pension_credit.benefit_units_70_74": "Post-freeze fact family (DWP Stat-Xplore Pension Credit caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", + "dwp.pension_credit.benefit_units_75_79": "Post-freeze fact family (DWP Stat-Xplore Pension Credit caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", + "dwp.pension_credit.benefit_units_80_84": "Post-freeze fact family (DWP Stat-Xplore Pension Credit caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", + "dwp.pension_credit.benefit_units_85_89": "Post-freeze fact family (DWP Stat-Xplore Pension Credit caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", + "dwp.pension_credit.benefit_units_90_plus": "Post-freeze fact family (DWP Stat-Xplore Pension Credit caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", + "dfc_ni.pension_credit.benefit_units": "Post-freeze fact family (DfC Northern Ireland Pension Credit statistics, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069)." }, "suppressed_ancestors": { "hmrc/salary_sacrifice_it_relief_basic_rate": { @@ -1162,7 +1176,21 @@ "dwp.state_pension.recipients_pre_2016_scotland", "dwp.state_pension.recipients_pre_2016_wales", "dwp.state_pension.recipients_new_by_weekly_amount", - "dwp.state_pension.recipients_pre_2016_by_weekly_amount" + "dwp.state_pension.recipients_pre_2016_by_weekly_amount", + "dwp.pension_credit.benefit_units", + "dwp.pension_credit.benefit_units_guarantee_only_couple", + "dwp.pension_credit.benefit_units_guarantee_only_single", + "dwp.pension_credit.benefit_units_savings_only_couple", + "dwp.pension_credit.benefit_units_savings_only_single", + "dwp.pension_credit.benefit_units_both_couple", + "dwp.pension_credit.benefit_units_both_single", + "dwp.pension_credit.benefit_units_65_69", + "dwp.pension_credit.benefit_units_70_74", + "dwp.pension_credit.benefit_units_75_79", + "dwp.pension_credit.benefit_units_80_84", + "dwp.pension_credit.benefit_units_85_89", + "dwp.pension_credit.benefit_units_90_plus", + "dfc_ni.pension_credit.benefit_units" ] }, "profile_parity": { @@ -23945,6 +23973,1697 @@ "value_operation": "monthly_window_average", "period_match_policy": "source_window" }, + { + "target_id": "dwp.pension_credit.benefit_units", + "family": "dwp_pension_credit", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "benunit", + "concept": "uk.benefit_unit.count", + "filters": [ + { + "concept": "uk.benefits.pension_credit.amount", + "operator": ">", + "value": 0 + }, + { + "concept": "uk.geography.country", + "operator": "in", + "value": [ + "england", + "scotland", + "wales" + ] + } + ], + "source_months": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "bindings": { + "policyengine": { + "metric_name": "dwp/pension_credit/benefit_units", + "filters": [ + { + "variable": "pension_credit", + "operator": ">", + "value": 0 + } + ], + "value_variable": "benunit_count", + "from_entity": "benunit", + "household_conditions": [ + { + "variable": "region", + "entity": "household", + "reduce": "any", + "operator": "in", + "value": [ + "NORTH_EAST", + "NORTH_WEST", + "YORKSHIRE", + "EAST_MIDLANDS", + "WEST_MIDLANDS", + "EAST_OF_ENGLAND", + "LONDON", + "SOUTH_EAST", + "SOUTH_WEST", + "WALES", + "SCOTLAND" + ], + "map_to": "benunit" + } + ], + "notes": "DWP Stat-Xplore Pension Credit caseload, Great Britain (claims, one per benefit unit; PolicyEngine/chronicle#302 via #305): every claim in payment in Great Britain, as the mean of the four quarterly points inside calendar 2025 (February, May, August, November), the State Pension window (microcosm#1069 R1). Bound at benefit-unit grain on pension_credit > 0." + }, + "axiom": { + "metric_name": "dwp/pension_credit/benefit_units", + "status": "pending", + "value_rule": "uk.benefit_unit.count" + } + }, + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.pension_credit_caseload" + ], + "source_measure_id": "total_claims", + "groupby_dimension": "dwp.pension_credit_type_partner_age", + "dimensions": [ + "age_bands_and_single_year", + "partner_indicator", + "type_of_pension_credit" + ], + "dimension_values": { + "age_bands_and_single_year": "all", + "partner_indicator": "all", + "type_of_pension_credit": "all" + }, + "entity_name": "benefit_unit", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "category_id": "dwp.pension_credit", + "label": "Pension Credit benefit units, Great Britain", + "value_operation": "monthly_window_average", + "period_match_policy": "source_window" + }, + { + "target_id": "dwp.pension_credit.benefit_units_guarantee_only_couple", + "family": "dwp_pension_credit", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "benunit", + "concept": "uk.benefit_unit.count", + "filters": [ + { + "concept": "uk.benefits.pension_credit.amount", + "operator": ">", + "value": 0 + }, + { + "concept": "uk.benefits.pension_credit.type", + "equals": "guarantee_only" + }, + { + "concept": "uk.benefit_unit.relation_type", + "equals": "couple" + }, + { + "concept": "uk.geography.country", + "operator": "in", + "value": [ + "england", + "scotland", + "wales" + ] + } + ], + "source_months": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "bindings": { + "policyengine": { + "metric_name": "dwp/pension_credit/benefit_units_guarantee_only_couple", + "filters": [ + { + "variable": "pension_credit", + "operator": ">", + "value": 0 + }, + { + "variable": "guarantee_credit", + "operator": ">", + "value": 0 + }, + { + "variable": "savings_credit", + "operator": "<=", + "value": 0 + }, + { + "variable": "relation_type", + "operator": "==", + "value": "COUPLE" + } + ], + "value_variable": "benunit_count", + "from_entity": "benunit", + "household_conditions": [ + { + "variable": "region", + "entity": "household", + "reduce": "any", + "operator": "in", + "value": [ + "NORTH_EAST", + "NORTH_WEST", + "YORKSHIRE", + "EAST_MIDLANDS", + "WEST_MIDLANDS", + "EAST_OF_ENGLAND", + "LONDON", + "SOUTH_EAST", + "SOUTH_WEST", + "WALES", + "SCOTLAND" + ], + "map_to": "benunit" + } + ], + "notes": "DWP Stat-Xplore Pension Credit caseload, Great Britain (claims, one per benefit unit; PolicyEngine/chronicle#302 via #305): claims of Guarantee Credit only by a benefit unit that has a partner, all ages, as the mean of the four quarterly points inside calendar 2025. The type is read from the engine's paid components: Guarantee Credit and Savings Credit are each positive or zero on a unit with Pension Credit in payment; the partner cell is the engine's relation_type (microcosm#1069 c7)." + }, + "axiom": { + "metric_name": "dwp/pension_credit/benefit_units_guarantee_only_couple", + "status": "pending", + "value_rule": "uk.benefit_unit.count" + } + }, + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.pension_credit_caseload" + ], + "source_measure_id": "total_claims", + "groupby_dimension": "dwp.pension_credit_type_partner_age", + "dimensions": [ + "age_bands_and_single_year", + "partner_indicator", + "type_of_pension_credit" + ], + "dimension_values": { + "age_bands_and_single_year": "all", + "partner_indicator": "Has a partner", + "type_of_pension_credit": "Guarantee Credit only" + }, + "entity_name": "benefit_unit", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "category_id": "dwp.pension_credit", + "label": "Pension Credit benefit units, Guarantee Credit only, has a partner", + "value_operation": "monthly_window_average", + "period_match_policy": "source_window" + }, + { + "target_id": "dwp.pension_credit.benefit_units_guarantee_only_single", + "family": "dwp_pension_credit", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "benunit", + "concept": "uk.benefit_unit.count", + "filters": [ + { + "concept": "uk.benefits.pension_credit.amount", + "operator": ">", + "value": 0 + }, + { + "concept": "uk.benefits.pension_credit.type", + "equals": "guarantee_only" + }, + { + "concept": "uk.benefit_unit.relation_type", + "equals": "single" + }, + { + "concept": "uk.geography.country", + "operator": "in", + "value": [ + "england", + "scotland", + "wales" + ] + } + ], + "source_months": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "bindings": { + "policyengine": { + "metric_name": "dwp/pension_credit/benefit_units_guarantee_only_single", + "filters": [ + { + "variable": "pension_credit", + "operator": ">", + "value": 0 + }, + { + "variable": "guarantee_credit", + "operator": ">", + "value": 0 + }, + { + "variable": "savings_credit", + "operator": "<=", + "value": 0 + }, + { + "variable": "relation_type", + "operator": "==", + "value": "SINGLE" + } + ], + "value_variable": "benunit_count", + "from_entity": "benunit", + "household_conditions": [ + { + "variable": "region", + "entity": "household", + "reduce": "any", + "operator": "in", + "value": [ + "NORTH_EAST", + "NORTH_WEST", + "YORKSHIRE", + "EAST_MIDLANDS", + "WEST_MIDLANDS", + "EAST_OF_ENGLAND", + "LONDON", + "SOUTH_EAST", + "SOUTH_WEST", + "WALES", + "SCOTLAND" + ], + "map_to": "benunit" + } + ], + "notes": "DWP Stat-Xplore Pension Credit caseload, Great Britain (claims, one per benefit unit; PolicyEngine/chronicle#302 via #305): claims of Guarantee Credit only by a benefit unit that has no partner, all ages, as the mean of the four quarterly points inside calendar 2025. The type is read from the engine's paid components: Guarantee Credit and Savings Credit are each positive or zero on a unit with Pension Credit in payment; the partner cell is the engine's relation_type (microcosm#1069 c7)." + }, + "axiom": { + "metric_name": "dwp/pension_credit/benefit_units_guarantee_only_single", + "status": "pending", + "value_rule": "uk.benefit_unit.count" + } + }, + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.pension_credit_caseload" + ], + "source_measure_id": "total_claims", + "groupby_dimension": "dwp.pension_credit_type_partner_age", + "dimensions": [ + "age_bands_and_single_year", + "partner_indicator", + "type_of_pension_credit" + ], + "dimension_values": { + "age_bands_and_single_year": "all", + "partner_indicator": "Has no partner", + "type_of_pension_credit": "Guarantee Credit only" + }, + "entity_name": "benefit_unit", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "category_id": "dwp.pension_credit", + "label": "Pension Credit benefit units, Guarantee Credit only, has no partner", + "value_operation": "monthly_window_average", + "period_match_policy": "source_window" + }, + { + "target_id": "dwp.pension_credit.benefit_units_savings_only_couple", + "family": "dwp_pension_credit", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "benunit", + "concept": "uk.benefit_unit.count", + "filters": [ + { + "concept": "uk.benefits.pension_credit.amount", + "operator": ">", + "value": 0 + }, + { + "concept": "uk.benefits.pension_credit.type", + "equals": "savings_only" + }, + { + "concept": "uk.benefit_unit.relation_type", + "equals": "couple" + }, + { + "concept": "uk.geography.country", + "operator": "in", + "value": [ + "england", + "scotland", + "wales" + ] + } + ], + "source_months": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "bindings": { + "policyengine": { + "metric_name": "dwp/pension_credit/benefit_units_savings_only_couple", + "filters": [ + { + "variable": "pension_credit", + "operator": ">", + "value": 0 + }, + { + "variable": "guarantee_credit", + "operator": "<=", + "value": 0 + }, + { + "variable": "savings_credit", + "operator": ">", + "value": 0 + }, + { + "variable": "relation_type", + "operator": "==", + "value": "COUPLE" + } + ], + "value_variable": "benunit_count", + "from_entity": "benunit", + "household_conditions": [ + { + "variable": "region", + "entity": "household", + "reduce": "any", + "operator": "in", + "value": [ + "NORTH_EAST", + "NORTH_WEST", + "YORKSHIRE", + "EAST_MIDLANDS", + "WEST_MIDLANDS", + "EAST_OF_ENGLAND", + "LONDON", + "SOUTH_EAST", + "SOUTH_WEST", + "WALES", + "SCOTLAND" + ], + "map_to": "benunit" + } + ], + "notes": "DWP Stat-Xplore Pension Credit caseload, Great Britain (claims, one per benefit unit; PolicyEngine/chronicle#302 via #305): claims of Savings Credit only by a benefit unit that has a partner, all ages, as the mean of the four quarterly points inside calendar 2025. The type is read from the engine's paid components: Guarantee Credit and Savings Credit are each positive or zero on a unit with Pension Credit in payment; the partner cell is the engine's relation_type (microcosm#1069 c7)." + }, + "axiom": { + "metric_name": "dwp/pension_credit/benefit_units_savings_only_couple", + "status": "pending", + "value_rule": "uk.benefit_unit.count" + } + }, + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.pension_credit_caseload" + ], + "source_measure_id": "total_claims", + "groupby_dimension": "dwp.pension_credit_type_partner_age", + "dimensions": [ + "age_bands_and_single_year", + "partner_indicator", + "type_of_pension_credit" + ], + "dimension_values": { + "age_bands_and_single_year": "all", + "partner_indicator": "Has a partner", + "type_of_pension_credit": "Savings Credit only" + }, + "entity_name": "benefit_unit", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "category_id": "dwp.pension_credit", + "label": "Pension Credit benefit units, Savings Credit only, has a partner", + "value_operation": "monthly_window_average", + "period_match_policy": "source_window" + }, + { + "target_id": "dwp.pension_credit.benefit_units_savings_only_single", + "family": "dwp_pension_credit", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "benunit", + "concept": "uk.benefit_unit.count", + "filters": [ + { + "concept": "uk.benefits.pension_credit.amount", + "operator": ">", + "value": 0 + }, + { + "concept": "uk.benefits.pension_credit.type", + "equals": "savings_only" + }, + { + "concept": "uk.benefit_unit.relation_type", + "equals": "single" + }, + { + "concept": "uk.geography.country", + "operator": "in", + "value": [ + "england", + "scotland", + "wales" + ] + } + ], + "source_months": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "bindings": { + "policyengine": { + "metric_name": "dwp/pension_credit/benefit_units_savings_only_single", + "filters": [ + { + "variable": "pension_credit", + "operator": ">", + "value": 0 + }, + { + "variable": "guarantee_credit", + "operator": "<=", + "value": 0 + }, + { + "variable": "savings_credit", + "operator": ">", + "value": 0 + }, + { + "variable": "relation_type", + "operator": "==", + "value": "SINGLE" + } + ], + "value_variable": "benunit_count", + "from_entity": "benunit", + "household_conditions": [ + { + "variable": "region", + "entity": "household", + "reduce": "any", + "operator": "in", + "value": [ + "NORTH_EAST", + "NORTH_WEST", + "YORKSHIRE", + "EAST_MIDLANDS", + "WEST_MIDLANDS", + "EAST_OF_ENGLAND", + "LONDON", + "SOUTH_EAST", + "SOUTH_WEST", + "WALES", + "SCOTLAND" + ], + "map_to": "benunit" + } + ], + "notes": "DWP Stat-Xplore Pension Credit caseload, Great Britain (claims, one per benefit unit; PolicyEngine/chronicle#302 via #305): claims of Savings Credit only by a benefit unit that has no partner, all ages, as the mean of the four quarterly points inside calendar 2025. The type is read from the engine's paid components: Guarantee Credit and Savings Credit are each positive or zero on a unit with Pension Credit in payment; the partner cell is the engine's relation_type (microcosm#1069 c7)." + }, + "axiom": { + "metric_name": "dwp/pension_credit/benefit_units_savings_only_single", + "status": "pending", + "value_rule": "uk.benefit_unit.count" + } + }, + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.pension_credit_caseload" + ], + "source_measure_id": "total_claims", + "groupby_dimension": "dwp.pension_credit_type_partner_age", + "dimensions": [ + "age_bands_and_single_year", + "partner_indicator", + "type_of_pension_credit" + ], + "dimension_values": { + "age_bands_and_single_year": "all", + "partner_indicator": "Has no partner", + "type_of_pension_credit": "Savings Credit only" + }, + "entity_name": "benefit_unit", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "category_id": "dwp.pension_credit", + "label": "Pension Credit benefit units, Savings Credit only, has no partner", + "value_operation": "monthly_window_average", + "period_match_policy": "source_window" + }, + { + "target_id": "dwp.pension_credit.benefit_units_both_couple", + "family": "dwp_pension_credit", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "benunit", + "concept": "uk.benefit_unit.count", + "filters": [ + { + "concept": "uk.benefits.pension_credit.amount", + "operator": ">", + "value": 0 + }, + { + "concept": "uk.benefits.pension_credit.type", + "equals": "both" + }, + { + "concept": "uk.benefit_unit.relation_type", + "equals": "couple" + }, + { + "concept": "uk.geography.country", + "operator": "in", + "value": [ + "england", + "scotland", + "wales" + ] + } + ], + "source_months": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "bindings": { + "policyengine": { + "metric_name": "dwp/pension_credit/benefit_units_both_couple", + "filters": [ + { + "variable": "pension_credit", + "operator": ">", + "value": 0 + }, + { + "variable": "guarantee_credit", + "operator": ">", + "value": 0 + }, + { + "variable": "savings_credit", + "operator": ">", + "value": 0 + }, + { + "variable": "relation_type", + "operator": "==", + "value": "COUPLE" + } + ], + "value_variable": "benunit_count", + "from_entity": "benunit", + "household_conditions": [ + { + "variable": "region", + "entity": "household", + "reduce": "any", + "operator": "in", + "value": [ + "NORTH_EAST", + "NORTH_WEST", + "YORKSHIRE", + "EAST_MIDLANDS", + "WEST_MIDLANDS", + "EAST_OF_ENGLAND", + "LONDON", + "SOUTH_EAST", + "SOUTH_WEST", + "WALES", + "SCOTLAND" + ], + "map_to": "benunit" + } + ], + "notes": "DWP Stat-Xplore Pension Credit caseload, Great Britain (claims, one per benefit unit; PolicyEngine/chronicle#302 via #305): claims of Both Guarantee and Savings Credit by a benefit unit that has a partner, all ages, as the mean of the four quarterly points inside calendar 2025. The type is read from the engine's paid components: Guarantee Credit and Savings Credit are each positive or zero on a unit with Pension Credit in payment; the partner cell is the engine's relation_type (microcosm#1069 c7)." + }, + "axiom": { + "metric_name": "dwp/pension_credit/benefit_units_both_couple", + "status": "pending", + "value_rule": "uk.benefit_unit.count" + } + }, + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.pension_credit_caseload" + ], + "source_measure_id": "total_claims", + "groupby_dimension": "dwp.pension_credit_type_partner_age", + "dimensions": [ + "age_bands_and_single_year", + "partner_indicator", + "type_of_pension_credit" + ], + "dimension_values": { + "age_bands_and_single_year": "all", + "partner_indicator": "Has a partner", + "type_of_pension_credit": "Both Guarantee and Savings Credit" + }, + "entity_name": "benefit_unit", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "category_id": "dwp.pension_credit", + "label": "Pension Credit benefit units, Both Guarantee and Savings Credit, has a partner", + "value_operation": "monthly_window_average", + "period_match_policy": "source_window" + }, + { + "target_id": "dwp.pension_credit.benefit_units_both_single", + "family": "dwp_pension_credit", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "benunit", + "concept": "uk.benefit_unit.count", + "filters": [ + { + "concept": "uk.benefits.pension_credit.amount", + "operator": ">", + "value": 0 + }, + { + "concept": "uk.benefits.pension_credit.type", + "equals": "both" + }, + { + "concept": "uk.benefit_unit.relation_type", + "equals": "single" + }, + { + "concept": "uk.geography.country", + "operator": "in", + "value": [ + "england", + "scotland", + "wales" + ] + } + ], + "source_months": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "bindings": { + "policyengine": { + "metric_name": "dwp/pension_credit/benefit_units_both_single", + "filters": [ + { + "variable": "pension_credit", + "operator": ">", + "value": 0 + }, + { + "variable": "guarantee_credit", + "operator": ">", + "value": 0 + }, + { + "variable": "savings_credit", + "operator": ">", + "value": 0 + }, + { + "variable": "relation_type", + "operator": "==", + "value": "SINGLE" + } + ], + "value_variable": "benunit_count", + "from_entity": "benunit", + "household_conditions": [ + { + "variable": "region", + "entity": "household", + "reduce": "any", + "operator": "in", + "value": [ + "NORTH_EAST", + "NORTH_WEST", + "YORKSHIRE", + "EAST_MIDLANDS", + "WEST_MIDLANDS", + "EAST_OF_ENGLAND", + "LONDON", + "SOUTH_EAST", + "SOUTH_WEST", + "WALES", + "SCOTLAND" + ], + "map_to": "benunit" + } + ], + "notes": "DWP Stat-Xplore Pension Credit caseload, Great Britain (claims, one per benefit unit; PolicyEngine/chronicle#302 via #305): claims of Both Guarantee and Savings Credit by a benefit unit that has no partner, all ages, as the mean of the four quarterly points inside calendar 2025. The type is read from the engine's paid components: Guarantee Credit and Savings Credit are each positive or zero on a unit with Pension Credit in payment; the partner cell is the engine's relation_type (microcosm#1069 c7)." + }, + "axiom": { + "metric_name": "dwp/pension_credit/benefit_units_both_single", + "status": "pending", + "value_rule": "uk.benefit_unit.count" + } + }, + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.pension_credit_caseload" + ], + "source_measure_id": "total_claims", + "groupby_dimension": "dwp.pension_credit_type_partner_age", + "dimensions": [ + "age_bands_and_single_year", + "partner_indicator", + "type_of_pension_credit" + ], + "dimension_values": { + "age_bands_and_single_year": "all", + "partner_indicator": "Has no partner", + "type_of_pension_credit": "Both Guarantee and Savings Credit" + }, + "entity_name": "benefit_unit", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "category_id": "dwp.pension_credit", + "label": "Pension Credit benefit units, Both Guarantee and Savings Credit, has no partner", + "value_operation": "monthly_window_average", + "period_match_policy": "source_window" + }, + { + "target_id": "dwp.pension_credit.benefit_units_65_69", + "family": "dwp_pension_credit", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "benunit", + "concept": "uk.benefit_unit.count", + "filters": [ + { + "concept": "uk.benefits.pension_credit.amount", + "operator": ">", + "value": 0 + }, + { + "concept": "uk.demographics.age", + "operator": ">=", + "value": 65 + }, + { + "concept": "uk.demographics.age", + "operator": "<=", + "value": 69 + }, + { + "concept": "uk.geography.country", + "operator": "in", + "value": [ + "england", + "scotland", + "wales" + ] + } + ], + "source_months": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "bindings": { + "policyengine": { + "metric_name": "dwp/pension_credit/benefit_units_65_69", + "filters": [ + { + "variable": "pension_credit", + "operator": ">", + "value": 0 + }, + { + "variable": "eldest_adult_age", + "operator": ">=", + "value": 65 + }, + { + "variable": "eldest_adult_age", + "operator": "<=", + "value": 69 + } + ], + "value_variable": "benunit_count", + "from_entity": "benunit", + "household_conditions": [ + { + "variable": "region", + "entity": "household", + "reduce": "any", + "operator": "in", + "value": [ + "NORTH_EAST", + "NORTH_WEST", + "YORKSHIRE", + "EAST_MIDLANDS", + "WEST_MIDLANDS", + "EAST_OF_ENGLAND", + "LONDON", + "SOUTH_EAST", + "SOUTH_WEST", + "WALES", + "SCOTLAND" + ], + "map_to": "benunit" + } + ], + "notes": "DWP Stat-Xplore Pension Credit caseload, Great Britain (claims, one per benefit unit; PolicyEngine/chronicle#302 via #305): claims whose claimant is aged 65-69, every type and partner status, as the mean of the four quarterly points inside calendar 2025. The engine reads the age of the benefit unit's eldest adult: both partners must have reached State Pension age to claim, so the claimant and the eldest adult share the band except where a couple straddles a band edge (microcosm#1069 c7)." + }, + "axiom": { + "metric_name": "dwp/pension_credit/benefit_units_65_69", + "status": "pending", + "value_rule": "uk.benefit_unit.count" + } + }, + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.pension_credit_caseload" + ], + "source_measure_id": "total_claims", + "groupby_dimension": "dwp.pension_credit_type_partner_age", + "dimensions": [ + "age_bands_and_single_year", + "partner_indicator", + "type_of_pension_credit" + ], + "dimension_values": { + "age_bands_and_single_year": "65-69", + "partner_indicator": "all", + "type_of_pension_credit": "all" + }, + "entity_name": "benefit_unit", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "category_id": "dwp.pension_credit", + "label": "Pension Credit benefit units, claimant aged 65 to 69", + "value_operation": "monthly_window_average", + "period_match_policy": "source_window" + }, + { + "target_id": "dwp.pension_credit.benefit_units_70_74", + "family": "dwp_pension_credit", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "benunit", + "concept": "uk.benefit_unit.count", + "filters": [ + { + "concept": "uk.benefits.pension_credit.amount", + "operator": ">", + "value": 0 + }, + { + "concept": "uk.demographics.age", + "operator": ">=", + "value": 70 + }, + { + "concept": "uk.demographics.age", + "operator": "<=", + "value": 74 + }, + { + "concept": "uk.geography.country", + "operator": "in", + "value": [ + "england", + "scotland", + "wales" + ] + } + ], + "source_months": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "bindings": { + "policyengine": { + "metric_name": "dwp/pension_credit/benefit_units_70_74", + "filters": [ + { + "variable": "pension_credit", + "operator": ">", + "value": 0 + }, + { + "variable": "eldest_adult_age", + "operator": ">=", + "value": 70 + }, + { + "variable": "eldest_adult_age", + "operator": "<=", + "value": 74 + } + ], + "value_variable": "benunit_count", + "from_entity": "benunit", + "household_conditions": [ + { + "variable": "region", + "entity": "household", + "reduce": "any", + "operator": "in", + "value": [ + "NORTH_EAST", + "NORTH_WEST", + "YORKSHIRE", + "EAST_MIDLANDS", + "WEST_MIDLANDS", + "EAST_OF_ENGLAND", + "LONDON", + "SOUTH_EAST", + "SOUTH_WEST", + "WALES", + "SCOTLAND" + ], + "map_to": "benunit" + } + ], + "notes": "DWP Stat-Xplore Pension Credit caseload, Great Britain (claims, one per benefit unit; PolicyEngine/chronicle#302 via #305): claims whose claimant is aged 70-74, every type and partner status, as the mean of the four quarterly points inside calendar 2025. The engine reads the age of the benefit unit's eldest adult: both partners must have reached State Pension age to claim, so the claimant and the eldest adult share the band except where a couple straddles a band edge (microcosm#1069 c7)." + }, + "axiom": { + "metric_name": "dwp/pension_credit/benefit_units_70_74", + "status": "pending", + "value_rule": "uk.benefit_unit.count" + } + }, + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.pension_credit_caseload" + ], + "source_measure_id": "total_claims", + "groupby_dimension": "dwp.pension_credit_type_partner_age", + "dimensions": [ + "age_bands_and_single_year", + "partner_indicator", + "type_of_pension_credit" + ], + "dimension_values": { + "age_bands_and_single_year": "70-74", + "partner_indicator": "all", + "type_of_pension_credit": "all" + }, + "entity_name": "benefit_unit", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "category_id": "dwp.pension_credit", + "label": "Pension Credit benefit units, claimant aged 70 to 74", + "value_operation": "monthly_window_average", + "period_match_policy": "source_window" + }, + { + "target_id": "dwp.pension_credit.benefit_units_75_79", + "family": "dwp_pension_credit", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "benunit", + "concept": "uk.benefit_unit.count", + "filters": [ + { + "concept": "uk.benefits.pension_credit.amount", + "operator": ">", + "value": 0 + }, + { + "concept": "uk.demographics.age", + "operator": ">=", + "value": 75 + }, + { + "concept": "uk.demographics.age", + "operator": "<=", + "value": 79 + }, + { + "concept": "uk.geography.country", + "operator": "in", + "value": [ + "england", + "scotland", + "wales" + ] + } + ], + "source_months": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "bindings": { + "policyengine": { + "metric_name": "dwp/pension_credit/benefit_units_75_79", + "filters": [ + { + "variable": "pension_credit", + "operator": ">", + "value": 0 + }, + { + "variable": "eldest_adult_age", + "operator": ">=", + "value": 75 + }, + { + "variable": "eldest_adult_age", + "operator": "<=", + "value": 79 + } + ], + "value_variable": "benunit_count", + "from_entity": "benunit", + "household_conditions": [ + { + "variable": "region", + "entity": "household", + "reduce": "any", + "operator": "in", + "value": [ + "NORTH_EAST", + "NORTH_WEST", + "YORKSHIRE", + "EAST_MIDLANDS", + "WEST_MIDLANDS", + "EAST_OF_ENGLAND", + "LONDON", + "SOUTH_EAST", + "SOUTH_WEST", + "WALES", + "SCOTLAND" + ], + "map_to": "benunit" + } + ], + "notes": "DWP Stat-Xplore Pension Credit caseload, Great Britain (claims, one per benefit unit; PolicyEngine/chronicle#302 via #305): claims whose claimant is aged 75-79, every type and partner status, as the mean of the four quarterly points inside calendar 2025. The engine reads the age of the benefit unit's eldest adult: both partners must have reached State Pension age to claim, so the claimant and the eldest adult share the band except where a couple straddles a band edge (microcosm#1069 c7)." + }, + "axiom": { + "metric_name": "dwp/pension_credit/benefit_units_75_79", + "status": "pending", + "value_rule": "uk.benefit_unit.count" + } + }, + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.pension_credit_caseload" + ], + "source_measure_id": "total_claims", + "groupby_dimension": "dwp.pension_credit_type_partner_age", + "dimensions": [ + "age_bands_and_single_year", + "partner_indicator", + "type_of_pension_credit" + ], + "dimension_values": { + "age_bands_and_single_year": "75-79", + "partner_indicator": "all", + "type_of_pension_credit": "all" + }, + "entity_name": "benefit_unit", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "category_id": "dwp.pension_credit", + "label": "Pension Credit benefit units, claimant aged 75 to 79", + "value_operation": "monthly_window_average", + "period_match_policy": "source_window" + }, + { + "target_id": "dwp.pension_credit.benefit_units_80_84", + "family": "dwp_pension_credit", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "benunit", + "concept": "uk.benefit_unit.count", + "filters": [ + { + "concept": "uk.benefits.pension_credit.amount", + "operator": ">", + "value": 0 + }, + { + "concept": "uk.demographics.age", + "operator": ">=", + "value": 80 + }, + { + "concept": "uk.demographics.age", + "operator": "<=", + "value": 84 + }, + { + "concept": "uk.geography.country", + "operator": "in", + "value": [ + "england", + "scotland", + "wales" + ] + } + ], + "source_months": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "bindings": { + "policyengine": { + "metric_name": "dwp/pension_credit/benefit_units_80_84", + "filters": [ + { + "variable": "pension_credit", + "operator": ">", + "value": 0 + }, + { + "variable": "eldest_adult_age", + "operator": ">=", + "value": 80 + }, + { + "variable": "eldest_adult_age", + "operator": "<=", + "value": 84 + } + ], + "value_variable": "benunit_count", + "from_entity": "benunit", + "household_conditions": [ + { + "variable": "region", + "entity": "household", + "reduce": "any", + "operator": "in", + "value": [ + "NORTH_EAST", + "NORTH_WEST", + "YORKSHIRE", + "EAST_MIDLANDS", + "WEST_MIDLANDS", + "EAST_OF_ENGLAND", + "LONDON", + "SOUTH_EAST", + "SOUTH_WEST", + "WALES", + "SCOTLAND" + ], + "map_to": "benunit" + } + ], + "notes": "DWP Stat-Xplore Pension Credit caseload, Great Britain (claims, one per benefit unit; PolicyEngine/chronicle#302 via #305): claims whose claimant is aged 80-84, every type and partner status, as the mean of the four quarterly points inside calendar 2025. The engine reads the age of the benefit unit's eldest adult: both partners must have reached State Pension age to claim, so the claimant and the eldest adult share the band except where a couple straddles a band edge (microcosm#1069 c7)." + }, + "axiom": { + "metric_name": "dwp/pension_credit/benefit_units_80_84", + "status": "pending", + "value_rule": "uk.benefit_unit.count" + } + }, + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.pension_credit_caseload" + ], + "source_measure_id": "total_claims", + "groupby_dimension": "dwp.pension_credit_type_partner_age", + "dimensions": [ + "age_bands_and_single_year", + "partner_indicator", + "type_of_pension_credit" + ], + "dimension_values": { + "age_bands_and_single_year": "80-84", + "partner_indicator": "all", + "type_of_pension_credit": "all" + }, + "entity_name": "benefit_unit", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "category_id": "dwp.pension_credit", + "label": "Pension Credit benefit units, claimant aged 80 to 84", + "value_operation": "monthly_window_average", + "period_match_policy": "source_window" + }, + { + "target_id": "dwp.pension_credit.benefit_units_85_89", + "family": "dwp_pension_credit", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "benunit", + "concept": "uk.benefit_unit.count", + "filters": [ + { + "concept": "uk.benefits.pension_credit.amount", + "operator": ">", + "value": 0 + }, + { + "concept": "uk.demographics.age", + "operator": ">=", + "value": 85 + }, + { + "concept": "uk.demographics.age", + "operator": "<=", + "value": 89 + }, + { + "concept": "uk.geography.country", + "operator": "in", + "value": [ + "england", + "scotland", + "wales" + ] + } + ], + "source_months": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "bindings": { + "policyengine": { + "metric_name": "dwp/pension_credit/benefit_units_85_89", + "filters": [ + { + "variable": "pension_credit", + "operator": ">", + "value": 0 + }, + { + "variable": "eldest_adult_age", + "operator": ">=", + "value": 85 + }, + { + "variable": "eldest_adult_age", + "operator": "<=", + "value": 89 + } + ], + "value_variable": "benunit_count", + "from_entity": "benunit", + "household_conditions": [ + { + "variable": "region", + "entity": "household", + "reduce": "any", + "operator": "in", + "value": [ + "NORTH_EAST", + "NORTH_WEST", + "YORKSHIRE", + "EAST_MIDLANDS", + "WEST_MIDLANDS", + "EAST_OF_ENGLAND", + "LONDON", + "SOUTH_EAST", + "SOUTH_WEST", + "WALES", + "SCOTLAND" + ], + "map_to": "benunit" + } + ], + "notes": "DWP Stat-Xplore Pension Credit caseload, Great Britain (claims, one per benefit unit; PolicyEngine/chronicle#302 via #305): claims whose claimant is aged 85-89, every type and partner status, as the mean of the four quarterly points inside calendar 2025. The engine reads the age of the benefit unit's eldest adult: both partners must have reached State Pension age to claim, so the claimant and the eldest adult share the band except where a couple straddles a band edge (microcosm#1069 c7)." + }, + "axiom": { + "metric_name": "dwp/pension_credit/benefit_units_85_89", + "status": "pending", + "value_rule": "uk.benefit_unit.count" + } + }, + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.pension_credit_caseload" + ], + "source_measure_id": "total_claims", + "groupby_dimension": "dwp.pension_credit_type_partner_age", + "dimensions": [ + "age_bands_and_single_year", + "partner_indicator", + "type_of_pension_credit" + ], + "dimension_values": { + "age_bands_and_single_year": "85-89", + "partner_indicator": "all", + "type_of_pension_credit": "all" + }, + "entity_name": "benefit_unit", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "category_id": "dwp.pension_credit", + "label": "Pension Credit benefit units, claimant aged 85 to 89", + "value_operation": "monthly_window_average", + "period_match_policy": "source_window" + }, + { + "target_id": "dwp.pension_credit.benefit_units_90_plus", + "family": "dwp_pension_credit", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "benunit", + "concept": "uk.benefit_unit.count", + "filters": [ + { + "concept": "uk.benefits.pension_credit.amount", + "operator": ">", + "value": 0 + }, + { + "concept": "uk.demographics.age", + "operator": ">=", + "value": 90 + }, + { + "concept": "uk.geography.country", + "operator": "in", + "value": [ + "england", + "scotland", + "wales" + ] + } + ], + "source_months": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "bindings": { + "policyengine": { + "metric_name": "dwp/pension_credit/benefit_units_90_plus", + "filters": [ + { + "variable": "pension_credit", + "operator": ">", + "value": 0 + }, + { + "variable": "eldest_adult_age", + "operator": ">=", + "value": 90 + } + ], + "value_variable": "benunit_count", + "from_entity": "benunit", + "household_conditions": [ + { + "variable": "region", + "entity": "household", + "reduce": "any", + "operator": "in", + "value": [ + "NORTH_EAST", + "NORTH_WEST", + "YORKSHIRE", + "EAST_MIDLANDS", + "WEST_MIDLANDS", + "EAST_OF_ENGLAND", + "LONDON", + "SOUTH_EAST", + "SOUTH_WEST", + "WALES", + "SCOTLAND" + ], + "map_to": "benunit" + } + ], + "notes": "DWP Stat-Xplore Pension Credit caseload, Great Britain (claims, one per benefit unit; PolicyEngine/chronicle#302 via #305): claims whose claimant is aged 90 and over, every type and partner status, as the mean of the four quarterly points inside calendar 2025. The engine reads the age of the benefit unit's eldest adult: both partners must have reached State Pension age to claim, so the claimant and the eldest adult share the band except where a couple straddles a band edge (microcosm#1069 c7)." + }, + "axiom": { + "metric_name": "dwp/pension_credit/benefit_units_90_plus", + "status": "pending", + "value_rule": "uk.benefit_unit.count" + } + }, + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.pension_credit_caseload" + ], + "source_measure_id": "total_claims", + "groupby_dimension": "dwp.pension_credit_type_partner_age", + "dimensions": [ + "age_bands_and_single_year", + "partner_indicator", + "type_of_pension_credit" + ], + "dimension_values": { + "age_bands_and_single_year": "90 and over", + "partner_indicator": "all", + "type_of_pension_credit": "all" + }, + "entity_name": "benefit_unit", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "category_id": "dwp.pension_credit", + "label": "Pension Credit benefit units, claimant aged 90 and over", + "value_operation": "monthly_window_average", + "period_match_policy": "source_window" + }, + { + "target_id": "dfc_ni.pension_credit.benefit_units", + "family": "dwp_pension_credit", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "benunit", + "concept": "uk.benefit_unit.count", + "filters": [ + { + "concept": "uk.benefits.pension_credit.amount", + "operator": ">", + "value": 0 + }, + { + "concept": "uk.geography.country", + "equals": "northern_ireland" + } + ], + "source_months": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "bindings": { + "policyengine": { + "metric_name": "dfc_ni/pension_credit/benefit_units", + "filters": [ + { + "variable": "pension_credit", + "operator": ">", + "value": 0 + } + ], + "value_variable": "benunit_count", + "from_entity": "benunit", + "household_conditions": [ + { + "variable": "region", + "entity": "household", + "reduce": "any", + "operator": "==", + "value": "NORTHERN_IRELAND", + "map_to": "benunit" + } + ], + "notes": "DfC Northern Ireland benefit statistics, Pension Credit claimants (PolicyEngine/chronicle#302 via #305): all claimants (one claim per benefit unit), as the mean of the four quarterly points inside calendar 2025. With the Great Britain rows it completes the UK caseload (microcosm#1069 c7)." + }, + "axiom": { + "metric_name": "dfc_ni/pension_credit/benefit_units", + "status": "pending", + "value_rule": "uk.benefit_unit.count" + } + }, + "ledger_selector": { + "source_name": "dfc_ni", + "source_concept": [ + "dfc_ni.pension_credit_claimants" + ], + "source_measure_id": "claimants_all", + "dimensions": [], + "entity_name": "benefit_unit", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "category_id": "dfc_ni.pension_credit", + "label": "Pension Credit benefit units, Northern Ireland", + "value_operation": "monthly_window_average", + "period_match_policy": "source_window" + }, { "target_id": "hmrc.self_employment_income.amount", "family": "hmrc", @@ -27207,6 +28926,14 @@ "dfc_ni.state_pension": { "provider_id": "dfc_ni", "label": "State Pension" + }, + "dwp.pension_credit": { + "provider_id": "dwp", + "label": "Pension Credit" + }, + "dfc_ni.pension_credit": { + "provider_id": "dfc_ni", + "label": "Pension Credit" } } } diff --git a/packages/microcosm-build/src/microcosm/build/uk_runtime/battery_bindings.py b/packages/microcosm-build/src/microcosm/build/uk_runtime/battery_bindings.py index 98cd670c5..d301381da 100644 --- a/packages/microcosm-build/src/microcosm/build/uk_runtime/battery_bindings.py +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/battery_bindings.py @@ -1619,6 +1619,9 @@ def _ledger_compile_parity_required_artifacts( "spi_prior_mass_share", # microcosm#1069 c6 spi_support_channel stage-health check. "pension_age_spi_prior_mass_share", + # microcosm#1069 c7 pension_credit_take_up stage-health check. + "maximum_take_up_deviation", + "minimum_entitled_units", "absolute_tolerance", "household_weight_kind", "minimum_spi_households", diff --git a/packages/microcosm-build/src/microcosm/build/uk_runtime/calibration_run.py b/packages/microcosm-build/src/microcosm/build/uk_runtime/calibration_run.py index b44ba665e..ef4dbd5b4 100644 --- a/packages/microcosm-build/src/microcosm/build/uk_runtime/calibration_run.py +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/calibration_run.py @@ -102,6 +102,7 @@ "uk_stage_frs_hmrc_spine_leaves_signal", "uk_stage_spi_support_channel_mass", "uk_stage_hmrc_spi_income_spine_identity", + "uk_stage_pension_credit_take_up", "uk_stage_cgt_incidence_clone_mass", "uk_stage_cgt_support_split_mass", "uk_stage_spi_income_band_donors_support", diff --git a/packages/microcosm-build/src/microcosm/build/uk_runtime/frs_take_up.py b/packages/microcosm-build/src/microcosm/build/uk_runtime/frs_take_up.py index 4fe2379fd..338422e6a 100644 --- a/packages/microcosm-build/src/microcosm/build/uk_runtime/frs_take_up.py +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/frs_take_up.py @@ -71,10 +71,12 @@ "single": "uc_childcare_single", "couple": "uc_childcare_couple", } +# would_claim_pc is redrawn after the SPI chain by ``pension_credit_take_up``, +# whose rates are shares of the entitled units the engine finds; its stage +# gate measures them, so the terminal signal gate does not (microcosm#1069 R9). UK_TAKE_UP_SIGNAL_OUTPUTS = ( ("benunit", "would_claim_child_benefit", "child_benefit"), ("benunit", "child_benefit_opts_out", "child_benefit_opts_out_rate"), - ("benunit", "would_claim_pc", "pension_credit"), ("benunit", "would_claim_uc", "universal_credit"), ("benunit", "would_claim_tfc", "tax_free_childcare"), ("benunit", "would_claim_extended_childcare", "extended_childcare"), 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 c71851c4c..6fcdcc9a8 100644 --- a/packages/microcosm-build/src/microcosm/build/uk_runtime/graph.py +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/graph.py @@ -102,6 +102,9 @@ "spi_housing_shell", "uc_reporter_redraw", "uc_capital_coherence", + # The Pension Credit redraw rewrites ``frs_take_up``'s would_claim_pc, + # which the open-surface readers before it bind (microcosm#1069). + "pension_credit_take_up", # ``frs_education_grant_split`` rewrites the root cell # ``education_grants`` that the open-surface ``frs_legacy_proxies`` # reader already bound to. In the root version that rewrite opened a @@ -262,6 +265,9 @@ # Runs one temporary engine materialization over the whole frame for its # award screen, so its input surface is genuinely open. "uc_reporter_redraw": None, + # One temporary engine materialization of Pension Credit entitlement over + # the whole frame: an open surface, like the UC award screen. + "pension_credit_take_up": None, "uc_capital_coherence": frozenset( { ("person", "is_benunit_head"), @@ -759,6 +765,7 @@ def _cells( _Cell("benunit", "frs_benunit_capital", "float64"), _Cell("benunit", "would_claim_uc", "bool"), ), + "pension_credit_take_up": (_Cell("benunit", "would_claim_pc", "bool"),), "uc_deduction_attributes": ( _Cell("benunit", "uc_deduction_random_draw", "float64"), _Cell("benunit", "uc_deduction_type_random_draw", "float64"), diff --git a/packages/microcosm-build/src/microcosm/build/uk_runtime/graph_kernels.py b/packages/microcosm-build/src/microcosm/build/uk_runtime/graph_kernels.py index 92d119613..357d4a739 100644 --- a/packages/microcosm-build/src/microcosm/build/uk_runtime/graph_kernels.py +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/graph_kernels.py @@ -45,7 +45,13 @@ from microcosm.graph.population import dtype_for_token from .. import stage_evidence -from . import bus_use_incidence, frs_hmrc_source, uc_relationships, was_wealth +from . import ( + bus_use_incidence, + frs_hmrc_source, + uc_capital_coherence, + uc_relationships, + was_wealth, +) from .national_frame import UK_NATIONAL_SCHEMA from .rowwise_geography import id_multiplier_for_values @@ -90,6 +96,7 @@ "spi_housing_shell": "spi_housing_shell", "uc_reporter_redraw": "uc_reporter_redraw", "uc_capital_coherence": "uc_capital_coherence", + "pension_credit_take_up": "pension_credit_take_up", "uc_deduction_attributes": "uc_deduction_attributes", "cgt_support_split": "cgt_support", "cgt_incidence_clone": "cgt_structure", @@ -119,6 +126,9 @@ "etb_services": (uk_engine_adapter,), "uc_reporter_redraw": (uc_relationships, uk_engine_adapter), "uc_capital_coherence": (uc_relationships,), + # The Pension Credit redraw reuses the UC stage's household-to-benefit-unit + # weight mapping and the adapter's engine materialization. + "pension_credit_take_up": (uc_capital_coherence, uk_engine_adapter), } _COMPUTE = Capabilities( @@ -390,7 +400,7 @@ def _fixture_descriptor( missing = sorted(set(_STAGE_MODULES) - set(stages)) extra = sorted(set(stages) - set(_STAGE_MODULES)) raise ValueError( - "UK parity fixture must describe the current 35-stage spine " + "UK parity fixture must describe the current 36-stage spine " f"(missing={missing}, extra={extra})." ) return descriptor, stages @@ -424,6 +434,7 @@ def _fixture_implementations(source: Path) -> Mapping[str, object]: from .frs_take_up import UKFRSTakeUpStageTransform from .lcfs_consumption import UKLCFSConsumptionStageTransform from .nts_bus_travel import UKNTSBusTravelStageTransform + from .pension_credit_take_up import UKPensionCreditTakeUpStageTransform from .regional_uprating import UKRegionalPropertyUpratingStageTransform from .salary_sacrifice import UKSalarySacrificeStageTransform from .spi_band_donors import UKSPIIncomeBandDonorStageTransform @@ -605,6 +616,9 @@ def _fixture_implementations(source: Path) -> Mapping[str, object]: "uc_capital_coherence": UKUCCapitalCoherenceStageTransform( stage=stages["uc_capital_coherence"] ), + "pension_credit_take_up": UKPensionCreditTakeUpStageTransform( + stage=stages["pension_credit_take_up"], engine=engine + ), "uc_deduction_attributes": UKUCDeductionAttributesStageTransform( stage=stages["uc_deduction_attributes"] ), diff --git a/packages/microcosm-build/src/microcosm/build/uk_runtime/pension_credit_take_up.py b/packages/microcosm-build/src/microcosm/build/uk_runtime/pension_credit_take_up.py new file mode 100644 index 000000000..e95767d8b --- /dev/null +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/pension_credit_take_up.py @@ -0,0 +1,360 @@ +"""Pension Credit take-up by component on post-SPI incomes (microcosm#1069 R9). + +``frs_take_up`` draws ``would_claim_pc`` early, on FRS incomes, so the engine +simulations of the intermediate stages see a value. This stage redraws it once +the SPI income chain has set the incomes the engine assesses. One temporary +engine materialization gives each benefit unit's pre-take-up Pension Credit +entitlement; the entitled units fall into two component bands, as DWP reports +take-up: Guarantee Credit (with or without Savings Credit) and Savings Credit +only. Within a band a reporter always claims and the other entitled units claim +at the residual rate + + r = (t * E - R) / (E - R), + +with t the band's DWP caseload take-up rate, E the band's entitled units and R +the reporters among them, both weighted at the stage's household weights, so +reporters plus drawn claimants make up t of the band (or more, where reporters +alone exceed it; the receipt says so). A unit with no entitlement claims only +if it reports. The uniform draw is the ``would_claim_pc`` identity stream +``frs_take_up`` uses. +""" + +from __future__ import annotations + +from collections.abc import Mapping +from dataclasses import dataclass, field + +import numpy as np +import pandas as pd + +from microcosm.build.source_manifest import SourceStageSpec +from microcosm.build.stochastic_assignment import stable_identity_uniforms +from microcosm.build.uk_runtime.national_frame import ( + uk_household_weight_kind, + uk_national_frame, + uk_time_period, + validate_uk_national_frame, +) +from microcosm.build.uk_runtime.take_up_contract import ( + UKTakeUpContract, + load_uk_take_up_contract, +) +from microcosm.build.uk_runtime.uc_capital_coherence import ( + _household_to_benunit_weights, +) +from microcosm.frame import Frame +from microcosm.frame.rules import assert_rules_engine_country + +PENSION_CREDIT_TAKE_UP_STAGE_NAME = "pension_credit_take_up" +PENSION_CREDIT_TAKE_UP_OUTPUT = "would_claim_pc" +PENSION_CREDIT_TAKE_UP_SEED = 0 +PENSION_CREDIT_ENTITLEMENT_VARIABLES = ( + "guarantee_credit", + "savings_credit", + "is_pension_credit_eligible", +) +PENSION_CREDIT_REPORTED_ANCHOR = "pension_credit_reported_anchor" +PENSION_CREDIT_AGGREGATES = {PENSION_CREDIT_REPORTED_ANCHOR: "pension_credit_reported"} +#: The component bands, in the order DWP reports take-up, with their rules and +#: the take-up contract keys of their rates. +PENSION_CREDIT_TAKE_UP_BANDS = ( + { + "name": "guarantee_credit", + "rule": "is_pension_credit_eligible AND guarantee_credit > 0", + "rate_key": "pension_credit_guarantee_credit", + }, + { + "name": "savings_credit_only", + "rule": ( + "is_pension_credit_eligible AND guarantee_credit <= 0 " + "AND savings_credit > 0" + ), + "rate_key": "pension_credit_savings_credit_only", + }, +) +PENSION_CREDIT_RESIDUAL_RATE = "(rate * entitled - reporters) / (entitled - reporters), weighted, clipped to [0, 1]" + + +@dataclass(frozen=True) +class UKPensionCreditTakeUpResult: + """Output frame and executed-effect receipt for the Pension Credit redraw.""" + + frame: Frame + bands: tuple[Mapping[str, object], ...] + reporters_without_entitlement: Mapping[str, float] + changed_units: int + + def evidence(self) -> dict[str, object]: + return { + "stage": PENSION_CREDIT_TAKE_UP_STAGE_NAME, + "seed": PENSION_CREDIT_TAKE_UP_SEED, + "residual_rate": PENSION_CREDIT_RESIDUAL_RATE, + "bands": [dict(band) for band in self.bands], + "reporters_without_entitlement": dict(self.reporters_without_entitlement), + "changed_units": self.changed_units, + } + + +@dataclass(frozen=True) +class UKPensionCreditTakeUpStageTransform: + """Whole-stage callable for the post-SPI Pension Credit take-up redraw.""" + + stage: SourceStageSpec + engine: object + contract: UKTakeUpContract | None = None + last_result: UKPensionCreditTakeUpResult | None = field(default=None, init=False) + + def __call__(self, frame: Frame) -> Frame: + _assert_stage_parameters(self.stage) + result = redraw_pension_credit_take_up( + frame, + engine=self.engine, + contract=self.contract or load_uk_take_up_contract(), + ) + object.__setattr__(self, "last_result", result) + return result.frame + + @staticmethod + def output_columns() -> tuple[str, ...]: + return () + + def checkpoint_metadata(self) -> dict[str, object]: + if self.last_result is None: + raise RuntimeError("checkpoint metadata requires a completed stage run.") + return {"evidence": self.last_result.evidence()} + + +def redraw_pension_credit_take_up( + frame: Frame, + *, + engine: object, + contract: UKTakeUpContract, +) -> UKPensionCreditTakeUpResult: + """Redraw ``would_claim_pc`` by component band from engine entitlement.""" + + validate_uk_national_frame(frame) + assert_rules_engine_country(engine, "uk") + person = frame.table("person").copy() + benunit = frame.table("benunit").copy() + household = frame.table("household").copy() + for table, columns, label in ( + ( + person, + ("person_benunit_id", "person_household_id", "pension_credit_reported"), + "person", + ), + (benunit, ("benunit_id", PENSION_CREDIT_TAKE_UP_OUTPUT), "benunit"), + ): + missing = sorted(set(columns) - set(table.columns)) + if missing: + raise ValueError( + f"Pension Credit take-up {label} columns missing: {missing}." + ) + period = uk_time_period(frame) + materialized = engine.materialize( + frame, list(PENSION_CREDIT_ENTITLEMENT_VARIABLES), period + ) + missing = sorted(set(PENSION_CREDIT_ENTITLEMENT_VARIABLES) - set(materialized)) + if missing: + raise ValueError(f"Pension Credit take-up engine outputs missing: {missing}.") + count = len(benunit) + guarantee = _aligned(materialized["guarantee_credit"], count, "guarantee_credit") + savings = _aligned(materialized["savings_credit"], count, "savings_credit") + eligible = _aligned( + materialized["is_pension_credit_eligible"], count, "is_pension_credit_eligible" + ).astype(bool) + reporter_ids = person.loc[ + pd.to_numeric(person["pension_credit_reported"], errors="coerce").fillna(0.0) + > 0, + "person_benunit_id", + ] + reporter = benunit["benunit_id"].isin(reporter_ids).to_numpy(dtype=bool) + weights = _household_to_benunit_weights( + benunit, + person=person, + household=household, + household_weights=frame.weights_for("household").values, + ) + draws = stable_identity_uniforms( + benunit["benunit_id"].to_numpy(), + seed=PENSION_CREDIT_TAKE_UP_SEED, + salt=PENSION_CREDIT_TAKE_UP_OUTPUT, + ) + would_claim, bands = assign_component_take_up( + guarantee=guarantee, + savings=savings, + eligible=eligible, + reporter=reporter, + weights=weights, + draws=draws, + rates={ + band["rate_key"]: contract.rate(band["rate_key"]) + for band in PENSION_CREDIT_TAKE_UP_BANDS + }, + ) + entitled = eligible & ((guarantee > 0.0) | (savings > 0.0)) + outside = reporter & ~entitled + previous = benunit[PENSION_CREDIT_TAKE_UP_OUTPUT].fillna(False).to_numpy(dtype=bool) + benunit[PENSION_CREDIT_TAKE_UP_OUTPUT] = would_claim + result = uk_national_frame( + person=person, + benunit=benunit, + household=household, + time_period=period, + weight_kind=uk_household_weight_kind(frame), + household_weights=frame.weights_for("household").values, + mass_log=frame.mass_log, + ) + validate_uk_national_frame(result) + return UKPensionCreditTakeUpResult( + frame=result, + bands=bands, + reporters_without_entitlement={ + "units": int(outside.sum()), + "weighted_units": float(weights[outside].sum()), + }, + changed_units=int((previous != would_claim).sum()), + ) + + +def assign_component_take_up( + *, + guarantee: np.ndarray, + savings: np.ndarray, + eligible: np.ndarray, + reporter: np.ndarray, + weights: np.ndarray, + draws: np.ndarray, + rates: Mapping[str, float], +) -> tuple[np.ndarray, tuple[dict[str, object], ...]]: + """Reporters claim; entitled non-reporters claim at their band's residual rate.""" + + guarantee = np.asarray(guarantee, dtype=np.float64) + savings = np.asarray(savings, dtype=np.float64) + eligible = np.asarray(eligible, dtype=bool) + reporter = np.asarray(reporter, dtype=bool) + weights = np.asarray(weights, dtype=np.float64) + draws = np.asarray(draws, dtype=np.float64) + masks = { + "guarantee_credit": eligible & (guarantee > 0.0), + "savings_credit_only": eligible & (guarantee <= 0.0) & (savings > 0.0), + } + would_claim = reporter.copy() + receipts = [] + for band in PENSION_CREDIT_TAKE_UP_BANDS: + mask = masks[band["name"]] + rate = float(rates[band["rate_key"]]) + if not 0.0 <= rate <= 1.0: + raise ValueError( + f"{band['rate_key']} must be a rate in [0, 1], got {rate}." + ) + entitled = float(weights[mask].sum()) + reporting = float(weights[mask & reporter].sum()) + residual = 0.0 + if entitled > reporting: + residual = float( + np.clip( + (rate * entitled - reporting) / (entitled - reporting), 0.0, 1.0 + ) + ) + drawn = mask & ~reporter & (draws < residual) + would_claim |= drawn + realized = ( + float(weights[mask & would_claim].sum()) / entitled + if entitled > 0.0 + else None + ) + receipts.append( + { + "band": band["name"], + "rule": band["rule"], + "rate_key": band["rate_key"], + "rate": rate, + "entitled_units": int(mask.sum()), + "entitled_weighted": entitled, + "reporter_units": int((mask & reporter).sum()), + "reporter_weighted": reporting, + "residual_rate": residual, + "drawn_units": int(drawn.sum()), + "realized_take_up": realized, + "reporters_exceed_rate": bool( + entitled > 0.0 and reporting > rate * entitled + ), + } + ) + return would_claim, tuple(receipts) + + +def _aligned(values: object, expected: int, label: str) -> np.ndarray: + array = np.asarray(values) + if array.shape != (expected,): + raise ValueError(f"{label} must align to the benefit-unit table.") + if array.dtype != bool and not np.isfinite(array.astype(np.float64)).all(): + raise ValueError(f"{label} must be finite.") + return array + + +def _assert_stage_parameters(stage: SourceStageSpec) -> None: + if stage.stage != PENSION_CREDIT_TAKE_UP_STAGE_NAME: + raise ValueError( + f"Pension Credit take-up received stage {stage.stage!r}, expected " + f"{PENSION_CREDIT_TAKE_UP_STAGE_NAME!r}." + ) + kinds = [operation.kind for operation in stage.operations] + expected_kinds = [ + "materialize_rules_engine_predictors", + "aggregate_person_to_benunit", + "assign_component_take_up_residual", + ] + if kinds != expected_kinds: + raise ValueError( + f"{PENSION_CREDIT_TAKE_UP_STAGE_NAME} operation order drifted: " + f"expected {expected_kinds}, got {kinds}." + ) + materialize, aggregate, assign = stage.operations + expected = { + "materialize": { + "predictors": list(PENSION_CREDIT_ENTITLEMENT_VARIABLES), + "consumed_only": True, + }, + "aggregate": { + "method": "any_positive", + "consumed_only": True, + "aggregates": PENSION_CREDIT_AGGREGATES, + }, + "assign": { + "output": PENSION_CREDIT_TAKE_UP_OUTPUT, + "draw": PENSION_CREDIT_TAKE_UP_OUTPUT, + "seed": PENSION_CREDIT_TAKE_UP_SEED, + "anchor": PENSION_CREDIT_REPORTED_ANCHOR, + "bands": [dict(band) for band in PENSION_CREDIT_TAKE_UP_BANDS], + "weight_mapping": "household_to_benunit", + "residual_rate": PENSION_CREDIT_RESIDUAL_RATE, + }, + } + actual = { + "materialize": dict(materialize.parameters), + "aggregate": dict(aggregate.parameters), + "assign": dict(assign.parameters), + } + if actual != expected: + raise ValueError( + f"{PENSION_CREDIT_TAKE_UP_STAGE_NAME} parameters drifted: expected " + f"{expected}, got {actual}." + ) + if stage.outputs != () or stage.rewrites != (PENSION_CREDIT_TAKE_UP_OUTPUT,): + raise ValueError( + f"{PENSION_CREDIT_TAKE_UP_STAGE_NAME} must declare no new outputs and " + "exactly the would_claim_pc rewrite." + ) + + +__all__ = [ + "PENSION_CREDIT_ENTITLEMENT_VARIABLES", + "PENSION_CREDIT_TAKE_UP_BANDS", + "PENSION_CREDIT_TAKE_UP_STAGE_NAME", + "UKPensionCreditTakeUpResult", + "UKPensionCreditTakeUpStageTransform", + "assign_component_take_up", + "redraw_pension_credit_take_up", +] diff --git a/packages/microcosm-build/src/microcosm/build/uk_runtime/spine_build.py b/packages/microcosm-build/src/microcosm/build/uk_runtime/spine_build.py index f5bce9bc2..523a1f226 100644 --- a/packages/microcosm-build/src/microcosm/build/uk_runtime/spine_build.py +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/spine_build.py @@ -125,6 +125,9 @@ UK_SAMPLE_SEED_DEFAULT, ) from microcosm.build.uk_runtime.nts_bus_travel import UKNTSBusTravelStageTransform +from microcosm.build.uk_runtime.pension_credit_take_up import ( + UKPensionCreditTakeUpStageTransform, +) from microcosm.build.uk_runtime.regional_uprating import ( UKRegionalPropertyUpratingStageTransform, ) @@ -1520,6 +1523,11 @@ def prepare_uk_spine_execution( implementations["uc_capital_coherence"] = UKUCCapitalCoherenceStageTransform( stage=stages_by_name["uc_capital_coherence"] ) + if "pension_credit_take_up" in stage_names: + implementations["pension_credit_take_up"] = UKPensionCreditTakeUpStageTransform( + stage=stages_by_name["pension_credit_take_up"], + engine=engine, + ) if "uc_deduction_attributes" in stage_names: implementations["uc_deduction_attributes"] = ( UKUCDeductionAttributesStageTransform( diff --git a/packages/microcosm-build/src/microcosm/build/uk_runtime/stage_health.py b/packages/microcosm-build/src/microcosm/build/uk_runtime/stage_health.py index 4fa536ff6..c1d65504d 100644 --- a/packages/microcosm-build/src/microcosm/build/uk_runtime/stage_health.py +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/stage_health.py @@ -43,6 +43,8 @@ def uk_stage_health_gate( return _spi_support_channel_gate(stage, evidence, parameters) if check == "spi_income_spine": return _spi_income_spine_gate(stage, evidence, parameters) + if check == "pension_credit_take_up": + return _pension_credit_take_up_gate(stage, evidence, parameters) if check == "source_signal": return _source_signal_gate(stage, evidence, parameters) if check == "age_tail_targets": @@ -801,6 +803,59 @@ def _spi_support_channel_gate( ) +def _pension_credit_take_up_gate( + stage: str, + evidence: Mapping[str, object], + parameters: Mapping[str, object], +) -> GateResult: + """Each component band realizes its DWP take-up rate (microcosm#1069 R9). + + A band whose reporters alone exceed the rate realizes their share instead; + the receipt flags it and the gate requires the realized share to be at + least the rate there. + """ + + check = "pension_credit_take_up" + tolerance = _finite_number( + parameters["maximum_take_up_deviation"], + label=f"{stage}.maximum_take_up_deviation", + ) + minimum_units = int(parameters["minimum_entitled_units"]) + bands = evidence.get("bands") + failures: list[str] = [] + details: dict[str, object] = {} + if not isinstance(bands, list) or not bands: + failures.append(f"{stage}: the receipt carries no take-up bands.") + bands = [] + for band in bands: + band = _mapping(band, label=f"{stage}.bands[]") + name = str(band.get("band")) + rate = _finite_number(band.get("rate"), label=f"{stage}.{name}.rate") + units = int(band.get("entitled_units", 0)) + realized = band.get("realized_take_up") + details[name] = {"rate": rate, "realized_take_up": realized, "units": units} + if units < minimum_units or realized is None: + failures.append(f"{stage}: band {name} has {units} entitled units.") + continue + realized = _finite_number(realized, label=f"{stage}.{name}.realized_take_up") + if band.get("reporters_exceed_rate") is True: + if realized + 1e-12 < rate: + failures.append( + f"{stage}: band {name} reporters exceed the rate but realize " + f"{realized:.4f} < {rate:.4f}." + ) + elif abs(realized - rate) > tolerance: + failures.append( + f"{stage}: band {name} realizes take-up {realized:.4f} against the " + f"rate {rate:.4f} (tolerance {tolerance})." + ) + return ( + _fail(stage, check, failures, details) + if failures + else _pass(stage, check, details) + ) + + def _spi_income_spine_gate( stage: str, evidence: Mapping[str, object], diff --git a/packages/microcosm-build/tests/engine_free/shared/test_country_spec.py b/packages/microcosm-build/tests/engine_free/shared/test_country_spec.py index 23194e753..d464d3316 100644 --- a/packages/microcosm-build/tests/engine_free/shared/test_country_spec.py +++ b/packages/microcosm-build/tests/engine_free/shared/test_country_spec.py @@ -1008,9 +1008,10 @@ def test_uk_source_manifest_contains_only_canonical_spine_stages(self) -> None: # #685, frs_relationships #791, hmrc_cgt_asset_type_spine #725, # cgt_incidence_anchor #970, nts_bus_travel #930, then # spi_income_band_donors (PolicyEngine/chronicle#280 lane), the SPI - # housing shell (#1012) and was_lisa (#1003) as the newest); the - # frs_hmrc_retained_leaves / hmrc_spi_income pair is retired (#901). - assert len(spec.sources.stages) == 35 + # housing shell (#1012), was_lisa (#1003) and pension_credit_take_up + # (microcosm#1069) as the newest); the frs_hmrc_retained_leaves / + # hmrc_spi_income pair is retired (#901). + assert len(spec.sources.stages) == 36 assert not {"frs_hmrc_retained_leaves", "hmrc_spi_income"}.intersection( stage.stage for stage in spec.sources.stages ) @@ -1125,7 +1126,7 @@ def test_uk_target_references_accept_regenerated_contract_fields(self) -> None: references = {reference.name: reference for reference in spec.target_references} assert ( - len(references) == 1210 + len(references) == 1224 ) # PolicyEngine/chronicle#280 lane: 705 + 33 HMRC liabilities rows (Table 2.5, three # measures by eleven bands) + 26 SPI savings-interest rows (two measures by # thirteen bands) + 360 SPI Table 3.11 region-tier rows (three measures by @@ -1138,7 +1139,8 @@ def test_uk_target_references_accept_regenerated_contract_fields(self) -> None: # and 12 Table 3 taxable-income margin rows; microcosm#1069: 60 State # Pension rows (4 levels, 14 age-by-sex cells, 22 area cells, 20 bands) # less the OBR State Pension line, now a diagnostic, and the signed-out - # empty new State Pension £40-£60 band + # empty new State Pension £40-£60 band; 14 Pension Credit caseload rows + # (Great Britain total, six type-by-partner cells, six age bands, NI) assert references["obr.esa"].value_operation == "calendar_year_window" assert references["dwp.uc.households"].value_operation == ( "monthly_window_sum_average" @@ -1385,6 +1387,7 @@ def test_declares_the_full_june_battery(self, manifest) -> None: "uk_stage_frs_hmrc_spine_leaves_signal", "uk_stage_spi_support_channel_mass", "uk_stage_hmrc_spi_income_spine_identity", + "uk_stage_pension_credit_take_up", "uk_stage_cgt_incidence_clone_mass", "uk_stage_cgt_support_split_mass", "uk_stage_spi_income_band_donors_support", @@ -1487,6 +1490,7 @@ def test_strict_absent_evidence_entries_are_declared(self, manifest) -> None: "uk_stage_frs_hmrc_spine_leaves_signal", "uk_stage_spi_support_channel_mass", "uk_stage_hmrc_spi_income_spine_identity", + "uk_stage_pension_credit_take_up", "uk_stage_cgt_incidence_clone_mass", "uk_stage_cgt_support_split_mass", "uk_stage_spi_income_band_donors_support", diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_graph.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_graph.py index 1a618726c..32cccf01b 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_graph.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_graph.py @@ -44,10 +44,11 @@ def test_uk_spine_graph_contains_every_manifest_stage() -> None: # #791 frs_relationships, #725 hmrc_cgt_asset_type_spine, #970 # cgt_incidence_anchor, #930 nts_bus_travel and the income-anchor lane's # (PolicyEngine/chronicle#280) spi_income_band_donors stages, the #1012 - # spi_housing_shell and the #1003 was_lisa; the frs_hmrc_retained_leaves / - # hmrc_spi_income certified-pair alternatives are retired (#901), so the - # manifest roster is the graph roster. - assert len(expected) == 35 + # spi_housing_shell, the #1003 was_lisa and the microcosm#1069 + # pension_credit_take_up; the frs_hmrc_retained_leaves / hmrc_spi_income + # certified-pair alternatives are retired (#901), so the manifest roster is + # the graph roster. + assert len(expected) == 36 assert {"frs_hmrc_retained_leaves", "hmrc_spi_income"}.isdisjoint(expected) assert set(expected) <= ids assert {"frs_hmrc_retained_leaves", "hmrc_spi_income"}.isdisjoint(ids) diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_national_calibration.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_national_calibration.py index 52fa1c591..3b0a2127d 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_national_calibration.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_national_calibration.py @@ -53,7 +53,7 @@ from microcosm.calibrate.artifacts import decode_problem from microcosm.frame import EntitySchema, Frame, MassChange, WeightKind, Weights -ACTIVE_REFERENCE_COUNT = 1210 +ACTIVE_REFERENCE_COUNT = 1224 def _uc_reference(**overrides) -> LedgerTargetReference: diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_pension_credit_take_up.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_pension_credit_take_up.py new file mode 100644 index 000000000..26b096dde --- /dev/null +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_pension_credit_take_up.py @@ -0,0 +1,239 @@ +"""Pension Credit take-up by component after the SPI chain (microcosm#1069 R9).""" + +from __future__ import annotations + +from dataclasses import replace + +import numpy as np +import pandas as pd +import pytest + +from microcosm.build.country_spec import load_country_spec +from microcosm.build.source_manifest import SourceStageSpec +from microcosm.build.uk_runtime.frs_take_up import UK_TAKE_UP_SIGNAL_OUTPUTS +from microcosm.build.uk_runtime.national_frame import uk_national_frame +from microcosm.build.uk_runtime.pension_credit_take_up import ( + PENSION_CREDIT_ENTITLEMENT_VARIABLES, + PENSION_CREDIT_TAKE_UP_STAGE_NAME, + UKPensionCreditTakeUpStageTransform, + _assert_stage_parameters, + assign_component_take_up, + redraw_pension_credit_take_up, +) +from microcosm.build.uk_runtime.take_up_contract import load_uk_take_up_contract +from microcosm.frame import WeightKind + +RATES = { + "pension_credit_guarantee_credit": 0.69, + "pension_credit_savings_credit_only": 0.37, +} + + +def _stage() -> SourceStageSpec: + spec = load_country_spec("uk") + assert spec.sources is not None + return spec.sources.stage_map()[PENSION_CREDIT_TAKE_UP_STAGE_NAME] + + +def _population(count: int = 30_000, *, gc_reporter_share: float = 0.1): + rng = np.random.default_rng(5) + band = np.repeat(["gc", "sc", "none"], count // 3) + guarantee = np.where(band == "gc", 50.0, 0.0) + savings = np.where(band == "sc", 20.0, 0.0) + eligible = band != "none" + reporter = np.where( + band == "gc", + rng.random(len(band)) < gc_reporter_share, + rng.random(len(band)) < 0.05, + ) + return guarantee, savings, eligible, reporter, rng.random(len(band)), band + + +def test_each_component_band_claims_at_its_rate_with_reporters_first() -> None: + guarantee, savings, eligible, reporter, draws, band = _population() + weights = np.ones(len(band)) + + would_claim, receipts = assign_component_take_up( + guarantee=guarantee, + savings=savings, + eligible=eligible, + reporter=reporter, + weights=weights, + draws=draws, + rates=RATES, + ) + + assert would_claim[reporter].all() + assert not would_claim[(band == "none") & ~reporter].any() + by_band = {receipt["band"]: receipt for receipt in receipts} + for name, mask, rate in ( + ("guarantee_credit", band == "gc", 0.69), + ("savings_credit_only", band == "sc", 0.37), + ): + receipt = by_band[name] + entitled, reporting = mask.sum(), (mask & reporter).sum() + assert receipt["residual_rate"] == pytest.approx( + (rate * entitled - reporting) / (entitled - reporting) + ) + assert receipt["realized_take_up"] == pytest.approx(rate, abs=0.03) + assert receipt["reporters_exceed_rate"] is False + + +def test_reporters_above_the_rate_leave_no_residual_draw() -> None: + guarantee, savings, eligible, reporter, draws, band = _population( + gc_reporter_share=0.8 + ) + + would_claim, receipts = assign_component_take_up( + guarantee=guarantee, + savings=savings, + eligible=eligible, + reporter=reporter, + weights=np.ones(len(band)), + draws=draws, + rates=RATES, + ) + + gc = receipts[0] + assert gc["band"] == "guarantee_credit" + assert gc["residual_rate"] == 0.0 + assert gc["drawn_units"] == 0 + assert gc["reporters_exceed_rate"] is True + gc_mask = band == "gc" + assert (would_claim[gc_mask] == reporter[gc_mask]).all() + + +def test_the_residual_is_weighted() -> None: + # Two entitled Guarantee Credit units: a reporter of weight 1 and a + # non-reporter of weight 3, so r = (0.5 * 4 - 1) / (4 - 1) = 1 / 3. + _, receipts = assign_component_take_up( + guarantee=np.asarray([10.0, 10.0]), + savings=np.zeros(2), + eligible=np.asarray([True, True]), + reporter=np.asarray([True, False]), + weights=np.asarray([1.0, 3.0]), + draws=np.asarray([0.9, 0.9]), + rates={**RATES, "pension_credit_guarantee_credit": 0.5}, + ) + assert receipts[0]["residual_rate"] == pytest.approx(1 / 3) + + +class _StubEngine: + country = "uk" + + def __init__(self) -> None: + self.calls: list[tuple[tuple[str, ...], str]] = [] + + def materialize(self, frame, variables, period): + self.calls.append((tuple(variables), str(period))) + benunit = frame.table("benunit") + ids = benunit["benunit_id"].to_numpy() + # 1: Guarantee Credit; 2: Savings Credit only; 3: not entitled. + return { + "guarantee_credit": np.where(ids == 1, 40.0, 0.0), + "savings_credit": np.where(ids == 2, 15.0, 0.0), + "is_pension_credit_eligible": ids != 3, + } + + +def _frame(): + person = pd.DataFrame( + { + "person_id": [11, 21, 31], + "person_benunit_id": [1, 2, 3], + "person_household_id": [1, 2, 3], + "age": [80, 78, 70], + "pension_credit_reported": [0.0, 0.0, 500.0], + } + ) + benunit = pd.DataFrame( + {"benunit_id": [1, 2, 3], "would_claim_pc": [True, True, False]} + ) + household = pd.DataFrame({"household_id": [1, 2, 3], "region": ["WALES"] * 3}) + return uk_national_frame( + person=person, + benunit=benunit, + household=household, + household_weights=np.asarray([10.0, 10.0, 10.0]), + weight_kind=WeightKind.IMPORTANCE, + time_period="2024", + ) + + +def test_redraw_reads_engine_entitlement_once_and_rewrites_only_would_claim_pc() -> ( + None +): + engine = _StubEngine() + frame = _frame() + + result = redraw_pension_credit_take_up( + frame, engine=engine, contract=load_uk_take_up_contract() + ) + + assert engine.calls == [(PENSION_CREDIT_ENTITLEMENT_VARIABLES, "2024")] + after = result.frame.table("benunit") + # Unit 3 reports Pension Credit the engine finds it is not entitled to: it + # keeps claiming, and the receipt counts it. + assert bool(after.loc[after["benunit_id"] == 3, "would_claim_pc"].iloc[0]) + assert result.reporters_without_entitlement == { + "units": 1, + "weighted_units": 10.0, + } + for entity in ("person", "household"): + pd.testing.assert_frame_equal( + result.frame.table(entity), frame.table(entity), check_exact=True + ) + pd.testing.assert_frame_equal( + after.drop(columns=["would_claim_pc"]), + frame.table("benunit").drop(columns=["would_claim_pc"]), + ) + for name in PENSION_CREDIT_ENTITLEMENT_VARIABLES: + assert name not in after + evidence = result.evidence() + assert [band["band"] for band in evidence["bands"]] == [ + "guarantee_credit", + "savings_credit_only", + ] + assert evidence["bands"][0]["entitled_units"] == 1 + + +def test_committed_manifest_declares_the_stage_and_its_rewrite() -> None: + stage = _stage() + + assert stage.grain == "benunit" + assert stage.outputs == () + assert stage.rewrites == ("would_claim_pc",) + _assert_stage_parameters(stage) + transform = UKPensionCreditTakeUpStageTransform(stage=stage, engine=_StubEngine()) + transform(_frame()) + assert transform.checkpoint_metadata()["evidence"]["stage"] == ( + PENSION_CREDIT_TAKE_UP_STAGE_NAME + ) + + +def test_stage_parameters_refuse_a_drifted_band() -> None: + stage = _stage() + operations = [] + for operation in stage.operations: + payload = {"kind": operation.kind, **dict(operation.parameters)} + if operation.kind == "assign_component_take_up_residual": + bands = [dict(band) for band in payload["bands"]] + bands[1]["rate_key"] = "pension_credit" + payload["bands"] = bands + operations.append(payload) + drifted = SourceStageSpec.from_mapping({**stage.__dict__, "operations": operations}) + with pytest.raises(ValueError, match="parameters drifted"): + _assert_stage_parameters(drifted) + with pytest.raises(ValueError, match="expected 'pension_credit_take_up'"): + _assert_stage_parameters(replace(stage, stage="frs_take_up")) + + +def test_contract_carries_the_fye2024_component_rates() -> None: + contract = load_uk_take_up_contract() + + assert contract.rate("pension_credit_guarantee_credit") == 0.69 + assert contract.rate("pension_credit_savings_credit_only") == 0.37 + + +def test_terminal_signal_gate_leaves_would_claim_pc_to_the_stage_gate() -> None: + assert all(output != "would_claim_pc" for _, output, _ in UK_TAKE_UP_SIGNAL_OUTPUTS) diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_pension_credit_targets.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_pension_credit_targets.py new file mode 100644 index 000000000..10aa10195 --- /dev/null +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_pension_credit_targets.py @@ -0,0 +1,175 @@ +"""The Pension Credit caseload target rows (microcosm#1069 c7).""" + +from __future__ import annotations + +import hashlib +import json +import os +from pathlib import Path + +import pytest + +from microcosm.build.country_spec import load_country_spec +from microcosm.build.ledger_targets import compile_ledger_target_references +from microcosm.build.uk_runtime.chronicle_feed import load_uk_chronicle_feed +from microcosm.build.uk_runtime.local_targets import load_uk_population_contract +from test_support.paths import paths_for + +_TEST_PATHS = paths_for("microcosm-build") +STABLE_UK_FACT_FEED_NAME = ".codex-work/consumer_facts_uk.jsonl" +PUBLISHER_TYPES = { + "Guarantee Credit only": ("guarantee_credit", ">", "savings_credit", "<="), + "Savings Credit only": ("guarantee_credit", "<=", "savings_credit", ">"), + "Both Guarantee and Savings Credit": ( + "guarantee_credit", + ">", + "savings_credit", + ">", + ), +} +PARTNERS = {"Has a partner": "COUPLE", "Has no partner": "SINGLE"} +GB_REGIONS = { + "NORTH_EAST", + "NORTH_WEST", + "YORKSHIRE", + "EAST_MIDLANDS", + "WEST_MIDLANDS", + "EAST_OF_ENGLAND", + "LONDON", + "SOUTH_EAST", + "SOUTH_WEST", + "WALES", + "SCOTLAND", +} + + +def _targets() -> list[dict]: + return [ + target + for target in load_uk_population_contract()["targets"] + if target["family"] == "dwp_pension_credit" + ] + + +def _references() -> list: + return [ + reference + for reference in load_country_spec("uk").target_references + if reference.family == "dwp_pension_credit" + ] + + +def _predicates(binding: dict, variable: str) -> list[tuple[str, object]]: + return [ + ( + predicate.get("operator", "=="), + predicate.get("value", predicate.get("equals")), + ) + for predicate in binding["filters"] + if predicate["variable"] == variable + ] + + +def test_the_pension_credit_family_is_14_caseload_rows() -> None: + targets = _targets() + + assert len(targets) == 14 + assert len(_references()) == 14 + assert {target["category_id"] for target in targets} == { + "dwp.pension_credit", + "dfc_ni.pension_credit", + } + for target in targets: + assert target["value_operation"] == "monthly_window_average" + assert target["period_match_policy"] == "source_window" + assert target["measurement"]["source_months"] == [ + "2025-02", + "2025-05", + "2025-08", + "2025-11", + ] + binding = target["bindings"]["policyengine"] + assert (binding["from_entity"], binding["value_variable"]) == ( + "benunit", + "benunit_count", + ) + assert ("<", 0) not in _predicates(binding, "pension_credit") + assert _predicates(binding, "pension_credit") == [(">", 0)] + + +def test_every_row_binds_the_cell_its_selector_names() -> None: + for target in _targets(): + binding = target["bindings"]["policyengine"] + (condition,) = binding["household_conditions"] + assert condition["map_to"] == "benunit" + if target["target_id"].startswith("dfc_ni."): + assert condition["value"] == "NORTHERN_IRELAND" + continue + assert set(condition["value"]) == GB_REGIONS + cells = target["ledger_selector"]["dimension_values"] + publisher_type = cells["type_of_pension_credit"] + if publisher_type != "all": + gc, gc_operator, sc, sc_operator = PUBLISHER_TYPES[publisher_type] + assert _predicates(binding, gc) == [(gc_operator, 0)] + assert _predicates(binding, sc) == [(sc_operator, 0)] + assert _predicates(binding, "relation_type") == [ + ("==", PARTNERS[cells["partner_indicator"]]) + ] + age = cells["age_bands_and_single_year"] + if age != "all": + low = [ + value + for op, value in _predicates(binding, "eldest_adult_age") + if op == ">=" + ] + high = [ + value + for op, value in _predicates(binding, "eldest_adult_age") + if op == "<=" + ] + if age == "90 and over": + assert (low, high) == ([90], []) + else: + first, last = (int(part) for part in age.split("-")) + assert (low, high) == ([first], [last]) + + +def _pension_credit_facts() -> list[dict]: + """The pinned feed's Pension Credit facts, or skip (the artifact is untracked).""" + + root = _TEST_PATHS.repository + configured = os.environ.get("CHRONICLE_UK_FACTS") + feed = Path(configured) if configured else root / STABLE_UK_FACT_FEED_NAME + if feed.is_dir(): + feed = feed / "consumer_facts.jsonl" + if not feed.is_file(): + pytest.skip("pinned UK Chronicle consumer feed is not present") + assert hashlib.sha256(feed.read_bytes()).hexdigest() == ( + load_uk_chronicle_feed().facts_sha256 + ) + with feed.open(encoding="utf-8") as handle: + return [json.loads(line) for line in handle if "pension_credit" in line] + + +def test_the_cells_partition_the_great_britain_caseload() -> None: + """Feed-gated: type-by-partner and age cells each sum to the GB caseload.""" + + compiled = compile_ledger_target_references( + _pension_credit_facts(), _references(), country="uk" + ) + values = {spec.name.split("@")[0]: spec.value for spec in compiled.specs} + total = values["dwp.pension_credit.benefit_units"] + cells = sum( + value for name, value in values.items() if name.endswith(("_couple", "_single")) + ) + ages = sum( + value + for name, value in values.items() + if name.rsplit("_", 2)[-2:][0].isdigit() and not name.startswith("dfc_ni.") + ) + + # DWP publishes no claims of unknown age in 2025. + assert total == pytest.approx(1_390_586.25) + assert cells == pytest.approx(total, abs=10) + assert ages == pytest.approx(total, abs=10) + assert 10_000 < values["dfc_ni.pension_credit.benefit_units"] < 100_000 diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_population_targets.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_population_targets.py index 2c51d0942..9c64c1a8f 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_population_targets.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_population_targets.py @@ -187,8 +187,8 @@ def test_uk_population_targets_shape_order_and_registry_accounting() -> None: "assertion_policy": "observed_only", } # 26 State Pension targets since microcosm#1069 c3; the OBR State Pension - # line became a diagnostic in c4. - assert len(resource["targets"]) == 371 + # line became a diagnostic in c4; 14 Pension Credit caseload targets in c7. + assert len(resource["targets"]) == 385 providers = resource["hierarchy"]["providers"] categories = resource["hierarchy"]["categories"] @@ -202,10 +202,10 @@ def test_uk_population_targets_shape_order_and_registry_accounting() -> None: 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) == 320 + assert len(registry_scope) == 334 assert len(profile_scope) == 51 - assert target_ids[:320] == registry_scope - assert target_ids[320:] == profile_scope + assert target_ids[:334] == registry_scope + assert target_ids[334:] == profile_scope parity = resource["registry_parity"] assert parity["pinned_ref"] == "12a1e028afeef08d8b2d74ee03fd9de3a78b2dd3" @@ -219,7 +219,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) == 193 - assert len(unmapped_declarations) == 127 + assert len(unmapped_declarations) == 141 suppressed_ancestors = parity["suppressed_ancestors"] assert len(suppressed_ancestors) == 5 assert set(suppressed_ancestors).isdisjoint(parity["mapped"]) @@ -338,7 +338,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) == 371 + assert len(target_ids) == 385 assert len(target_ids) == len(set(target_ids)) @@ -806,7 +806,7 @@ def test_uc_payment_bands_share_administrative_family_but_keep_source_window() - def test_paid_joint_diagnostics_do_not_add_active_targets() -> None: targets = _load()["targets"] - assert len(targets) == 371 + assert len(targets) == 385 assert not any( f.get("variable") == "uc_calibration_child_entitlement" for target in targets diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_source_stages.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_source_stages.py index 2a7d233d2..638e7599f 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_source_stages.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_source_stages.py @@ -66,6 +66,9 @@ UC_COHERENCE_STAGE_NAMES = [ "uc_capital_coherence", ] +PENSION_CREDIT_TAKE_UP_STAGE_NAMES = [ + "pension_credit_take_up", +] E9_STAGE_NAMES = [ "uc_deduction_attributes", ] @@ -91,6 +94,7 @@ *E6_STAGE_NAMES, *UC_REPORTER_REDRAW_STAGE_NAMES, *UC_COHERENCE_STAGE_NAMES, + *PENSION_CREDIT_TAKE_UP_STAGE_NAMES, *E9_STAGE_NAMES, *E8_STAGE_NAMES, ] @@ -159,6 +163,7 @@ def test_e5_and_e6_follow_e7_and_precede_the_uc_rewrites(self) -> None: *E6_STAGE_NAMES, *UC_REPORTER_REDRAW_STAGE_NAMES, *UC_COHERENCE_STAGE_NAMES, + *PENSION_CREDIT_TAKE_UP_STAGE_NAMES, *E9_STAGE_NAMES, ] @@ -230,6 +235,7 @@ def test_country_stage_plan_assembles_spine_plan(self) -> None: "spi_housing_shell": _identity, "uc_reporter_redraw": _identity, "uc_capital_coherence": _identity, + "pension_credit_take_up": _identity, "uc_deduction_attributes": _identity, "cgt_support_split": _identity, "cgt_incidence_clone": _identity, diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_spine_acceptance_receipt.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_spine_acceptance_receipt.py index f68595818..8b01ce745 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_spine_acceptance_receipt.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_spine_acceptance_receipt.py @@ -107,6 +107,10 @@ def _apply_pending_roster_transformations( # household draws, so they run right after was_wealth. assert "was_lisa" not in roster roster.insert(roster.index("was_wealth") + 1, "was_lisa") + # microcosm#1069 re-mint pending: the Pension Credit take-up redraw reads + # the post-SPI incomes, so it runs right after UC capital coherence. + assert "pension_credit_take_up" not in roster + roster.insert(roster.index("uc_capital_coherence") + 1, "pension_credit_take_up") return tuple(roster) diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_stage_health.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_stage_health.py index 1541d0ae3..c23d75d74 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_stage_health.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_stage_health.py @@ -1466,3 +1466,41 @@ def gate(evidence, parameters): parameters, ) assert not missing.passed + + +def test_pension_credit_take_up_checks_each_band_against_its_rate() -> None: + def band(name, rate, realized, *, exceed=False, units=10): + return { + "band": name, + "rate": rate, + "realized_take_up": realized, + "reporters_exceed_rate": exceed, + "entitled_units": units, + } + + parameters = { + "stage": "pension_credit_take_up", + "check": "pension_credit_take_up", + "maximum_take_up_deviation": 0.05, + "minimum_entitled_units": 1, + } + + def gate(*bands): + return uk_stage_health_gate( + evidence={"stage": "pension_credit_take_up", "bands": list(bands)}, + stage="pension_credit_take_up", + check="pension_credit_take_up", + parameters=parameters, + ) + + assert _passed( + gate( + band("guarantee_credit", 0.69, 0.70), + band("savings_credit_only", 0.37, 0.36), + ) + ) + assert not gate(band("guarantee_credit", 0.69, 0.60)).passed + assert _passed(gate(band("guarantee_credit", 0.69, 0.80, exceed=True))) + assert not gate(band("guarantee_credit", 0.69, 0.50, exceed=True)).passed + assert not gate(band("guarantee_credit", 0.69, None, units=0)).passed + assert not gate().passed diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_take_up_contract.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_take_up_contract.py index 55797b0fc..a1e8c2ba9 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_take_up_contract.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_take_up_contract.py @@ -16,6 +16,8 @@ def test_uk_contract_loads_and_selects_build_year_rates() -> None: "child_benefit", "child_benefit_opts_out_rate", "pension_credit", + "pension_credit_guarantee_credit", + "pension_credit_savings_credit_only", "universal_credit", "marriage_allowance", "tax_free_childcare", @@ -31,6 +33,8 @@ def test_uk_contract_loads_and_selects_build_year_rates() -> None: 0.89, 0.23, 0.7, + 0.69, + 0.37, 0.55, 0.5, 0.88, @@ -109,7 +113,10 @@ def test_rate_without_source_is_refused(monkeypatch) -> None: def test_frozen_and_fitted_status_blocks_are_required(monkeypatch) -> None: raw = _resource() mutated = copy.deepcopy(raw) - del mutated["programs"][3]["source"]["freeze"] + universal_credit = next( + entry for entry in mutated["programs"] if entry["key"] == "universal_credit" + ) + del universal_credit["source"]["freeze"] _reload_with(monkeypatch, mutated) with pytest.raises(ValueError, match="freeze block"): load_uk_take_up_contract() diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_target_references.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_target_references.py index d0b272f5b..a6ad5dcaf 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_target_references.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_target_references.py @@ -64,7 +64,7 @@ _TEST_PATHS = paths_for("microcosm-build") -ACTIVE_REFERENCE_COUNT = 1210 +ACTIVE_REFERENCE_COUNT = 1224 REGION_TIER_LEVEL = {code: level for level, code in UK_REGION_TIER} UK_DATA_REPO = "policyengine-" + "uk-data" @@ -750,7 +750,7 @@ def test_uk_target_reference_membership_report_is_packaged() -> None: assert membership["target_period"] == 2025 assert membership["active_reference_count"] == ACTIVE_REFERENCE_COUNT assert membership["status_counts"] == { - "active": 1210, + "active": 1224, "no_fact_at_or_before_period": 7, "signed_excluded": 16, } diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_uc_source_periods.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_uc_source_periods.py index 9bf44daff..4dc8b8563 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_uc_source_periods.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_uc_source_periods.py @@ -565,6 +565,19 @@ def test_shipped_uc_monthly_references_preserve_each_declared_window(): assert months == ( esa_quarters[1:] if "_by_weekly_amount." in reference.name else esa_quarters ) + # The Pension Credit caseload rows bind the same four quarterly points + # (microcosm#1069 c7). + pension_credit = [ + reference + for reference in references + if reference.family == "dwp_pension_credit" + ] + assert len(pension_credit) == 14 + for reference in pension_credit: + assert reference.ledger_selector["period_value"] == esa_quarters + assert reference.value_operation == "monthly_window_average" + assert reference.period_match_policy == "source_window" + assert json.loads(reference.metadata[EXPECTED_SOURCE_MONTHS]) == esa_quarters assert not any( EXPECTED_SOURCE_MONTHS in reference.metadata for reference in references @@ -574,5 +587,6 @@ def test_shipped_uc_monthly_references_preserve_each_declared_window(): "dwp_housing_benefit", "dwp_legacy_benefits", "dwp_state_pension", + "dwp_pension_credit", } ) diff --git a/packages/microcosm-data/src/microcosm/data/contract.py b/packages/microcosm-data/src/microcosm/data/contract.py index 9442b1cea..fa99ef8d1 100644 --- a/packages/microcosm-data/src/microcosm/data/contract.py +++ b/packages/microcosm-data/src/microcosm/data/contract.py @@ -486,6 +486,7 @@ def compatibility_claim_declarer_error(declared_by: object) -> str | None: "stage_health", "transferred", ), + "uk_stage_pension_credit_take_up": ("stage_health", "transferred"), "uk_stage_cgt_incidence_clone_mass": ("stage_health", "transferred"), "uk_stage_cgt_support_split_mass": ("stage_health", "transferred"), "uk_stage_spi_income_band_donors_support": ("stage_health", "transferred"), @@ -580,6 +581,7 @@ def compatibility_claim_declarer_error(declared_by: object) -> str | None: "uk_stage_frs_hmrc_spine_leaves_signal", "uk_stage_spi_support_channel_mass", "uk_stage_hmrc_spi_income_spine_identity", + "uk_stage_pension_credit_take_up", "uk_stage_cgt_incidence_clone_mass", "uk_stage_cgt_support_split_mass", "uk_stage_spi_income_band_donors_support", @@ -789,6 +791,7 @@ def _uk_line_cut_tag_re(release_id: str) -> re.Pattern[str] | None: "uk_stage_lcfs_consumption_support", "uk_stage_nts_bus_travel_facts", "uk_stage_nts_bus_travel_support", + "uk_stage_pension_credit_take_up", "uk_stage_salary_sacrifice_realization", "uk_stage_spi_support_channel_mass", "uk_stage_student_loans_realization", diff --git a/packages/microcosm-data/tests/engine_free/shared/test_contract.py b/packages/microcosm-data/tests/engine_free/shared/test_contract.py index 583ba86d1..7534ea95b 100644 --- a/packages/microcosm-data/tests/engine_free/shared/test_contract.py +++ b/packages/microcosm-data/tests/engine_free/shared/test_contract.py @@ -179,6 +179,7 @@ def _trusted_terminal_gate_signing_key(monkeypatch) -> None: "transferred", None, ), + "uk_stage_pension_credit_take_up": ("stage_health", "transferred", None), "uk_stage_cgt_support_split_mass": ( "stage_health", "transferred", @@ -1230,6 +1231,7 @@ def _gate_battery_payload( "spi_support_channel", "hmrc_spi_income_spine", "uc_capital_coherence", + "pension_credit_take_up", "uc_deduction_attributes", "cgt_support_split", "cgt_incidence_clone", @@ -1253,6 +1255,7 @@ def _gate_battery_payload( "uk_stage_frs_hmrc_spine_leaves_signal": "frs_hmrc_spine_leaves", "uk_stage_spi_support_channel_mass": "spi_support_channel", "uk_stage_hmrc_spi_income_spine_identity": "hmrc_spi_income_spine", + "uk_stage_pension_credit_take_up": "pension_credit_take_up", "uk_stage_cgt_support_split_mass": "cgt_support_split", "uk_stage_cgt_incidence_clone_mass": "cgt_incidence_clone", "uk_stage_spi_income_band_donors_support": "spi_income_band_donors", 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 6089d7016..6331523c9 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 @@ -4174,6 +4174,59 @@ "stage": "nts_bus_travel", "survey": "National Travel Survey 2002-2024" }, + "pension_credit_take_up": { + "artifacts": [], + "grain": "benunit", + "nonnegative_outputs": [], + "notes": "Runs after the SPI income chain and UC capital coherence, before CGT cloning (microcosm#1069 R9). One temporary engine materialization gives each benefit unit's pre-take-up Pension Credit entitlement (guarantee_credit, savings_credit, is_pension_credit_eligible; consumed only). Entitled units fall into DWP's take-up components, Guarantee Credit (with or without Savings Credit) and Savings Credit only; within a component a reporter claims and the other entitled units claim at r = (t * E - R) / (E - R), t being DWP's financial year ending 2024 caseload take-up (69% and 37%), E the component's entitled units and R its reporters, weighted at the stage's household weights. A unit with no entitlement claims only if it reports. The uniform draw is frs_take_up's would_claim_pc identity stream, whose early draw this rewrite replaces; units with every adult at or over State Pension age are the only ones the engine finds eligible.", + "operations": [ + { + "consumed_only": true, + "kind": "materialize_rules_engine_predictors", + "predictors": [ + "guarantee_credit", + "savings_credit", + "is_pension_credit_eligible" + ] + }, + { + "aggregates": { + "pension_credit_reported_anchor": "pension_credit_reported" + }, + "consumed_only": true, + "kind": "aggregate_person_to_benunit", + "method": "any_positive" + }, + { + "anchor": "pension_credit_reported_anchor", + "bands": [ + { + "name": "guarantee_credit", + "rate_key": "pension_credit_guarantee_credit", + "rule": "is_pension_credit_eligible AND guarantee_credit > 0" + }, + { + "name": "savings_credit_only", + "rate_key": "pension_credit_savings_credit_only", + "rule": "is_pension_credit_eligible AND guarantee_credit <= 0 AND savings_credit > 0" + } + ], + "draw": "would_claim_pc", + "kind": "assign_component_take_up_residual", + "output": "would_claim_pc", + "residual_rate": "(rate * entitled - reporters) / (entitled - reporters), weighted, clipped to [0, 1]", + "seed": 0, + "weight_mapping": "household_to_benunit" + } + ], + "outputs": [], + "rewrites": [ + "would_claim_pc" + ], + "source": "DWP Income-related benefits: estimates of take-up, financial year ending 2024 (Pension Credit caseload take-up by component), applied to PolicyEngine-UK pre-take-up Pension Credit entitlement after the SPI income chain.", + "stage": "pension_credit_take_up", + "survey": "Family Resources Survey 2024-25" + }, "regional_property_uprating": { "artifacts": [ { 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 61beee295..1f19fd28b 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":[{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":"care_hours","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":"is_uc_claimant","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":"would_claim_carers_allowance","dtype":"bool","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"sample_fraction":1.0,"sample_seed":578,"stage_contract_sha256":"047d30937efb21e39259fdbed5597751e4f5a0c341ea583c7446e4c9c11eba48","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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":"care_hours","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":"is_uc_claimant","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":"would_claim_carers_allowance","dtype":"bool","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"age_tail","stage_contract_sha256":"963a34f38caede2525e3b8735f904bb70a1bbef5a272f0eefd4346343444484f","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage frs_relationships.","id":"frs_relationships","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","is_household_head"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_relationships@1","mass":"conserve","outputs":[{"column":"relationship_to_head","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"ons_family_role","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"ons_family_index","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"ons_household_type","dtype":"string","entity":"household","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_relationships","stage_contract_sha256":"30628808d06d9829ebcbcf460cd355a01261e78c7c73e6006c75bec2e3d60c33","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage frs_employment.","id":"frs_employment","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["ons_household_type","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_employment","stage_contract_sha256":"ddbefaf05b44788d794a6e4b0e8926c14318d66e50d2f11f50ca549538bbf60c","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_council_tax","stage_contract_sha256":"3381cd9f7a736514d5073c57480e07f5098890f3ca9ed3865392043594771eb9","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_disability","stage_contract_sha256":"ac500b4cb1bc04d4fb72d198592dd376d61da8c150921a6ac53914ac18be0508","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_education","stage_contract_sha256":"836cb0f5a582fee1425190e96c9cb81bdef859bd236c8b6bc27660b6e3d0c2f8","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","ons_household_type","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"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","ons_household_type","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","ons_household_type","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_education_grant_split","stage_contract_sha256":"8718f014b90498c2cc7c754289775ca4a41452d9b978d8cbc5f34b64cbdc7df2","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage frs_take_up.","id":"frs_take_up","inputs":[{"columns":["frs_benunit_capital","is_married"],"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":"would_claim_uc_childcare","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"maximum_extended_childcare_hours_usage","dtype":"float64","entity":"benunit","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_take_up","stage_contract_sha256":"067d31b7fbe733d1d182588705e9ce79df0c8e5f6e8f519314765af49b1b00d7","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_person_draws","stage_contract_sha256":"7e0af955541ec5669dcdf1de4e1e6ca642853e48b775ec4e25238b41491df324","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_household_draws","stage_contract_sha256":"c74c63b09264319c4bf0049dabba00ecd0ce660beb7b53d6dae71518434bc949","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"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","would_claim_uc_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","ons_household_type","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":["brma","region"],"entity":"household","rows":"all"},{"columns":["age","employee_pension_contributions"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_hmrc_spine_leaves","stage_contract_sha256":"2bb3d068003489b47cc8676ac26c203ce3c39a9b6e92f3ecd0a3c06acd6addc4","time_period":"2024"},"population":"frs_brma.checkpoint","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"frs_brma.checkpoint","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","would_claim_uc_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","ons_household_type","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"spi_support_channel","stage_contract_sha256":"a9c85eb66fad3587e1c1fae46fee6972b9e554097e724c9e399f4560edfed61c","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"spi_support_channel","citation":"","description":"Run structural UK stage spi_income_band_donors.","id":"spi_income_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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.spi_income_band_donors@1","mass":"free","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","household_source_id","int64"],["household","household_support_channel","string"],["household","household_support_clone_index","int64"],["household","household_is_spi_synthetic","bool"],["household","household_is_spi_income_band_donor","bool"],["household","spi_income_band_donor_lower_bound","float64"],["person","person_is_spi_income_band_carrier","bool"]],"expand_weight_entity":"household","expand_weight_kind":"importance","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"spi_income_band_donors","stage_contract_sha256":"190a40ab145b001993733553f45b3e8e5adfe999f598231481ab6706447d5f3c","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"base":null,"citation":"","description":"Own the cells materialized by spi_income_band_donors.","id":"spi_income_band_donors.owned","inputs":[],"kernel":"uk.claim@1","mass":"conserve","outputs":[{"column":"person_source_id","dtype":"int64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"person_support_channel","dtype":"string","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"person_support_clone_index","dtype":"int64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"benunit_source_id","dtype":"int64","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"benunit_support_channel","dtype":"string","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"benunit_support_clone_index","dtype":"int64","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_source_id","dtype":"int64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_support_channel","dtype":"string","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_support_clone_index","dtype":"int64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_is_spi_synthetic","dtype":"bool","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_is_spi_income_band_donor","dtype":"bool","entity":"household","ownership":"produced","rows":"all"},{"column":"spi_income_band_donor_lower_bound","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"person_is_spi_income_band_carrier","dtype":"bool","entity":"person","ownership":"produced","rows":"all"}],"params":{"materialized_expand_outputs":["household.household_is_spi_income_band_donor","household.spi_income_band_donor_lower_bound","person.person_is_spi_income_band_carrier"]},"population":"spi_income_band_donors","sources":[],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","relationship_to_head","ons_family_role","ons_family_index","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","ossben_identifiable_subset","srp_regular_code5","person_source_id","person_support_channel","person_support_clone_index","person_is_spi_income_band_carrier"],"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"},{"column":"would_claim_carers_allowance","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"hmrc_spi_income_spine","stage_contract_sha256":"834334536c1c6add6648b801272c61ca2f597a54c82553a943667200b9e6c4ce","time_period":"2024"},"population":"spi_income_band_donors","sources":["frs"],"structural":"none","weights":null},{"base":"spi_income_band_donors","citation":"","description":"Ownership boundary before spi_housing_shell rewrites.","id":"spi_housing_shell.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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage spi_housing_shell.","id":"spi_housing_shell","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["council_tax_single_adult_raw","household_support_channel","ons_household_type","region"],"entity":"household","rows":"all"},{"columns":["age","dividend_income","employment_income","is_household_head","other_investment_income","private_pension_income","property_income","savings_interest_income","self_employment_income","state_pension_reported","would_claim_carers_allowance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.spi_housing_shell@1","mass":"conserve","outputs":[{"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":"council_tax_band","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","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_reported","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"rent","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":"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":"subrent","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_rebate","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"housing_benefit_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"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"spi_housing_shell","stage_contract_sha256":"809f19fd33ff79ceda005e8cc3fa89ae40b297dceca26a7658b6259267987890","time_period":"2024"},"population":"spi_housing_shell.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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.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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"was_wealth","stage_contract_sha256":"366e019c41ee2a28bcd61bbaa62a024ed0bb4b30b3ffc4d87ab23b340b4076bf","time_period":"2024"},"population":"spi_housing_shell.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage was_lisa.","id":"was_lisa","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.was_lisa@1","mass":"conserve","outputs":[{"column":"has_lifetime_isa","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"lifetime_isa_balance","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"household_lifetime_isa_balance","dtype":"float64","entity":"household","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"was_lisa","stage_contract_sha256":"f1d0f962e84d32007821b32e4e03a8af9443acc0ed3d1836ff094dcbacb928da","time_period":"2024"},"population":"spi_housing_shell.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"spi_housing_shell.boundary","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":["household_lifetime_isa_balance","household_support_channel","region"],"entity":"household","rows":"all"},{"columns":["age"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"regional_property_uprating","stage_contract_sha256":"acb342e8ca1770556c5682a9411c5ead5d61dd1420cfe6b0305ed14a3407fb25","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage nts_bus_travel.","id":"nts_bus_travel","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.nts_bus_travel@1","mass":"conserve","outputs":[{"column":"local_bus_use_band","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"bus_in_london_trips","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"other_local_bus_trips","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"local_bus_trips","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"bus_pass_eligible","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"local_bus_single_fare_share","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"household_local_bus_trips","dtype":"float64","entity":"household","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"nts_bus_travel","stage_contract_sha256":"59767eeb246755f4636e2abbbc9ab3370a64c6142e01cda21a12cb01be95e535","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"lcfs_consumption","stage_contract_sha256":"f428215b7d66e1297688cfc8dce94e670268fb26a6681ca5f0e6e0641cfaf076","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"etb_vat","stage_contract_sha256":"5a2b777d88315bcccb72477c088a136c634131e0bc1a339b7287217ee5cfd8d3","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"etb_services","stage_contract_sha256":"991be160f2f2c28cf7eadc911b3214aca8bf5be441676fe21a87ba12888c5c25","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"regional_property_uprating.boundary","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"uc_reporter_redraw","stage_contract_sha256":"7e94e034cad29c5bae566ffb875c42cddf3a1025c15496907e783ceff1144f8b","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","is_benunit_head","is_parent","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"uc_capital_coherence","stage_contract_sha256":"059f27ee687ee15385b246d43068b17aeecbe3645ccc41fd52fcad06a006a081","time_period":"2024"},"population":"uc_capital_coherence.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"uc_deduction_attributes","stage_contract_sha256":"6bc7e3ec1a5712e23ca1b7d2956e8b17f2526b94431ba3e5a9294b04658e4fe0","time_period":"2024"},"population":"uc_capital_coherence.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"uc_capital_coherence.boundary","citation":"","description":"Run structural UK stage cgt_support_split.","id":"cgt_support_split","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.cgt_support_split@1","mass":"conserve","outputs":[],"params":{"expand_cells":[["household","household_is_cgt_support_copy","bool"],["household","cgt_support_copies","int64"],["household","cgt_support_copy_index","int64"]],"expand_weight_entity":"household","expand_weight_kind":"importance","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"cgt_support_split","stage_contract_sha256":"30b37e1c4e122db18391c5f76f1a6d432aea970275bcda7a52126dacc923490b","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"base":null,"citation":"","description":"Own the cells materialized by cgt_support_split.","id":"cgt_support_split.owned","inputs":[],"kernel":"uk.claim@1","mass":"conserve","outputs":[{"column":"household_is_cgt_support_copy","dtype":"bool","entity":"household","ownership":"produced","rows":"all"},{"column":"cgt_support_copies","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"cgt_support_copy_index","dtype":"int64","entity":"household","ownership":"produced","rows":"all"}],"params":{"materialized_expand_outputs":["household.household_is_cgt_support_copy","household.cgt_support_copies","household.cgt_support_copy_index"]},"population":"cgt_support_split","sources":[],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"cgt_support_split","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","household_is_cgt_support_copy","cgt_support_copies","cgt_support_copy_index"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"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","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"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":"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","household_is_cgt_support_copy","cgt_support_copies","cgt_support_copy_index","household_is_capital_gains_clone"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","capital_gains"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":["cgt_support_copies","corporate_wealth","gross_financial_wealth","household_is_cgt_support_copy","non_residential_property_value","other_residential_property_value","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"hmrc_cgt_gains_spine","stage_contract_sha256":"ff740a36b03dcda73b889aa43bde7cff5d178de7b3da38e487320c68342bf9a3","time_period":"2024"},"population":"hmrc_cgt_gains_spine.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage hmrc_cgt_asset_type_spine.","id":"hmrc_cgt_asset_type_spine","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["corporate_wealth","gross_financial_wealth","other_residential_property_value","region","stocks_and_shares_isa"],"entity":"household","rows":"all"},{"columns":["age","capital_gains","dividend_income","property_income","self_employment_income"],"entity":"person","rows":"all"}],"kernel":"uk.stage.hmrc_cgt_asset_type_spine@1","mass":"conserve","outputs":[{"column":"capital_gains_asset_type","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"capital_gains_residential_property","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"capital_gains_badr","dtype":"float64","entity":"person","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"hmrc_cgt_asset_type_spine","stage_contract_sha256":"c918223197c706279b37d1b32d0ff3885fb1cd7b65b2e50d0308ab508ed0ed64","time_period":"2024"},"population":"hmrc_cgt_gains_spine.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"hmrc_cgt_gains_spine.boundary","citation":"","description":"Run structural UK stage cgt_incidence_anchor.","id":"cgt_incidence_anchor","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["household_is_capital_gains_clone","region"],"entity":"household","rows":"all"},{"columns":["age","capital_gains","capital_gains_badr","dividend_income","employment_income","miscellaneous_income","private_pension_income","property_income","savings_interest_income","self_employment_income","state_pension_reported"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.cgt_incidence_anchor@1","mass":"conserve","outputs":[],"params":{"expand_cells":[],"expand_weight_entity":"household","expand_weight_kind":"importance","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"cgt_incidence_anchor","stage_contract_sha256":"b79ce806015de2f1e1703fa68bf4ad871c6df54b5b32633c864632ab68919a48","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","household_is_cgt_support_copy","cgt_support_copies","cgt_support_copy_index","household_is_capital_gains_clone"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","capital_gains","capital_gains_asset_type","capital_gains_residential_property","capital_gains_badr"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"salary_sacrifice","stage_contract_sha256":"89b589d19fcb99b265cb40d08cf2b9ff7955bd41b6de0e8c9ff4dc6f35be1eb6","time_period":"2024"},"population":"cgt_incidence_anchor","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"student_loans","stage_contract_sha256":"f2936c5e22a0e9b097437e3f3aabaf06c4561d5c25a9b7c05e720a6553f73bbc","time_period":"2024"},"population":"cgt_incidence_anchor","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":[{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":"care_hours","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":"is_uc_claimant","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":"would_claim_carers_allowance","dtype":"bool","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"sample_fraction":1.0,"sample_seed":578,"stage_contract_sha256":"047d30937efb21e39259fdbed5597751e4f5a0c341ea583c7446e4c9c11eba48","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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":"care_hours","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":"is_uc_claimant","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":"would_claim_carers_allowance","dtype":"bool","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"age_tail","stage_contract_sha256":"963a34f38caede2525e3b8735f904bb70a1bbef5a272f0eefd4346343444484f","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage frs_relationships.","id":"frs_relationships","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","is_household_head"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_relationships@1","mass":"conserve","outputs":[{"column":"relationship_to_head","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"ons_family_role","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"ons_family_index","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"ons_household_type","dtype":"string","entity":"household","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_relationships","stage_contract_sha256":"30628808d06d9829ebcbcf460cd355a01261e78c7c73e6006c75bec2e3d60c33","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage frs_employment.","id":"frs_employment","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["ons_household_type","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_employment","stage_contract_sha256":"ddbefaf05b44788d794a6e4b0e8926c14318d66e50d2f11f50ca549538bbf60c","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_council_tax","stage_contract_sha256":"3381cd9f7a736514d5073c57480e07f5098890f3ca9ed3865392043594771eb9","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_disability","stage_contract_sha256":"ac500b4cb1bc04d4fb72d198592dd376d61da8c150921a6ac53914ac18be0508","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_education","stage_contract_sha256":"836cb0f5a582fee1425190e96c9cb81bdef859bd236c8b6bc27660b6e3d0c2f8","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","ons_household_type","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"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","ons_household_type","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","ons_household_type","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_education_grant_split","stage_contract_sha256":"8718f014b90498c2cc7c754289775ca4a41452d9b978d8cbc5f34b64cbdc7df2","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage frs_take_up.","id":"frs_take_up","inputs":[{"columns":["frs_benunit_capital","is_married"],"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":"would_claim_uc_childcare","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"maximum_extended_childcare_hours_usage","dtype":"float64","entity":"benunit","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_take_up","stage_contract_sha256":"067d31b7fbe733d1d182588705e9ce79df0c8e5f6e8f519314765af49b1b00d7","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_person_draws","stage_contract_sha256":"5b9b4b7ad87cdc16f96a7f2ee0794946a308011b529956d8adf8ab53d704ede2","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_household_draws","stage_contract_sha256":"c74c63b09264319c4bf0049dabba00ecd0ce660beb7b53d6dae71518434bc949","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"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","would_claim_uc_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","ons_household_type","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":["brma","region"],"entity":"household","rows":"all"},{"columns":["age","employee_pension_contributions"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_hmrc_spine_leaves","stage_contract_sha256":"2bb3d068003489b47cc8676ac26c203ce3c39a9b6e92f3ecd0a3c06acd6addc4","time_period":"2024"},"population":"frs_brma.checkpoint","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"frs_brma.checkpoint","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","would_claim_uc_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","ons_household_type","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"spi_support_channel","stage_contract_sha256":"a9c85eb66fad3587e1c1fae46fee6972b9e554097e724c9e399f4560edfed61c","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"spi_support_channel","citation":"","description":"Run structural UK stage spi_income_band_donors.","id":"spi_income_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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.spi_income_band_donors@1","mass":"free","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","household_source_id","int64"],["household","household_support_channel","string"],["household","household_support_clone_index","int64"],["household","household_is_spi_synthetic","bool"],["household","household_is_spi_income_band_donor","bool"],["household","spi_income_band_donor_lower_bound","float64"],["person","person_is_spi_income_band_carrier","bool"]],"expand_weight_entity":"household","expand_weight_kind":"importance","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"spi_income_band_donors","stage_contract_sha256":"190a40ab145b001993733553f45b3e8e5adfe999f598231481ab6706447d5f3c","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"base":null,"citation":"","description":"Own the cells materialized by spi_income_band_donors.","id":"spi_income_band_donors.owned","inputs":[],"kernel":"uk.claim@1","mass":"conserve","outputs":[{"column":"person_source_id","dtype":"int64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"person_support_channel","dtype":"string","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"person_support_clone_index","dtype":"int64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"benunit_source_id","dtype":"int64","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"benunit_support_channel","dtype":"string","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"benunit_support_clone_index","dtype":"int64","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_source_id","dtype":"int64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_support_channel","dtype":"string","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_support_clone_index","dtype":"int64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_is_spi_synthetic","dtype":"bool","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_is_spi_income_band_donor","dtype":"bool","entity":"household","ownership":"produced","rows":"all"},{"column":"spi_income_band_donor_lower_bound","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"person_is_spi_income_band_carrier","dtype":"bool","entity":"person","ownership":"produced","rows":"all"}],"params":{"materialized_expand_outputs":["household.household_is_spi_income_band_donor","household.spi_income_band_donor_lower_bound","person.person_is_spi_income_band_carrier"]},"population":"spi_income_band_donors","sources":[],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","relationship_to_head","ons_family_role","ons_family_index","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","ossben_identifiable_subset","srp_regular_code5","person_source_id","person_support_channel","person_support_clone_index","person_is_spi_income_band_carrier"],"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"},{"column":"would_claim_carers_allowance","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"hmrc_spi_income_spine","stage_contract_sha256":"834334536c1c6add6648b801272c61ca2f597a54c82553a943667200b9e6c4ce","time_period":"2024"},"population":"spi_income_band_donors","sources":["frs"],"structural":"none","weights":null},{"base":"spi_income_band_donors","citation":"","description":"Ownership boundary before spi_housing_shell rewrites.","id":"spi_housing_shell.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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage spi_housing_shell.","id":"spi_housing_shell","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["council_tax_single_adult_raw","household_support_channel","ons_household_type","region"],"entity":"household","rows":"all"},{"columns":["age","dividend_income","employment_income","is_household_head","other_investment_income","private_pension_income","property_income","savings_interest_income","self_employment_income","state_pension_reported","would_claim_carers_allowance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.spi_housing_shell@1","mass":"conserve","outputs":[{"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":"council_tax_band","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","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_reported","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"rent","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":"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":"subrent","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_rebate","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"housing_benefit_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"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"spi_housing_shell","stage_contract_sha256":"809f19fd33ff79ceda005e8cc3fa89ae40b297dceca26a7658b6259267987890","time_period":"2024"},"population":"spi_housing_shell.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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.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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"was_wealth","stage_contract_sha256":"366e019c41ee2a28bcd61bbaa62a024ed0bb4b30b3ffc4d87ab23b340b4076bf","time_period":"2024"},"population":"spi_housing_shell.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage was_lisa.","id":"was_lisa","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.was_lisa@1","mass":"conserve","outputs":[{"column":"has_lifetime_isa","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"lifetime_isa_balance","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"household_lifetime_isa_balance","dtype":"float64","entity":"household","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"was_lisa","stage_contract_sha256":"f1d0f962e84d32007821b32e4e03a8af9443acc0ed3d1836ff094dcbacb928da","time_period":"2024"},"population":"spi_housing_shell.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"spi_housing_shell.boundary","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":["household_lifetime_isa_balance","household_support_channel","region"],"entity":"household","rows":"all"},{"columns":["age"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"regional_property_uprating","stage_contract_sha256":"acb342e8ca1770556c5682a9411c5ead5d61dd1420cfe6b0305ed14a3407fb25","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage nts_bus_travel.","id":"nts_bus_travel","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.nts_bus_travel@1","mass":"conserve","outputs":[{"column":"local_bus_use_band","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"bus_in_london_trips","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"other_local_bus_trips","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"local_bus_trips","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"bus_pass_eligible","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"local_bus_single_fare_share","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"household_local_bus_trips","dtype":"float64","entity":"household","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"nts_bus_travel","stage_contract_sha256":"59767eeb246755f4636e2abbbc9ab3370a64c6142e01cda21a12cb01be95e535","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"lcfs_consumption","stage_contract_sha256":"f428215b7d66e1297688cfc8dce94e670268fb26a6681ca5f0e6e0641cfaf076","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"etb_vat","stage_contract_sha256":"5a2b777d88315bcccb72477c088a136c634131e0bc1a339b7287217ee5cfd8d3","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"etb_services","stage_contract_sha256":"991be160f2f2c28cf7eadc911b3214aca8bf5be441676fe21a87ba12888c5c25","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"regional_property_uprating.boundary","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"uc_reporter_redraw","stage_contract_sha256":"7e94e034cad29c5bae566ffb875c42cddf3a1025c15496907e783ceff1144f8b","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","is_benunit_head","is_parent","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"uc_capital_coherence","stage_contract_sha256":"059f27ee687ee15385b246d43068b17aeecbe3645ccc41fd52fcad06a006a081","time_period":"2024"},"population":"uc_capital_coherence.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"uc_capital_coherence.boundary","citation":"","description":"Ownership boundary before pension_credit_take_up rewrites.","id":"pension_credit_take_up.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","would_claim_uc_childcare","maximum_extended_childcare_hours_usage","benunit_source_id","benunit_support_channel","benunit_support_clone_index","uc_reported_capital"],"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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage pension_credit_take_up.","id":"pension_credit_take_up","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","would_claim_uc_childcare","maximum_extended_childcare_hours_usage","benunit_source_id","benunit_support_channel","benunit_support_clone_index","uc_reported_capital"],"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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.stage.pension_credit_take_up@1","mass":"conserve","outputs":[{"column":"would_claim_pc","dtype":"bool","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"pension_credit_take_up","stage_contract_sha256":"5f2f0410ec296be7119d7f58365658e72ee46b5e4397c37f97ce01e911a98960","time_period":"2024"},"population":"pension_credit_take_up.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage uc_deduction_attributes.","id":"uc_deduction_attributes","inputs":[{"columns":["frs_benunit_capital","would_claim_pc"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"uc_deduction_attributes","stage_contract_sha256":"6bc7e3ec1a5712e23ca1b7d2956e8b17f2526b94431ba3e5a9294b04658e4fe0","time_period":"2024"},"population":"pension_credit_take_up.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"pension_credit_take_up.boundary","citation":"","description":"Run structural UK stage cgt_support_split.","id":"cgt_support_split","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.cgt_support_split@1","mass":"conserve","outputs":[],"params":{"expand_cells":[["household","household_is_cgt_support_copy","bool"],["household","cgt_support_copies","int64"],["household","cgt_support_copy_index","int64"]],"expand_weight_entity":"household","expand_weight_kind":"importance","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"cgt_support_split","stage_contract_sha256":"30b37e1c4e122db18391c5f76f1a6d432aea970275bcda7a52126dacc923490b","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"base":null,"citation":"","description":"Own the cells materialized by cgt_support_split.","id":"cgt_support_split.owned","inputs":[],"kernel":"uk.claim@1","mass":"conserve","outputs":[{"column":"household_is_cgt_support_copy","dtype":"bool","entity":"household","ownership":"produced","rows":"all"},{"column":"cgt_support_copies","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"cgt_support_copy_index","dtype":"int64","entity":"household","ownership":"produced","rows":"all"}],"params":{"materialized_expand_outputs":["household.household_is_cgt_support_copy","household.cgt_support_copies","household.cgt_support_copy_index"]},"population":"cgt_support_split","sources":[],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"cgt_support_split","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","household_is_cgt_support_copy","cgt_support_copies","cgt_support_copy_index"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"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","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"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":"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","household_is_cgt_support_copy","cgt_support_copies","cgt_support_copy_index","household_is_capital_gains_clone"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","capital_gains"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":["cgt_support_copies","corporate_wealth","gross_financial_wealth","household_is_cgt_support_copy","non_residential_property_value","other_residential_property_value","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"hmrc_cgt_gains_spine","stage_contract_sha256":"ff740a36b03dcda73b889aa43bde7cff5d178de7b3da38e487320c68342bf9a3","time_period":"2024"},"population":"hmrc_cgt_gains_spine.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage hmrc_cgt_asset_type_spine.","id":"hmrc_cgt_asset_type_spine","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["corporate_wealth","gross_financial_wealth","other_residential_property_value","region","stocks_and_shares_isa"],"entity":"household","rows":"all"},{"columns":["age","capital_gains","dividend_income","property_income","self_employment_income"],"entity":"person","rows":"all"}],"kernel":"uk.stage.hmrc_cgt_asset_type_spine@1","mass":"conserve","outputs":[{"column":"capital_gains_asset_type","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"capital_gains_residential_property","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"capital_gains_badr","dtype":"float64","entity":"person","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"hmrc_cgt_asset_type_spine","stage_contract_sha256":"c918223197c706279b37d1b32d0ff3885fb1cd7b65b2e50d0308ab508ed0ed64","time_period":"2024"},"population":"hmrc_cgt_gains_spine.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"hmrc_cgt_gains_spine.boundary","citation":"","description":"Run structural UK stage cgt_incidence_anchor.","id":"cgt_incidence_anchor","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["household_is_capital_gains_clone","region"],"entity":"household","rows":"all"},{"columns":["age","capital_gains","capital_gains_badr","dividend_income","employment_income","miscellaneous_income","private_pension_income","property_income","savings_interest_income","self_employment_income","state_pension_reported"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.cgt_incidence_anchor@1","mass":"conserve","outputs":[],"params":{"expand_cells":[],"expand_weight_entity":"household","expand_weight_kind":"importance","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"cgt_incidence_anchor","stage_contract_sha256":"b79ce806015de2f1e1703fa68bf4ad871c6df54b5b32633c864632ab68919a48","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","household_is_cgt_support_copy","cgt_support_copies","cgt_support_copy_index","household_is_capital_gains_clone"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","capital_gains","capital_gains_asset_type","capital_gains_residential_property","capital_gains_badr"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"salary_sacrifice","stage_contract_sha256":"89b589d19fcb99b265cb40d08cf2b9ff7955bd41b6de0e8c9ff4dc6f35be1eb6","time_period":"2024"},"population":"cgt_incidence_anchor","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"student_loans","stage_contract_sha256":"f2936c5e22a0e9b097437e3f3aabaf06c4561d5c25a9b7c05e720a6553f73bbc","time_period":"2024"},"population":"cgt_incidence_anchor","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/graph_uk_spine_fixture.py b/tools/graph_uk_spine_fixture.py index 980f9634c..ff631a917 100644 --- a/tools/graph_uk_spine_fixture.py +++ b/tools/graph_uk_spine_fixture.py @@ -100,6 +100,9 @@ UKLCFSConsumptionStageTransform, ) from microcosm.build.uk_runtime.nts_bus_travel import UKNTSBusTravelStageTransform +from microcosm.build.uk_runtime.pension_credit_take_up import ( + UKPensionCreditTakeUpStageTransform, +) from microcosm.build.uk_runtime.regional_uprating import ( UKRegionalPropertyUpratingStageTransform, ) @@ -151,11 +154,11 @@ _SPI_DONOR_SAMPLE_SIZE = 64 #: The packaged FRS spine roster the fixture exercises (manifest minus the #: certified-pair exclusions); moves whenever a spine stage is added. -UK_FIXTURE_STAGE_COUNT = 35 +UK_FIXTURE_STAGE_COUNT = 36 _QRF_ESTIMATORS = 4 # These are the complete object-string surface observed in the unchanged -# legacy 35-stage output. Graph storage uses pandas StringDtype/python. +# legacy 36-stage output. Graph storage uses pandas StringDtype/python. _NORMALIZED_STRING_COLUMNS: Mapping[str, tuple[str, ...]] = { "person": ( "gender", @@ -1575,6 +1578,9 @@ def capture_root(frame: Frame) -> Frame: "uc_capital_coherence": UKUCCapitalCoherenceStageTransform( stage=stages["uc_capital_coherence"] ), + "pension_credit_take_up": UKPensionCreditTakeUpStageTransform( + stage=stages["pension_credit_take_up"], engine=engine + ), "uc_deduction_attributes": UKUCDeductionAttributesStageTransform( stage=stages["uc_deduction_attributes"] ), @@ -1615,7 +1621,7 @@ def _run_legacy_plan( stages: Iterable[SourceStageSpec], implementations: Mapping[str, object], ) -> Frame: - """Run the legacy 35-stage StagePlan oracle and return its final frame.""" + """Run the legacy 36-stage StagePlan oracle and return its final frame.""" stages = tuple(stages) committed = load_country_spec("uk") From 9b66ab39516ce0744acea702ba84a804ea4f2592 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20Juaristi?= <127882282+juaristi22@users.noreply.github.com> Date: Thu, 1 Oct 2026 17:08:17 +0100 Subject: [PATCH 10/22] Bind SPI pension contributions by total income band and stop clipping reported personal contributions (#1069 c8) Rows (family hmrc_spi, PolicyEngine/chronicle#302 via #305): SPI 2023-24 collated Table 3.8 net-pay-arrangement and relief-at-source pension contributions, amount and count, each fanned over the table's total-income bands. Amounts are uprated by the engine's average-earnings index (R5), counts by HMRC's projected taxpayer growth for the band. The net-pay rows measure employee_pension_contributions and the relief-at-source rows personal_pension_contributions. Active national references 1,224 -> 1,276; the 2023 and 2025 parity receipts gain the ledger-only rows; the local surface, the coverage manifest and the charter-H2 fixture do not move. FRS spine: personal and stakeholder contributions are no longer clipped at the 95th percentile of every PENPROV amount. The clip removed 28% of the reported amount (1.8% of rows); the engine caps the relief at the annual allowance. Co-Authored-By: Claude Opus 5.5 --- ...uk-spi-pension-contributions-1069.added.md | 3 + ...ity_incumbent_2025_signed_differences.json | 370 +- ...ty_production_2023_signed_differences.json | 370 +- .../build/uk/target_reference_membership.json | 10058 +++++++++------- .../microcosm/build/uk/target_references.json | 1308 ++ .../build/uk/uk_population_targets.json | 190 +- .../microcosm/build/uk_runtime/frs_spine.py | 8 +- .../engine_free/shared/test_country_spec.py | 5 +- .../tests/engine_free/uk/test_uk_frs_spine.py | 4 +- .../uk/test_uk_national_calibration.py | 2 +- .../uk/test_uk_population_targets.py | 17 +- .../uk/test_uk_target_references.py | 6 +- 12 files changed, 7904 insertions(+), 4437 deletions(-) create mode 100644 changelog.d/uk-spi-pension-contributions-1069.added.md diff --git a/changelog.d/uk-spi-pension-contributions-1069.added.md b/changelog.d/uk-spi-pension-contributions-1069.added.md new file mode 100644 index 000000000..755c5137c --- /dev/null +++ b/changelog.d/uk-spi-pension-contributions-1069.added.md @@ -0,0 +1,3 @@ +Bind UK pension contributions by range of total income from SPI Table 3.8 and stop clipping reported personal pension contributions (#1069 c8; PolicyEngine/chronicle#302 via #305). Four targets in the `hmrc_spi` family, each fanned over the table's total-income bands for tax year 2023-24: net-pay-arrangement contributions (the engine's `employee_pension_contributions`) and relief-at-source contributions (`personal_pension_contributions`), amount and count. Amounts move to calendar 2025 by the engine's average-earnings index, counts by HMRC's projected taxpayer growth for the band, as the other SPI counts do. Active national references go from 1,224 to 1,276. + +The FRS spine no longer clips personal and stakeholder pension contributions at the 95th percentile of every PENPROV amount. The clip removed 28% of the reported amount (1.8% of rows) against the relief-at-source total the new rows bind; the engine caps the relief itself at the annual allowance. 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 925d6b1de..250c182f0 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": 1224, + "compiled_count": 1276, "counts_by_kind": { "calibration_drift": 554, "fixture_only": 54, - "ledger_only": 641 + "ledger_only": 693 }, - "difference_count": 1249, + "difference_count": 1301, "differences": [ { "fixture_value": 1608000.0, @@ -2030,6 +2030,370 @@ "period": 2025, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, + { + "kind": "ledger_only", + "ledger_value": 9960339.538711632, + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_1000000_plus", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 1748592941.2404864, + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_100000_150000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 167112363.37171736, + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_12570_15000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 785760119.1650287, + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_150000_200000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 749238874.1897527, + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_15000_20000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 418334260.6258885, + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_200000_300000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 2965967773.749686, + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_20000_30000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 150511797.47386464, + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_300000_500000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 3962001727.6208487, + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_30000_40000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 4006269903.348456, + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_40000_50000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 30987723.009325072, + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_500000_1000000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 5345382219.108575, + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_50000_70000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 2667157587.588337, + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_70000_100000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 1166.6666666666667, + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_1000000_plus", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 226463.55353075173, + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_100000_150000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 349399.1228070175, + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_12570_15000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 69948.97959183673, + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_150000_200000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 988539.7830018083, + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_15000_20000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 38327.974276527326, + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_200000_300000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 2435955.882352941, + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_20000_30000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 14372.990353697749, + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_300000_500000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 2121875.0, + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_30000_40000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 1425810.1851851852, + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_40000_50000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 4851.851851851852, + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_500000_1000000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 1460595.4465849388, + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_50000_70000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 520945.7092819615, + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_70000_100000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 84109533.88245377, + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_1000000_plus", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 2888498466.226373, + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_100000_150000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 193673268.80828172, + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_12570_15000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 1604721370.1257627, + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_150000_200000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 775799779.626317, + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_15000_20000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 1261643008.2368066, + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_200000_300000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 3120906388.796311, + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_20000_30000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 453748801.2079743, + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_300000_500000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 2833163246.566864, + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_30000_40000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 2158073566.7208533, + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_40000_50000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 184819633.66276026, + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_500000_1000000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 2899565510.1582747, + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_50000_70000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 2645023499.724533, + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_70000_100000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 8166.666666666667, + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_1000000_plus", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 332229.49886104785, + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_100000_150000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 538178.947368421, + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_12570_15000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 108420.91836734694, + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_150000_200000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 1282165.4611211573, + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_15000_20000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 74260.4501607717, + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_200000_300000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 3267990.1960784313, + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_20000_30000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 33536.977491961414, + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_300000_500000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 2211689.814814815, + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_30000_40000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 1212500.0, + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_40000_50000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 16981.48148148148, + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_500000_1000000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 1194036.7775831874, + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_50000_70000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 591541.1558669002, + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_70000_100000", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, { "kind": "ledger_only", "ledger_value": 1489138606.9960644, 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 b71b328f3..e742807e7 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": 913, + "compiled_count": 965, "counts_by_kind": { "calibration_drift": 120, "fixture_only": 17, - "ledger_only": 781 + "ledger_only": 833 }, - "difference_count": 918, + "difference_count": 970, "differences": [ { "fixture_value": 82000.0, @@ -868,6 +868,370 @@ "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, + { + "kind": "ledger_only", + "ledger_value": 9000000.0, + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_1000000_plus", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 1580000000.0, + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_100000_150000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 151000000.0, + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_12570_15000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 710000000.0, + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_150000_200000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 677000000.0, + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_15000_20000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 378000000.0, + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_200000_300000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 2680000000.0, + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_20000_30000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 136000000.0, + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_300000_500000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 3580000000.0, + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_30000_40000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 3620000000.0, + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_40000_50000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 28000000.0, + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_500000_1000000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 4830000000.0, + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_50000_70000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 2410000000.0, + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_70000_100000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 1000.0, + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_1000000_plus", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 182000.0, + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_100000_150000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 335000.0, + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_12570_15000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 60000.0, + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_150000_200000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 1010000.0, + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_15000_20000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 32000.0, + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_200000_300000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 2430000.0, + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_20000_30000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 12000.0, + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_300000_500000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 1890000.0, + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_30000_40000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 1270000.0, + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_40000_50000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 4000.0, + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_500000_1000000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 1200000.0, + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_50000_70000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 428000.0, + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_70000_100000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 76000000.0, + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_1000000_plus", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 2610000000.0, + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_100000_150000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 175000000.0, + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_12570_15000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 1450000000.0, + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_150000_200000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 701000000.0, + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_15000_20000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 1140000000.0, + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_200000_300000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 2820000000.0, + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_20000_30000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 410000000.0, + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_300000_500000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 2560000000.0, + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_30000_40000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 1950000000.0, + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_40000_50000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 167000000.0, + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_500000_1000000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 2620000000.0, + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_50000_70000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 2390000000.0, + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_70000_100000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 7000.0, + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_1000000_plus", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 267000.0, + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_100000_150000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 516000.0, + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_12570_15000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 93000.0, + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_150000_200000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 1310000.0, + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_15000_20000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 62000.0, + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_200000_300000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 3260000.0, + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_20000_30000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 28000.0, + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_300000_500000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 1970000.0, + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_30000_40000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 1080000.0, + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_40000_50000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 14000.0, + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_500000_1000000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 981000.0, + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_50000_70000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 486000.0, + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_70000_100000", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, { "kind": "ledger_only", "ledger_value": 1260000000.0, 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 205dd2da1..910289a2d 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/target_reference_membership.json +++ b/packages/microcosm-build/src/microcosm/build/uk/target_reference_membership.json @@ -1,11 +1,11 @@ { "source_fact_feed": "chronicle-uk-825406f9-consumer-facts", "target_period": 2025, - "candidate_count": 1247, - "contract_target_count": 334, - "active_reference_count": 1224, + "candidate_count": 1299, + "contract_target_count": 338, + "active_reference_count": 1276, "status_counts": { - "active": 1224, + "active": 1276, "no_fact_at_or_before_period": 7, "signed_excluded": 16 }, @@ -2260,6 +2260,22 @@ "geography_level": "country", "geography_id": "K02000001" }, + "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band": { + "geography_level": "country", + "geography_id": "K02000001" + }, + "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band": { + "geography_level": "country", + "geography_id": "K02000001" + }, + "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band": { + "geography_level": "country", + "geography_id": "K02000001" + }, + "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band": { + "geography_level": "country", + "geography_id": "K02000001" + }, "hmrc.spi_region.taxpayers_by_region_12570_15000": { "geography_fanout": [ { @@ -8128,2844 +8144,3260 @@ "value_before_uprating": "1070000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@E12000001", + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_100000_150000", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.04298245614035", - "value_before_uprating": "117000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "1580000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@E12000002", + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_1000000_plus", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.04298245614035", - "value_before_uprating": "319000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "9000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@E12000003", + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_12570_15000", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.04298245614035", - "value_before_uprating": "235000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "151000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@E12000004", + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_15000_20000", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.04298245614035", - "value_before_uprating": "220000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "677000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@E12000005", + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_150000_200000", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.04298245614035", - "value_before_uprating": "248000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "710000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@E12000006", + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_20000_30000", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.04298245614035", - "value_before_uprating": "262000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "2680000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@E12000007", + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_200000_300000", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.04298245614035", - "value_before_uprating": "326000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "378000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@E12000008", + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_30000_40000", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.04298245614035", - "value_before_uprating": "349000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "3580000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@E12000009", + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_300000_500000", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.04298245614035", - "value_before_uprating": "244000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "136000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@W92000004", + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_40000_50000", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.04298245614035", - "value_before_uprating": "141000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "3620000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@S92000003", + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_50000_70000", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.04298245614035", - "value_before_uprating": "238000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "4830000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@N92000002", + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_500000_1000000", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.04298245614035", - "value_before_uprating": "75000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "28000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@E12000001", + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_70000_100000", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "0.97875226039783", - "value_before_uprating": "232000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "2410000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@E12000002", + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_100000_150000", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "0.97875226039783", - "value_before_uprating": "637000.0" + "factor": "1.24430523917995", + "value_before_uprating": "182000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@E12000003", + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_1000000_plus", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "0.97875226039783", - "value_before_uprating": "489000.0" + "factor": "1.16666666666667", + "value_before_uprating": "1000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@E12000004", + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_12570_15000", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "0.97875226039783", - "value_before_uprating": "442000.0" + "factor": "1.04298245614035", + "value_before_uprating": "335000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@E12000005", + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_15000_20000", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", "factor": "0.97875226039783", - "value_before_uprating": "501000.0" + "value_before_uprating": "1010000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@E12000006", + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_150000_200000", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "0.97875226039783", - "value_before_uprating": "521000.0" + "factor": "1.16581632653061", + "value_before_uprating": "60000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@E12000007", + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_20000_30000", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "0.97875226039783", - "value_before_uprating": "559000.0" + "factor": "1.00245098039216", + "value_before_uprating": "2430000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@E12000008", + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_200000_300000", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "0.97875226039783", - "value_before_uprating": "727000.0" + "factor": "1.19774919614148", + "value_before_uprating": "32000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@E12000009", + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_30000_40000", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "0.97875226039783", - "value_before_uprating": "497000.0" + "factor": "1.12268518518519", + "value_before_uprating": "1890000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@W92000004", + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_300000_500000", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "0.97875226039783", - "value_before_uprating": "258000.0" + "factor": "1.19774919614148", + "value_before_uprating": "12000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@S92000003", + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_40000_50000", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "0.97875226039783", - "value_before_uprating": "450000.0" + "factor": "1.12268518518519", + "value_before_uprating": "1270000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@N92000002", + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_50000_70000", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "0.97875226039783", - "value_before_uprating": "150000.0" + "factor": "1.21716287215412", + "value_before_uprating": "1200000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@E12000001", + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_500000_1000000", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.00245098039216", - "value_before_uprating": "419000.0" + "factor": "1.21296296296296", + "value_before_uprating": "4000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@E12000002", + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_70000_100000", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.00245098039216", - "value_before_uprating": "1180000.0" + "factor": "1.21716287215412", + "value_before_uprating": "428000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@E12000003", + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_100000_150000", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.00245098039216", - "value_before_uprating": "883000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "2610000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@E12000004", + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_1000000_plus", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.00245098039216", - "value_before_uprating": "797000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "76000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@E12000005", + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_12570_15000", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.00245098039216", - "value_before_uprating": "933000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "175000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@E12000006", + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_15000_20000", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.00245098039216", - "value_before_uprating": "950000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "701000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@E12000007", + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_150000_200000", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.00245098039216", - "value_before_uprating": "1030000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "1450000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@E12000008", + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_20000_30000", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.00245098039216", - "value_before_uprating": "1350000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "2820000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@E12000009", + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_200000_300000", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.00245098039216", - "value_before_uprating": "949000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "1140000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@W92000004", + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_30000_40000", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.00245098039216", - "value_before_uprating": "507000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "2560000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@S92000003", + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_300000_500000", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.00245098039216", - "value_before_uprating": "841000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "410000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@N92000002", + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_40000_50000", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.00245098039216", - "value_before_uprating": "285000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "1950000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@E12000001", + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_50000_70000", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "245000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "2620000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@E12000002", + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_500000_1000000", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "715000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "167000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@E12000003", + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_70000_100000", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "535000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "2390000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@E12000004", + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_100000_150000", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "493000.0" + "factor": "1.24430523917995", + "value_before_uprating": "267000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@E12000005", + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_1000000_plus", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "573000.0" + "factor": "1.16666666666667", + "value_before_uprating": "7000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@E12000006", + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_12570_15000", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "644000.0" + "factor": "1.04298245614035", + "value_before_uprating": "516000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@E12000007", + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_15000_20000", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "847000.0" + "factor": "0.97875226039783", + "value_before_uprating": "1310000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@E12000008", + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_150000_200000", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "950000.0" + "factor": "1.16581632653061", + "value_before_uprating": "93000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@E12000009", + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_20000_30000", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "607000.0" + "factor": "1.00245098039216", + "value_before_uprating": "3260000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@W92000004", + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_200000_300000", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "306000.0" - }, + "factor": "1.19774919614148", + "value_before_uprating": "62000.0" + }, { - "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@S92000003", + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_30000_40000", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", "factor": "1.12268518518519", - "value_before_uprating": "573000.0" + "value_before_uprating": "1970000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@N92000002", + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_300000_500000", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "175000.0" + "factor": "1.19774919614148", + "value_before_uprating": "28000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@E12000001", + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_40000_50000", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", "factor": "1.12268518518519", - "value_before_uprating": "140000.0" + "value_before_uprating": "1080000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@E12000002", + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_50000_70000", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "427000.0" + "factor": "1.21716287215412", + "value_before_uprating": "981000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@E12000003", + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_500000_1000000", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "308000.0" + "factor": "1.21296296296296", + "value_before_uprating": "14000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@E12000004", + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_70000_100000", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "293000.0" + "factor": "1.21716287215412", + "value_before_uprating": "486000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@E12000005", + "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@E12000001", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "332000.0" + "factor": "1.04298245614035", + "value_before_uprating": "117000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@E12000006", + "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@E12000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "406000.0" + "factor": "1.04298245614035", + "value_before_uprating": "319000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@E12000007", + "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@E12000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "569000.0" + "factor": "1.04298245614035", + "value_before_uprating": "235000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@E12000008", + "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@E12000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "635000.0" + "factor": "1.04298245614035", + "value_before_uprating": "220000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@E12000009", + "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@E12000005", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "364000.0" + "factor": "1.04298245614035", + "value_before_uprating": "248000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@W92000004", + "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@E12000006", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "175000.0" + "factor": "1.04298245614035", + "value_before_uprating": "262000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@S92000003", + "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@E12000007", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "364000.0" + "factor": "1.04298245614035", + "value_before_uprating": "326000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@N92000002", + "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@E12000008", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "99000.0" + "factor": "1.04298245614035", + "value_before_uprating": "349000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@E12000001", + "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@E12000009", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "119000.0" + "factor": "1.04298245614035", + "value_before_uprating": "244000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@E12000002", + "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@W92000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "373000.0" + "factor": "1.04298245614035", + "value_before_uprating": "141000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@E12000003", + "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@S92000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "254000.0" + "factor": "1.04298245614035", + "value_before_uprating": "238000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@E12000004", + "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@N92000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "252000.0" + "factor": "1.04298245614035", + "value_before_uprating": "75000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@E12000005", + "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@E12000001", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "303000.0" + "factor": "0.97875226039783", + "value_before_uprating": "232000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@E12000006", + "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@E12000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "415000.0" + "factor": "0.97875226039783", + "value_before_uprating": "637000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@E12000007", + "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@E12000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "660000.0" + "factor": "0.97875226039783", + "value_before_uprating": "489000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@E12000008", + "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@E12000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "657000.0" + "factor": "0.97875226039783", + "value_before_uprating": "442000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@E12000009", + "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@E12000005", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "324000.0" + "factor": "0.97875226039783", + "value_before_uprating": "501000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@W92000004", + "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@E12000006", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "150000.0" + "factor": "0.97875226039783", + "value_before_uprating": "521000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@S92000003", + "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@E12000007", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "298000.0" + "factor": "0.97875226039783", + "value_before_uprating": "559000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@N92000002", + "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@E12000008", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "71000.0" + "factor": "0.97875226039783", + "value_before_uprating": "727000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@E12000001", + "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@E12000009", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "43000.0" + "factor": "0.97875226039783", + "value_before_uprating": "497000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@E12000002", + "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@W92000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "156000.0" + "factor": "0.97875226039783", + "value_before_uprating": "258000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@E12000003", + "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@S92000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "99000.0" + "factor": "0.97875226039783", + "value_before_uprating": "450000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@E12000004", + "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@N92000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "102000.0" + "factor": "0.97875226039783", + "value_before_uprating": "150000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@E12000005", + "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@E12000001", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "124000.0" + "factor": "1.00245098039216", + "value_before_uprating": "419000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@E12000006", + "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@E12000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "206000.0" + "factor": "1.00245098039216", + "value_before_uprating": "1180000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@E12000007", + "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@E12000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "386000.0" + "factor": "1.00245098039216", + "value_before_uprating": "883000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@E12000008", + "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@E12000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "351000.0" + "factor": "1.00245098039216", + "value_before_uprating": "797000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@E12000009", + "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@E12000005", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "137000.0" + "factor": "1.00245098039216", + "value_before_uprating": "933000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@W92000004", + "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@E12000006", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "48000.0" + "factor": "1.00245098039216", + "value_before_uprating": "950000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@S92000003", + "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@E12000007", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "132000.0" + "factor": "1.00245098039216", + "value_before_uprating": "1030000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@N92000002", + "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@E12000008", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "27000.0" + "factor": "1.00245098039216", + "value_before_uprating": "1350000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@E12000001", + "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@E12000009", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.24430523917995", - "value_before_uprating": "17000.0" + "factor": "1.00245098039216", + "value_before_uprating": "949000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@E12000002", + "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@W92000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.24430523917995", - "value_before_uprating": "62000.0" + "factor": "1.00245098039216", + "value_before_uprating": "507000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@E12000003", + "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@S92000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.24430523917995", - "value_before_uprating": "42000.0" + "factor": "1.00245098039216", + "value_before_uprating": "841000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@E12000004", + "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@N92000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.24430523917995", - "value_before_uprating": "44000.0" + "factor": "1.00245098039216", + "value_before_uprating": "285000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@E12000005", + "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@E12000001", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.24430523917995", - "value_before_uprating": "46000.0" + "factor": "1.12268518518519", + "value_before_uprating": "245000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@E12000006", + "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@E12000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.24430523917995", - "value_before_uprating": "101000.0" + "factor": "1.12268518518519", + "value_before_uprating": "715000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@E12000007", + "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@E12000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.24430523917995", - "value_before_uprating": "226000.0" + "factor": "1.12268518518519", + "value_before_uprating": "535000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@E12000008", + "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@E12000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.24430523917995", - "value_before_uprating": "186000.0" + "factor": "1.12268518518519", + "value_before_uprating": "493000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@E12000009", + "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@E12000005", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.24430523917995", - "value_before_uprating": "62000.0" + "factor": "1.12268518518519", + "value_before_uprating": "573000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@W92000004", + "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@E12000006", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.24430523917995", - "value_before_uprating": "20000.0" + "factor": "1.12268518518519", + "value_before_uprating": "644000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@S92000003", + "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@E12000007", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.24430523917995", - "value_before_uprating": "56000.0" + "factor": "1.12268518518519", + "value_before_uprating": "847000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@N92000002", + "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@E12000008", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.24430523917995", - "value_before_uprating": "12000.0" + "factor": "1.12268518518519", + "value_before_uprating": "950000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@E12000001", + "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@E12000009", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.16581632653061", - "value_before_uprating": "5000.0" + "factor": "1.12268518518519", + "value_before_uprating": "607000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@E12000002", + "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@W92000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.16581632653061", - "value_before_uprating": "19000.0" + "factor": "1.12268518518519", + "value_before_uprating": "306000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@E12000003", + "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@S92000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.16581632653061", - "value_before_uprating": "12000.0" + "factor": "1.12268518518519", + "value_before_uprating": "573000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@E12000004", + "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@N92000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.16581632653061", - "value_before_uprating": "12000.0" + "factor": "1.12268518518519", + "value_before_uprating": "175000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@E12000005", + "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@E12000001", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.16581632653061", - "value_before_uprating": "14000.0" + "factor": "1.12268518518519", + "value_before_uprating": "140000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@E12000006", + "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@E12000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.16581632653061", - "value_before_uprating": "35000.0" + "factor": "1.12268518518519", + "value_before_uprating": "427000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@E12000007", + "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@E12000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.16581632653061", - "value_before_uprating": "89000.0" + "factor": "1.12268518518519", + "value_before_uprating": "308000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@E12000008", + "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@E12000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.16581632653061", - "value_before_uprating": "64000.0" + "factor": "1.12268518518519", + "value_before_uprating": "293000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@E12000009", + "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@E12000005", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.16581632653061", - "value_before_uprating": "19000.0" + "factor": "1.12268518518519", + "value_before_uprating": "332000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@W92000004", + "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@E12000006", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.16581632653061", - "value_before_uprating": "6000.0" + "factor": "1.12268518518519", + "value_before_uprating": "406000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@S92000003", + "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@E12000007", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.16581632653061", - "value_before_uprating": "15000.0" + "factor": "1.12268518518519", + "value_before_uprating": "569000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@N92000002", + "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@E12000008", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.16581632653061", - "value_before_uprating": "3000.0" + "factor": "1.12268518518519", + "value_before_uprating": "635000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@E12000001", + "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@E12000009", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.19770408163265", - "value_before_uprating": "4000.0" + "factor": "1.12268518518519", + "value_before_uprating": "364000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@E12000002", + "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@W92000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.19770408163265", - "value_before_uprating": "19000.0" + "factor": "1.12268518518519", + "value_before_uprating": "175000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@E12000003", + "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@S92000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.19770408163265", - "value_before_uprating": "13000.0" + "factor": "1.12268518518519", + "value_before_uprating": "364000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@E12000004", + "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@N92000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.19770408163265", - "value_before_uprating": "13000.0" + "factor": "1.12268518518519", + "value_before_uprating": "99000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@E12000005", + "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@E12000001", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.19770408163265", - "value_before_uprating": "16000.0" + "factor": "1.21716287215412", + "value_before_uprating": "119000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@E12000006", + "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@E12000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.19770408163265", - "value_before_uprating": "45000.0" + "factor": "1.21716287215412", + "value_before_uprating": "373000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@E12000007", + "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@E12000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.19770408163265", - "value_before_uprating": "150000.0" + "factor": "1.21716287215412", + "value_before_uprating": "254000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@E12000008", + "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@E12000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.19770408163265", - "value_before_uprating": "85000.0" + "factor": "1.21716287215412", + "value_before_uprating": "252000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@E12000009", + "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@E12000005", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.19770408163265", - "value_before_uprating": "20000.0" + "factor": "1.21716287215412", + "value_before_uprating": "303000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@W92000004", + "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@E12000006", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.19770408163265", - "value_before_uprating": "5000.0" + "factor": "1.21716287215412", + "value_before_uprating": "415000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@S92000003", + "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@E12000007", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.19770408163265", - "value_before_uprating": "16000.0" + "factor": "1.21716287215412", + "value_before_uprating": "660000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@N92000002", + "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@E12000008", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.19770408163265", - "value_before_uprating": "4000.0" + "factor": "1.21716287215412", + "value_before_uprating": "657000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_12570_15000@E12000001", + "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@E12000009", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.05", - "value_before_uprating": "1600000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.21716287215412", + "value_before_uprating": "324000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_12570_15000@E12000002", + "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@W92000004", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.05", - "value_before_uprating": "4390000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.21716287215412", + "value_before_uprating": "150000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_12570_15000@E12000003", + "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@S92000003", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.05", - "value_before_uprating": "3230000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.21716287215412", + "value_before_uprating": "298000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_12570_15000@E12000004", + "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@N92000002", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.05", - "value_before_uprating": "3020000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.21716287215412", + "value_before_uprating": "71000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_12570_15000@E12000005", + "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@E12000001", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.05", - "value_before_uprating": "3410000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.21716287215412", + "value_before_uprating": "43000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_12570_15000@E12000006", + "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@E12000002", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.05", - "value_before_uprating": "3610000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.21716287215412", + "value_before_uprating": "156000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_12570_15000@E12000007", + "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@E12000003", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.05", - "value_before_uprating": "4430000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.21716287215412", + "value_before_uprating": "99000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_12570_15000@E12000008", + "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@E12000004", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.05", - "value_before_uprating": "4810000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.21716287215412", + "value_before_uprating": "102000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_12570_15000@E12000009", + "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@E12000005", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.05", - "value_before_uprating": "3360000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.21716287215412", + "value_before_uprating": "124000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_12570_15000@W92000004", + "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@E12000006", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.05", - "value_before_uprating": "1950000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.21716287215412", + "value_before_uprating": "206000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_12570_15000@S92000003", + "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@E12000007", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.05", - "value_before_uprating": "3290000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.21716287215412", + "value_before_uprating": "386000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_12570_15000@N92000002", + "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@E12000008", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.05", - "value_before_uprating": "1030000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.21716287215412", + "value_before_uprating": "351000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_15000_20000@E12000001", + "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@E12000009", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "0.977178423236514", - "value_before_uprating": "4050000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.21716287215412", + "value_before_uprating": "137000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_15000_20000@E12000002", + "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@W92000004", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "0.977178423236514", - "value_before_uprating": "11100000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.21716287215412", + "value_before_uprating": "48000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_15000_20000@E12000003", + "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@S92000003", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "0.977178423236514", - "value_before_uprating": "8510000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.21716287215412", + "value_before_uprating": "132000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_15000_20000@E12000004", + "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@N92000002", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "0.977178423236514", - "value_before_uprating": "7710000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.21716287215412", + "value_before_uprating": "27000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_15000_20000@E12000005", + "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@E12000001", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "0.977178423236514", - "value_before_uprating": "8760000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.24430523917995", + "value_before_uprating": "17000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_15000_20000@E12000006", + "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@E12000002", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "0.977178423236514", - "value_before_uprating": "9080000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.24430523917995", + "value_before_uprating": "62000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_15000_20000@E12000007", + "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@E12000003", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "0.977178423236514", - "value_before_uprating": "9730000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.24430523917995", + "value_before_uprating": "42000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_15000_20000@E12000008", + "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@E12000004", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "0.977178423236514", - "value_before_uprating": "12700000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.24430523917995", + "value_before_uprating": "44000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_15000_20000@E12000009", + "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@E12000005", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "0.977178423236514", - "value_before_uprating": "8680000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.24430523917995", + "value_before_uprating": "46000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_15000_20000@W92000004", + "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@E12000006", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "0.977178423236514", - "value_before_uprating": "4490000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.24430523917995", + "value_before_uprating": "101000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_15000_20000@S92000003", + "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@E12000007", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "0.977178423236514", - "value_before_uprating": "7860000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.24430523917995", + "value_before_uprating": "226000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_15000_20000@N92000002", + "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@E12000008", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "0.977178423236514", - "value_before_uprating": "2620000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.24430523917995", + "value_before_uprating": "186000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_20000_30000@E12000001", + "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@E12000009", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.00296442687747", - "value_before_uprating": "10400000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.24430523917995", + "value_before_uprating": "62000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_20000_30000@E12000002", + "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@W92000004", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.00296442687747", - "value_before_uprating": "29100000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.24430523917995", + "value_before_uprating": "20000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_20000_30000@E12000003", + "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@S92000003", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.00296442687747", - "value_before_uprating": "21800000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.24430523917995", + "value_before_uprating": "56000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_20000_30000@E12000004", + "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@N92000002", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.00296442687747", - "value_before_uprating": "19800000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.24430523917995", + "value_before_uprating": "12000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_20000_30000@E12000005", + "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@E12000001", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.00296442687747", - "value_before_uprating": "23100000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.16581632653061", + "value_before_uprating": "5000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_20000_30000@E12000006", + "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@E12000002", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.00296442687747", - "value_before_uprating": "23600000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.16581632653061", + "value_before_uprating": "19000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_20000_30000@E12000007", + "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@E12000003", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.00296442687747", - "value_before_uprating": "25700000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.16581632653061", + "value_before_uprating": "12000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_20000_30000@E12000008", + "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@E12000004", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.00296442687747", - "value_before_uprating": "33600000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.16581632653061", + "value_before_uprating": "12000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_20000_30000@E12000009", + "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@E12000005", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.00296442687747", - "value_before_uprating": "23500000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.16581632653061", + "value_before_uprating": "14000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_20000_30000@W92000004", + "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@E12000006", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.00296442687747", - "value_before_uprating": "12600000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.16581632653061", + "value_before_uprating": "35000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_20000_30000@S92000003", + "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@E12000007", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.00296442687747", - "value_before_uprating": "20900000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.16581632653061", + "value_before_uprating": "89000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_20000_30000@N92000002", + "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@E12000008", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.00296442687747", - "value_before_uprating": "7070000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.16581632653061", + "value_before_uprating": "64000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_30000_40000@E12000001", + "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@E12000009", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "8480000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.16581632653061", + "value_before_uprating": "19000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_30000_40000@E12000002", + "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@W92000004", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "24600000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.16581632653061", + "value_before_uprating": "6000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_30000_40000@E12000003", + "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@S92000003", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "18500000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.16581632653061", + "value_before_uprating": "15000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_30000_40000@E12000004", + "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@N92000002", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "17000000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.16581632653061", + "value_before_uprating": "3000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_30000_40000@E12000005", + "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@E12000001", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "19800000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.19770408163265", + "value_before_uprating": "4000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_30000_40000@E12000006", + "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@E12000002", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "22300000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.19770408163265", + "value_before_uprating": "19000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_30000_40000@E12000007", + "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@E12000003", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "29400000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.19770408163265", + "value_before_uprating": "13000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_30000_40000@E12000008", + "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@E12000004", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "32900000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.19770408163265", + "value_before_uprating": "13000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_30000_40000@E12000009", + "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@E12000005", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "20900000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.19770408163265", + "value_before_uprating": "16000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_30000_40000@W92000004", + "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@E12000006", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "10500000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.19770408163265", + "value_before_uprating": "45000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_30000_40000@S92000003", + "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@E12000007", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "19800000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.19770408163265", + "value_before_uprating": "150000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_30000_40000@N92000002", + "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@E12000008", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "6030000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.19770408163265", + "value_before_uprating": "85000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_40000_50000@E12000001", + "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@E12000009", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "6270000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.19770408163265", + "value_before_uprating": "20000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_40000_50000@E12000002", + "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@W92000004", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "19100000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.19770408163265", + "value_before_uprating": "5000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_40000_50000@E12000003", + "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@S92000003", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "13700000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.19770408163265", + "value_before_uprating": "16000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_40000_50000@E12000004", + "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@N92000002", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "13100000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.19770408163265", + "value_before_uprating": "4000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_40000_50000@E12000005", + "name": "hmrc.spi_region.total_income_by_region_12570_15000@E12000001", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "14900000000.0" + "factor": "1.05", + "value_before_uprating": "1600000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_40000_50000@E12000006", + "name": "hmrc.spi_region.total_income_by_region_12570_15000@E12000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "18200000000.0" + "factor": "1.05", + "value_before_uprating": "4390000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_40000_50000@E12000007", + "name": "hmrc.spi_region.total_income_by_region_12570_15000@E12000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "25500000000.0" + "factor": "1.05", + "value_before_uprating": "3230000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_40000_50000@E12000008", + "name": "hmrc.spi_region.total_income_by_region_12570_15000@E12000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "28400000000.0" + "factor": "1.05", + "value_before_uprating": "3020000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_40000_50000@E12000009", + "name": "hmrc.spi_region.total_income_by_region_12570_15000@E12000005", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "16300000000.0" + "factor": "1.05", + "value_before_uprating": "3410000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_40000_50000@W92000004", + "name": "hmrc.spi_region.total_income_by_region_12570_15000@E12000006", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "7820000000.0" + "factor": "1.05", + "value_before_uprating": "3610000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_40000_50000@S92000003", + "name": "hmrc.spi_region.total_income_by_region_12570_15000@E12000007", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "16300000000.0" + "factor": "1.05", + "value_before_uprating": "4430000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_40000_50000@N92000002", + "name": "hmrc.spi_region.total_income_by_region_12570_15000@E12000008", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "4410000000.0" + "factor": "1.05", + "value_before_uprating": "4810000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_50000_70000@E12000001", + "name": "hmrc.spi_region.total_income_by_region_12570_15000@E12000009", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "6850000000.0" + "factor": "1.05", + "value_before_uprating": "3360000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_50000_70000@E12000002", + "name": "hmrc.spi_region.total_income_by_region_12570_15000@W92000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "21500000000.0" + "factor": "1.05", + "value_before_uprating": "1950000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_50000_70000@E12000003", + "name": "hmrc.spi_region.total_income_by_region_12570_15000@S92000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "14600000000.0" + "factor": "1.05", + "value_before_uprating": "3290000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_50000_70000@E12000004", + "name": "hmrc.spi_region.total_income_by_region_12570_15000@N92000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "14500000000.0" + "factor": "1.05", + "value_before_uprating": "1030000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_50000_70000@E12000005", + "name": "hmrc.spi_region.total_income_by_region_15000_20000@E12000001", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "17400000000.0" + "factor": "0.977178423236514", + "value_before_uprating": "4050000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_50000_70000@E12000006", + "name": "hmrc.spi_region.total_income_by_region_15000_20000@E12000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "24000000000.0" + "factor": "0.977178423236514", + "value_before_uprating": "11100000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_50000_70000@E12000007", + "name": "hmrc.spi_region.total_income_by_region_15000_20000@E12000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "38500000000.0" + "factor": "0.977178423236514", + "value_before_uprating": "8510000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_50000_70000@E12000008", + "name": "hmrc.spi_region.total_income_by_region_15000_20000@E12000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "38100000000.0" + "factor": "0.977178423236514", + "value_before_uprating": "7710000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_50000_70000@E12000009", + "name": "hmrc.spi_region.total_income_by_region_15000_20000@E12000005", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "18600000000.0" + "factor": "0.977178423236514", + "value_before_uprating": "8760000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_50000_70000@W92000004", + "name": "hmrc.spi_region.total_income_by_region_15000_20000@E12000006", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "8630000000.0" + "factor": "0.977178423236514", + "value_before_uprating": "9080000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_50000_70000@S92000003", + "name": "hmrc.spi_region.total_income_by_region_15000_20000@E12000007", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "17200000000.0" + "factor": "0.977178423236514", + "value_before_uprating": "9730000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_50000_70000@N92000002", + "name": "hmrc.spi_region.total_income_by_region_15000_20000@E12000008", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "4080000000.0" + "factor": "0.977178423236514", + "value_before_uprating": "12700000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_70000_100000@E12000001", + "name": "hmrc.spi_region.total_income_by_region_15000_20000@E12000009", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "3520000000.0" + "factor": "0.977178423236514", + "value_before_uprating": "8680000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_70000_100000@E12000002", + "name": "hmrc.spi_region.total_income_by_region_15000_20000@W92000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "12700000000.0" + "factor": "0.977178423236514", + "value_before_uprating": "4490000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_70000_100000@E12000003", + "name": "hmrc.spi_region.total_income_by_region_15000_20000@S92000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "8140000000.0" + "factor": "0.977178423236514", + "value_before_uprating": "7860000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_70000_100000@E12000004", + "name": "hmrc.spi_region.total_income_by_region_15000_20000@N92000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "8400000000.0" + "factor": "0.977178423236514", + "value_before_uprating": "2620000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_70000_100000@E12000005", + "name": "hmrc.spi_region.total_income_by_region_20000_30000@E12000001", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "10200000000.0" + "factor": "1.00296442687747", + "value_before_uprating": "10400000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_70000_100000@E12000006", + "name": "hmrc.spi_region.total_income_by_region_20000_30000@E12000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "17000000000.0" + "factor": "1.00296442687747", + "value_before_uprating": "29100000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_70000_100000@E12000007", + "name": "hmrc.spi_region.total_income_by_region_20000_30000@E12000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "32000000000.0" + "factor": "1.00296442687747", + "value_before_uprating": "21800000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_70000_100000@E12000008", + "name": "hmrc.spi_region.total_income_by_region_20000_30000@E12000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "29100000000.0" + "factor": "1.00296442687747", + "value_before_uprating": "19800000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_70000_100000@E12000009", + "name": "hmrc.spi_region.total_income_by_region_20000_30000@E12000005", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "11300000000.0" + "factor": "1.00296442687747", + "value_before_uprating": "23100000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_70000_100000@W92000004", + "name": "hmrc.spi_region.total_income_by_region_20000_30000@E12000006", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "3950000000.0" + "factor": "1.00296442687747", + "value_before_uprating": "23600000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_70000_100000@S92000003", + "name": "hmrc.spi_region.total_income_by_region_20000_30000@E12000007", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "10800000000.0" + "factor": "1.00296442687747", + "value_before_uprating": "25700000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_70000_100000@N92000002", + "name": "hmrc.spi_region.total_income_by_region_20000_30000@E12000008", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "2230000000.0" + "factor": "1.00296442687747", + "value_before_uprating": "33600000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_100000_150000@E12000001", + "name": "hmrc.spi_region.total_income_by_region_20000_30000@E12000009", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.23571428571429", - "value_before_uprating": "2050000000.0" + "factor": "1.00296442687747", + "value_before_uprating": "23500000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_100000_150000@E12000002", + "name": "hmrc.spi_region.total_income_by_region_20000_30000@W92000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.23571428571429", - "value_before_uprating": "7330000000.0" + "factor": "1.00296442687747", + "value_before_uprating": "12600000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_100000_150000@E12000003", + "name": "hmrc.spi_region.total_income_by_region_20000_30000@S92000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.23571428571429", - "value_before_uprating": "4940000000.0" + "factor": "1.00296442687747", + "value_before_uprating": "20900000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_100000_150000@E12000004", + "name": "hmrc.spi_region.total_income_by_region_20000_30000@N92000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.23571428571429", - "value_before_uprating": "5200000000.0" + "factor": "1.00296442687747", + "value_before_uprating": "7070000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_100000_150000@E12000005", + "name": "hmrc.spi_region.total_income_by_region_30000_40000@E12000001", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.23571428571429", - "value_before_uprating": "5480000000.0" + "factor": "1.11899038461538", + "value_before_uprating": "8480000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_100000_150000@E12000006", + "name": "hmrc.spi_region.total_income_by_region_30000_40000@E12000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.23571428571429", - "value_before_uprating": "12000000000.0" + "factor": "1.11899038461538", + "value_before_uprating": "24600000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_100000_150000@E12000007", + "name": "hmrc.spi_region.total_income_by_region_30000_40000@E12000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.23571428571429", - "value_before_uprating": "27100000000.0" + "factor": "1.11899038461538", + "value_before_uprating": "18500000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_100000_150000@E12000008", + "name": "hmrc.spi_region.total_income_by_region_30000_40000@E12000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.23571428571429", - "value_before_uprating": "22300000000.0" + "factor": "1.11899038461538", + "value_before_uprating": "17000000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_100000_150000@E12000009", + "name": "hmrc.spi_region.total_income_by_region_30000_40000@E12000005", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.23571428571429", - "value_before_uprating": "7430000000.0" + "factor": "1.11899038461538", + "value_before_uprating": "19800000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_100000_150000@W92000004", + "name": "hmrc.spi_region.total_income_by_region_30000_40000@E12000006", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.23571428571429", - "value_before_uprating": "2400000000.0" + "factor": "1.11899038461538", + "value_before_uprating": "22300000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_100000_150000@S92000003", + "name": "hmrc.spi_region.total_income_by_region_30000_40000@E12000007", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.23571428571429", - "value_before_uprating": "6560000000.0" + "factor": "1.11899038461538", + "value_before_uprating": "29400000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_100000_150000@N92000002", + "name": "hmrc.spi_region.total_income_by_region_30000_40000@E12000008", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.23571428571429", - "value_before_uprating": "1360000000.0" + "factor": "1.11899038461538", + "value_before_uprating": "32900000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_150000_200000@E12000001", + "name": "hmrc.spi_region.total_income_by_region_30000_40000@E12000009", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.15891089108911", - "value_before_uprating": "818000000.0" + "factor": "1.11899038461538", + "value_before_uprating": "20900000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_150000_200000@E12000002", + "name": "hmrc.spi_region.total_income_by_region_30000_40000@W92000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.15891089108911", - "value_before_uprating": "3230000000.0" + "factor": "1.11899038461538", + "value_before_uprating": "10500000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_150000_200000@E12000003", + "name": "hmrc.spi_region.total_income_by_region_30000_40000@S92000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.15891089108911", - "value_before_uprating": "2100000000.0" + "factor": "1.11899038461538", + "value_before_uprating": "19800000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_150000_200000@E12000004", + "name": "hmrc.spi_region.total_income_by_region_30000_40000@N92000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.15891089108911", - "value_before_uprating": "2110000000.0" + "factor": "1.11899038461538", + "value_before_uprating": "6030000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_150000_200000@E12000005", + "name": "hmrc.spi_region.total_income_by_region_40000_50000@E12000001", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.15891089108911", - "value_before_uprating": "2470000000.0" + "factor": "1.11899038461538", + "value_before_uprating": "6270000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_150000_200000@E12000006", + "name": "hmrc.spi_region.total_income_by_region_40000_50000@E12000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.15891089108911", - "value_before_uprating": "5910000000.0" + "factor": "1.11899038461538", + "value_before_uprating": "19100000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_150000_200000@E12000007", + "name": "hmrc.spi_region.total_income_by_region_40000_50000@E12000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.15891089108911", - "value_before_uprating": "15300000000.0" + "factor": "1.11899038461538", + "value_before_uprating": "13700000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_150000_200000@E12000008", + "name": "hmrc.spi_region.total_income_by_region_40000_50000@E12000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.15891089108911", - "value_before_uprating": "11000000000.0" + "factor": "1.11899038461538", + "value_before_uprating": "13100000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_150000_200000@E12000009", + "name": "hmrc.spi_region.total_income_by_region_40000_50000@E12000005", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.15891089108911", - "value_before_uprating": "3200000000.0" + "factor": "1.11899038461538", + "value_before_uprating": "14900000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_150000_200000@W92000004", + "name": "hmrc.spi_region.total_income_by_region_40000_50000@E12000006", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.15891089108911", - "value_before_uprating": "945000000.0" + "factor": "1.11899038461538", + "value_before_uprating": "18200000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_150000_200000@S92000003", + "name": "hmrc.spi_region.total_income_by_region_40000_50000@E12000007", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.15891089108911", - "value_before_uprating": "2650000000.0" + "factor": "1.11899038461538", + "value_before_uprating": "25500000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_150000_200000@N92000002", + "name": "hmrc.spi_region.total_income_by_region_40000_50000@E12000008", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.15891089108911", - "value_before_uprating": "557000000.0" + "factor": "1.11899038461538", + "value_before_uprating": "28400000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_200000_plus@E12000001", + "name": "hmrc.spi_region.total_income_by_region_40000_50000@E12000009", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.20880245649949", - "value_before_uprating": "1570000000.0" + "factor": "1.11899038461538", + "value_before_uprating": "16300000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_200000_plus@E12000002", + "name": "hmrc.spi_region.total_income_by_region_40000_50000@W92000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.20880245649949", - "value_before_uprating": "8750000000.0" + "factor": "1.11899038461538", + "value_before_uprating": "7820000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_200000_plus@E12000003", + "name": "hmrc.spi_region.total_income_by_region_40000_50000@S92000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.20880245649949", - "value_before_uprating": "5150000000.0" + "factor": "1.11899038461538", + "value_before_uprating": "16300000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_200000_plus@E12000004", + "name": "hmrc.spi_region.total_income_by_region_40000_50000@N92000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.20880245649949", - "value_before_uprating": "5420000000.0" + "factor": "1.11899038461538", + "value_before_uprating": "4410000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_200000_plus@E12000005", + "name": "hmrc.spi_region.total_income_by_region_50000_70000@E12000001", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.20880245649949", - "value_before_uprating": "6530000000.0" + "factor": "1.21466666666667", + "value_before_uprating": "6850000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_200000_plus@E12000006", + "name": "hmrc.spi_region.total_income_by_region_50000_70000@E12000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.20880245649949", - "value_before_uprating": "19400000000.0" + "factor": "1.21466666666667", + "value_before_uprating": "21500000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_200000_plus@E12000007", + "name": "hmrc.spi_region.total_income_by_region_50000_70000@E12000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.20880245649949", - "value_before_uprating": "88100000000.0" + "factor": "1.21466666666667", + "value_before_uprating": "14600000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_200000_plus@E12000008", + "name": "hmrc.spi_region.total_income_by_region_50000_70000@E12000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.20880245649949", - "value_before_uprating": "39800000000.0" + "factor": "1.21466666666667", + "value_before_uprating": "14500000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_200000_plus@E12000009", + "name": "hmrc.spi_region.total_income_by_region_50000_70000@E12000005", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.20880245649949", - "value_before_uprating": "9030000000.0" + "factor": "1.21466666666667", + "value_before_uprating": "17400000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_200000_plus@W92000004", + "name": "hmrc.spi_region.total_income_by_region_50000_70000@E12000006", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.20880245649949", - "value_before_uprating": "1670000000.0" + "factor": "1.21466666666667", + "value_before_uprating": "24000000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_200000_plus@S92000003", + "name": "hmrc.spi_region.total_income_by_region_50000_70000@E12000007", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.20880245649949", - "value_before_uprating": "7120000000.0" + "factor": "1.21466666666667", + "value_before_uprating": "38500000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_200000_plus@N92000002", + "name": "hmrc.spi_region.total_income_by_region_50000_70000@E12000008", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.20880245649949", - "value_before_uprating": "1390000000.0" + "factor": "1.21466666666667", + "value_before_uprating": "38100000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_12570_15000@E12000001", + "name": "hmrc.spi_region.total_income_by_region_50000_70000@E12000009", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.10296610169492", - "value_before_uprating": "24000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.21466666666667", + "value_before_uprating": "18600000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_12570_15000@E12000002", + "name": "hmrc.spi_region.total_income_by_region_50000_70000@W92000004", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.10296610169492", - "value_before_uprating": "63000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.21466666666667", + "value_before_uprating": "8630000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_12570_15000@E12000003", + "name": "hmrc.spi_region.total_income_by_region_50000_70000@S92000003", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.10296610169492", - "value_before_uprating": "46000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.21466666666667", + "value_before_uprating": "17200000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_12570_15000@E12000004", + "name": "hmrc.spi_region.total_income_by_region_50000_70000@N92000002", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.10296610169492", - "value_before_uprating": "43000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.21466666666667", + "value_before_uprating": "4080000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_12570_15000@E12000005", + "name": "hmrc.spi_region.total_income_by_region_70000_100000@E12000001", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.10296610169492", - "value_before_uprating": "50000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.21466666666667", + "value_before_uprating": "3520000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_12570_15000@E12000006", + "name": "hmrc.spi_region.total_income_by_region_70000_100000@E12000002", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.10296610169492", - "value_before_uprating": "52000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.21466666666667", + "value_before_uprating": "12700000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_12570_15000@E12000007", + "name": "hmrc.spi_region.total_income_by_region_70000_100000@E12000003", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.10296610169492", - "value_before_uprating": "70000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.21466666666667", + "value_before_uprating": "8140000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_12570_15000@E12000008", + "name": "hmrc.spi_region.total_income_by_region_70000_100000@E12000004", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.10296610169492", - "value_before_uprating": "71000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.21466666666667", + "value_before_uprating": "8400000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_12570_15000@E12000009", + "name": "hmrc.spi_region.total_income_by_region_70000_100000@E12000005", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.10296610169492", - "value_before_uprating": "49000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.21466666666667", + "value_before_uprating": "10200000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_12570_15000@W92000004", + "name": "hmrc.spi_region.total_income_by_region_70000_100000@E12000006", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.10296610169492", - "value_before_uprating": "28000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.21466666666667", + "value_before_uprating": "17000000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_12570_15000@S92000003", + "name": "hmrc.spi_region.total_income_by_region_70000_100000@E12000007", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.10296610169492", - "value_before_uprating": "47000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.21466666666667", + "value_before_uprating": "32000000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_12570_15000@N92000002", + "name": "hmrc.spi_region.total_income_by_region_70000_100000@E12000008", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.10296610169492", - "value_before_uprating": "15000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.21466666666667", + "value_before_uprating": "29100000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_15000_20000@E12000001", + "name": "hmrc.spi_region.total_income_by_region_70000_100000@E12000009", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "0.976831896551724", - "value_before_uprating": "199000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.21466666666667", + "value_before_uprating": "11300000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_15000_20000@E12000002", + "name": "hmrc.spi_region.total_income_by_region_70000_100000@W92000004", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "0.976831896551724", - "value_before_uprating": "539000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.21466666666667", + "value_before_uprating": "3950000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_15000_20000@E12000003", + "name": "hmrc.spi_region.total_income_by_region_70000_100000@S92000003", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "0.976831896551724", - "value_before_uprating": "407000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.21466666666667", + "value_before_uprating": "10800000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_15000_20000@E12000004", + "name": "hmrc.spi_region.total_income_by_region_70000_100000@N92000002", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "0.976831896551724", - "value_before_uprating": "372000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.21466666666667", + "value_before_uprating": "2230000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_15000_20000@E12000005", + "name": "hmrc.spi_region.total_income_by_region_100000_150000@E12000001", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "0.976831896551724", - "value_before_uprating": "423000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.23571428571429", + "value_before_uprating": "2050000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_15000_20000@E12000006", + "name": "hmrc.spi_region.total_income_by_region_100000_150000@E12000002", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "0.976831896551724", - "value_before_uprating": "431000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.23571428571429", + "value_before_uprating": "7330000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_15000_20000@E12000007", + "name": "hmrc.spi_region.total_income_by_region_100000_150000@E12000003", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "0.976831896551724", - "value_before_uprating": "474000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.23571428571429", + "value_before_uprating": "4940000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_15000_20000@E12000008", + "name": "hmrc.spi_region.total_income_by_region_100000_150000@E12000004", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "0.976831896551724", - "value_before_uprating": "601000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.23571428571429", + "value_before_uprating": "5200000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_15000_20000@E12000009", + "name": "hmrc.spi_region.total_income_by_region_100000_150000@E12000005", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "0.976831896551724", - "value_before_uprating": "412000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.23571428571429", + "value_before_uprating": "5480000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_15000_20000@W92000004", + "name": "hmrc.spi_region.total_income_by_region_100000_150000@E12000006", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "0.976831896551724", - "value_before_uprating": "214000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.23571428571429", + "value_before_uprating": "12000000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_15000_20000@S92000003", + "name": "hmrc.spi_region.total_income_by_region_100000_150000@E12000007", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "0.976831896551724", - "value_before_uprating": "374000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.23571428571429", + "value_before_uprating": "27100000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_15000_20000@N92000002", + "name": "hmrc.spi_region.total_income_by_region_100000_150000@E12000008", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "0.976831896551724", - "value_before_uprating": "129000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.23571428571429", + "value_before_uprating": "22300000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_20000_30000@E12000001", + "name": "hmrc.spi_region.total_income_by_region_100000_150000@E12000009", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.01431718061674", - "value_before_uprating": "940000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.23571428571429", + "value_before_uprating": "7430000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_20000_30000@E12000002", + "name": "hmrc.spi_region.total_income_by_region_100000_150000@W92000004", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.01431718061674", - "value_before_uprating": "2630000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.23571428571429", + "value_before_uprating": "2400000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_20000_30000@E12000003", + "name": "hmrc.spi_region.total_income_by_region_100000_150000@S92000003", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.01431718061674", - "value_before_uprating": "1960000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.23571428571429", + "value_before_uprating": "6560000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_20000_30000@E12000004", + "name": "hmrc.spi_region.total_income_by_region_100000_150000@N92000002", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.01431718061674", - "value_before_uprating": "1780000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.23571428571429", + "value_before_uprating": "1360000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_20000_30000@E12000005", + "name": "hmrc.spi_region.total_income_by_region_150000_200000@E12000001", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.01431718061674", - "value_before_uprating": "2080000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.15891089108911", + "value_before_uprating": "818000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_20000_30000@E12000006", + "name": "hmrc.spi_region.total_income_by_region_150000_200000@E12000002", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.01431718061674", - "value_before_uprating": "2110000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.15891089108911", + "value_before_uprating": "3230000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_20000_30000@E12000007", + "name": "hmrc.spi_region.total_income_by_region_150000_200000@E12000003", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.01431718061674", - "value_before_uprating": "2330000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.15891089108911", + "value_before_uprating": "2100000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_20000_30000@E12000008", + "name": "hmrc.spi_region.total_income_by_region_150000_200000@E12000004", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.01431718061674", - "value_before_uprating": "3010000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.15891089108911", + "value_before_uprating": "2110000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_20000_30000@E12000009", + "name": "hmrc.spi_region.total_income_by_region_150000_200000@E12000005", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.01431718061674", - "value_before_uprating": "2100000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.15891089108911", + "value_before_uprating": "2470000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_20000_30000@W92000004", + "name": "hmrc.spi_region.total_income_by_region_150000_200000@E12000006", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.01431718061674", - "value_before_uprating": "1120000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.15891089108911", + "value_before_uprating": "5910000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_20000_30000@S92000003", + "name": "hmrc.spi_region.total_income_by_region_150000_200000@E12000007", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.01431718061674", - "value_before_uprating": "1880000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.15891089108911", + "value_before_uprating": "15300000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_20000_30000@N92000002", + "name": "hmrc.spi_region.total_income_by_region_150000_200000@E12000008", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.01431718061674", - "value_before_uprating": "637000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.15891089108911", + "value_before_uprating": "11000000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_30000_40000@E12000001", + "name": "hmrc.spi_region.total_income_by_region_150000_200000@E12000009", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "998000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.15891089108911", + "value_before_uprating": "3200000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_30000_40000@E12000002", + "name": "hmrc.spi_region.total_income_by_region_150000_200000@W92000004", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "2890000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.15891089108911", + "value_before_uprating": "945000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_30000_40000@E12000003", + "name": "hmrc.spi_region.total_income_by_region_150000_200000@S92000003", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "2160000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.15891089108911", + "value_before_uprating": "2650000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_30000_40000@E12000004", + "name": "hmrc.spi_region.total_income_by_region_150000_200000@N92000002", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "1990000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.15891089108911", + "value_before_uprating": "557000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_30000_40000@E12000005", + "name": "hmrc.spi_region.total_income_by_region_200000_plus@E12000001", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "2310000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.20880245649949", + "value_before_uprating": "1570000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_30000_40000@E12000006", + "name": "hmrc.spi_region.total_income_by_region_200000_plus@E12000002", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "2610000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.20880245649949", + "value_before_uprating": "8750000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_30000_40000@E12000007", + "name": "hmrc.spi_region.total_income_by_region_200000_plus@E12000003", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "3460000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.20880245649949", + "value_before_uprating": "5150000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_30000_40000@E12000008", + "name": "hmrc.spi_region.total_income_by_region_200000_plus@E12000004", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "3830000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.20880245649949", + "value_before_uprating": "5420000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_30000_40000@E12000009", + "name": "hmrc.spi_region.total_income_by_region_200000_plus@E12000005", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "2440000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.20880245649949", + "value_before_uprating": "6530000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_30000_40000@W92000004", + "name": "hmrc.spi_region.total_income_by_region_200000_plus@E12000006", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "1230000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.20880245649949", + "value_before_uprating": "19400000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_30000_40000@S92000003", + "name": "hmrc.spi_region.total_income_by_region_200000_plus@E12000007", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "2360000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.20880245649949", + "value_before_uprating": "88100000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_30000_40000@N92000002", + "name": "hmrc.spi_region.total_income_by_region_200000_plus@E12000008", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "707000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.20880245649949", + "value_before_uprating": "39800000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_40000_50000@E12000001", + "name": "hmrc.spi_region.total_income_by_region_200000_plus@E12000009", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "820000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.20880245649949", + "value_before_uprating": "9030000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_40000_50000@E12000002", + "name": "hmrc.spi_region.total_income_by_region_200000_plus@W92000004", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "2480000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.20880245649949", + "value_before_uprating": "1670000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_40000_50000@E12000003", + "name": "hmrc.spi_region.total_income_by_region_200000_plus@S92000003", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "1780000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.20880245649949", + "value_before_uprating": "7120000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_40000_50000@E12000004", + "name": "hmrc.spi_region.total_income_by_region_200000_plus@N92000002", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "1710000000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.20880245649949", + "value_before_uprating": "1390000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_40000_50000@E12000005", + "name": "hmrc.spi_region.income_tax_by_region_12570_15000@E12000001", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "1940000000.0" + "factor": "1.10296610169492", + "value_before_uprating": "24000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_40000_50000@E12000006", + "name": "hmrc.spi_region.income_tax_by_region_12570_15000@E12000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "2350000000.0" + "factor": "1.10296610169492", + "value_before_uprating": "63000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_40000_50000@E12000007", + "name": "hmrc.spi_region.income_tax_by_region_12570_15000@E12000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "3330000000.0" + "factor": "1.10296610169492", + "value_before_uprating": "46000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_40000_50000@E12000008", + "name": "hmrc.spi_region.income_tax_by_region_12570_15000@E12000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "3670000000.0" + "factor": "1.10296610169492", + "value_before_uprating": "43000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_40000_50000@E12000009", + "name": "hmrc.spi_region.income_tax_by_region_12570_15000@E12000005", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "2100000000.0" + "factor": "1.10296610169492", + "value_before_uprating": "50000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_40000_50000@W92000004", + "name": "hmrc.spi_region.income_tax_by_region_12570_15000@E12000006", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "1020000000.0" + "factor": "1.10296610169492", + "value_before_uprating": "52000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_40000_50000@S92000003", + "name": "hmrc.spi_region.income_tax_by_region_12570_15000@E12000007", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "2240000000.0" + "factor": "1.10296610169492", + "value_before_uprating": "70000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_40000_50000@N92000002", + "name": "hmrc.spi_region.income_tax_by_region_12570_15000@E12000008", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "569000000.0" + "factor": "1.10296610169492", + "value_before_uprating": "71000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_50000_70000@E12000001", + "name": "hmrc.spi_region.income_tax_by_region_12570_15000@E12000009", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "1100000000.0" + "factor": "1.10296610169492", + "value_before_uprating": "49000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_50000_70000@E12000002", + "name": "hmrc.spi_region.income_tax_by_region_12570_15000@W92000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "3450000000.0" + "factor": "1.10296610169492", + "value_before_uprating": "28000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_50000_70000@E12000003", + "name": "hmrc.spi_region.income_tax_by_region_12570_15000@S92000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "2340000000.0" + "factor": "1.10296610169492", + "value_before_uprating": "47000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_50000_70000@E12000004", + "name": "hmrc.spi_region.income_tax_by_region_12570_15000@N92000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "2330000000.0" + "factor": "1.10296610169492", + "value_before_uprating": "15000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_50000_70000@E12000005", + "name": "hmrc.spi_region.income_tax_by_region_15000_20000@E12000001", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "2790000000.0" + "factor": "0.976831896551724", + "value_before_uprating": "199000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_50000_70000@E12000006", + "name": "hmrc.spi_region.income_tax_by_region_15000_20000@E12000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "3880000000.0" + "factor": "0.976831896551724", + "value_before_uprating": "539000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_50000_70000@E12000007", + "name": "hmrc.spi_region.income_tax_by_region_15000_20000@E12000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "6290000000.0" + "factor": "0.976831896551724", + "value_before_uprating": "407000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_50000_70000@E12000008", + "name": "hmrc.spi_region.income_tax_by_region_15000_20000@E12000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "6150000000.0" + "factor": "0.976831896551724", + "value_before_uprating": "372000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_50000_70000@E12000009", + "name": "hmrc.spi_region.income_tax_by_region_15000_20000@E12000005", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "2970000000.0" + "factor": "0.976831896551724", + "value_before_uprating": "423000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_50000_70000@W92000004", + "name": "hmrc.spi_region.income_tax_by_region_15000_20000@E12000006", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "1380000000.0" + "factor": "0.976831896551724", + "value_before_uprating": "431000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_50000_70000@S92000003", + "name": "hmrc.spi_region.income_tax_by_region_15000_20000@E12000007", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "3210000000.0" + "factor": "0.976831896551724", + "value_before_uprating": "474000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_50000_70000@N92000002", + "name": "hmrc.spi_region.income_tax_by_region_15000_20000@E12000008", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "636000000.0" + "factor": "0.976831896551724", + "value_before_uprating": "601000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_70000_100000@E12000001", + "name": "hmrc.spi_region.income_tax_by_region_15000_20000@E12000009", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "792000000.0" + "factor": "0.976831896551724", + "value_before_uprating": "412000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_70000_100000@E12000002", + "name": "hmrc.spi_region.income_tax_by_region_15000_20000@W92000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "2830000000.0" + "factor": "0.976831896551724", + "value_before_uprating": "214000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_70000_100000@E12000003", + "name": "hmrc.spi_region.income_tax_by_region_15000_20000@S92000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "1810000000.0" + "factor": "0.976831896551724", + "value_before_uprating": "374000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_70000_100000@E12000004", + "name": "hmrc.spi_region.income_tax_by_region_15000_20000@N92000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "1880000000.0" + "factor": "0.976831896551724", + "value_before_uprating": "129000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_70000_100000@E12000005", + "name": "hmrc.spi_region.income_tax_by_region_20000_30000@E12000001", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "2290000000.0" + "factor": "1.01431718061674", + "value_before_uprating": "940000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_70000_100000@E12000006", + "name": "hmrc.spi_region.income_tax_by_region_20000_30000@E12000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "3840000000.0" + "factor": "1.01431718061674", + "value_before_uprating": "2630000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_70000_100000@E12000007", + "name": "hmrc.spi_region.income_tax_by_region_20000_30000@E12000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "7290000000.0" + "factor": "1.01431718061674", + "value_before_uprating": "1960000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_70000_100000@E12000008", + "name": "hmrc.spi_region.income_tax_by_region_20000_30000@E12000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "6610000000.0" + "factor": "1.01431718061674", + "value_before_uprating": "1780000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_70000_100000@E12000009", + "name": "hmrc.spi_region.income_tax_by_region_20000_30000@E12000005", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "2530000000.0" + "factor": "1.01431718061674", + "value_before_uprating": "2080000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_70000_100000@W92000004", + "name": "hmrc.spi_region.income_tax_by_region_20000_30000@E12000006", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "870000000.0" + "factor": "1.01431718061674", + "value_before_uprating": "2110000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_70000_100000@S92000003", + "name": "hmrc.spi_region.income_tax_by_region_20000_30000@E12000007", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "2690000000.0" + "factor": "1.01431718061674", + "value_before_uprating": "2330000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_70000_100000@N92000002", + "name": "hmrc.spi_region.income_tax_by_region_20000_30000@E12000008", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "485000000.0" + "factor": "1.01431718061674", + "value_before_uprating": "3010000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_100000_150000@E12000001", + "name": "hmrc.spi_region.income_tax_by_region_20000_30000@E12000009", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.24183006535948", - "value_before_uprating": "580000000.0" + "factor": "1.01431718061674", + "value_before_uprating": "2100000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_100000_150000@E12000002", + "name": "hmrc.spi_region.income_tax_by_region_20000_30000@W92000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.24183006535948", - "value_before_uprating": "2100000000.0" + "factor": "1.01431718061674", + "value_before_uprating": "1120000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_100000_150000@E12000003", + "name": "hmrc.spi_region.income_tax_by_region_20000_30000@S92000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.24183006535948", - "value_before_uprating": "1410000000.0" + "factor": "1.01431718061674", + "value_before_uprating": "1880000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_100000_150000@E12000004", + "name": "hmrc.spi_region.income_tax_by_region_20000_30000@N92000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.24183006535948", - "value_before_uprating": "1500000000.0" + "factor": "1.01431718061674", + "value_before_uprating": "637000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_100000_150000@E12000005", + "name": "hmrc.spi_region.income_tax_by_region_30000_40000@E12000001", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.24183006535948", - "value_before_uprating": "1570000000.0" + "factor": "1.13134765625", + "value_before_uprating": "998000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_100000_150000@E12000006", + "name": "hmrc.spi_region.income_tax_by_region_30000_40000@E12000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.24183006535948", - "value_before_uprating": "3500000000.0" + "factor": "1.13134765625", + "value_before_uprating": "2890000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_100000_150000@E12000007", + "name": "hmrc.spi_region.income_tax_by_region_30000_40000@E12000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.24183006535948", - "value_before_uprating": "8050000000.0" + "factor": "1.13134765625", + "value_before_uprating": "2160000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_100000_150000@E12000008", + "name": "hmrc.spi_region.income_tax_by_region_30000_40000@E12000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.24183006535948", - "value_before_uprating": "6540000000.0" + "factor": "1.13134765625", + "value_before_uprating": "1990000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_100000_150000@E12000009", + "name": "hmrc.spi_region.income_tax_by_region_30000_40000@E12000005", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.24183006535948", - "value_before_uprating": "2120000000.0" + "factor": "1.13134765625", + "value_before_uprating": "2310000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_100000_150000@W92000004", + "name": "hmrc.spi_region.income_tax_by_region_30000_40000@E12000006", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.24183006535948", - "value_before_uprating": "679000000.0" + "factor": "1.13134765625", + "value_before_uprating": "2610000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_100000_150000@S92000003", + "name": "hmrc.spi_region.income_tax_by_region_30000_40000@E12000007", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.24183006535948", - "value_before_uprating": "2010000000.0" + "factor": "1.13134765625", + "value_before_uprating": "3460000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_100000_150000@N92000002", + "name": "hmrc.spi_region.income_tax_by_region_30000_40000@E12000008", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.24183006535948", - "value_before_uprating": "367000000.0" + "factor": "1.13134765625", + "value_before_uprating": "3830000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_150000_200000@E12000001", + "name": "hmrc.spi_region.income_tax_by_region_30000_40000@E12000009", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.16279069767442", - "value_before_uprating": "269000000.0" + "factor": "1.13134765625", + "value_before_uprating": "2440000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_150000_200000@E12000002", + "name": "hmrc.spi_region.income_tax_by_region_30000_40000@W92000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.16279069767442", - "value_before_uprating": "1080000000.0" + "factor": "1.13134765625", + "value_before_uprating": "1230000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_150000_200000@E12000003", + "name": "hmrc.spi_region.income_tax_by_region_30000_40000@S92000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.16279069767442", - "value_before_uprating": "693000000.0" + "factor": "1.13134765625", + "value_before_uprating": "2360000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_150000_200000@E12000004", + "name": "hmrc.spi_region.income_tax_by_region_30000_40000@N92000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.16279069767442", - "value_before_uprating": "712000000.0" + "factor": "1.13134765625", + "value_before_uprating": "707000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_150000_200000@E12000005", + "name": "hmrc.spi_region.income_tax_by_region_40000_50000@E12000001", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.16279069767442", - "value_before_uprating": "832000000.0" + "factor": "1.13134765625", + "value_before_uprating": "820000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_150000_200000@E12000006", + "name": "hmrc.spi_region.income_tax_by_region_40000_50000@E12000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.16279069767442", - "value_before_uprating": "2010000000.0" + "factor": "1.13134765625", + "value_before_uprating": "2480000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_150000_200000@E12000007", + "name": "hmrc.spi_region.income_tax_by_region_40000_50000@E12000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.16279069767442", - "value_before_uprating": "5260000000.0" + "factor": "1.13134765625", + "value_before_uprating": "1780000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_150000_200000@E12000008", + "name": "hmrc.spi_region.income_tax_by_region_40000_50000@E12000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.16279069767442", - "value_before_uprating": "3760000000.0" + "factor": "1.13134765625", + "value_before_uprating": "1710000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_150000_200000@E12000009", + "name": "hmrc.spi_region.income_tax_by_region_40000_50000@E12000005", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.16279069767442", - "value_before_uprating": "1070000000.0" + "factor": "1.13134765625", + "value_before_uprating": "1940000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_150000_200000@W92000004", + "name": "hmrc.spi_region.income_tax_by_region_40000_50000@E12000006", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.16279069767442", - "value_before_uprating": "313000000.0" + "factor": "1.13134765625", + "value_before_uprating": "2350000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_150000_200000@S92000003", + "name": "hmrc.spi_region.income_tax_by_region_40000_50000@E12000007", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.16279069767442", - "value_before_uprating": "916000000.0" + "factor": "1.13134765625", + "value_before_uprating": "3330000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_150000_200000@N92000002", + "name": "hmrc.spi_region.income_tax_by_region_40000_50000@E12000008", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.16279069767442", - "value_before_uprating": "179000000.0" + "factor": "1.13134765625", + "value_before_uprating": "3670000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_200000_plus@E12000001", + "name": "hmrc.spi_region.income_tax_by_region_40000_50000@E12000009", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21312442637997", - "value_before_uprating": "600000000.0" + "factor": "1.13134765625", + "value_before_uprating": "2100000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_200000_plus@E12000002", + "name": "hmrc.spi_region.income_tax_by_region_40000_50000@W92000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21312442637997", - "value_before_uprating": "3420000000.0" + "factor": "1.13134765625", + "value_before_uprating": "1020000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_200000_plus@E12000003", + "name": "hmrc.spi_region.income_tax_by_region_40000_50000@S92000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21312442637997", - "value_before_uprating": "2000000000.0" + "factor": "1.13134765625", + "value_before_uprating": "2240000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_200000_plus@E12000004", + "name": "hmrc.spi_region.income_tax_by_region_40000_50000@N92000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21312442637997", - "value_before_uprating": "2090000000.0" + "factor": "1.13134765625", + "value_before_uprating": "569000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_200000_plus@E12000005", + "name": "hmrc.spi_region.income_tax_by_region_50000_70000@E12000001", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21312442637997", - "value_before_uprating": "2510000000.0" + "factor": "1.21504237288136", + "value_before_uprating": "1100000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_200000_plus@E12000006", + "name": "hmrc.spi_region.income_tax_by_region_50000_70000@E12000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21312442637997", - "value_before_uprating": "7580000000.0" + "factor": "1.21504237288136", + "value_before_uprating": "3450000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_200000_plus@E12000007", + "name": "hmrc.spi_region.income_tax_by_region_50000_70000@E12000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21312442637997", - "value_before_uprating": "34500000000.0" + "factor": "1.21504237288136", + "value_before_uprating": "2340000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_50000_70000@E12000004", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.21504237288136", + "value_before_uprating": "2330000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_50000_70000@E12000005", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.21504237288136", + "value_before_uprating": "2790000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_50000_70000@E12000006", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.21504237288136", + "value_before_uprating": "3880000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_50000_70000@E12000007", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.21504237288136", + "value_before_uprating": "6290000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_50000_70000@E12000008", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.21504237288136", + "value_before_uprating": "6150000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_50000_70000@E12000009", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.21504237288136", + "value_before_uprating": "2970000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_50000_70000@W92000004", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.21504237288136", + "value_before_uprating": "1380000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_50000_70000@S92000003", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.21504237288136", + "value_before_uprating": "3210000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_50000_70000@N92000002", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.21504237288136", + "value_before_uprating": "636000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_70000_100000@E12000001", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.21504237288136", + "value_before_uprating": "792000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_70000_100000@E12000002", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.21504237288136", + "value_before_uprating": "2830000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_70000_100000@E12000003", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.21504237288136", + "value_before_uprating": "1810000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_70000_100000@E12000004", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.21504237288136", + "value_before_uprating": "1880000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_70000_100000@E12000005", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.21504237288136", + "value_before_uprating": "2290000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_70000_100000@E12000006", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.21504237288136", + "value_before_uprating": "3840000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_70000_100000@E12000007", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.21504237288136", + "value_before_uprating": "7290000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_70000_100000@E12000008", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.21504237288136", + "value_before_uprating": "6610000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_70000_100000@E12000009", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.21504237288136", + "value_before_uprating": "2530000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_70000_100000@W92000004", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.21504237288136", + "value_before_uprating": "870000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_70000_100000@S92000003", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.21504237288136", + "value_before_uprating": "2690000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_70000_100000@N92000002", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.21504237288136", + "value_before_uprating": "485000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_100000_150000@E12000001", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.24183006535948", + "value_before_uprating": "580000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_100000_150000@E12000002", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.24183006535948", + "value_before_uprating": "2100000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_100000_150000@E12000003", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.24183006535948", + "value_before_uprating": "1410000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_100000_150000@E12000004", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.24183006535948", + "value_before_uprating": "1500000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_100000_150000@E12000005", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.24183006535948", + "value_before_uprating": "1570000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_100000_150000@E12000006", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.24183006535948", + "value_before_uprating": "3500000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_100000_150000@E12000007", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.24183006535948", + "value_before_uprating": "8050000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_100000_150000@E12000008", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.24183006535948", + "value_before_uprating": "6540000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_100000_150000@E12000009", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.24183006535948", + "value_before_uprating": "2120000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_100000_150000@W92000004", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.24183006535948", + "value_before_uprating": "679000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_100000_150000@S92000003", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.24183006535948", + "value_before_uprating": "2010000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_100000_150000@N92000002", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.24183006535948", + "value_before_uprating": "367000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_150000_200000@E12000001", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.16279069767442", + "value_before_uprating": "269000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_150000_200000@E12000002", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.16279069767442", + "value_before_uprating": "1080000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_150000_200000@E12000003", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.16279069767442", + "value_before_uprating": "693000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_150000_200000@E12000004", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.16279069767442", + "value_before_uprating": "712000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_150000_200000@E12000005", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.16279069767442", + "value_before_uprating": "832000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_150000_200000@E12000006", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.16279069767442", + "value_before_uprating": "2010000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_150000_200000@E12000007", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.16279069767442", + "value_before_uprating": "5260000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_150000_200000@E12000008", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.16279069767442", + "value_before_uprating": "3760000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_150000_200000@E12000009", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.16279069767442", + "value_before_uprating": "1070000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_150000_200000@W92000004", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.16279069767442", + "value_before_uprating": "313000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_150000_200000@S92000003", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.16279069767442", + "value_before_uprating": "916000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_150000_200000@N92000002", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.16279069767442", + "value_before_uprating": "179000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_200000_plus@E12000001", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.21312442637997", + "value_before_uprating": "600000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_200000_plus@E12000002", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.21312442637997", + "value_before_uprating": "3420000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_200000_plus@E12000003", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.21312442637997", + "value_before_uprating": "2000000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_200000_plus@E12000004", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.21312442637997", + "value_before_uprating": "2090000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_200000_plus@E12000005", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.21312442637997", + "value_before_uprating": "2510000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_200000_plus@E12000006", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.21312442637997", + "value_before_uprating": "7580000000.0" + }, + { + "name": "hmrc.spi_region.income_tax_by_region_200000_plus@E12000007", + "from": "2023", + "to": "2025", + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.21312442637997", + "value_before_uprating": "34500000000.0" }, { "name": "hmrc.spi_region.income_tax_by_region_200000_plus@E12000008", @@ -15081,6646 +15513,7446 @@ "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 597920.0, + "resolved_value": 597920.0, + "resolved_fact_period": "2025-04", + "resolved_fact_key": "ledger_aggregate_fact_v2_4378e45ac129e036b4a6ca03" + } + ] + }, + "dwp.uc.two_child_limit.children_in_affected_households": { + "status": "active", + "candidates": [ + { + "name": "dwp.uc.two_child_limit.children_in_affected_households", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 1665540.0, + "resolved_fact_period": "2025-04", + "resolved_fact_key": "ledger_aggregate_fact_v2_05774e34488c474df7f84742" + } + ] + }, + "dwp.uc.two_child_limit.households_3_children": { + "status": "active", + "candidates": [ + { + "name": "dwp.uc.two_child_limit.households_3_children", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 297310.0, + "resolved_fact_period": "2025-04", + "resolved_fact_key": "ledger_aggregate_fact_v2_dca7734c17910c213e397741" + } + ] + }, + "dwp.uc.two_child_limit.children_in_3_children_households": { + "status": "active", + "candidates": [ + { + "name": "dwp.uc.two_child_limit.children_in_3_children_households", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 891930.0, + "resolved_fact_period": "2025-04", + "resolved_fact_key": "ledger_aggregate_fact_v2_515b2aeb394a9a9a1fd2d195" + } + ] + }, + "dwp.uc.two_child_limit.households_4_children": { + "status": "active", + "candidates": [ + { + "name": "dwp.uc.two_child_limit.households_4_children", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 117190.0, + "resolved_fact_period": "2025-04", + "resolved_fact_key": "ledger_aggregate_fact_v2_a78a141d4018bdd92678b497" + } + ] + }, + "dwp.uc.two_child_limit.children_in_4_children_households": { + "status": "active", + "candidates": [ + { + "name": "dwp.uc.two_child_limit.children_in_4_children_households", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 468760.0, + "resolved_fact_period": "2025-04", + "resolved_fact_key": "ledger_aggregate_fact_v2_adef094060710c5b354e7ac4" + } + ] + }, + "dwp.uc.two_child_limit.households_5_children": { + "status": "active", + "candidates": [ + { + "name": "dwp.uc.two_child_limit.households_5_children", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 37020.0, + "resolved_fact_period": "2025-04", + "resolved_fact_key": "ledger_aggregate_fact_v2_2c9cfcd7cc862c9c1dd57e4d" + } + ] + }, + "dwp.uc.two_child_limit.children_in_5_children_households": { + "status": "active", + "candidates": [ + { + "name": "dwp.uc.two_child_limit.children_in_5_children_households", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 185120.0, + "resolved_fact_period": "2025-04", + "resolved_fact_key": "ledger_aggregate_fact_v2_2134e60314c98faf54df2498" + } + ] + }, + "dwp.uc.two_child_limit.households_6_plus_children": { + "status": "active", + "candidates": [ + { + "name": "dwp.uc.two_child_limit.households_6_plus_children", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 18260.0, "resolved_fact_period": "2025-04", - "resolved_fact_key": "ledger_aggregate_fact_v2_4378e45ac129e036b4a6ca03" + "resolved_fact_key": "ledger_aggregate_fact_v2_e6302f9f933c14e97fc2fcae" } ] }, - "dwp.uc.two_child_limit.children_in_affected_households": { + "dwp.uc.two_child_limit.children_in_6_plus_children_households": { "status": "active", "candidates": [ { - "name": "dwp.uc.two_child_limit.children_in_affected_households", + "name": "dwp.uc.two_child_limit.children_in_6_plus_children_households", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 1665540.0, + "resolved_value": 119720.0, "resolved_fact_period": "2025-04", - "resolved_fact_key": "ledger_aggregate_fact_v2_05774e34488c474df7f84742" + "resolved_fact_key": "ledger_aggregate_fact_v2_235cb4e779dd669dad2cd421" } ] }, - "dwp.uc.two_child_limit.households_3_children": { + "dwp.uc.two_child_limit.households_claimant_pip": { "status": "active", "candidates": [ { - "name": "dwp.uc.two_child_limit.households_3_children", + "name": "dwp.uc.two_child_limit.households_claimant_pip", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 297310.0, + "resolved_value": 65280.0, "resolved_fact_period": "2025-04", - "resolved_fact_key": "ledger_aggregate_fact_v2_dca7734c17910c213e397741" + "resolved_fact_key": "ledger_aggregate_fact_v2_55dd86462d71be247206b5a2" } ] }, - "dwp.uc.two_child_limit.children_in_3_children_households": { + "dwp.uc.two_child_limit.children_claimant_pip": { "status": "active", "candidates": [ { - "name": "dwp.uc.two_child_limit.children_in_3_children_households", + "name": "dwp.uc.two_child_limit.children_claimant_pip", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 891930.0, + "resolved_value": 235270.0, "resolved_fact_period": "2025-04", - "resolved_fact_key": "ledger_aggregate_fact_v2_515b2aeb394a9a9a1fd2d195" + "resolved_fact_key": "ledger_aggregate_fact_v2_fe554fcdcb22a77d71c01537" } ] }, - "dwp.uc.two_child_limit.households_4_children": { + "dwp.uc.two_child_limit.households_disabled_child_element": { "status": "active", "candidates": [ { - "name": "dwp.uc.two_child_limit.households_4_children", + "name": "dwp.uc.two_child_limit.households_disabled_child_element", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 117190.0, + "resolved_value": 129630.0, "resolved_fact_period": "2025-04", - "resolved_fact_key": "ledger_aggregate_fact_v2_a78a141d4018bdd92678b497" + "resolved_fact_key": "ledger_aggregate_fact_v2_535ef3b4afd474ea14d16d27" } ] }, - "dwp.uc.two_child_limit.children_in_4_children_households": { + "dwp.uc.two_child_limit.children_disabled_child_element": { "status": "active", "candidates": [ { - "name": "dwp.uc.two_child_limit.children_in_4_children_households", + "name": "dwp.uc.two_child_limit.children_disabled_child_element", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 468760.0, + "resolved_value": 479460.0, "resolved_fact_period": "2025-04", - "resolved_fact_key": "ledger_aggregate_fact_v2_adef094060710c5b354e7ac4" + "resolved_fact_key": "ledger_aggregate_fact_v2_ac642b7002518167b56e1537" } ] }, - "dwp.uc.two_child_limit.households_5_children": { + "ons.population.uk_total": { "status": "active", "candidates": [ { - "name": "dwp.uc.two_child_limit.households_5_children", + "name": "ons.population.uk_total", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 2, + "matched_fact_count_at_or_before_period": 2, "resolved_period": 2025, - "resolved_value": 37020.0, - "resolved_fact_period": "2025-04", - "resolved_fact_key": "ledger_aggregate_fact_v2_2c9cfcd7cc862c9c1dd57e4d" + "resolved_value": 69281437.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_6c212695ea75be0d2a635e9b" } ] }, - "dwp.uc.two_child_limit.children_in_5_children_households": { + "ons.population.age_0_9_by_region": { "status": "active", "candidates": [ { - "name": "dwp.uc.two_child_limit.children_in_5_children_households", + "name": "ons.population.age_0_9_by_region@E12000001", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 185120.0, - "resolved_fact_period": "2025-04", - "resolved_fact_key": "ledger_aggregate_fact_v2_2134e60314c98faf54df2498" + "resolved_value": 285165.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_c796672d4d88aa11ab15a31a" + }, + { + "name": "ons.population.age_0_9_by_region@E12000002", + "status": "active", + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000002", + "resolved_period": 2025, + "resolved_value": 865892.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_de0fc360f660f7a387628062" + }, + { + "name": "ons.population.age_0_9_by_region@E12000003", + "status": "active", + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000003", + "resolved_period": 2025, + "resolved_value": 626938.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_cbc8ee6d7552af4ba61edcb1" + }, + { + "name": "ons.population.age_0_9_by_region@E12000004", + "status": "active", + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000004", + "resolved_period": 2025, + "resolved_value": 543004.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f858f629484e7989a9dc1f0b" + }, + { + "name": "ons.population.age_0_9_by_region@E12000005", + "status": "active", + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000005", + "resolved_period": 2025, + "resolved_value": 718837.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_de2d9b45547f640fbc7ebb5a" + }, + { + "name": "ons.population.age_0_9_by_region@E12000006", + "status": "active", + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000006", + "resolved_period": 2025, + "resolved_value": 744698.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_fec32a4b3417958969f5f2d9" + }, + { + "name": "ons.population.age_0_9_by_region@E12000007", + "status": "active", + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000007", + "resolved_period": 2025, + "resolved_value": 1054493.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_cdd134faa924b905bd8a36ad" + }, + { + "name": "ons.population.age_0_9_by_region@E12000008", + "status": "active", + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000008", + "resolved_period": 2025, + "resolved_value": 1059434.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f0ef951a6bad79d44726fe11" + }, + { + "name": "ons.population.age_0_9_by_region@E12000009", + "status": "active", + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000009", + "resolved_period": 2025, + "resolved_value": 575506.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_d6a250010241c987a217b54f" + }, + { + "name": "ons.population.age_0_9_by_region@W92000004", + "status": "active", + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "country", + "geography_id": "W92000004", + "resolved_period": 2025, + "resolved_value": 321552.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_eef268031d128fde4eec5d91" + }, + { + "name": "ons.population.age_0_9_by_region@S92000003", + "status": "active", + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "country", + "geography_id": "S92000003", + "resolved_period": 2025, + "resolved_value": 527989.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f9862176e9cdec891820dfa2" + }, + { + "name": "ons.population.age_0_9_by_region@N92000002", + "status": "active", + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "country", + "geography_id": "N92000002", + "resolved_period": 2025, + "resolved_value": 229505.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_eb8519582dac5a21a72f8360" } ] }, - "dwp.uc.two_child_limit.households_6_plus_children": { + "ons.population.age_10_19_by_region": { "status": "active", "candidates": [ { - "name": "dwp.uc.two_child_limit.households_6_plus_children", + "name": "ons.population.age_10_19_by_region@E12000001", + "status": "active", + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000001", + "resolved_period": 2025, + "resolved_value": 326306.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_ce36092d33f50f712f620485" + }, + { + "name": "ons.population.age_10_19_by_region@E12000002", + "status": "active", + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000002", + "resolved_period": 2025, + "resolved_value": 952864.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f6fc45432de26717dc50151d" + }, + { + "name": "ons.population.age_10_19_by_region@E12000003", + "status": "active", + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000003", + "resolved_period": 2025, + "resolved_value": 696780.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f1942c03893e2aeccb514e34" + }, + { + "name": "ons.population.age_10_19_by_region@E12000004", + "status": "active", + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000004", + "resolved_period": 2025, + "resolved_value": 615630.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_d96b0e1445c879a8267ef553" + }, + { + "name": "ons.population.age_10_19_by_region@E12000005", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 18260.0, - "resolved_fact_period": "2025-04", - "resolved_fact_key": "ledger_aggregate_fact_v2_e6302f9f933c14e97fc2fcae" - } - ] - }, - "dwp.uc.two_child_limit.children_in_6_plus_children_households": { - "status": "active", - "candidates": [ + "resolved_value": 785062.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_ff921d8727a6c1ea11548896" + }, { - "name": "dwp.uc.two_child_limit.children_in_6_plus_children_households", + "name": "ons.population.age_10_19_by_region@E12000006", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 119720.0, - "resolved_fact_period": "2025-04", - "resolved_fact_key": "ledger_aggregate_fact_v2_235cb4e779dd669dad2cd421" - } - ] - }, - "dwp.uc.two_child_limit.households_claimant_pip": { - "status": "active", - "candidates": [ + "resolved_value": 785091.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_d66fd1b48bc1e9ae4d38f778" + }, { - "name": "dwp.uc.two_child_limit.households_claimant_pip", + "name": "ons.population.age_10_19_by_region@E12000007", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 65280.0, - "resolved_fact_period": "2025-04", - "resolved_fact_key": "ledger_aggregate_fact_v2_55dd86462d71be247206b5a2" - } - ] - }, - "dwp.uc.two_child_limit.children_claimant_pip": { - "status": "active", - "candidates": [ + "resolved_value": 1068691.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f8b79fef8b80acc1deb297b7" + }, { - "name": "dwp.uc.two_child_limit.children_claimant_pip", + "name": "ons.population.age_10_19_by_region@E12000008", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 235270.0, - "resolved_fact_period": "2025-04", - "resolved_fact_key": "ledger_aggregate_fact_v2_fe554fcdcb22a77d71c01537" - } - ] - }, - "dwp.uc.two_child_limit.households_disabled_child_element": { - "status": "active", - "candidates": [ + "resolved_value": 1183235.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_ba4c8f8e6cb789626f191523" + }, { - "name": "dwp.uc.two_child_limit.households_disabled_child_element", + "name": "ons.population.age_10_19_by_region@E12000009", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 129630.0, - "resolved_fact_period": "2025-04", - "resolved_fact_key": "ledger_aggregate_fact_v2_535ef3b4afd474ea14d16d27" - } - ] - }, - "dwp.uc.two_child_limit.children_disabled_child_element": { - "status": "active", - "candidates": [ + "resolved_value": 677228.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f8ea04bba18d65ed2ac0dd74" + }, { - "name": "dwp.uc.two_child_limit.children_disabled_child_element", + "name": "ons.population.age_10_19_by_region@W92000004", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "country", + "geography_id": "W92000004", "resolved_period": 2025, - "resolved_value": 479460.0, - "resolved_fact_period": "2025-04", - "resolved_fact_key": "ledger_aggregate_fact_v2_ac642b7002518167b56e1537" - } - ] - }, - "ons.population.uk_total": { - "status": "active", - "candidates": [ + "resolved_value": 374851.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f040814c3de37f315671a60d" + }, { - "name": "ons.population.uk_total", + "name": "ons.population.age_10_19_by_region@S92000003", "status": "active", - "matched_fact_count_overall": 2, - "matched_fact_count_at_or_before_period": 2, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "country", + "geography_id": "S92000003", "resolved_period": 2025, - "resolved_value": 69281437.0, + "resolved_value": 612935.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_6c212695ea75be0d2a635e9b" + "resolved_fact_key": "ledger_aggregate_fact_v2_d8cb95f3b8a4eb5725ec1e0d" + }, + { + "name": "ons.population.age_10_19_by_region@N92000002", + "status": "active", + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "country", + "geography_id": "N92000002", + "resolved_period": 2025, + "resolved_value": 252764.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_ef301c6ab42b35eb692e20b0" } ] }, - "ons.population.age_0_9_by_region": { + "ons.population.age_20_29_by_region": { "status": "active", "candidates": [ { - "name": "ons.population.age_0_9_by_region@E12000001", + "name": "ons.population.age_20_29_by_region@E12000001", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 285165.0, + "resolved_value": 343015.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_c796672d4d88aa11ab15a31a" + "resolved_fact_key": "ledger_aggregate_fact_v2_ebe0b2ced4987cd701db581a" }, { - "name": "ons.population.age_0_9_by_region@E12000002", + "name": "ons.population.age_20_29_by_region@E12000002", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 865892.0, + "resolved_value": 986590.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_de0fc360f660f7a387628062" + "resolved_fact_key": "ledger_aggregate_fact_v2_fe94b1572d6db93b57407bcd" }, { - "name": "ons.population.age_0_9_by_region@E12000003", + "name": "ons.population.age_20_29_by_region@E12000003", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 626938.0, + "resolved_value": 717479.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_cbc8ee6d7552af4ba61edcb1" + "resolved_fact_key": "ledger_aggregate_fact_v2_cb721748c503839a9229a404" }, { - "name": "ons.population.age_0_9_by_region@E12000004", + "name": "ons.population.age_20_29_by_region@E12000004", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 543004.0, + "resolved_value": 612108.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f858f629484e7989a9dc1f0b" + "resolved_fact_key": "ledger_aggregate_fact_v2_f7be7895d4f680a502caeb4b" }, { - "name": "ons.population.age_0_9_by_region@E12000005", + "name": "ons.population.age_20_29_by_region@E12000005", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 718837.0, + "resolved_value": 766058.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_de2d9b45547f640fbc7ebb5a" + "resolved_fact_key": "ledger_aggregate_fact_v2_f539e665a5478f92346bb4d4" }, { - "name": "ons.population.age_0_9_by_region@E12000006", + "name": "ons.population.age_20_29_by_region@E12000006", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 744698.0, + "resolved_value": 727218.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_fec32a4b3417958969f5f2d9" + "resolved_fact_key": "ledger_aggregate_fact_v2_ff31c89cfa957bdd279c9947" }, { - "name": "ons.population.age_0_9_by_region@E12000007", + "name": "ons.population.age_20_29_by_region@E12000007", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 1054493.0, + "resolved_value": 1508607.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_cdd134faa924b905bd8a36ad" + "resolved_fact_key": "ledger_aggregate_fact_v2_f0ffc4e5795625b9238d6dde" }, { - "name": "ons.population.age_0_9_by_region@E12000008", + "name": "ons.population.age_20_29_by_region@E12000008", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 1059434.0, + "resolved_value": 1066121.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f0ef951a6bad79d44726fe11" + "resolved_fact_key": "ledger_aggregate_fact_v2_f3a720e9d1d4664e83307a9a" }, { - "name": "ons.population.age_0_9_by_region@E12000009", + "name": "ons.population.age_20_29_by_region@E12000009", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 575506.0, + "resolved_value": 684393.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_d6a250010241c987a217b54f" + "resolved_fact_key": "ledger_aggregate_fact_v2_fe520978b4f4105aa292a3f5" }, { - "name": "ons.population.age_0_9_by_region@W92000004", + "name": "ons.population.age_20_29_by_region@W92000004", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "country", "geography_id": "W92000004", "resolved_period": 2025, - "resolved_value": 321552.0, + "resolved_value": 380557.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_eef268031d128fde4eec5d91" + "resolved_fact_key": "ledger_aggregate_fact_v2_fe44434fdb2e33179826ee35" }, { - "name": "ons.population.age_0_9_by_region@S92000003", + "name": "ons.population.age_20_29_by_region@S92000003", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "country", "geography_id": "S92000003", "resolved_period": 2025, - "resolved_value": 527989.0, + "resolved_value": 703554.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f9862176e9cdec891820dfa2" + "resolved_fact_key": "ledger_aggregate_fact_v2_dadba40aea2eb5dcdb2e5d6e" }, { - "name": "ons.population.age_0_9_by_region@N92000002", + "name": "ons.population.age_20_29_by_region@N92000002", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "country", "geography_id": "N92000002", "resolved_period": 2025, - "resolved_value": 229505.0, + "resolved_value": 219525.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_eb8519582dac5a21a72f8360" + "resolved_fact_key": "ledger_aggregate_fact_v2_afe826389a344a01c4be2862" } ] }, - "ons.population.age_10_19_by_region": { + "ons.population.age_30_39_by_region": { "status": "active", "candidates": [ { - "name": "ons.population.age_10_19_by_region@E12000001", + "name": "ons.population.age_30_39_by_region@E12000001", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 326306.0, + "resolved_value": 363357.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ce36092d33f50f712f620485" + "resolved_fact_key": "ledger_aggregate_fact_v2_ceb94ab430de1f0bc8c19ce4" }, { - "name": "ons.population.age_10_19_by_region@E12000002", + "name": "ons.population.age_30_39_by_region@E12000002", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 952864.0, + "resolved_value": 1064968.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f6fc45432de26717dc50151d" + "resolved_fact_key": "ledger_aggregate_fact_v2_eeb6e6194f0405a4b7010913" }, { - "name": "ons.population.age_10_19_by_region@E12000003", + "name": "ons.population.age_30_39_by_region@E12000003", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 696780.0, + "resolved_value": 770809.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f1942c03893e2aeccb514e34" + "resolved_fact_key": "ledger_aggregate_fact_v2_ebc2a149da9287a3a2b28d45" }, { - "name": "ons.population.age_10_19_by_region@E12000004", + "name": "ons.population.age_30_39_by_region@E12000004", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 615630.0, + "resolved_value": 676709.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_d96b0e1445c879a8267ef553" + "resolved_fact_key": "ledger_aggregate_fact_v2_fefffb16e9e1a25fd0da3435" }, { - "name": "ons.population.age_10_19_by_region@E12000005", + "name": "ons.population.age_30_39_by_region@E12000005", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 785062.0, + "resolved_value": 839114.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ff921d8727a6c1ea11548896" + "resolved_fact_key": "ledger_aggregate_fact_v2_eaee3d4e99154692dbad24b9" }, { - "name": "ons.population.age_10_19_by_region@E12000006", + "name": "ons.population.age_30_39_by_region@E12000006", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 785091.0, + "resolved_value": 895639.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_d66fd1b48bc1e9ae4d38f778" + "resolved_fact_key": "ledger_aggregate_fact_v2_fbb89267af1b9a1a349f3274" }, { - "name": "ons.population.age_10_19_by_region@E12000007", + "name": "ons.population.age_30_39_by_region@E12000007", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 1068691.0, + "resolved_value": 1537372.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f8b79fef8b80acc1deb297b7" + "resolved_fact_key": "ledger_aggregate_fact_v2_c7d5874566b099143ddbac28" }, { - "name": "ons.population.age_10_19_by_region@E12000008", + "name": "ons.population.age_30_39_by_region@E12000008", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 1183235.0, + "resolved_value": 1284552.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ba4c8f8e6cb789626f191523" + "resolved_fact_key": "ledger_aggregate_fact_v2_ff4aa5baed49b53887253b70" }, { - "name": "ons.population.age_10_19_by_region@E12000009", + "name": "ons.population.age_30_39_by_region@E12000009", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 677228.0, + "resolved_value": 742082.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f8ea04bba18d65ed2ac0dd74" + "resolved_fact_key": "ledger_aggregate_fact_v2_f8c6ce01a5aa83ce392ccf3a" }, { - "name": "ons.population.age_10_19_by_region@W92000004", + "name": "ons.population.age_30_39_by_region@W92000004", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "country", "geography_id": "W92000004", "resolved_period": 2025, - "resolved_value": 374851.0, + "resolved_value": 410248.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f040814c3de37f315671a60d" + "resolved_fact_key": "ledger_aggregate_fact_v2_fa74c4da871af17e8af431d6" }, { - "name": "ons.population.age_10_19_by_region@S92000003", + "name": "ons.population.age_30_39_by_region@S92000003", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "country", "geography_id": "S92000003", "resolved_period": 2025, - "resolved_value": 612935.0, + "resolved_value": 733480.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_d8cb95f3b8a4eb5725ec1e0d" + "resolved_fact_key": "ledger_aggregate_fact_v2_f045b554aebb8f1b21df5a5c" }, { - "name": "ons.population.age_10_19_by_region@N92000002", + "name": "ons.population.age_30_39_by_region@N92000002", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "country", "geography_id": "N92000002", "resolved_period": 2025, - "resolved_value": 252764.0, + "resolved_value": 254067.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ef301c6ab42b35eb692e20b0" + "resolved_fact_key": "ledger_aggregate_fact_v2_eb383d007487ef1df14f4946" } ] }, - "ons.population.age_20_29_by_region": { + "ons.population.age_40_49_by_region": { "status": "active", "candidates": [ { - "name": "ons.population.age_20_29_by_region@E12000001", + "name": "ons.population.age_40_49_by_region@E12000001", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 343015.0, + "resolved_value": 320860.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ebe0b2ced4987cd701db581a" + "resolved_fact_key": "ledger_aggregate_fact_v2_f081bcb6c2e794e8ec3b0161" }, { - "name": "ons.population.age_20_29_by_region@E12000002", + "name": "ons.population.age_40_49_by_region@E12000002", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 986590.0, + "resolved_value": 930967.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_fe94b1572d6db93b57407bcd" + "resolved_fact_key": "ledger_aggregate_fact_v2_f7744877e123c00b96511818" }, { - "name": "ons.population.age_20_29_by_region@E12000003", + "name": "ons.population.age_40_49_by_region@E12000003", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 717479.0, + "resolved_value": 674349.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_cb721748c503839a9229a404" + "resolved_fact_key": "ledger_aggregate_fact_v2_d6e708c298712163b552e6c7" }, { - "name": "ons.population.age_20_29_by_region@E12000004", + "name": "ons.population.age_40_49_by_region@E12000004", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 612108.0, + "resolved_value": 610611.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f7be7895d4f680a502caeb4b" + "resolved_fact_key": "ledger_aggregate_fact_v2_e861cd162b6b06a1107ca177" }, { - "name": "ons.population.age_20_29_by_region@E12000005", + "name": "ons.population.age_40_49_by_region@E12000005", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 766058.0, + "resolved_value": 746341.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f539e665a5478f92346bb4d4" + "resolved_fact_key": "ledger_aggregate_fact_v2_fa28a64a0b8ec87502b44a9f" }, { - "name": "ons.population.age_20_29_by_region@E12000006", + "name": "ons.population.age_40_49_by_region@E12000006", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 727218.0, + "resolved_value": 838578.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ff31c89cfa957bdd279c9947" + "resolved_fact_key": "ledger_aggregate_fact_v2_f94400c214a5c3c3847cc562" }, { - "name": "ons.population.age_20_29_by_region@E12000007", + "name": "ons.population.age_40_49_by_region@E12000007", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 1508607.0, + "resolved_value": 1268973.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f0ffc4e5795625b9238d6dde" + "resolved_fact_key": "ledger_aggregate_fact_v2_fb8228a78efb8cdb3dd46764" }, { - "name": "ons.population.age_20_29_by_region@E12000008", + "name": "ons.population.age_40_49_by_region@E12000008", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 1066121.0, + "resolved_value": 1255951.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f3a720e9d1d4664e83307a9a" + "resolved_fact_key": "ledger_aggregate_fact_v2_edac715ea904f29dbd3332f9" }, { - "name": "ons.population.age_20_29_by_region@E12000009", + "name": "ons.population.age_40_49_by_region@E12000009", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 684393.0, + "resolved_value": 688417.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_fe520978b4f4105aa292a3f5" + "resolved_fact_key": "ledger_aggregate_fact_v2_f6ecf5ebd09a5d638cf6dd15" }, { - "name": "ons.population.age_20_29_by_region@W92000004", + "name": "ons.population.age_40_49_by_region@W92000004", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "country", "geography_id": "W92000004", "resolved_period": 2025, - "resolved_value": 380557.0, + "resolved_value": 365951.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_fe44434fdb2e33179826ee35" + "resolved_fact_key": "ledger_aggregate_fact_v2_f6496b4ebd88792d288206a1" }, { - "name": "ons.population.age_20_29_by_region@S92000003", + "name": "ons.population.age_40_49_by_region@S92000003", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "country", "geography_id": "S92000003", "resolved_period": 2025, - "resolved_value": 703554.0, + "resolved_value": 675368.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_dadba40aea2eb5dcdb2e5d6e" + "resolved_fact_key": "ledger_aggregate_fact_v2_e159eb5144ceae58dccb4dc0" }, { - "name": "ons.population.age_20_29_by_region@N92000002", + "name": "ons.population.age_40_49_by_region@N92000002", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "country", "geography_id": "N92000002", "resolved_period": 2025, - "resolved_value": 219525.0, + "resolved_value": 246140.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_afe826389a344a01c4be2862" + "resolved_fact_key": "ledger_aggregate_fact_v2_b71979cb27997e512ea68888" } ] }, - "ons.population.age_30_39_by_region": { + "ons.population.age_50_59_by_region": { "status": "active", "candidates": [ { - "name": "ons.population.age_30_39_by_region@E12000001", + "name": "ons.population.age_50_59_by_region@E12000001", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 363357.0, + "resolved_value": 360074.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ceb94ab430de1f0bc8c19ce4" + "resolved_fact_key": "ledger_aggregate_fact_v2_f8febade5d1aa4eff5515f79" }, { - "name": "ons.population.age_30_39_by_region@E12000002", + "name": "ons.population.age_50_59_by_region@E12000002", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 1064968.0, + "resolved_value": 995810.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_eeb6e6194f0405a4b7010913" + "resolved_fact_key": "ledger_aggregate_fact_v2_ce316c567d2d3919bad74247" }, { - "name": "ons.population.age_30_39_by_region@E12000003", + "name": "ons.population.age_50_59_by_region@E12000003", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 770809.0, + "resolved_value": 736903.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ebc2a149da9287a3a2b28d45" + "resolved_fact_key": "ledger_aggregate_fact_v2_f07e470e70895701083be7b4" }, { - "name": "ons.population.age_30_39_by_region@E12000004", + "name": "ons.population.age_50_59_by_region@E12000004", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 676709.0, + "resolved_value": 676307.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_fefffb16e9e1a25fd0da3435" + "resolved_fact_key": "ledger_aggregate_fact_v2_fc3b848c0d546908542f7522" }, { - "name": "ons.population.age_30_39_by_region@E12000005", + "name": "ons.population.age_50_59_by_region@E12000005", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 839114.0, + "resolved_value": 794143.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_eaee3d4e99154692dbad24b9" + "resolved_fact_key": "ledger_aggregate_fact_v2_eced9fed4ca113ee655134b7" }, { - "name": "ons.population.age_30_39_by_region@E12000006", + "name": "ons.population.age_50_59_by_region@E12000006", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 895639.0, + "resolved_value": 866946.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_fbb89267af1b9a1a349f3274" + "resolved_fact_key": "ledger_aggregate_fact_v2_f8011436193a375ac63a33af" }, { - "name": "ons.population.age_30_39_by_region@E12000007", + "name": "ons.population.age_50_59_by_region@E12000007", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 1537372.0, + "resolved_value": 1087518.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_c7d5874566b099143ddbac28" + "resolved_fact_key": "ledger_aggregate_fact_v2_c0999183e74a6f6978377427" }, { - "name": "ons.population.age_30_39_by_region@E12000008", + "name": "ons.population.age_50_59_by_region@E12000008", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 1284552.0, + "resolved_value": 1287719.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ff4aa5baed49b53887253b70" + "resolved_fact_key": "ledger_aggregate_fact_v2_f5b6740db34f7f702bb230fb" }, { - "name": "ons.population.age_30_39_by_region@E12000009", + "name": "ons.population.age_50_59_by_region@E12000009", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 742082.0, + "resolved_value": 784718.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f8c6ce01a5aa83ce392ccf3a" + "resolved_fact_key": "ledger_aggregate_fact_v2_cf32f90895454cdb82d3a611" }, { - "name": "ons.population.age_30_39_by_region@W92000004", + "name": "ons.population.age_50_59_by_region@W92000004", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "country", "geography_id": "W92000004", "resolved_period": 2025, - "resolved_value": 410248.0, + "resolved_value": 424694.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_fa74c4da871af17e8af431d6" + "resolved_fact_key": "ledger_aggregate_fact_v2_ed905faab304a40013587ffd" }, { - "name": "ons.population.age_30_39_by_region@S92000003", + "name": "ons.population.age_50_59_by_region@S92000003", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "country", "geography_id": "S92000003", "resolved_period": 2025, - "resolved_value": 733480.0, + "resolved_value": 766715.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f045b554aebb8f1b21df5a5c" + "resolved_fact_key": "ledger_aggregate_fact_v2_f332e28940d1c94b1e2dec31" }, { - "name": "ons.population.age_30_39_by_region@N92000002", + "name": "ons.population.age_50_59_by_region@N92000002", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "country", "geography_id": "N92000002", "resolved_period": 2025, - "resolved_value": 254067.0, + "resolved_value": 255269.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_eb383d007487ef1df14f4946" + "resolved_fact_key": "ledger_aggregate_fact_v2_f786aada1891e9f309902c1c" } ] }, - "ons.population.age_40_49_by_region": { + "ons.population.age_60_69_by_region": { "status": "active", "candidates": [ { - "name": "ons.population.age_40_49_by_region@E12000001", + "name": "ons.population.age_60_69_by_region@E12000001", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 320860.0, + "resolved_value": 349719.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f081bcb6c2e794e8ec3b0161" + "resolved_fact_key": "ledger_aggregate_fact_v2_ff4466f1cb6fb29ce9b132b0" }, { - "name": "ons.population.age_40_49_by_region@E12000002", + "name": "ons.population.age_60_69_by_region@E12000002", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 930967.0, + "resolved_value": 884043.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f7744877e123c00b96511818" + "resolved_fact_key": "ledger_aggregate_fact_v2_f861d328dbb8a01929eb1e91" }, { - "name": "ons.population.age_40_49_by_region@E12000003", + "name": "ons.population.age_60_69_by_region@E12000003", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 674349.0, + "resolved_value": 652931.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_d6e708c298712163b552e6c7" + "resolved_fact_key": "ledger_aggregate_fact_v2_f9ab6846d67db88fda81fa30" }, { - "name": "ons.population.age_40_49_by_region@E12000004", + "name": "ons.population.age_60_69_by_region@E12000004", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 610611.0, + "resolved_value": 591429.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_e861cd162b6b06a1107ca177" + "resolved_fact_key": "ledger_aggregate_fact_v2_e884ef403c95938c7ebf961b" }, { - "name": "ons.population.age_40_49_by_region@E12000005", + "name": "ons.population.age_60_69_by_region@E12000005", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 746341.0, + "resolved_value": 677922.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_fa28a64a0b8ec87502b44a9f" + "resolved_fact_key": "ledger_aggregate_fact_v2_fd4d62d07376896553d9fb66" }, { - "name": "ons.population.age_40_49_by_region@E12000006", + "name": "ons.population.age_60_69_by_region@E12000006", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 838578.0, + "resolved_value": 744651.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f94400c214a5c3c3847cc562" + "resolved_fact_key": "ledger_aggregate_fact_v2_f77f96051d8340645148d138" }, { - "name": "ons.population.age_40_49_by_region@E12000007", + "name": "ons.population.age_60_69_by_region@E12000007", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 1268973.0, + "resolved_value": 787666.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_fb8228a78efb8cdb3dd46764" + "resolved_fact_key": "ledger_aggregate_fact_v2_e9f63f0939b77a41ec815de0" }, { - "name": "ons.population.age_40_49_by_region@E12000008", + "name": "ons.population.age_60_69_by_region@E12000008", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 1255951.0, + "resolved_value": 1089421.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_edac715ea904f29dbd3332f9" + "resolved_fact_key": "ledger_aggregate_fact_v2_f8667b0358441f18c2f8e548" }, { - "name": "ons.population.age_40_49_by_region@E12000009", + "name": "ons.population.age_60_69_by_region@E12000009", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 688417.0, + "resolved_value": 736639.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f6ecf5ebd09a5d638cf6dd15" + "resolved_fact_key": "ledger_aggregate_fact_v2_f923cb193de625676c40b5c4" }, { - "name": "ons.population.age_40_49_by_region@W92000004", + "name": "ons.population.age_60_69_by_region@W92000004", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "country", "geography_id": "W92000004", "resolved_period": 2025, - "resolved_value": 365951.0, + "resolved_value": 401775.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f6496b4ebd88792d288206a1" + "resolved_fact_key": "ledger_aggregate_fact_v2_f518ad65099be8a424a62142" }, { - "name": "ons.population.age_40_49_by_region@S92000003", + "name": "ons.population.age_60_69_by_region@S92000003", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "country", "geography_id": "S92000003", "resolved_period": 2025, - "resolved_value": 675368.0, + "resolved_value": 721727.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_e159eb5144ceae58dccb4dc0" + "resolved_fact_key": "ledger_aggregate_fact_v2_e893656e104d3c1c375fa5e7" }, { - "name": "ons.population.age_40_49_by_region@N92000002", + "name": "ons.population.age_60_69_by_region@N92000002", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "country", "geography_id": "N92000002", "resolved_period": 2025, - "resolved_value": 246140.0, + "resolved_value": 223111.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_b71979cb27997e512ea68888" + "resolved_fact_key": "ledger_aggregate_fact_v2_f9f6e8f32b460fefc304aeee" } ] }, - "ons.population.age_50_59_by_region": { + "ons.population.age_70_79_by_region": { "status": "active", "candidates": [ { - "name": "ons.population.age_50_59_by_region@E12000001", + "name": "ons.population.age_70_79_by_region@E12000001", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 360074.0, + "resolved_value": 265573.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f8febade5d1aa4eff5515f79" + "resolved_fact_key": "ledger_aggregate_fact_v2_f135bc83bf0e2495ccab922b" }, { - "name": "ons.population.age_50_59_by_region@E12000002", + "name": "ons.population.age_70_79_by_region@E12000002", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 995810.0, + "resolved_value": 669277.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ce316c567d2d3919bad74247" + "resolved_fact_key": "ledger_aggregate_fact_v2_f18853f5a9046c59334188d3" }, { - "name": "ons.population.age_50_59_by_region@E12000003", + "name": "ons.population.age_70_79_by_region@E12000003", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 736903.0, + "resolved_value": 504131.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f07e470e70895701083be7b4" + "resolved_fact_key": "ledger_aggregate_fact_v2_f71c0090e322cc6b02a80193" }, { - "name": "ons.population.age_50_59_by_region@E12000004", + "name": "ons.population.age_70_79_by_region@E12000004", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 676307.0, + "resolved_value": 466530.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_fc3b848c0d546908542f7522" + "resolved_fact_key": "ledger_aggregate_fact_v2_f1eaa2a27d34d75f4fcaf147" }, { - "name": "ons.population.age_50_59_by_region@E12000005", + "name": "ons.population.age_70_79_by_region@E12000005", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 794143.0, + "resolved_value": 528207.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_eced9fed4ca113ee655134b7" + "resolved_fact_key": "ledger_aggregate_fact_v2_f6ed607ecc20a6bd1c0c8bef" }, { - "name": "ons.population.age_50_59_by_region@E12000006", + "name": "ons.population.age_70_79_by_region@E12000006", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 866946.0, + "resolved_value": 599882.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f8011436193a375ac63a33af" + "resolved_fact_key": "ledger_aggregate_fact_v2_ef2c110c9bb5462379338b17" }, { - "name": "ons.population.age_50_59_by_region@E12000007", + "name": "ons.population.age_70_79_by_region@E12000007", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 1087518.0, + "resolved_value": 485057.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_c0999183e74a6f6978377427" + "resolved_fact_key": "ledger_aggregate_fact_v2_d9b7f415855dd808a1aee77c" }, { - "name": "ons.population.age_50_59_by_region@E12000008", + "name": "ons.population.age_70_79_by_region@E12000008", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 1287719.0, + "resolved_value": 865392.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f5b6740db34f7f702bb230fb" + "resolved_fact_key": "ledger_aggregate_fact_v2_dea0c6655095781f862cf7ac" }, { - "name": "ons.population.age_50_59_by_region@E12000009", + "name": "ons.population.age_70_79_by_region@E12000009", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 784718.0, + "resolved_value": 618254.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_cf32f90895454cdb82d3a611" + "resolved_fact_key": "ledger_aggregate_fact_v2_e8898137aad748593321b2fb" }, { - "name": "ons.population.age_50_59_by_region@W92000004", + "name": "ons.population.age_70_79_by_region@W92000004", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "country", "geography_id": "W92000004", "resolved_period": 2025, - "resolved_value": 424694.0, + "resolved_value": 321668.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ed905faab304a40013587ffd" + "resolved_fact_key": "ledger_aggregate_fact_v2_f1de159eac6f90c69f7aef22" }, { - "name": "ons.population.age_50_59_by_region@S92000003", + "name": "ons.population.age_70_79_by_region@S92000003", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "country", "geography_id": "S92000003", "resolved_period": 2025, - "resolved_value": 766715.0, + "resolved_value": 519252.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f332e28940d1c94b1e2dec31" + "resolved_fact_key": "ledger_aggregate_fact_v2_f506930ca553f609fe076c9c" }, { - "name": "ons.population.age_50_59_by_region@N92000002", + "name": "ons.population.age_70_79_by_region@N92000002", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "country", "geography_id": "N92000002", "resolved_period": 2025, - "resolved_value": 255269.0, + "resolved_value": 155382.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f786aada1891e9f309902c1c" + "resolved_fact_key": "ledger_aggregate_fact_v2_ec559b1c9b44b3acc8de9073" } ] }, - "ons.population.age_60_69_by_region": { + "ons.population.age_80_89_by_region": { "status": "active", "candidates": [ { - "name": "ons.population.age_60_69_by_region@E12000001", + "name": "ons.population.age_80_89_by_region@E12000001", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 349719.0, + "resolved_value": 122118.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ff4466f1cb6fb29ce9b132b0" + "resolved_fact_key": "ledger_aggregate_fact_v2_eec7f31aac48f686e0d9a343" }, { - "name": "ons.population.age_60_69_by_region@E12000002", + "name": "ons.population.age_80_89_by_region@E12000002", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 884043.0, + "resolved_value": 324141.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f861d328dbb8a01929eb1e91" + "resolved_fact_key": "ledger_aggregate_fact_v2_f5dcf6bfa6186fc6200bb9cd" }, { - "name": "ons.population.age_60_69_by_region@E12000003", + "name": "ons.population.age_80_89_by_region@E12000003", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 652931.0, + "resolved_value": 243274.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f9ab6846d67db88fda81fa30" + "resolved_fact_key": "ledger_aggregate_fact_v2_ed30948324557f6bd25a0064" }, { - "name": "ons.population.age_60_69_by_region@E12000004", + "name": "ons.population.age_80_89_by_region@E12000004", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 591429.0, + "resolved_value": 225626.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_e884ef403c95938c7ebf961b" + "resolved_fact_key": "ledger_aggregate_fact_v2_f32be81803e3b527361467e0" }, { - "name": "ons.population.age_60_69_by_region@E12000005", + "name": "ons.population.age_80_89_by_region@E12000005", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 677922.0, + "resolved_value": 275030.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_fd4d62d07376896553d9fb66" + "resolved_fact_key": "ledger_aggregate_fact_v2_f252d1b20801bc91a40a9a12" }, { - "name": "ons.population.age_60_69_by_region@E12000006", + "name": "ons.population.age_80_89_by_region@E12000006", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 744651.0, + "resolved_value": 305691.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f77f96051d8340645148d138" + "resolved_fact_key": "ledger_aggregate_fact_v2_d387c1edf10113b2b8602fc3" }, { - "name": "ons.population.age_60_69_by_region@E12000007", + "name": "ons.population.age_80_89_by_region@E12000007", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 787666.0, + "resolved_value": 237061.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_e9f63f0939b77a41ec815de0" + "resolved_fact_key": "ledger_aggregate_fact_v2_fa7d5971f83d3ece501a33c7" }, { - "name": "ons.population.age_60_69_by_region@E12000008", + "name": "ons.population.age_80_89_by_region@E12000008", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 1089421.0, + "resolved_value": 447958.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f8667b0358441f18c2f8e548" + "resolved_fact_key": "ledger_aggregate_fact_v2_bb61f66f5159481b73615674" }, { - "name": "ons.population.age_60_69_by_region@E12000009", + "name": "ons.population.age_80_89_by_region@E12000009", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 736639.0, + "resolved_value": 313605.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f923cb193de625676c40b5c4" + "resolved_fact_key": "ledger_aggregate_fact_v2_ea5f3461bbda1967761f0d48" }, { - "name": "ons.population.age_60_69_by_region@W92000004", + "name": "ons.population.age_80_89_by_region@W92000004", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "country", "geography_id": "W92000004", "resolved_period": 2025, - "resolved_value": 401775.0, + "resolved_value": 154319.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f518ad65099be8a424a62142" + "resolved_fact_key": "ledger_aggregate_fact_v2_d766d2003f1fd56635d53589" }, { - "name": "ons.population.age_60_69_by_region@S92000003", + "name": "ons.population.age_80_89_by_region@S92000003", + "status": "active", + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "country", + "geography_id": "S92000003", + "resolved_period": 2025, + "resolved_value": 238904.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f206015a88100a72b83bbe9f" + }, + { + "name": "ons.population.age_80_89_by_region@N92000002", + "status": "active", + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "country", + "geography_id": "N92000002", + "resolved_period": 2025, + "resolved_value": 77441.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_fb5795d1ea12a7a7005a9ee9" + } + ] + }, + "ons.population.female_0_4": { + "status": "active", + "candidates": [ + { + "name": "ons.population.female_0_4", + "status": "active", + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, + "resolved_period": 2025, + "resolved_value": 1744355.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_fb55d5f20f74ee39a1e8fcb4" + } + ] + }, + "ons.population.female_10_14": { + "status": "active", + "candidates": [ + { + "name": "ons.population.female_10_14", + "status": "active", + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, + "resolved_period": 2025, + "resolved_value": 2052052.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f9a457edc9491e5810c39f5f" + } + ] + }, + "ons.population.female_15_19": { + "status": "active", + "candidates": [ + { + "name": "ons.population.female_15_19", + "status": "active", + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, + "resolved_period": 2025, + "resolved_value": 2002835.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f0e2139b52c615925c9075dd" + } + ] + }, + "ons.population.female_20_24": { + "status": "active", + "candidates": [ + { + "name": "ons.population.female_20_24", + "status": "active", + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, + "resolved_period": 2025, + "resolved_value": 2034609.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_b4e36c0dc0a924667be47bbc" + } + ] + }, + "ons.population.female_25_29": { + "status": "active", + "candidates": [ + { + "name": "ons.population.female_25_29", + "status": "active", + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, + "resolved_period": 2025, + "resolved_value": 2291610.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_d9d6a711d0cbc4919a8643c0" + } + ] + }, + "ons.population.female_30_34": { + "status": "active", + "candidates": [ + { + "name": "ons.population.female_30_34", + "status": "active", + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, + "resolved_period": 2025, + "resolved_value": 2463301.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f5b1d6c400b912b05c79c477" + } + ] + }, + "ons.population.female_35_39": { + "status": "active", + "candidates": [ + { + "name": "ons.population.female_35_39", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "country", - "geography_id": "S92000003", + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 721727.0, + "resolved_value": 2472291.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_e893656e104d3c1c375fa5e7" - }, + "resolved_fact_key": "ledger_aggregate_fact_v2_f927cc9b3eab0494caf1479f" + } + ] + }, + "ons.population.female_40_44": { + "status": "active", + "candidates": [ { - "name": "ons.population.age_60_69_by_region@N92000002", + "name": "ons.population.female_40_44", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "country", - "geography_id": "N92000002", + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 223111.0, + "resolved_value": 2333109.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f9f6e8f32b460fefc304aeee" + "resolved_fact_key": "ledger_aggregate_fact_v2_d9cdf746ffe5df2fd3d85279" } ] }, - "ons.population.age_70_79_by_region": { + "ons.population.female_45_49": { "status": "active", "candidates": [ { - "name": "ons.population.age_70_79_by_region@E12000001", + "name": "ons.population.female_45_49", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "region", - "geography_id": "E12000001", + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 265573.0, + "resolved_value": 2088285.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f135bc83bf0e2495ccab922b" - }, + "resolved_fact_key": "ledger_aggregate_fact_v2_b679e4770750b86af6b1756b" + } + ] + }, + "ons.population.female_50_54": { + "status": "active", + "candidates": [ { - "name": "ons.population.age_70_79_by_region@E12000002", + "name": "ons.population.female_50_54", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "region", - "geography_id": "E12000002", + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 669277.0, + "resolved_value": 2255231.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f18853f5a9046c59334188d3" - }, + "resolved_fact_key": "ledger_aggregate_fact_v2_65b8a4cc92c4565b00007877" + } + ] + }, + "ons.population.female_55_59": { + "status": "active", + "candidates": [ { - "name": "ons.population.age_70_79_by_region@E12000003", + "name": "ons.population.female_55_59", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "region", - "geography_id": "E12000003", + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 504131.0, + "resolved_value": 2360202.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f71c0090e322cc6b02a80193" - }, + "resolved_fact_key": "ledger_aggregate_fact_v2_ba87a7d66cb9f8694b952159" + } + ] + }, + "ons.population.female_5_9": { + "status": "active", + "candidates": [ { - "name": "ons.population.age_70_79_by_region@E12000004", + "name": "ons.population.female_5_9", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "region", - "geography_id": "E12000004", + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 466530.0, + "resolved_value": 1941658.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f1eaa2a27d34d75f4fcaf147" - }, + "resolved_fact_key": "ledger_aggregate_fact_v2_bca9c38347810a944bbd08b3" + } + ] + }, + "ons.population.female_60_64": { + "status": "active", + "candidates": [ { - "name": "ons.population.age_70_79_by_region@E12000005", + "name": "ons.population.female_60_64", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "region", - "geography_id": "E12000005", + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 528207.0, + "resolved_value": 2193915.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f6ed607ecc20a6bd1c0c8bef" - }, + "resolved_fact_key": "ledger_aggregate_fact_v2_f3b1f78e4b752640465521f0" + } + ] + }, + "ons.population.female_65_69": { + "status": "active", + "candidates": [ { - "name": "ons.population.age_70_79_by_region@E12000006", + "name": "ons.population.female_65_69", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "region", - "geography_id": "E12000006", + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 599882.0, + "resolved_value": 1838574.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ef2c110c9bb5462379338b17" - }, + "resolved_fact_key": "ledger_aggregate_fact_v2_dbeb583b16bcb530ee1296e1" + } + ] + }, + "ons.population.female_70_74": { + "status": "active", + "candidates": [ { - "name": "ons.population.age_70_79_by_region@E12000007", + "name": "ons.population.female_70_74", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "region", - "geography_id": "E12000007", + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 485057.0, + "resolved_value": 1622996.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_d9b7f415855dd808a1aee77c" - }, + "resolved_fact_key": "ledger_aggregate_fact_v2_b962c8b6d3d68808831aad6a" + } + ] + }, + "ons.population.female_75_79": { + "status": "active", + "candidates": [ { - "name": "ons.population.age_70_79_by_region@E12000008", + "name": "ons.population.female_75_79", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "region", - "geography_id": "E12000008", + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 865392.0, + "resolved_value": 1551183.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_dea0c6655095781f862cf7ac" - }, + "resolved_fact_key": "ledger_aggregate_fact_v2_aa0a8a7ab2d3894db7a7d7aa" + } + ] + }, + "ons.population.female_80_84": { + "status": "active", + "candidates": [ { - "name": "ons.population.age_70_79_by_region@E12000009", + "name": "ons.population.female_80_84", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "region", - "geography_id": "E12000009", + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 618254.0, + "resolved_value": 1024480.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_e8898137aad748593321b2fb" - }, + "resolved_fact_key": "ledger_aggregate_fact_v2_fcdc2e2f119de0b65769ef90" + } + ] + }, + "ons.population.female_85_89": { + "status": "active", + "candidates": [ { - "name": "ons.population.age_70_79_by_region@W92000004", + "name": "ons.population.female_85_89", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "country", - "geography_id": "W92000004", + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 321668.0, + "resolved_value": 665267.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f1de159eac6f90c69f7aef22" - }, + "resolved_fact_key": "ledger_aggregate_fact_v2_c76df00751abbf64b5ab056b" + } + ] + }, + "ons.population.female_90_plus": { + "status": "active", + "candidates": [ { - "name": "ons.population.age_70_79_by_region@S92000003", + "name": "ons.population.female_90_plus", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "country", - "geography_id": "S92000003", + "matched_fact_count_overall": 2, + "matched_fact_count_at_or_before_period": 2, "resolved_period": 2025, - "resolved_value": 519252.0, + "resolved_value": 414716.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f506930ca553f609fe076c9c" - }, + "resolved_fact_key": "ledger_aggregate_fact_v2_009d5dd487f317483e9d7b3d" + } + ] + }, + "ons.population.male_0_4": { + "status": "active", + "candidates": [ { - "name": "ons.population.age_70_79_by_region@N92000002", + "name": "ons.population.male_0_4", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "country", - "geography_id": "N92000002", + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 155382.0, + "resolved_value": 1829801.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ec559b1c9b44b3acc8de9073" + "resolved_fact_key": "ledger_aggregate_fact_v2_ccdfe5dde7b46840510e21d2" } ] }, - "ons.population.age_80_89_by_region": { + "ons.population.male_10_14": { "status": "active", "candidates": [ { - "name": "ons.population.age_80_89_by_region@E12000001", - "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "region", - "geography_id": "E12000001", - "resolved_period": 2025, - "resolved_value": 122118.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_eec7f31aac48f686e0d9a343" - }, - { - "name": "ons.population.age_80_89_by_region@E12000002", + "name": "ons.population.male_10_14", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "region", - "geography_id": "E12000002", + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 324141.0, + "resolved_value": 2152800.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f5dcf6bfa6186fc6200bb9cd" - }, + "resolved_fact_key": "ledger_aggregate_fact_v2_86d603b352e77fd0c03ddaa8" + } + ] + }, + "ons.population.male_15_19": { + "status": "active", + "candidates": [ { - "name": "ons.population.age_80_89_by_region@E12000003", + "name": "ons.population.male_15_19", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "region", - "geography_id": "E12000003", + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 243274.0, + "resolved_value": 2123750.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ed30948324557f6bd25a0064" - }, + "resolved_fact_key": "ledger_aggregate_fact_v2_ecf390d4b25b71d12aae6bc7" + } + ] + }, + "ons.population.male_20_24": { + "status": "active", + "candidates": [ { - "name": "ons.population.age_80_89_by_region@E12000004", + "name": "ons.population.male_20_24", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "region", - "geography_id": "E12000004", + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 225626.0, + "resolved_value": 2131646.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f32be81803e3b527361467e0" - }, + "resolved_fact_key": "ledger_aggregate_fact_v2_edb961b3528b22769eece352" + } + ] + }, + "ons.population.male_25_29": { + "status": "active", + "candidates": [ { - "name": "ons.population.age_80_89_by_region@E12000005", + "name": "ons.population.male_25_29", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "region", - "geography_id": "E12000005", + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 275030.0, + "resolved_value": 2257360.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f252d1b20801bc91a40a9a12" - }, + "resolved_fact_key": "ledger_aggregate_fact_v2_fd52338de8e1557cdd024c36" + } + ] + }, + "ons.population.male_30_34": { + "status": "active", + "candidates": [ { - "name": "ons.population.age_80_89_by_region@E12000006", + "name": "ons.population.male_30_34", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "region", - "geography_id": "E12000006", + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 305691.0, + "resolved_value": 2333326.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_d387c1edf10113b2b8602fc3" - }, + "resolved_fact_key": "ledger_aggregate_fact_v2_b81f56fab808ad1d38d70f3d" + } + ] + }, + "ons.population.male_35_39": { + "status": "active", + "candidates": [ { - "name": "ons.population.age_80_89_by_region@E12000007", + "name": "ons.population.male_35_39", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "region", - "geography_id": "E12000007", + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 237061.0, + "resolved_value": 2303479.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_fa7d5971f83d3ece501a33c7" - }, + "resolved_fact_key": "ledger_aggregate_fact_v2_be9bedc792e0d419ebaf5316" + } + ] + }, + "ons.population.male_40_44": { + "status": "active", + "candidates": [ { - "name": "ons.population.age_80_89_by_region@E12000008", + "name": "ons.population.male_40_44", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "region", - "geography_id": "E12000008", + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 447958.0, + "resolved_value": 2196013.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_bb61f66f5159481b73615674" - }, + "resolved_fact_key": "ledger_aggregate_fact_v2_d41ff91bfe885debcc12d759" + } + ] + }, + "ons.population.male_45_49": { + "status": "active", + "candidates": [ { - "name": "ons.population.age_80_89_by_region@E12000009", + "name": "ons.population.male_45_49", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "region", - "geography_id": "E12000009", + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 313605.0, + "resolved_value": 2005099.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ea5f3461bbda1967761f0d48" - }, + "resolved_fact_key": "ledger_aggregate_fact_v2_fafcbae6e55f9ae20bc0050d" + } + ] + }, + "ons.population.male_50_54": { + "status": "active", + "candidates": [ { - "name": "ons.population.age_80_89_by_region@W92000004", + "name": "ons.population.male_50_54", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "country", - "geography_id": "W92000004", + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 154319.0, + "resolved_value": 2164862.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_d766d2003f1fd56635d53589" - }, + "resolved_fact_key": "ledger_aggregate_fact_v2_b8fe92cfb43b9a95f8a9f7ef" + } + ] + }, + "ons.population.male_55_59": { + "status": "active", + "candidates": [ { - "name": "ons.population.age_80_89_by_region@S92000003", + "name": "ons.population.male_55_59", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "country", - "geography_id": "S92000003", + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 238904.0, + "resolved_value": 2256521.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f206015a88100a72b83bbe9f" - }, + "resolved_fact_key": "ledger_aggregate_fact_v2_86b57e4ed1e5186f23dc4021" + } + ] + }, + "ons.population.male_5_9": { + "status": "active", + "candidates": [ { - "name": "ons.population.age_80_89_by_region@N92000002", + "name": "ons.population.male_5_9", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "country", - "geography_id": "N92000002", + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 77441.0, + "resolved_value": 2037199.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_fb5795d1ea12a7a7005a9ee9" + "resolved_fact_key": "ledger_aggregate_fact_v2_e272f955c58535b8b9304759" } ] }, - "ons.population.female_0_4": { + "ons.population.male_60_64": { "status": "active", "candidates": [ { - "name": "ons.population.female_0_4", + "name": "ons.population.male_60_64", "status": "active", "matched_fact_count_overall": 10, "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 1744355.0, + "resolved_value": 2094462.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_fb55d5f20f74ee39a1e8fcb4" + "resolved_fact_key": "ledger_aggregate_fact_v2_e60d33e33dcbc1ba2292edf5" } ] }, - "ons.population.female_10_14": { + "ons.population.male_65_69": { "status": "active", "candidates": [ { - "name": "ons.population.female_10_14", + "name": "ons.population.male_65_69", "status": "active", "matched_fact_count_overall": 10, "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 2052052.0, + "resolved_value": 1734083.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f9a457edc9491e5810c39f5f" + "resolved_fact_key": "ledger_aggregate_fact_v2_a4878efd0023575bded6b67a" } ] }, - "ons.population.female_15_19": { + "ons.population.male_70_74": { "status": "active", "candidates": [ { - "name": "ons.population.female_15_19", + "name": "ons.population.male_70_74", "status": "active", "matched_fact_count_overall": 10, "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 2002835.0, + "resolved_value": 1473758.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f0e2139b52c615925c9075dd" + "resolved_fact_key": "ledger_aggregate_fact_v2_d34aca91f9d1621ea96e72bc" } ] }, - "ons.population.female_20_24": { + "ons.population.male_75_79": { "status": "active", "candidates": [ { - "name": "ons.population.female_20_24", + "name": "ons.population.male_75_79", "status": "active", "matched_fact_count_overall": 10, "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 2034609.0, + "resolved_value": 1350668.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_b4e36c0dc0a924667be47bbc" + "resolved_fact_key": "ledger_aggregate_fact_v2_f74158203e735d37a67c5409" } ] }, - "ons.population.female_25_29": { + "ons.population.male_80_84": { "status": "active", "candidates": [ { - "name": "ons.population.female_25_29", + "name": "ons.population.male_80_84", "status": "active", "matched_fact_count_overall": 10, "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 2291610.0, + "resolved_value": 815910.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_d9d6a711d0cbc4919a8643c0" + "resolved_fact_key": "ledger_aggregate_fact_v2_60aa57af44ada9286df3d649" } ] }, - "ons.population.female_30_34": { + "ons.population.male_85_89": { "status": "active", "candidates": [ { - "name": "ons.population.female_30_34", + "name": "ons.population.male_85_89", "status": "active", "matched_fact_count_overall": 10, "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 2463301.0, + "resolved_value": 459511.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f5b1d6c400b912b05c79c477" + "resolved_fact_key": "ledger_aggregate_fact_v2_bbfd4e781a7d1151855e4edb" } ] }, - "ons.population.female_35_39": { + "ons.population.male_90_plus": { "status": "active", "candidates": [ { - "name": "ons.population.female_35_39", + "name": "ons.population.male_90_plus", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 2, + "matched_fact_count_at_or_before_period": 2, "resolved_period": 2025, - "resolved_value": 2472291.0, + "resolved_value": 210520.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f927cc9b3eab0494caf1479f" + "resolved_fact_key": "ledger_aggregate_fact_v2_8ec6d2d034546c9693c4f6ed" } ] }, - "ons.population.female_40_44": { + "ons.population.scotland_children_under_16": { "status": "active", "candidates": [ { - "name": "ons.population.female_40_44", + "name": "ons.population.scotland_children_under_16", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 32, + "matched_fact_count_at_or_before_period": 32, "resolved_period": 2025, - "resolved_value": 2333109.0, + "resolved_value": 896833.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_d9cdf746ffe5df2fd3d85279" + "resolved_fact_key": "ledger_aggregate_fact_v2_f9862176e9cdec891820dfa2" } ] }, - "ons.population.female_45_49": { + "ons.population.scotland_babies_under_1": { "status": "active", "candidates": [ { - "name": "ons.population.female_45_49", + "name": "ons.population.scotland_babies_under_1", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 2, + "matched_fact_count_at_or_before_period": 2, "resolved_period": 2025, - "resolved_value": 2088285.0, + "resolved_value": 46776.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_b679e4770750b86af6b1756b" + "resolved_fact_key": "ledger_aggregate_fact_v2_edd043df0081e63ad0876932" } ] }, - "ons.population.female_50_54": { + "ons.population.scotland_households_3plus_children": { + "status": "signed_excluded", + "candidates": [ + { + "name": "ons.population.scotland_households_3plus_children", + "status": "signed_excluded", + "matched_fact_count_overall": 552, + "matched_fact_count_at_or_before_period": 552, + "signed_rationale": "Signed out pending a Scotland household-composition fact: the current selector reaches person-level ONS mid-year population age rows, not households with three or more children. microcosm#736 tracks the missing declaration." + } + ] + }, + "ons.household_composition.lone_households_under_65": { "status": "active", "candidates": [ { - "name": "ons.population.female_50_54", + "name": "ons.household_composition.lone_households_under_65", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 8, + "matched_fact_count_at_or_before_period": 8, "resolved_period": 2025, - "resolved_value": 2255231.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_65b8a4cc92c4565b00007877" + "resolved_value": 4316000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_b2ee6bff131571b7dcd4c33c" } ] }, - "ons.population.female_55_59": { + "ons.household_composition.lone_households_over_65": { "status": "active", "candidates": [ { - "name": "ons.population.female_55_59", + "name": "ons.household_composition.lone_households_over_65", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 8, + "matched_fact_count_at_or_before_period": 8, "resolved_period": 2025, - "resolved_value": 2360202.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ba87a7d66cb9f8694b952159" + "resolved_value": 4254000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_4178a72ada0e0b5b53fd62b3" } ] }, - "ons.population.female_5_9": { + "ons.household_composition.unrelated_adult_households": { "status": "active", "candidates": [ { - "name": "ons.population.female_5_9", + "name": "ons.household_composition.unrelated_adult_households", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 8, + "matched_fact_count_at_or_before_period": 8, "resolved_period": 2025, - "resolved_value": 1941658.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_bca9c38347810a944bbd08b3" + "resolved_value": 813000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_191e954854307c61fca2d539" } ] }, - "ons.population.female_60_64": { + "ons.household_composition.couple_no_children_households": { "status": "active", "candidates": [ { - "name": "ons.population.female_60_64", + "name": "ons.household_composition.couple_no_children_households", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 8, + "matched_fact_count_at_or_before_period": 8, "resolved_period": 2025, - "resolved_value": 2193915.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f3b1f78e4b752640465521f0" + "resolved_value": 8119000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_861314257d00193080069624" } ] }, - "ons.population.female_65_69": { + "ons.household_composition.couple_under_3_children_households": { "status": "active", "candidates": [ { - "name": "ons.population.female_65_69", + "name": "ons.household_composition.couple_under_3_children_households", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 8, + "matched_fact_count_at_or_before_period": 8, "resolved_period": 2025, - "resolved_value": 1838574.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_dbeb583b16bcb530ee1296e1" + "resolved_value": 5439000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_04ac3660df720d6f8effbdb2" } ] }, - "ons.population.female_70_74": { + "ons.household_composition.couple_3_plus_children_households": { "status": "active", "candidates": [ { - "name": "ons.population.female_70_74", + "name": "ons.household_composition.couple_3_plus_children_households", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 8, + "matched_fact_count_at_or_before_period": 8, "resolved_period": 2025, - "resolved_value": 1622996.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_b962c8b6d3d68808831aad6a" + "resolved_value": 931000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_3432d322cadb6a40f0c3ebc8" } ] }, - "ons.population.female_75_79": { + "ons.household_composition.couple_non_dependent_children_only_households": { "status": "active", "candidates": [ { - "name": "ons.population.female_75_79", + "name": "ons.household_composition.couple_non_dependent_children_only_households", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 8, + "matched_fact_count_at_or_before_period": 8, "resolved_period": 2025, - "resolved_value": 1551183.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_aa0a8a7ab2d3894db7a7d7aa" + "resolved_value": 1848000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_4d36f952f4dd650bcab7ba7f" } ] }, - "ons.population.female_80_84": { + "ons.household_composition.lone_parent_dependent_children_households": { "status": "active", "candidates": [ { - "name": "ons.population.female_80_84", + "name": "ons.household_composition.lone_parent_dependent_children_households", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 8, + "matched_fact_count_at_or_before_period": 8, "resolved_period": 2025, - "resolved_value": 1024480.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_fcdc2e2f119de0b65769ef90" + "resolved_value": 1835000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_e9746f29548db6f6047842cb" } ] }, - "ons.population.female_85_89": { + "ons.household_composition.lone_parent_non_dependent_children_households": { "status": "active", "candidates": [ { - "name": "ons.population.female_85_89", + "name": "ons.household_composition.lone_parent_non_dependent_children_households", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 8, + "matched_fact_count_at_or_before_period": 8, "resolved_period": 2025, - "resolved_value": 665267.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_c76df00751abbf64b5ab056b" + "resolved_value": 1204000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_9c7f117f90bc24f073f4e14f" } ] }, - "ons.population.female_90_plus": { + "ons.household_composition.multi_family_households": { "status": "active", "candidates": [ { - "name": "ons.population.female_90_plus", + "name": "ons.household_composition.multi_family_households", "status": "active", - "matched_fact_count_overall": 2, - "matched_fact_count_at_or_before_period": 2, + "matched_fact_count_overall": 8, + "matched_fact_count_at_or_before_period": 8, "resolved_period": 2025, - "resolved_value": 414716.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_009d5dd487f317483e9d7b3d" + "resolved_value": 244000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_a0cd8874e5334242ce7b8ce0" } ] }, - "ons.population.male_0_4": { + "mhclg.council_tax_stock.band_a": { "status": "active", "candidates": [ { - "name": "ons.population.male_0_4", + "name": "mhclg.council_tax_stock.band_a@E12000001", + "status": "active", + "matched_fact_count_overall": 4776, + "matched_fact_count_at_or_before_period": 4728, + "geography_level": "region", + "geography_id": "E12000001", + "resolved_period": 2025, + "resolved_value": 621096.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_d0152c2791236d6ec749fb4b" + }, + { + "name": "mhclg.council_tax_stock.band_a@E12000002", + "status": "active", + "matched_fact_count_overall": 13930, + "matched_fact_count_at_or_before_period": 13790, + "geography_level": "region", + "geography_id": "E12000002", + "resolved_period": 2025, + "resolved_value": 1285713.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_fa7c76228b4383e695be0c57" + }, + { + "name": "mhclg.council_tax_stock.band_a@E12000003", + "status": "active", + "matched_fact_count_overall": 5970, + "matched_fact_count_at_or_before_period": 5910, + "geography_level": "region", + "geography_id": "E12000003", + "resolved_period": 2025, + "resolved_value": 988548.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_eb94428708527c6adbce48c3" + }, + { + "name": "mhclg.council_tax_stock.band_a@E12000004", + "status": "active", + "matched_fact_count_overall": 13930, + "matched_fact_count_at_or_before_period": 13790, + "geography_level": "region", + "geography_id": "E12000004", + "resolved_period": 2025, + "resolved_value": 739971.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_f17101c03f5970d639ddb6d7" + }, + { + "name": "mhclg.council_tax_stock.band_a@E12000005", + "status": "active", + "matched_fact_count_overall": 11940, + "matched_fact_count_at_or_before_period": 11820, + "geography_level": "region", + "geography_id": "E12000005", + "resolved_period": 2025, + "resolved_value": 728493.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_ef49e263051486267b93c7cd" + }, + { + "name": "mhclg.council_tax_stock.band_a@E12000006", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 17910, + "matched_fact_count_at_or_before_period": 17730, + "geography_level": "region", + "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 1829801.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ccdfe5dde7b46840510e21d2" - } - ] - }, - "ons.population.male_10_14": { - "status": "active", - "candidates": [ + "resolved_value": 364482.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_f9ada16eb0c916b22d2397bb" + }, { - "name": "ons.population.male_10_14", + "name": "mhclg.council_tax_stock.band_a@E12000007", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 13134, + "matched_fact_count_at_or_before_period": 13002, + "geography_level": "region", + "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 2152800.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_86d603b352e77fd0c03ddaa8" - } - ] - }, - "ons.population.male_15_19": { - "status": "active", - "candidates": [ + "resolved_value": 118732.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_f7d8d56243116fa2f1419fe1" + }, { - "name": "ons.population.male_15_19", + "name": "mhclg.council_tax_stock.band_a@E12000008", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 25472, + "matched_fact_count_at_or_before_period": 25216, + "geography_level": "region", + "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 2123750.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ecf390d4b25b71d12aae6bc7" - } - ] - }, - "ons.population.male_20_24": { - "status": "active", - "candidates": [ + "resolved_value": 320025.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_fcc7bbe5d78c199fc6d856ca" + }, { - "name": "ons.population.male_20_24", + "name": "mhclg.council_tax_stock.band_a@E12000009", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 10746, + "matched_fact_count_at_or_before_period": 10638, + "geography_level": "region", + "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 2131646.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_edb961b3528b22769eece352" + "resolved_value": 422969.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_f23d41b29d6952c18d44dc26" } ] }, - "ons.population.male_25_29": { + "mhclg.council_tax_stock.band_b": { "status": "active", "candidates": [ { - "name": "ons.population.male_25_29", + "name": "mhclg.council_tax_stock.band_b@E12000001", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 4776, + "matched_fact_count_at_or_before_period": 4728, + "geography_level": "region", + "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 2257360.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_fd52338de8e1557cdd024c36" - } - ] - }, - "ons.population.male_30_34": { - "status": "active", - "candidates": [ + "resolved_value": 193309.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_f84be54967344adf03fab807" + }, { - "name": "ons.population.male_30_34", + "name": "mhclg.council_tax_stock.band_b@E12000002", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 13930, + "matched_fact_count_at_or_before_period": 13790, + "geography_level": "region", + "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 2333326.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_b81f56fab808ad1d38d70f3d" - } - ] - }, - "ons.population.male_35_39": { - "status": "active", - "candidates": [ + "resolved_value": 666970.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_fac49fea11fd3b1110a941c5" + }, { - "name": "ons.population.male_35_39", + "name": "mhclg.council_tax_stock.band_b@E12000003", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 5970, + "matched_fact_count_at_or_before_period": 5910, + "geography_level": "region", + "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 2303479.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_be9bedc792e0d419ebaf5316" - } - ] - }, - "ons.population.male_40_44": { - "status": "active", - "candidates": [ + "resolved_value": 482052.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_f8ef63f3e9b07a934c3f2df8" + }, { - "name": "ons.population.male_40_44", + "name": "mhclg.council_tax_stock.band_b@E12000004", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 13930, + "matched_fact_count_at_or_before_period": 13790, + "geography_level": "region", + "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 2196013.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_d41ff91bfe885debcc12d759" - } - ] - }, - "ons.population.male_45_49": { - "status": "active", - "candidates": [ + "resolved_value": 478320.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_f48dde558979080156b8c99f" + }, { - "name": "ons.population.male_45_49", + "name": "mhclg.council_tax_stock.band_b@E12000005", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 11940, + "matched_fact_count_at_or_before_period": 11820, + "geography_level": "region", + "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 2005099.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_fafcbae6e55f9ae20bc0050d" - } - ] - }, - "ons.population.male_50_54": { - "status": "active", - "candidates": [ + "resolved_value": 625673.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_fc4a526b4ee56ed620ab4c14" + }, { - "name": "ons.population.male_50_54", + "name": "mhclg.council_tax_stock.band_b@E12000006", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 17910, + "matched_fact_count_at_or_before_period": 17730, + "geography_level": "region", + "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 2164862.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_b8fe92cfb43b9a95f8a9f7ef" - } - ] - }, - "ons.population.male_55_59": { - "status": "active", - "candidates": [ + "resolved_value": 568914.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_fe310977523bcaadf025f7f6" + }, { - "name": "ons.population.male_55_59", + "name": "mhclg.council_tax_stock.band_b@E12000007", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 13134, + "matched_fact_count_at_or_before_period": 13002, + "geography_level": "region", + "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 2256521.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_86b57e4ed1e5186f23dc4021" - } - ] - }, - "ons.population.male_5_9": { - "status": "active", - "candidates": [ + "resolved_value": 463447.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_ffadb386ab954d99278ba891" + }, { - "name": "ons.population.male_5_9", + "name": "mhclg.council_tax_stock.band_b@E12000008", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 25472, + "matched_fact_count_at_or_before_period": 25216, + "geography_level": "region", + "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 2037199.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_e272f955c58535b8b9304759" - } - ] - }, - "ons.population.male_60_64": { - "status": "active", - "candidates": [ + "resolved_value": 649092.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_fb23fbffbee284d17da76489" + }, { - "name": "ons.population.male_60_64", + "name": "mhclg.council_tax_stock.band_b@E12000009", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 10746, + "matched_fact_count_at_or_before_period": 10638, + "geography_level": "region", + "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 2094462.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_e60d33e33dcbc1ba2292edf5" + "resolved_value": 609286.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_f84a549115340205a9ae8951" } ] }, - "ons.population.male_65_69": { + "mhclg.council_tax_stock.band_c": { "status": "active", "candidates": [ { - "name": "ons.population.male_65_69", + "name": "mhclg.council_tax_stock.band_c@E12000001", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 4776, + "matched_fact_count_at_or_before_period": 4728, + "geography_level": "region", + "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 1734083.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_a4878efd0023575bded6b67a" - } - ] - }, - "ons.population.male_70_74": { - "status": "active", - "candidates": [ + "resolved_value": 186703.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_e5eaf3e7f4def06c8d938e5f" + }, { - "name": "ons.population.male_70_74", + "name": "mhclg.council_tax_stock.band_c@E12000002", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 13930, + "matched_fact_count_at_or_before_period": 13790, + "geography_level": "region", + "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 1473758.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_d34aca91f9d1621ea96e72bc" - } - ] - }, - "ons.population.male_75_79": { - "status": "active", - "candidates": [ + "resolved_value": 585587.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_fc2f9b5b1813a71f580f85a4" + }, { - "name": "ons.population.male_75_79", + "name": "mhclg.council_tax_stock.band_c@E12000003", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 5970, + "matched_fact_count_at_or_before_period": 5910, + "geography_level": "region", + "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 1350668.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f74158203e735d37a67c5409" - } - ] - }, - "ons.population.male_80_84": { - "status": "active", - "candidates": [ + "resolved_value": 408440.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_fe416e96e8e324e0e1647008" + }, { - "name": "ons.population.male_80_84", + "name": "mhclg.council_tax_stock.band_c@E12000004", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 13930, + "matched_fact_count_at_or_before_period": 13790, + "geography_level": "region", + "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 815910.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_60aa57af44ada9286df3d649" - } - ] - }, - "ons.population.male_85_89": { - "status": "active", - "candidates": [ + "resolved_value": 384470.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_fa1e7c770b7403c2a2663980" + }, { - "name": "ons.population.male_85_89", + "name": "mhclg.council_tax_stock.band_c@E12000005", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 11940, + "matched_fact_count_at_or_before_period": 11820, + "geography_level": "region", + "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 459511.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_bbfd4e781a7d1151855e4edb" - } - ] - }, - "ons.population.male_90_plus": { - "status": "active", - "candidates": [ + "resolved_value": 503657.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_ffab2e562cd756fa9f44ac4c" + }, { - "name": "ons.population.male_90_plus", + "name": "mhclg.council_tax_stock.band_c@E12000006", "status": "active", - "matched_fact_count_overall": 2, - "matched_fact_count_at_or_before_period": 2, + "matched_fact_count_overall": 17910, + "matched_fact_count_at_or_before_period": 17730, + "geography_level": "region", + "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 210520.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_8ec6d2d034546c9693c4f6ed" - } - ] - }, - "ons.population.scotland_children_under_16": { - "status": "active", - "candidates": [ + "resolved_value": 708146.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_ff565a1885420d902566f5be" + }, { - "name": "ons.population.scotland_children_under_16", + "name": "mhclg.council_tax_stock.band_c@E12000007", "status": "active", - "matched_fact_count_overall": 32, - "matched_fact_count_at_or_before_period": 32, + "matched_fact_count_overall": 13134, + "matched_fact_count_at_or_before_period": 13002, + "geography_level": "region", + "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 896833.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f9862176e9cdec891820dfa2" - } - ] - }, - "ons.population.scotland_babies_under_1": { - "status": "active", - "candidates": [ + "resolved_value": 991205.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_eb754d4d8153e7497df94fa9" + }, { - "name": "ons.population.scotland_babies_under_1", + "name": "mhclg.council_tax_stock.band_c@E12000008", "status": "active", - "matched_fact_count_overall": 2, - "matched_fact_count_at_or_before_period": 2, + "matched_fact_count_overall": 25472, + "matched_fact_count_at_or_before_period": 25216, + "geography_level": "region", + "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 46776.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_edd043df0081e63ad0876932" - } - ] - }, - "ons.population.scotland_households_3plus_children": { - "status": "signed_excluded", - "candidates": [ - { - "name": "ons.population.scotland_households_3plus_children", - "status": "signed_excluded", - "matched_fact_count_overall": 552, - "matched_fact_count_at_or_before_period": 552, - "signed_rationale": "Signed out pending a Scotland household-composition fact: the current selector reaches person-level ONS mid-year population age rows, not households with three or more children. microcosm#736 tracks the missing declaration." - } - ] - }, - "ons.household_composition.lone_households_under_65": { - "status": "active", - "candidates": [ + "resolved_value": 1024169.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_feb50a6c4dfa72419ef9e591" + }, { - "name": "ons.household_composition.lone_households_under_65", + "name": "mhclg.council_tax_stock.band_c@E12000009", "status": "active", - "matched_fact_count_overall": 8, - "matched_fact_count_at_or_before_period": 8, + "matched_fact_count_overall": 10746, + "matched_fact_count_at_or_before_period": 10638, + "geography_level": "region", + "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 4316000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_b2ee6bff131571b7dcd4c33c" + "resolved_value": 587214.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_fff7d7ced3067ef09f8e6d12" } ] }, - "ons.household_composition.lone_households_over_65": { + "mhclg.council_tax_stock.band_d": { "status": "active", "candidates": [ { - "name": "ons.household_composition.lone_households_over_65", + "name": "mhclg.council_tax_stock.band_d@E12000001", "status": "active", - "matched_fact_count_overall": 8, - "matched_fact_count_at_or_before_period": 8, + "matched_fact_count_overall": 4776, + "matched_fact_count_at_or_before_period": 4728, + "geography_level": "region", + "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 4254000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_4178a72ada0e0b5b53fd62b3" - } - ] - }, - "ons.household_composition.unrelated_adult_households": { - "status": "active", - "candidates": [ + "resolved_value": 108432.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_fb2d7a086ad6d3c95a074ab0" + }, { - "name": "ons.household_composition.unrelated_adult_households", + "name": "mhclg.council_tax_stock.band_d@E12000002", "status": "active", - "matched_fact_count_overall": 8, - "matched_fact_count_at_or_before_period": 8, + "matched_fact_count_overall": 13930, + "matched_fact_count_at_or_before_period": 13790, + "geography_level": "region", + "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 813000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_191e954854307c61fca2d539" - } - ] - }, - "ons.household_composition.couple_no_children_households": { - "status": "active", - "candidates": [ + "resolved_value": 346489.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_ff0d7ad8c7d5d0d2f02702f0" + }, { - "name": "ons.household_composition.couple_no_children_households", + "name": "mhclg.council_tax_stock.band_d@E12000003", "status": "active", - "matched_fact_count_overall": 8, - "matched_fact_count_at_or_before_period": 8, + "matched_fact_count_overall": 5970, + "matched_fact_count_at_or_before_period": 5910, + "geography_level": "region", + "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 8119000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_861314257d00193080069624" - } - ] - }, - "ons.household_composition.couple_under_3_children_households": { - "status": "active", - "candidates": [ + "resolved_value": 237496.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_f7c0b8b92776a6109a114a92" + }, { - "name": "ons.household_composition.couple_under_3_children_households", + "name": "mhclg.council_tax_stock.band_d@E12000004", "status": "active", - "matched_fact_count_overall": 8, - "matched_fact_count_at_or_before_period": 8, + "matched_fact_count_overall": 13930, + "matched_fact_count_at_or_before_period": 13790, + "geography_level": "region", + "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 5439000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_04ac3660df720d6f8effbdb2" - } - ] - }, - "ons.household_composition.couple_3_plus_children_households": { - "status": "active", - "candidates": [ + "resolved_value": 238335.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_fa621220d1e5d193343634ca" + }, { - "name": "ons.household_composition.couple_3_plus_children_households", + "name": "mhclg.council_tax_stock.band_d@E12000005", "status": "active", - "matched_fact_count_overall": 8, - "matched_fact_count_at_or_before_period": 8, + "matched_fact_count_overall": 11940, + "matched_fact_count_at_or_before_period": 11820, + "geography_level": "region", + "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 931000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_3432d322cadb6a40f0c3ebc8" - } - ] - }, - "ons.household_composition.couple_non_dependent_children_only_households": { - "status": "active", - "candidates": [ + "resolved_value": 288790.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_ff6f72e91c98eb23dfe9d09c" + }, { - "name": "ons.household_composition.couple_non_dependent_children_only_households", + "name": "mhclg.council_tax_stock.band_d@E12000006", "status": "active", - "matched_fact_count_overall": 8, - "matched_fact_count_at_or_before_period": 8, + "matched_fact_count_overall": 17910, + "matched_fact_count_at_or_before_period": 17730, + "geography_level": "region", + "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 1848000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_4d36f952f4dd650bcab7ba7f" - } - ] - }, - "ons.household_composition.lone_parent_dependent_children_households": { - "status": "active", - "candidates": [ + "resolved_value": 485975.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_fd87126e89fd8a33383640f1" + }, { - "name": "ons.household_composition.lone_parent_dependent_children_households", + "name": "mhclg.council_tax_stock.band_d@E12000007", "status": "active", - "matched_fact_count_overall": 8, - "matched_fact_count_at_or_before_period": 8, + "matched_fact_count_overall": 13134, + "matched_fact_count_at_or_before_period": 13002, + "geography_level": "region", + "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 1835000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_e9746f29548db6f6047842cb" - } - ] - }, - "ons.household_composition.lone_parent_non_dependent_children_households": { - "status": "active", - "candidates": [ + "resolved_value": 929941.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_f7dfce8ada24dca8651cdc12" + }, { - "name": "ons.household_composition.lone_parent_non_dependent_children_households", + "name": "mhclg.council_tax_stock.band_d@E12000008", "status": "active", - "matched_fact_count_overall": 8, - "matched_fact_count_at_or_before_period": 8, + "matched_fact_count_overall": 25472, + "matched_fact_count_at_or_before_period": 25216, + "geography_level": "region", + "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 1204000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_9c7f117f90bc24f073f4e14f" - } - ] - }, - "ons.household_composition.multi_family_households": { - "status": "active", - "candidates": [ + "resolved_value": 807114.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_f8129a3bae48724ddc91e4ca" + }, { - "name": "ons.household_composition.multi_family_households", + "name": "mhclg.council_tax_stock.band_d@E12000009", "status": "active", - "matched_fact_count_overall": 8, - "matched_fact_count_at_or_before_period": 8, + "matched_fact_count_overall": 10746, + "matched_fact_count_at_or_before_period": 10638, + "geography_level": "region", + "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 244000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_a0cd8874e5334242ce7b8ce0" + "resolved_value": 404568.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_f9f3dcc56f346a75bfa16137" } ] }, - "mhclg.council_tax_stock.band_a": { + "mhclg.council_tax_stock.band_e": { "status": "active", "candidates": [ { - "name": "mhclg.council_tax_stock.band_a@E12000001", + "name": "mhclg.council_tax_stock.band_e@E12000001", "status": "active", "matched_fact_count_overall": 4776, "matched_fact_count_at_or_before_period": 4728, "geography_level": "region", "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 621096.0, + "resolved_value": 58932.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_d0152c2791236d6ec749fb4b" + "resolved_fact_key": "ledger_aggregate_fact_v2_e767a90e1f4f3985379189f5" }, { - "name": "mhclg.council_tax_stock.band_a@E12000002", + "name": "mhclg.council_tax_stock.band_e@E12000002", "status": "active", "matched_fact_count_overall": 13930, "matched_fact_count_at_or_before_period": 13790, "geography_level": "region", "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 1285713.0, + "resolved_value": 207825.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fa7c76228b4383e695be0c57" + "resolved_fact_key": "ledger_aggregate_fact_v2_f9b8ef4202908453655767f0" }, { - "name": "mhclg.council_tax_stock.band_a@E12000003", + "name": "mhclg.council_tax_stock.band_e@E12000003", "status": "active", "matched_fact_count_overall": 5970, "matched_fact_count_at_or_before_period": 5910, "geography_level": "region", "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 988548.0, + "resolved_value": 152517.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_eb94428708527c6adbce48c3" + "resolved_fact_key": "ledger_aggregate_fact_v2_fbb09c3c4f80ba784375aa37" }, { - "name": "mhclg.council_tax_stock.band_a@E12000004", + "name": "mhclg.council_tax_stock.band_e@E12000004", "status": "active", "matched_fact_count_overall": 13930, "matched_fact_count_at_or_before_period": 13790, "geography_level": "region", "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 739971.0, + "resolved_value": 149931.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f17101c03f5970d639ddb6d7" + "resolved_fact_key": "ledger_aggregate_fact_v2_fec984442b918005ccc92238" }, { - "name": "mhclg.council_tax_stock.band_a@E12000005", + "name": "mhclg.council_tax_stock.band_e@E12000005", "status": "active", "matched_fact_count_overall": 11940, "matched_fact_count_at_or_before_period": 11820, "geography_level": "region", "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 728493.0, + "resolved_value": 185672.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_ef49e263051486267b93c7cd" + "resolved_fact_key": "ledger_aggregate_fact_v2_d83f9067bfa886482b6a5be7" }, { - "name": "mhclg.council_tax_stock.band_a@E12000006", + "name": "mhclg.council_tax_stock.band_e@E12000006", "status": "active", "matched_fact_count_overall": 17910, "matched_fact_count_at_or_before_period": 17730, "geography_level": "region", "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 364482.0, + "resolved_value": 301723.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f9ada16eb0c916b22d2397bb" + "resolved_fact_key": "ledger_aggregate_fact_v2_fb2e48afaa19a026d3d2dbf9" }, { - "name": "mhclg.council_tax_stock.band_a@E12000007", + "name": "mhclg.council_tax_stock.band_e@E12000007", "status": "active", "matched_fact_count_overall": 13134, "matched_fact_count_at_or_before_period": 13002, "geography_level": "region", "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 118732.0, + "resolved_value": 551952.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f7d8d56243116fa2f1419fe1" + "resolved_fact_key": "ledger_aggregate_fact_v2_fe53b4ade27bba47669221bb" }, { - "name": "mhclg.council_tax_stock.band_a@E12000008", + "name": "mhclg.council_tax_stock.band_e@E12000008", "status": "active", "matched_fact_count_overall": 25472, "matched_fact_count_at_or_before_period": 25216, "geography_level": "region", "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 320025.0, + "resolved_value": 529137.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fcc7bbe5d78c199fc6d856ca" + "resolved_fact_key": "ledger_aggregate_fact_v2_ff8b7b878381855ff02392c8" }, { - "name": "mhclg.council_tax_stock.band_a@E12000009", + "name": "mhclg.council_tax_stock.band_e@E12000009", "status": "active", "matched_fact_count_overall": 10746, "matched_fact_count_at_or_before_period": 10638, "geography_level": "region", "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 422969.0, + "resolved_value": 274120.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f23d41b29d6952c18d44dc26" + "resolved_fact_key": "ledger_aggregate_fact_v2_fd8affa54b589a8f8dfa76e1" } ] }, - "mhclg.council_tax_stock.band_b": { + "mhclg.council_tax_stock.band_f": { "status": "active", "candidates": [ { - "name": "mhclg.council_tax_stock.band_b@E12000001", + "name": "mhclg.council_tax_stock.band_f@E12000001", "status": "active", "matched_fact_count_overall": 4776, "matched_fact_count_at_or_before_period": 4728, "geography_level": "region", "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 193309.0, + "resolved_value": 25729.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f84be54967344adf03fab807" + "resolved_fact_key": "ledger_aggregate_fact_v2_f1a656e56ed4ec922ab1be8a" }, { - "name": "mhclg.council_tax_stock.band_b@E12000002", + "name": "mhclg.council_tax_stock.band_f@E12000002", "status": "active", "matched_fact_count_overall": 13930, "matched_fact_count_at_or_before_period": 13790, "geography_level": "region", "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 666970.0, + "resolved_value": 100117.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fac49fea11fd3b1110a941c5" + "resolved_fact_key": "ledger_aggregate_fact_v2_f934ec4447a2decb7d93153c" }, { - "name": "mhclg.council_tax_stock.band_b@E12000003", + "name": "mhclg.council_tax_stock.band_f@E12000003", "status": "active", "matched_fact_count_overall": 5970, "matched_fact_count_at_or_before_period": 5910, "geography_level": "region", "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 482052.0, + "resolved_value": 73172.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f8ef63f3e9b07a934c3f2df8" + "resolved_fact_key": "ledger_aggregate_fact_v2_fed1e74402841596ec02537f" }, { - "name": "mhclg.council_tax_stock.band_b@E12000004", + "name": "mhclg.council_tax_stock.band_f@E12000004", "status": "active", "matched_fact_count_overall": 13930, "matched_fact_count_at_or_before_period": 13790, "geography_level": "region", "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 478320.0, + "resolved_value": 71418.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f48dde558979080156b8c99f" + "resolved_fact_key": "ledger_aggregate_fact_v2_f992d8c87d194b0dfb07b0fa" }, { - "name": "mhclg.council_tax_stock.band_b@E12000005", + "name": "mhclg.council_tax_stock.band_f@E12000005", "status": "active", "matched_fact_count_overall": 11940, "matched_fact_count_at_or_before_period": 11820, "geography_level": "region", "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 625673.0, + "resolved_value": 102077.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fc4a526b4ee56ed620ab4c14" + "resolved_fact_key": "ledger_aggregate_fact_v2_f9f49f0636d79cb28dcc85e1" }, { - "name": "mhclg.council_tax_stock.band_b@E12000006", + "name": "mhclg.council_tax_stock.band_f@E12000006", "status": "active", "matched_fact_count_overall": 17910, "matched_fact_count_at_or_before_period": 17730, "geography_level": "region", "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 568914.0, + "resolved_value": 166744.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fe310977523bcaadf025f7f6" + "resolved_fact_key": "ledger_aggregate_fact_v2_e672d9b03691ddd1faac694d" }, { - "name": "mhclg.council_tax_stock.band_b@E12000007", + "name": "mhclg.council_tax_stock.band_f@E12000007", "status": "active", "matched_fact_count_overall": 13134, "matched_fact_count_at_or_before_period": 13002, "geography_level": "region", "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 463447.0, + "resolved_value": 279261.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_ffadb386ab954d99278ba891" + "resolved_fact_key": "ledger_aggregate_fact_v2_ef478a0ef6ff0cb78a65dcaa" }, { - "name": "mhclg.council_tax_stock.band_b@E12000008", + "name": "mhclg.council_tax_stock.band_f@E12000008", "status": "active", "matched_fact_count_overall": 25472, "matched_fact_count_at_or_before_period": 25216, "geography_level": "region", "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 649092.0, + "resolved_value": 325815.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fb23fbffbee284d17da76489" + "resolved_fact_key": "ledger_aggregate_fact_v2_fb02357269b3d262a700cf5f" }, { - "name": "mhclg.council_tax_stock.band_b@E12000009", + "name": "mhclg.council_tax_stock.band_f@E12000009", "status": "active", "matched_fact_count_overall": 10746, "matched_fact_count_at_or_before_period": 10638, "geography_level": "region", "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 609286.0, + "resolved_value": 139412.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f84a549115340205a9ae8951" + "resolved_fact_key": "ledger_aggregate_fact_v2_fb77e2f50e126802cff79f21" } ] }, - "mhclg.council_tax_stock.band_c": { + "mhclg.council_tax_stock.band_g": { "status": "active", "candidates": [ { - "name": "mhclg.council_tax_stock.band_c@E12000001", + "name": "mhclg.council_tax_stock.band_g@E12000001", "status": "active", "matched_fact_count_overall": 4776, "matched_fact_count_at_or_before_period": 4728, "geography_level": "region", "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 186703.0, + "resolved_value": 14062.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_e5eaf3e7f4def06c8d938e5f" + "resolved_fact_key": "ledger_aggregate_fact_v2_f80042add7dbd445217cde1a" }, { - "name": "mhclg.council_tax_stock.band_c@E12000002", + "name": "mhclg.council_tax_stock.band_g@E12000002", "status": "active", "matched_fact_count_overall": 13930, "matched_fact_count_at_or_before_period": 13790, "geography_level": "region", "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 585587.0, + "resolved_value": 62587.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fc2f9b5b1813a71f580f85a4" + "resolved_fact_key": "ledger_aggregate_fact_v2_ffc555374f59e3667468b086" }, { - "name": "mhclg.council_tax_stock.band_c@E12000003", + "name": "mhclg.council_tax_stock.band_g@E12000003", "status": "active", "matched_fact_count_overall": 5970, "matched_fact_count_at_or_before_period": 5910, "geography_level": "region", "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 408440.0, + "resolved_value": 40487.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fe416e96e8e324e0e1647008" + "resolved_fact_key": "ledger_aggregate_fact_v2_f290bf6f13fa468c2acf0be2" }, { - "name": "mhclg.council_tax_stock.band_c@E12000004", + "name": "mhclg.council_tax_stock.band_g@E12000004", "status": "active", "matched_fact_count_overall": 13930, "matched_fact_count_at_or_before_period": 13790, "geography_level": "region", "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 384470.0, + "resolved_value": 37892.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fa1e7c770b7403c2a2663980" + "resolved_fact_key": "ledger_aggregate_fact_v2_f69d9fecd8d273243af03685" }, { - "name": "mhclg.council_tax_stock.band_c@E12000005", + "name": "mhclg.council_tax_stock.band_g@E12000005", "status": "active", "matched_fact_count_overall": 11940, "matched_fact_count_at_or_before_period": 11820, "geography_level": "region", "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 503657.0, + "resolved_value": 60209.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_ffab2e562cd756fa9f44ac4c" + "resolved_fact_key": "ledger_aggregate_fact_v2_ec75efe3a83bc6d9c25d7ae1" }, { - "name": "mhclg.council_tax_stock.band_c@E12000006", + "name": "mhclg.council_tax_stock.band_g@E12000006", "status": "active", "matched_fact_count_overall": 17910, "matched_fact_count_at_or_before_period": 17730, "geography_level": "region", "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 708146.0, + "resolved_value": 108700.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_ff565a1885420d902566f5be" + "resolved_fact_key": "ledger_aggregate_fact_v2_fd2a0529ed0a7cf9532ef8ea" }, { - "name": "mhclg.council_tax_stock.band_c@E12000007", + "name": "mhclg.council_tax_stock.band_g@E12000007", "status": "active", "matched_fact_count_overall": 13134, "matched_fact_count_at_or_before_period": 13002, "geography_level": "region", "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 991205.0, + "resolved_value": 207056.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_eb754d4d8153e7497df94fa9" + "resolved_fact_key": "ledger_aggregate_fact_v2_f7d99e8a41825169a450a9ed" }, { - "name": "mhclg.council_tax_stock.band_c@E12000008", + "name": "mhclg.council_tax_stock.band_g@E12000008", "status": "active", "matched_fact_count_overall": 25472, "matched_fact_count_at_or_before_period": 25216, "geography_level": "region", "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 1024169.0, + "resolved_value": 255206.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_feb50a6c4dfa72419ef9e591" + "resolved_fact_key": "ledger_aggregate_fact_v2_fda73631af17107d741fed93" }, { - "name": "mhclg.council_tax_stock.band_c@E12000009", + "name": "mhclg.council_tax_stock.band_g@E12000009", "status": "active", "matched_fact_count_overall": 10746, "matched_fact_count_at_or_before_period": 10638, "geography_level": "region", "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 587214.0, + "resolved_value": 75533.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fff7d7ced3067ef09f8e6d12" + "resolved_fact_key": "ledger_aggregate_fact_v2_ddffd3467540ebe8f71dc050" } ] }, - "mhclg.council_tax_stock.band_d": { + "mhclg.council_tax_stock.band_h": { "status": "active", "candidates": [ { - "name": "mhclg.council_tax_stock.band_d@E12000001", + "name": "mhclg.council_tax_stock.band_h@E12000001", "status": "active", "matched_fact_count_overall": 4776, "matched_fact_count_at_or_before_period": 4728, "geography_level": "region", "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 108432.0, + "resolved_value": 1151.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fb2d7a086ad6d3c95a074ab0" + "resolved_fact_key": "ledger_aggregate_fact_v2_ff4150e637c1d82a68bb2a28" }, { - "name": "mhclg.council_tax_stock.band_d@E12000002", + "name": "mhclg.council_tax_stock.band_h@E12000002", "status": "active", "matched_fact_count_overall": 13930, "matched_fact_count_at_or_before_period": 13790, "geography_level": "region", "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 346489.0, + "resolved_value": 6230.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_ff0d7ad8c7d5d0d2f02702f0" + "resolved_fact_key": "ledger_aggregate_fact_v2_f742ed87e05f38e0a20ba028" }, { - "name": "mhclg.council_tax_stock.band_d@E12000003", + "name": "mhclg.council_tax_stock.band_h@E12000003", "status": "active", "matched_fact_count_overall": 5970, "matched_fact_count_at_or_before_period": 5910, "geography_level": "region", "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 237496.0, + "resolved_value": 3022.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f7c0b8b92776a6109a114a92" + "resolved_fact_key": "ledger_aggregate_fact_v2_fd393adec42be55cfefb3400" }, { - "name": "mhclg.council_tax_stock.band_d@E12000004", + "name": "mhclg.council_tax_stock.band_h@E12000004", "status": "active", "matched_fact_count_overall": 13930, "matched_fact_count_at_or_before_period": 13790, "geography_level": "region", "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 238335.0, + "resolved_value": 2779.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fa621220d1e5d193343634ca" + "resolved_fact_key": "ledger_aggregate_fact_v2_fe1b32af9c019b0fa366ea83" }, { - "name": "mhclg.council_tax_stock.band_d@E12000005", + "name": "mhclg.council_tax_stock.band_h@E12000005", "status": "active", "matched_fact_count_overall": 11940, "matched_fact_count_at_or_before_period": 11820, "geography_level": "region", "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 288790.0, + "resolved_value": 5285.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_ff6f72e91c98eb23dfe9d09c" + "resolved_fact_key": "ledger_aggregate_fact_v2_f086bebb12518f66fdd27be8" }, { - "name": "mhclg.council_tax_stock.band_d@E12000006", + "name": "mhclg.council_tax_stock.band_h@E12000006", "status": "active", "matched_fact_count_overall": 17910, "matched_fact_count_at_or_before_period": 17730, "geography_level": "region", "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 485975.0, + "resolved_value": 13447.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fd87126e89fd8a33383640f1" + "resolved_fact_key": "ledger_aggregate_fact_v2_fb031812869aaf579b6d5b62" }, { - "name": "mhclg.council_tax_stock.band_d@E12000007", + "name": "mhclg.council_tax_stock.band_h@E12000007", "status": "active", "matched_fact_count_overall": 13134, "matched_fact_count_at_or_before_period": 13002, "geography_level": "region", "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 929941.0, + "resolved_value": 59569.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f7dfce8ada24dca8651cdc12" + "resolved_fact_key": "ledger_aggregate_fact_v2_fb5c13d22ffe09151cf3b4f8" }, { - "name": "mhclg.council_tax_stock.band_d@E12000008", + "name": "mhclg.council_tax_stock.band_h@E12000008", "status": "active", "matched_fact_count_overall": 25472, "matched_fact_count_at_or_before_period": 25216, "geography_level": "region", "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 807114.0, + "resolved_value": 36978.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f8129a3bae48724ddc91e4ca" + "resolved_fact_key": "ledger_aggregate_fact_v2_fd99e21ba622e4f2a978332a" }, { - "name": "mhclg.council_tax_stock.band_d@E12000009", + "name": "mhclg.council_tax_stock.band_h@E12000009", "status": "active", "matched_fact_count_overall": 10746, "matched_fact_count_at_or_before_period": 10638, "geography_level": "region", "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 404568.0, + "resolved_value": 6697.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f9f3dcc56f346a75bfa16137" + "resolved_fact_key": "ledger_aggregate_fact_v2_f90a5f109dfd934a167bf0e0" } ] }, - "mhclg.council_tax_stock.band_e": { + "mhclg.council_tax_stock.total": { "status": "active", "candidates": [ { - "name": "mhclg.council_tax_stock.band_e@E12000001", + "name": "mhclg.council_tax_stock.total@E12000001", "status": "active", "matched_fact_count_overall": 4776, "matched_fact_count_at_or_before_period": 4728, "geography_level": "region", "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 58932.0, + "resolved_value": 1209414.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_e767a90e1f4f3985379189f5" + "resolved_fact_key": "ledger_aggregate_fact_v2_d0495e6e8e02785ad2236142" }, { - "name": "mhclg.council_tax_stock.band_e@E12000002", + "name": "mhclg.council_tax_stock.total@E12000002", "status": "active", "matched_fact_count_overall": 13930, "matched_fact_count_at_or_before_period": 13790, "geography_level": "region", "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 207825.0, + "resolved_value": 3261518.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f9b8ef4202908453655767f0" + "resolved_fact_key": "ledger_aggregate_fact_v2_fc1af92610b38c4757aea9cd" }, { - "name": "mhclg.council_tax_stock.band_e@E12000003", + "name": "mhclg.council_tax_stock.total@E12000003", "status": "active", "matched_fact_count_overall": 5970, "matched_fact_count_at_or_before_period": 5910, "geography_level": "region", "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 152517.0, + "resolved_value": 2385734.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fbb09c3c4f80ba784375aa37" + "resolved_fact_key": "ledger_aggregate_fact_v2_d97752a94900433af3ad7e6f" }, { - "name": "mhclg.council_tax_stock.band_e@E12000004", + "name": "mhclg.council_tax_stock.total@E12000004", "status": "active", "matched_fact_count_overall": 13930, "matched_fact_count_at_or_before_period": 13790, "geography_level": "region", "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 149931.0, + "resolved_value": 2103116.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fec984442b918005ccc92238" + "resolved_fact_key": "ledger_aggregate_fact_v2_ef350c9b94fb54787fbca592" }, { - "name": "mhclg.council_tax_stock.band_e@E12000005", + "name": "mhclg.council_tax_stock.total@E12000005", "status": "active", "matched_fact_count_overall": 11940, "matched_fact_count_at_or_before_period": 11820, "geography_level": "region", "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 185672.0, + "resolved_value": 2499856.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_d83f9067bfa886482b6a5be7" + "resolved_fact_key": "ledger_aggregate_fact_v2_f649a1ce99478b505d03ab91" }, { - "name": "mhclg.council_tax_stock.band_e@E12000006", + "name": "mhclg.council_tax_stock.total@E12000006", "status": "active", "matched_fact_count_overall": 17910, "matched_fact_count_at_or_before_period": 17730, "geography_level": "region", "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 301723.0, + "resolved_value": 2718131.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fb2e48afaa19a026d3d2dbf9" + "resolved_fact_key": "ledger_aggregate_fact_v2_f27b18e8ecc0114a5b9e88e4" }, { - "name": "mhclg.council_tax_stock.band_e@E12000007", + "name": "mhclg.council_tax_stock.total@E12000007", "status": "active", "matched_fact_count_overall": 13134, "matched_fact_count_at_or_before_period": 13002, "geography_level": "region", "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 551952.0, + "resolved_value": 3601163.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fe53b4ade27bba47669221bb" + "resolved_fact_key": "ledger_aggregate_fact_v2_f56db6353a3459ee98059504" }, { - "name": "mhclg.council_tax_stock.band_e@E12000008", + "name": "mhclg.council_tax_stock.total@E12000008", "status": "active", "matched_fact_count_overall": 25472, "matched_fact_count_at_or_before_period": 25216, "geography_level": "region", "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 529137.0, + "resolved_value": 3947536.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_ff8b7b878381855ff02392c8" + "resolved_fact_key": "ledger_aggregate_fact_v2_fd4beff6e5a58b2ca5ff0b3a" }, { - "name": "mhclg.council_tax_stock.band_e@E12000009", + "name": "mhclg.council_tax_stock.total@E12000009", "status": "active", "matched_fact_count_overall": 10746, "matched_fact_count_at_or_before_period": 10638, "geography_level": "region", "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 274120.0, + "resolved_value": 2519799.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fd8affa54b589a8f8dfa76e1" + "resolved_fact_key": "ledger_aggregate_fact_v2_f7339b440103ee7084920ea3" } ] }, - "mhclg.council_tax_stock.band_f": { + "welshgov.council_tax_stock.band_a": { "status": "active", "candidates": [ { - "name": "mhclg.council_tax_stock.band_f@E12000001", - "status": "active", - "matched_fact_count_overall": 4776, - "matched_fact_count_at_or_before_period": 4728, - "geography_level": "region", - "geography_id": "E12000001", - "resolved_period": 2025, - "resolved_value": 25729.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f1a656e56ed4ec922ab1be8a" - }, - { - "name": "mhclg.council_tax_stock.band_f@E12000002", + "name": "welshgov.council_tax_stock.band_a", "status": "active", - "matched_fact_count_overall": 13930, - "matched_fact_count_at_or_before_period": 13790, - "geography_level": "region", - "geography_id": "E12000002", + "matched_fact_count_overall": 436, + "matched_fact_count_at_or_before_period": 339, "resolved_period": 2025, - "resolved_value": 100117.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f934ec4447a2decb7d93153c" - }, + "resolved_value": 194973.29, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_21e317eb3f397169fa2dc933" + } + ] + }, + "welshgov.council_tax_stock.band_b": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.band_f@E12000003", + "name": "welshgov.council_tax_stock.band_b", "status": "active", - "matched_fact_count_overall": 5970, - "matched_fact_count_at_or_before_period": 5910, - "geography_level": "region", - "geography_id": "E12000003", + "matched_fact_count_overall": 436, + "matched_fact_count_at_or_before_period": 339, "resolved_period": 2025, - "resolved_value": 73172.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fed1e74402841596ec02537f" - }, + "resolved_value": 285787.52, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_1db23c3de870c2f9704b9822" + } + ] + }, + "welshgov.council_tax_stock.band_c": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.band_f@E12000004", + "name": "welshgov.council_tax_stock.band_c", "status": "active", - "matched_fact_count_overall": 13930, - "matched_fact_count_at_or_before_period": 13790, - "geography_level": "region", - "geography_id": "E12000004", + "matched_fact_count_overall": 436, + "matched_fact_count_at_or_before_period": 339, "resolved_period": 2025, - "resolved_value": 71418.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f992d8c87d194b0dfb07b0fa" - }, + "resolved_value": 301699.86, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_c8c0495e5862c06f0f268414" + } + ] + }, + "welshgov.council_tax_stock.band_d": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.band_f@E12000005", + "name": "welshgov.council_tax_stock.band_d", "status": "active", - "matched_fact_count_overall": 11940, - "matched_fact_count_at_or_before_period": 11820, - "geography_level": "region", - "geography_id": "E12000005", + "matched_fact_count_overall": 436, + "matched_fact_count_at_or_before_period": 339, "resolved_period": 2025, - "resolved_value": 102077.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f9f49f0636d79cb28dcc85e1" - }, + "resolved_value": 225179.88, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_04e498c0e2dad39004885ea3" + } + ] + }, + "welshgov.council_tax_stock.band_e": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.band_f@E12000006", + "name": "welshgov.council_tax_stock.band_e", "status": "active", - "matched_fact_count_overall": 17910, - "matched_fact_count_at_or_before_period": 17730, - "geography_level": "region", - "geography_id": "E12000006", + "matched_fact_count_overall": 436, + "matched_fact_count_at_or_before_period": 339, "resolved_period": 2025, - "resolved_value": 166744.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_e672d9b03691ddd1faac694d" - }, + "resolved_value": 185447.46, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_e8ca0bef4217724c1b6eafbb" + } + ] + }, + "welshgov.council_tax_stock.band_f": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.band_f@E12000007", + "name": "welshgov.council_tax_stock.band_f", "status": "active", - "matched_fact_count_overall": 13134, - "matched_fact_count_at_or_before_period": 13002, - "geography_level": "region", - "geography_id": "E12000007", + "matched_fact_count_overall": 436, + "matched_fact_count_at_or_before_period": 339, "resolved_period": 2025, - "resolved_value": 279261.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_ef478a0ef6ff0cb78a65dcaa" - }, + "resolved_value": 114672.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_f9e314273b8264de7d24a7b6" + } + ] + }, + "welshgov.council_tax_stock.band_g": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.band_f@E12000008", + "name": "welshgov.council_tax_stock.band_g", "status": "active", - "matched_fact_count_overall": 25472, - "matched_fact_count_at_or_before_period": 25216, - "geography_level": "region", - "geography_id": "E12000008", + "matched_fact_count_overall": 436, + "matched_fact_count_at_or_before_period": 339, "resolved_period": 2025, - "resolved_value": 325815.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fb02357269b3d262a700cf5f" - }, + "resolved_value": 52211.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_1ffc03853a7f22dbfdfd30ee" + } + ] + }, + "welshgov.council_tax_stock.band_h": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.band_f@E12000009", + "name": "welshgov.council_tax_stock.band_h", "status": "active", - "matched_fact_count_overall": 10746, - "matched_fact_count_at_or_before_period": 10638, - "geography_level": "region", - "geography_id": "E12000009", + "matched_fact_count_overall": 436, + "matched_fact_count_at_or_before_period": 339, "resolved_period": 2025, - "resolved_value": 139412.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fb77e2f50e126802cff79f21" + "resolved_value": 12357.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_38b37ca6c167d44f1ee2b517" } ] }, - "mhclg.council_tax_stock.band_g": { + "welshgov.council_tax_stock.band_i": { "status": "active", "candidates": [ { - "name": "mhclg.council_tax_stock.band_g@E12000001", + "name": "welshgov.council_tax_stock.band_i", "status": "active", - "matched_fact_count_overall": 4776, - "matched_fact_count_at_or_before_period": 4728, - "geography_level": "region", - "geography_id": "E12000001", + "matched_fact_count_overall": 436, + "matched_fact_count_at_or_before_period": 339, "resolved_period": 2025, - "resolved_value": 14062.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f80042add7dbd445217cde1a" - }, + "resolved_value": 5305.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_f94d0825d8f1f21a02667aeb" + } + ] + }, + "welshgov.council_tax_stock.total": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.band_g@E12000002", + "name": "welshgov.council_tax_stock.total", "status": "active", - "matched_fact_count_overall": 13930, - "matched_fact_count_at_or_before_period": 13790, - "geography_level": "region", - "geography_id": "E12000002", + "matched_fact_count_overall": 436, + "matched_fact_count_at_or_before_period": 339, "resolved_period": 2025, - "resolved_value": 62587.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_ffc555374f59e3667468b086" - }, + "resolved_value": 1377633.03, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_69899dbf797a73ce0c05f13d" + } + ] + }, + "scotgov.council_tax_stock.band_a": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.band_g@E12000003", + "name": "scotgov.council_tax_stock.band_a", "status": "active", - "matched_fact_count_overall": 5970, - "matched_fact_count_at_or_before_period": 5910, - "geography_level": "region", - "geography_id": "E12000003", + "matched_fact_count_overall": 3, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 40487.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f290bf6f13fa468c2acf0be2" - }, + "resolved_value": 498707.0, + "resolved_fact_period": "2025-09", + "resolved_fact_key": "ledger_aggregate_fact_v2_d16c53fe6a1c8f4f5886b7e5" + } + ] + }, + "scotgov.council_tax_stock.band_b": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.band_g@E12000004", + "name": "scotgov.council_tax_stock.band_b", "status": "active", - "matched_fact_count_overall": 13930, - "matched_fact_count_at_or_before_period": 13790, - "geography_level": "region", - "geography_id": "E12000004", + "matched_fact_count_overall": 3, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 37892.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f69d9fecd8d273243af03685" - }, + "resolved_value": 583705.0, + "resolved_fact_period": "2025-09", + "resolved_fact_key": "ledger_aggregate_fact_v2_2f95ec98ae61f9898bd47ed9" + } + ] + }, + "scotgov.council_tax_stock.band_c": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.band_g@E12000005", + "name": "scotgov.council_tax_stock.band_c", "status": "active", - "matched_fact_count_overall": 11940, - "matched_fact_count_at_or_before_period": 11820, - "geography_level": "region", - "geography_id": "E12000005", + "matched_fact_count_overall": 3, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 60209.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_ec75efe3a83bc6d9c25d7ae1" - }, + "resolved_value": 426388.0, + "resolved_fact_period": "2025-09", + "resolved_fact_key": "ledger_aggregate_fact_v2_c9781708df55dc5d197e6623" + } + ] + }, + "scotgov.council_tax_stock.band_d": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.band_g@E12000006", + "name": "scotgov.council_tax_stock.band_d", "status": "active", - "matched_fact_count_overall": 17910, - "matched_fact_count_at_or_before_period": 17730, - "geography_level": "region", - "geography_id": "E12000006", + "matched_fact_count_overall": 3, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 108700.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fd2a0529ed0a7cf9532ef8ea" - }, + "resolved_value": 369621.0, + "resolved_fact_period": "2025-09", + "resolved_fact_key": "ledger_aggregate_fact_v2_ae1fe03809a505b820479598" + } + ] + }, + "scotgov.council_tax_stock.band_e": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.band_g@E12000007", + "name": "scotgov.council_tax_stock.band_e", "status": "active", - "matched_fact_count_overall": 13134, - "matched_fact_count_at_or_before_period": 13002, - "geography_level": "region", - "geography_id": "E12000007", + "matched_fact_count_overall": 3, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 207056.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f7d99e8a41825169a450a9ed" - }, + "resolved_value": 366881.0, + "resolved_fact_period": "2025-09", + "resolved_fact_key": "ledger_aggregate_fact_v2_e83153e0de40fb74471c805f" + } + ] + }, + "scotgov.council_tax_stock.band_f": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.band_g@E12000008", + "name": "scotgov.council_tax_stock.band_f", "status": "active", - "matched_fact_count_overall": 25472, - "matched_fact_count_at_or_before_period": 25216, - "geography_level": "region", - "geography_id": "E12000008", + "matched_fact_count_overall": 3, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 255206.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fda73631af17107d741fed93" - }, + "resolved_value": 221282.0, + "resolved_fact_period": "2025-09", + "resolved_fact_key": "ledger_aggregate_fact_v2_b24b6409c1473600c03999ec" + } + ] + }, + "scotgov.council_tax_stock.band_g": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.band_g@E12000009", - "status": "active", - "matched_fact_count_overall": 10746, - "matched_fact_count_at_or_before_period": 10638, - "geography_level": "region", - "geography_id": "E12000009", + "name": "scotgov.council_tax_stock.band_g", + "status": "active", + "matched_fact_count_overall": 3, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 75533.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_ddffd3467540ebe8f71dc050" + "resolved_value": 142084.0, + "resolved_fact_period": "2025-09", + "resolved_fact_key": "ledger_aggregate_fact_v2_c86494a855b00998122989d6" } ] }, - "mhclg.council_tax_stock.band_h": { + "scotgov.council_tax_stock.band_h": { "status": "active", "candidates": [ { - "name": "mhclg.council_tax_stock.band_h@E12000001", + "name": "scotgov.council_tax_stock.band_h", "status": "active", - "matched_fact_count_overall": 4776, - "matched_fact_count_at_or_before_period": 4728, - "geography_level": "region", - "geography_id": "E12000001", + "matched_fact_count_overall": 3, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 1151.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_ff4150e637c1d82a68bb2a28" - }, + "resolved_value": 14481.0, + "resolved_fact_period": "2025-09", + "resolved_fact_key": "ledger_aggregate_fact_v2_60d9ae638eff29fc1c88907e" + } + ] + }, + "scotgov.council_tax_stock.total": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.band_h@E12000002", + "name": "scotgov.council_tax_stock.total", "status": "active", - "matched_fact_count_overall": 13930, - "matched_fact_count_at_or_before_period": 13790, - "geography_level": "region", - "geography_id": "E12000002", + "matched_fact_count_overall": 3, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 6230.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f742ed87e05f38e0a20ba028" - }, + "resolved_value": 2623149.0, + "resolved_fact_period": "2025-09", + "resolved_fact_key": "ledger_aggregate_fact_v2_ca77a0f0a777ccba05e4bef9" + } + ] + }, + "scotgov.scottish_child_payment_spending": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.band_h@E12000003", + "name": "scotgov.scottish_child_payment_spending", "status": "active", - "matched_fact_count_overall": 5970, - "matched_fact_count_at_or_before_period": 5910, - "geography_level": "region", - "geography_id": "E12000003", + "matched_fact_count_overall": 3, + "matched_fact_count_at_or_before_period": 2, "resolved_period": 2025, - "resolved_value": 3022.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fd393adec42be55cfefb3400" - }, + "resolved_value": 471000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_20b43b0f8f61e448f28895cf" + } + ] + }, + "ons.savings_interest_income": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.band_h@E12000004", + "name": "ons.savings_interest_income", "status": "active", - "matched_fact_count_overall": 13930, - "matched_fact_count_at_or_before_period": 13790, - "geography_level": "region", - "geography_id": "E12000004", + "matched_fact_count_overall": 8, + "matched_fact_count_at_or_before_period": 8, "resolved_period": 2025, - "resolved_value": 2779.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fe1b32af9c019b0fa366ea83" - }, + "resolved_value": 95503000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_8de1806d1330bcb80a1f4988" + } + ] + }, + "ons.public_sector_employment": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.band_h@E12000005", + "name": "ons.public_sector_employment", "status": "active", - "matched_fact_count_overall": 11940, - "matched_fact_count_at_or_before_period": 11820, - "geography_level": "region", - "geography_id": "E12000005", + "matched_fact_count_overall": 2, + "matched_fact_count_at_or_before_period": 2, "resolved_period": 2025, - "resolved_value": 5285.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f086bebb12518f66fdd27be8" - }, + "resolved_value": 6146000.0, + "resolved_fact_period": "2024-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_ff79b4e2301f564ec4203235" + } + ] + }, + "ons.land.land_value": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.band_h@E12000006", + "name": "ons.land.land_value", "status": "active", - "matched_fact_count_overall": 17910, - "matched_fact_count_at_or_before_period": 17730, - "geography_level": "region", - "geography_id": "E12000006", + "matched_fact_count_overall": 30, + "matched_fact_count_at_or_before_period": 30, "resolved_period": 2025, - "resolved_value": 13447.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fb031812869aaf579b6d5b62" - }, + "resolved_value": 7117771000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_4daf8d1b8830f72bba924d56" + } + ] + }, + "ons.land.household_land_value": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.band_h@E12000007", + "name": "ons.land.household_land_value", "status": "active", - "matched_fact_count_overall": 13134, - "matched_fact_count_at_or_before_period": 13002, - "geography_level": "region", - "geography_id": "E12000007", + "matched_fact_count_overall": 30, + "matched_fact_count_at_or_before_period": 30, "resolved_period": 2025, - "resolved_value": 59569.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fb5c13d22ffe09151cf3b4f8" - }, + "resolved_value": 4559831000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_0e5f9867ab377dffd8a8941f" + } + ] + }, + "ons.land.corporate_land_value": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.band_h@E12000008", + "name": "ons.land.corporate_land_value", "status": "active", - "matched_fact_count_overall": 25472, - "matched_fact_count_at_or_before_period": 25216, - "geography_level": "region", - "geography_id": "E12000008", + "matched_fact_count_overall": 30, + "matched_fact_count_at_or_before_period": 30, "resolved_period": 2025, - "resolved_value": 36978.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fd99e21ba622e4f2a978332a" - }, + "resolved_value": 2103053000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_ab561a17be0af52de30cca88" + } + ] + }, + "slc.repayments.devolved_total": { + "status": "no_fact_at_or_before_period", + "candidates": [ { - "name": "mhclg.council_tax_stock.band_h@E12000009", - "status": "active", - "matched_fact_count_overall": 10746, - "matched_fact_count_at_or_before_period": 10638, - "geography_level": "region", - "geography_id": "E12000009", - "resolved_period": 2025, - "resolved_value": 6697.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f90a5f109dfd934a167bf0e0" + "name": "slc.repayments.devolved_total", + "status": "no_fact_at_or_before_period", + "matched_fact_count_overall": 0, + "matched_fact_count_at_or_before_period": 0, + "error": "ledger_reference_compile_status_no_fact_at_or_before_period" } ] }, - "mhclg.council_tax_stock.total": { + "slc.repayments.england_total_higher_education": { "status": "active", "candidates": [ { - "name": "mhclg.council_tax_stock.total@E12000001", + "name": "slc.repayments.england_total_higher_education", "status": "active", - "matched_fact_count_overall": 4776, - "matched_fact_count_at_or_before_period": 4728, - "geography_level": "region", - "geography_id": "E12000001", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 1209414.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_d0495e6e8e02785ad2236142" - }, + "resolved_value": 5018231834.949999, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_b947d1f3c3659d252194c102" + } + ] + }, + "slc.repayments.england_plan_1": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.total@E12000002", + "name": "slc.repayments.england_plan_1", "status": "active", - "matched_fact_count_overall": 13930, - "matched_fact_count_at_or_before_period": 13790, - "geography_level": "region", - "geography_id": "E12000002", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 3261518.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fc1af92610b38c4757aea9cd" - }, + "resolved_value": 1852699178.55, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_1d9680e6eaf243227fed5ef2" + } + ] + }, + "slc.repayments.england_plan_2": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.total@E12000003", + "name": "slc.repayments.england_plan_2", "status": "active", - "matched_fact_count_overall": 5970, - "matched_fact_count_at_or_before_period": 5910, - "geography_level": "region", - "geography_id": "E12000003", + "matched_fact_count_overall": 2, + "matched_fact_count_at_or_before_period": 2, "resolved_period": 2025, - "resolved_value": 2385734.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_d97752a94900433af3ad7e6f" - }, + "resolved_value": 2778253361.64, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_882329821c90dc683aa778d8" + } + ] + }, + "slc.repayments.england_postgraduate": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.total@E12000004", + "name": "slc.repayments.england_postgraduate", "status": "active", - "matched_fact_count_overall": 13930, - "matched_fact_count_at_or_before_period": 13790, - "geography_level": "region", - "geography_id": "E12000004", + "matched_fact_count_overall": 2, + "matched_fact_count_at_or_before_period": 2, "resolved_period": 2025, - "resolved_value": 2103116.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_ef350c9b94fb54787fbca592" - }, + "resolved_value": 346409713.95000005, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_ac1b07c69f1e1baa2a0fb787" + } + ] + }, + "slc.repayments.england_plan_5": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.total@E12000005", + "name": "slc.repayments.england_plan_5", "status": "active", - "matched_fact_count_overall": 11940, - "matched_fact_count_at_or_before_period": 11820, - "geography_level": "region", - "geography_id": "E12000005", + "matched_fact_count_overall": 2, + "matched_fact_count_at_or_before_period": 2, "resolved_period": 2025, - "resolved_value": 2499856.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f649a1ce99478b505d03ab91" - }, + "resolved_value": 40869580.81, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_496af6b8fe31c71c43f1d292" + } + ] + }, + "slc.borrowers.plan_2_above_threshold": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.total@E12000006", + "name": "slc.borrowers.plan_2_above_threshold", "status": "active", - "matched_fact_count_overall": 17910, - "matched_fact_count_at_or_before_period": 17730, - "geography_level": "region", - "geography_id": "E12000006", + "matched_fact_count_overall": 6, + "matched_fact_count_at_or_before_period": 2, "resolved_period": 2025, - "resolved_value": 2718131.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f27b18e8ecc0114a5b9e88e4" - }, + "resolved_value": 4460000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_02288c19caeae900fdaf1e0d" + } + ] + }, + "slc.borrowers.plan_2_liable": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.total@E12000007", + "name": "slc.borrowers.plan_2_liable", "status": "active", - "matched_fact_count_overall": 13134, - "matched_fact_count_at_or_before_period": 13002, - "geography_level": "region", - "geography_id": "E12000007", + "matched_fact_count_overall": 6, + "matched_fact_count_at_or_before_period": 2, "resolved_period": 2025, - "resolved_value": 3601163.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f56db6353a3459ee98059504" - }, + "resolved_value": 9710000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_37387933e73bcc8c1e04cf78" + } + ] + }, + "slc.borrowers.plan_5_above_threshold": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.total@E12000008", + "name": "slc.borrowers.plan_5_above_threshold", "status": "active", - "matched_fact_count_overall": 25472, - "matched_fact_count_at_or_before_period": 25216, - "geography_level": "region", - "geography_id": "E12000008", + "matched_fact_count_overall": 6, + "matched_fact_count_at_or_before_period": 2, "resolved_period": 2025, - "resolved_value": 3947536.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fd4beff6e5a58b2ca5ff0b3a" - }, + "resolved_value": 35000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_dd16b085f81ef7708a00511e" + } + ] + }, + "slc.borrowers.plan_5_liable": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.total@E12000009", + "name": "slc.borrowers.plan_5_liable", "status": "active", - "matched_fact_count_overall": 10746, - "matched_fact_count_at_or_before_period": 10638, - "geography_level": "region", - "geography_id": "E12000009", + "matched_fact_count_overall": 6, + "matched_fact_count_at_or_before_period": 2, "resolved_period": 2025, - "resolved_value": 2519799.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f7339b440103ee7084920ea3" + "resolved_value": 230000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_73ff136d820950ea404ddb6b" } ] }, - "welshgov.council_tax_stock.band_a": { + "slc.support.maintenance_loan_recipients": { "status": "active", "candidates": [ { - "name": "welshgov.council_tax_stock.band_a", + "name": "slc.support.maintenance_loan_recipients", "status": "active", - "matched_fact_count_overall": 436, - "matched_fact_count_at_or_before_period": 339, + "matched_fact_count_overall": 12, + "matched_fact_count_at_or_before_period": 12, "resolved_period": 2025, - "resolved_value": 194973.29, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_21e317eb3f397169fa2dc933" + "resolved_value": 1159761.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f03bd7a10d0eee9917a3a199" } ] }, - "welshgov.council_tax_stock.band_b": { + "slc.support.maintenance_loan_spend": { "status": "active", "candidates": [ { - "name": "welshgov.council_tax_stock.band_b", + "name": "slc.support.maintenance_loan_spend", "status": "active", - "matched_fact_count_overall": 436, - "matched_fact_count_at_or_before_period": 339, + "matched_fact_count_overall": 12, + "matched_fact_count_at_or_before_period": 12, "resolved_period": 2025, - "resolved_value": 285787.52, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_1db23c3de870c2f9704b9822" + "resolved_value": 8591659718.080004, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_2900e25d7ee90f79fb3b87b9" } ] }, - "welshgov.council_tax_stock.band_c": { + "slc.support.parents_learning_allowance_recipients": { "status": "active", "candidates": [ { - "name": "welshgov.council_tax_stock.band_c", + "name": "slc.support.parents_learning_allowance_recipients", "status": "active", - "matched_fact_count_overall": 436, - "matched_fact_count_at_or_before_period": 339, + "matched_fact_count_overall": 12, + "matched_fact_count_at_or_before_period": 12, "resolved_period": 2025, - "resolved_value": 301699.86, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_c8c0495e5862c06f0f268414" + "resolved_value": 99645.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_d5df1c69846ab2fd3d0e50e1" } ] }, - "welshgov.council_tax_stock.band_d": { + "slc.support.parents_learning_allowance_spend": { "status": "active", "candidates": [ { - "name": "welshgov.council_tax_stock.band_d", + "name": "slc.support.parents_learning_allowance_spend", "status": "active", - "matched_fact_count_overall": 436, - "matched_fact_count_at_or_before_period": 339, + "matched_fact_count_overall": 12, + "matched_fact_count_at_or_before_period": 12, "resolved_period": 2025, - "resolved_value": 225179.88, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_04e498c0e2dad39004885ea3" + "resolved_value": 181421659.32, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_72028ce00b9569deec79d6e6" } ] }, - "welshgov.council_tax_stock.band_e": { + "slc.support.adult_dependants_grant_recipients": { "status": "active", "candidates": [ { - "name": "welshgov.council_tax_stock.band_e", + "name": "slc.support.adult_dependants_grant_recipients", "status": "active", - "matched_fact_count_overall": 436, - "matched_fact_count_at_or_before_period": 339, + "matched_fact_count_overall": 12, + "matched_fact_count_at_or_before_period": 12, "resolved_period": 2025, - "resolved_value": 185447.46, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_e8ca0bef4217724c1b6eafbb" + "resolved_value": 18611.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_adc83b5d137ecb48fed77064" } ] }, - "welshgov.council_tax_stock.band_f": { + "slc.support.adult_dependants_grant_spend": { "status": "active", "candidates": [ { - "name": "welshgov.council_tax_stock.band_f", + "name": "slc.support.adult_dependants_grant_spend", "status": "active", - "matched_fact_count_overall": 436, - "matched_fact_count_at_or_before_period": 339, + "matched_fact_count_overall": 12, + "matched_fact_count_at_or_before_period": 12, "resolved_period": 2025, - "resolved_value": 114672.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_f9e314273b8264de7d24a7b6" + "resolved_value": 55364916.81, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_5d42660596c9088248e41e90" } ] }, - "welshgov.council_tax_stock.band_g": { + "dwp.uc.households": { "status": "active", "candidates": [ { - "name": "welshgov.council_tax_stock.band_g", + "name": "dwp.uc.households", "status": "active", - "matched_fact_count_overall": 436, - "matched_fact_count_at_or_before_period": 339, + "matched_fact_count_overall": 120, + "matched_fact_count_at_or_before_period": 120, + "matched_fact_count_in_source_window": 120, "resolved_period": 2025, - "resolved_value": 52211.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_1ffc03853a7f22dbfdfd30ee" + "resolved_value": 6197311.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_71c060f3f2a732e2f836a5d8" } ] }, - "welshgov.council_tax_stock.band_h": { + "hmrc.tfc.government_top_up": { "status": "active", "candidates": [ { - "name": "welshgov.council_tax_stock.band_h", + "name": "hmrc.tfc.government_top_up", "status": "active", - "matched_fact_count_overall": 436, - "matched_fact_count_at_or_before_period": 339, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 12357.0, + "resolved_value": 599800000.0, "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_38b37ca6c167d44f1ee2b517" + "resolved_fact_key": "ledger_aggregate_fact_v2_988715985f9e98bbb332e83d" } ] }, - "welshgov.council_tax_stock.band_i": { + "hmrc.tfc.children_with_used_accounts": { "status": "active", "candidates": [ { - "name": "welshgov.council_tax_stock.band_i", + "name": "hmrc.tfc.children_with_used_accounts", "status": "active", - "matched_fact_count_overall": 436, - "matched_fact_count_at_or_before_period": 339, + "matched_fact_count_overall": 2, + "matched_fact_count_at_or_before_period": 2, "resolved_period": 2025, - "resolved_value": 5305.0, + "resolved_value": 1151515.0, "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_f94d0825d8f1f21a02667aeb" + "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" } ] }, - "welshgov.council_tax_stock.total": { + "dfe.funded_childcare.early_learning_2_year_olds": { "status": "active", "candidates": [ { - "name": "welshgov.council_tax_stock.total", + "name": "dfe.funded_childcare.early_learning_2_year_olds", "status": "active", - "matched_fact_count_overall": 436, - "matched_fact_count_at_or_before_period": 339, + "matched_fact_count_overall": 12, + "matched_fact_count_at_or_before_period": 11, "resolved_period": 2025, - "resolved_value": 1377633.03, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_69899dbf797a73ce0c05f13d" + "resolved_value": 95031.0, + "resolved_fact_period": "2025-01", + "resolved_fact_key": "ledger_aggregate_fact_v2_a2b30af28303935159ba0edc" } ] }, - "scotgov.council_tax_stock.band_a": { + "dfe.funded_childcare.universal_only_children": { "status": "active", "candidates": [ { - "name": "scotgov.council_tax_stock.band_a", + "name": "dfe.funded_childcare.universal_only_children", "status": "active", - "matched_fact_count_overall": 3, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 770, + "matched_fact_count_at_or_before_period": 686, "resolved_period": 2025, - "resolved_value": 498707.0, - "resolved_fact_period": "2025-09", - "resolved_fact_key": "ledger_aggregate_fact_v2_d16c53fe6a1c8f4f5886b7e5" + "resolved_value": 396965.0, + "resolved_fact_period": "2025-01", + "resolved_fact_key": "ledger_aggregate_fact_v2_471573def13ebdc67ff1f40a" } ] }, - "scotgov.council_tax_stock.band_b": { + "dft.bus_fare_receipts.england": { "status": "active", "candidates": [ { - "name": "scotgov.council_tax_stock.band_b", + "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": 583705.0, - "resolved_fact_period": "2025-09", - "resolved_fact_key": "ledger_aggregate_fact_v2_2f95ec98ae61f9898bd47ed9" + "resolved_value": 3612036036.2194014, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_2ece7c3d283b6de43b30389f", + "uprating": { + "index": "dft.local_bus_fares_index", + "factor": "1.05695792880259", + "value_before_uprating": "3417388656.43538" + } } ] }, - "scotgov.council_tax_stock.band_c": { + "dft.bus_net_support.england": { "status": "active", "candidates": [ { - "name": "scotgov.council_tax_stock.band_c", + "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": 426388.0, - "resolved_fact_period": "2025-09", - "resolved_fact_key": "ledger_aggregate_fact_v2_c9781708df55dc5d197e6623" + "resolved_value": 3024904320.8399997, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_a12dfcdc0662c8a5e48bf003" } ] }, - "scotgov.council_tax_stock.band_d": { + "dft.bus_fare_receipts.london": { "status": "active", "candidates": [ { - "name": "scotgov.council_tax_stock.band_d", + "name": "dft.bus_fare_receipts.london", "status": "active", "matched_fact_count_overall": 3, "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 369621.0, - "resolved_fact_period": "2025-09", - "resolved_fact_key": "ledger_aggregate_fact_v2_ae1fe03809a505b820479598" + "resolved_value": 1347434943.01459, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_33611c64d2048fe660501802", + "uprating": { + "index": "dft.local_bus_fares_index", + "factor": "1", + "value_before_uprating": "1347434943.01459" + } } ] }, - "scotgov.council_tax_stock.band_e": { + "dft.bus_net_support.london": { "status": "active", "candidates": [ { - "name": "scotgov.council_tax_stock.band_e", + "name": "dft.bus_net_support.london", "status": "active", "matched_fact_count_overall": 3, "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 366881.0, - "resolved_fact_period": "2025-09", - "resolved_fact_key": "ledger_aggregate_fact_v2_e83153e0de40fb74471c805f" + "resolved_value": 1130214000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_d8e40cee2fc723b719ff4680" } ] }, - "scotgov.council_tax_stock.band_f": { - "status": "active", + "dft.bus_fare_receipts.england_outside_london": { + "status": "signed_excluded", "candidates": [ { - "name": "scotgov.council_tax_stock.band_f", - "status": "active", - "matched_fact_count_overall": 3, - "matched_fact_count_at_or_before_period": 3, - "resolved_period": 2025, - "resolved_value": 221282.0, - "resolved_fact_period": "2025-09", - "resolved_fact_key": "ledger_aggregate_fact_v2_b24b6409c1473600c03999ec" + "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": "England outside London is England minus London: the England row and the London row (pinned at region E12000007) are both bound, so this publisher partition member is derived rather than pinned; Chronicle stamps it at statistical_scope and test_uk_bus_targets asserts the partition reconciles to England within GBP 1,000." } ] }, - "scotgov.council_tax_stock.band_g": { - "status": "active", + "dft.bus_net_support.england_outside_london": { + "status": "signed_excluded", "candidates": [ { - "name": "scotgov.council_tax_stock.band_g", - "status": "active", - "matched_fact_count_overall": 3, - "matched_fact_count_at_or_before_period": 3, - "resolved_period": 2025, - "resolved_value": 142084.0, - "resolved_fact_period": "2025-09", - "resolved_fact_key": "ledger_aggregate_fact_v2_c86494a855b00998122989d6" + "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": "England outside London is England minus London: the England row and the London row (pinned at region E12000007) are both bound, so this publisher partition member is derived rather than pinned; Chronicle stamps it at statistical_scope and test_uk_bus_targets asserts the partition reconciles to England within GBP 1,000." } ] }, - "scotgov.council_tax_stock.band_h": { - "status": "active", + "dft.bus_fare_receipts.uk": { + "status": "signed_excluded", "candidates": [ { - "name": "scotgov.council_tax_stock.band_h", - "status": "active", - "matched_fact_count_overall": 3, - "matched_fact_count_at_or_before_period": 3, - "resolved_period": 2025, - "resolved_value": 14481.0, - "resolved_fact_period": "2025-09", - "resolved_fact_key": "ledger_aggregate_fact_v2_60d9ae638eff29fc1c88907e" + "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." } ] }, - "scotgov.council_tax_stock.total": { - "status": "active", + "dft.bus_net_support.uk": { + "status": "signed_excluded", "candidates": [ { - "name": "scotgov.council_tax_stock.total", - "status": "active", - "matched_fact_count_overall": 3, - "matched_fact_count_at_or_before_period": 3, - "resolved_period": 2025, - "resolved_value": 2623149.0, - "resolved_fact_period": "2025-09", - "resolved_fact_key": "ledger_aggregate_fact_v2_ca77a0f0a777ccba05e4bef9" + "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 no England-to-UK uplift is declared. Net support binds instead as four country legs whose scopes differ: DfT BUS05bi net support (England, operators' view), Scottish Transport Statistics all government support (Scotland), StatsWales revenue outturn gross expenditure on concessionary fares and support to operators through local authorities only (Wales: no operator-side series and no Welsh Government grants outside the outturn), and the NITHC accounts' Public Service Obligation plus concessionary compensation as one bus-plus-rail cell excluding GBP 53.2m of other revenue funding (Northern Ireland). The legs are bound on their own terms; they are not a UK total under another name." } ] }, - "scotgov.scottish_child_payment_spending": { + "obr.fuel_duties_cars": { "status": "active", "candidates": [ { - "name": "scotgov.scottish_child_payment_spending", + "name": "obr.fuel_duties_cars", "status": "active", - "matched_fact_count_overall": 3, - "matched_fact_count_at_or_before_period": 2, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 471000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_20b43b0f8f61e448f28895cf" + "resolved_value": 14400000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_de6554fe8ab7b481035a432a" } ] }, - "ons.savings_interest_income": { + "orr.rail_government_support": { "status": "active", "candidates": [ { - "name": "ons.savings_interest_income", + "name": "orr.rail_government_support", "status": "active", - "matched_fact_count_overall": 8, - "matched_fact_count_at_or_before_period": 8, + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 95503000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_8de1806d1330bcb80a1f4988" + "resolved_value": 21621100549.34064, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_b16b9b3f2329455f907f9ccc" } ] }, - "ons.public_sector_employment": { - "status": "active", + "ons.household_energy_expenditure": { + "status": "signed_excluded", "candidates": [ { - "name": "ons.public_sector_employment", - "status": "active", - "matched_fact_count_overall": 2, - "matched_fact_count_at_or_before_period": 2, - "resolved_period": 2025, - "resolved_value": 6146000.0, - "resolved_fact_period": "2024-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_ff79b4e2301f564ec4203235" + "name": "ons.household_energy_expenditure", + "status": "signed_excluded", + "matched_fact_count_overall": 6, + "matched_fact_count_at_or_before_period": 6, + "signed_rationale": "ONS Consumer Trends COICOP 04.5 (electricity, gas and other fuels) carries liquid and solid fuels the frame does not model; chronicle #271 (chronicle#270) published the 04.5.1 electricity and 04.5.2 gas sub-classes, which ons.household_electricity_expenditure and ons.household_gas_expenditure bind per fuel on the frame's own columns. The total row is retained in the contract for registry parity and signed out here (microcosm#890 F1)." } ] }, - "ons.land.land_value": { + "ons.household_electricity_expenditure": { "status": "active", "candidates": [ { - "name": "ons.land.land_value", + "name": "ons.household_electricity_expenditure", "status": "active", - "matched_fact_count_overall": 30, - "matched_fact_count_at_or_before_period": 30, + "matched_fact_count_overall": 6, + "matched_fact_count_at_or_before_period": 6, "resolved_period": 2025, - "resolved_value": 7117771000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_4daf8d1b8830f72bba924d56" + "resolved_value": 26522000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_69cd660b943ae8f21761f76a" } ] }, - "ons.land.household_land_value": { + "ons.household_gas_expenditure": { "status": "active", "candidates": [ { - "name": "ons.land.household_land_value", + "name": "ons.household_gas_expenditure", "status": "active", - "matched_fact_count_overall": 30, - "matched_fact_count_at_or_before_period": 30, + "matched_fact_count_overall": 6, + "matched_fact_count_at_or_before_period": 6, "resolved_period": 2025, - "resolved_value": 4559831000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_0e5f9867ab377dffd8a8941f" + "resolved_value": 15339000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_b56be49c552300f6c02fc559" } ] }, - "ons.land.corporate_land_value": { + "scotgov.bus.passenger_revenue": { "status": "active", "candidates": [ { - "name": "ons.land.corporate_land_value", + "name": "scotgov.bus.passenger_revenue", "status": "active", - "matched_fact_count_overall": 30, - "matched_fact_count_at_or_before_period": 30, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 2103053000000.0, + "resolved_value": 391000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ab561a17be0af52de30cca88" + "resolved_fact_key": "ledger_aggregate_fact_v2_c4269bb83534f1e46f5801c1" } ] }, - "slc.repayments.devolved_total": { - "status": "no_fact_at_or_before_period", + "scotgov.bus.government_support": { + "status": "active", "candidates": [ { - "name": "slc.repayments.devolved_total", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 0, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period" + "name": "scotgov.bus.government_support", + "status": "active", + "matched_fact_count_overall": 2, + "matched_fact_count_at_or_before_period": 2, + "resolved_period": 2025, + "resolved_value": 499000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_ceb60fd41d0f5587be94c234" } ] }, - "slc.repayments.england_total_higher_education": { + "welshgov.bus.public_support": { "status": "active", "candidates": [ { - "name": "slc.repayments.england_total_higher_education", + "name": "welshgov.bus.public_support", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 6, + "matched_fact_count_at_or_before_period": 6, "resolved_period": 2025, - "resolved_value": 5018231834.949999, + "resolved_value": 131489970.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_b947d1f3c3659d252194c102" + "resolved_fact_key": "ledger_aggregate_fact_v2_a10fcfec7cb458fa0c8c7f10" } ] }, - "slc.repayments.england_plan_1": { + "dfi_ni.bus.passenger_receipts": { "status": "active", "candidates": [ { - "name": "slc.repayments.england_plan_1", + "name": "dfi_ni.bus.passenger_receipts", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 12, + "matched_fact_count_at_or_before_period": 12, "resolved_period": 2025, - "resolved_value": 1852699178.55, + "resolved_value": 150082817.48999995, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_1d9680e6eaf243227fed5ef2" + "resolved_fact_key": "ledger_aggregate_fact_v2_96f72989614e0c5faaeeabbb" } ] }, - "slc.repayments.england_plan_2": { + "nithc.public_transport_support": { "status": "active", "candidates": [ { - "name": "slc.repayments.england_plan_2", + "name": "nithc.public_transport_support", "status": "active", - "matched_fact_count_overall": 2, - "matched_fact_count_at_or_before_period": 2, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 4, "resolved_period": 2025, - "resolved_value": 2778253361.64, + "resolved_value": 111700000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_882329821c90dc683aa778d8" + "resolved_fact_key": "ledger_aggregate_fact_v2_be8eb7011b6f65fa65d52fcb" } ] }, - "slc.repayments.england_postgraduate": { + "dwp.uc.households_lcwra_element": { "status": "active", "candidates": [ { - "name": "slc.repayments.england_postgraduate", + "name": "dwp.uc.households_lcwra_element", "status": "active", - "matched_fact_count_overall": 2, - "matched_fact_count_at_or_before_period": 2, + "matched_fact_count_overall": 12, + "matched_fact_count_at_or_before_period": 12, + "matched_fact_count_in_source_window": 12, "resolved_period": 2025, - "resolved_value": 346409713.95000005, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ac1b07c69f1e1baa2a0fb787" + "resolved_value": 2272425.1666666665, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_f59149c4c514e1acffb728a8" } ] }, - "slc.repayments.england_plan_5": { + "dwp.uc.households_carer_element": { "status": "active", "candidates": [ { - "name": "slc.repayments.england_plan_5", + "name": "dwp.uc.households_carer_element", "status": "active", - "matched_fact_count_overall": 2, - "matched_fact_count_at_or_before_period": 2, + "matched_fact_count_overall": 12, + "matched_fact_count_at_or_before_period": 12, + "matched_fact_count_in_source_window": 12, "resolved_period": 2025, - "resolved_value": 40869580.81, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_496af6b8fe31c71c43f1d292" + "resolved_value": 1078514.5, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_d56ddfa58d7ebb3ff0178b0a" } ] }, - "slc.borrowers.plan_2_above_threshold": { + "dwp.uc.households_housing_element": { "status": "active", "candidates": [ { - "name": "slc.borrowers.plan_2_above_threshold", + "name": "dwp.uc.households_housing_element", "status": "active", - "matched_fact_count_overall": 6, - "matched_fact_count_at_or_before_period": 2, + "matched_fact_count_overall": 12, + "matched_fact_count_at_or_before_period": 12, + "matched_fact_count_in_source_window": 12, "resolved_period": 2025, - "resolved_value": 4460000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_02288c19caeae900fdaf1e0d" + "resolved_value": 4037650.3333333335, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_04b7ec6d195e6682f0421672" } ] }, - "slc.borrowers.plan_2_liable": { + "dwp.uc.households_housing_element_social_rented": { "status": "active", "candidates": [ { - "name": "slc.borrowers.plan_2_liable", + "name": "dwp.uc.households_housing_element_social_rented", "status": "active", - "matched_fact_count_overall": 6, - "matched_fact_count_at_or_before_period": 2, + "matched_fact_count_overall": 12, + "matched_fact_count_at_or_before_period": 12, + "matched_fact_count_in_source_window": 12, "resolved_period": 2025, - "resolved_value": 9710000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_37387933e73bcc8c1e04cf78" + "resolved_value": 2354587.5833333335, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_109598f6aaa42fe1387d30d1" } ] }, - "slc.borrowers.plan_5_above_threshold": { + "dwp.uc.households_housing_element_private_rented": { "status": "active", "candidates": [ { - "name": "slc.borrowers.plan_5_above_threshold", + "name": "dwp.uc.households_housing_element_private_rented", "status": "active", - "matched_fact_count_overall": 6, - "matched_fact_count_at_or_before_period": 2, + "matched_fact_count_overall": 12, + "matched_fact_count_at_or_before_period": 12, + "matched_fact_count_in_source_window": 12, "resolved_period": 2025, - "resolved_value": 35000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_dd16b085f81ef7708a00511e" + "resolved_value": 1570545.4166666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_7a31b88dfcd4b3d0c758a1c3" } ] }, - "slc.borrowers.plan_5_liable": { + "dwp.uc.households_childcare_element": { "status": "active", "candidates": [ { - "name": "slc.borrowers.plan_5_liable", + "name": "dwp.uc.households_childcare_element", "status": "active", - "matched_fact_count_overall": 6, - "matched_fact_count_at_or_before_period": 2, + "matched_fact_count_overall": 12, + "matched_fact_count_at_or_before_period": 12, + "matched_fact_count_in_source_window": 12, "resolved_period": 2025, - "resolved_value": 230000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_73ff136d820950ea404ddb6b" + "resolved_value": 178666.66666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_0c1aa0cc56d86c50d6b2560a" } ] }, - "slc.support.maintenance_loan_recipients": { + "dwp.uc.households_with_deduction": { "status": "active", "candidates": [ { - "name": "slc.support.maintenance_loan_recipients", + "name": "dwp.uc.households_with_deduction", "status": "active", - "matched_fact_count_overall": 12, - "matched_fact_count_at_or_before_period": 12, + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_in_source_window": 10, "resolved_period": 2025, - "resolved_value": 1159761.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f03bd7a10d0eee9917a3a199" + "resolved_value": 3130000.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_f7bfdb41a462c417535602d2" } ] }, - "slc.support.maintenance_loan_spend": { + "obr.universal_credit": { "status": "active", "candidates": [ { - "name": "slc.support.maintenance_loan_spend", + "name": "obr.universal_credit", "status": "active", - "matched_fact_count_overall": 12, - "matched_fact_count_at_or_before_period": 12, + "matched_fact_count_overall": 14, + "matched_fact_count_at_or_before_period": 4, "resolved_period": 2025, - "resolved_value": 8591659718.080004, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_2900e25d7ee90f79fb3b87b9" + "resolved_value": 76054754387.77309, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_4c927d7b33d1eee2455bdbd0" } ] }, - "slc.support.parents_learning_allowance_recipients": { + "dwp.hb.households": { "status": "active", "candidates": [ { - "name": "slc.support.parents_learning_allowance_recipients", + "name": "dwp.hb.households", "status": "active", "matched_fact_count_overall": 12, "matched_fact_count_at_or_before_period": 12, + "matched_fact_count_in_source_window": 12, "resolved_period": 2025, - "resolved_value": 99645.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_d5df1c69846ab2fd3d0e50e1" + "resolved_value": 1685702.9166666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_f2ecf4d38ef4dfc796336538" } ] }, - "slc.support.parents_learning_allowance_spend": { + "dwp.hb.households_social_rented": { "status": "active", "candidates": [ { - "name": "slc.support.parents_learning_allowance_spend", + "name": "dwp.hb.households_social_rented", "status": "active", "matched_fact_count_overall": 12, "matched_fact_count_at_or_before_period": 12, + "matched_fact_count_in_source_window": 12, "resolved_period": 2025, - "resolved_value": 181421659.32, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_72028ce00b9569deec79d6e6" + "resolved_value": 1381089.75, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_40b45c74a40b8d085a8c28e2" } ] }, - "slc.support.adult_dependants_grant_recipients": { + "dwp.hb.households_private_rented": { "status": "active", "candidates": [ { - "name": "slc.support.adult_dependants_grant_recipients", + "name": "dwp.hb.households_private_rented", "status": "active", "matched_fact_count_overall": 12, "matched_fact_count_at_or_before_period": 12, + "matched_fact_count_in_source_window": 12, "resolved_period": 2025, - "resolved_value": 18611.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_adc83b5d137ecb48fed77064" + "resolved_value": 304422.6666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_02281858b7b0d71477e429f3" } ] }, - "slc.support.adult_dependants_grant_spend": { + "dwp.benefit_cap.capped_households_up_to_100": { "status": "active", "candidates": [ { - "name": "slc.support.adult_dependants_grant_spend", + "name": "dwp.benefit_cap.capped_households_up_to_100", "status": "active", - "matched_fact_count_overall": 12, - "matched_fact_count_at_or_before_period": 12, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 55364916.81, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_5d42660596c9088248e41e90" + "resolved_value": 38402.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_220b82ab05bec494e6dc9fe9" } ] }, - "dwp.uc.households": { + "dwp.benefit_cap.capped_households_100_01_to_200": { "status": "active", "candidates": [ { - "name": "dwp.uc.households", + "name": "dwp.benefit_cap.capped_households_100_01_to_200", "status": "active", - "matched_fact_count_overall": 120, - "matched_fact_count_at_or_before_period": 120, - "matched_fact_count_in_source_window": 120, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 6197311.0, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_71c060f3f2a732e2f836a5d8" + "resolved_value": 24274.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_4a9e2cc181aee62e1eccd188" } ] }, - "hmrc.tfc.government_top_up": { + "dwp.benefit_cap.capped_households_200_01_to_300": { "status": "active", "candidates": [ { - "name": "hmrc.tfc.government_top_up", + "name": "dwp.benefit_cap.capped_households_200_01_to_300", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 599800000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_988715985f9e98bbb332e83d" + "resolved_value": 16240.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_5ae8289242eabcffab23f32f" } ] }, - "hmrc.tfc.children_with_used_accounts": { + "dwp.benefit_cap.capped_households_300_01_to_400": { "status": "active", "candidates": [ { - "name": "hmrc.tfc.children_with_used_accounts", + "name": "dwp.benefit_cap.capped_households_300_01_to_400", "status": "active", - "matched_fact_count_overall": 2, - "matched_fact_count_at_or_before_period": 2, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 1151515.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_7aa1c663447037b35ea1c999" + "resolved_value": 10562.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_a503d4e938aaf386720b96c4" } ] }, - "dfe.funded_childcare.working_parent_children_2_to_4": { + "dwp.benefit_cap.capped_households_400_01_to_500": { "status": "active", "candidates": [ { - "name": "dfe.funded_childcare.working_parent_children_2_to_4", + "name": "dwp.benefit_cap.capped_households_400_01_to_500", "status": "active", - "matched_fact_count_overall": 11, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 621482.0, - "resolved_fact_period": "2025-01", - "resolved_fact_key": "ledger_aggregate_fact_v2_a57a0c03ac43b62dde04fabd" + "resolved_value": 7813.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_df764409769b2078c69ff113" } ] }, - "dfe.funded_childcare.early_learning_2_year_olds": { + "dwp.benefit_cap.capped_households_500_01_to_600": { "status": "active", "candidates": [ { - "name": "dfe.funded_childcare.early_learning_2_year_olds", + "name": "dwp.benefit_cap.capped_households_500_01_to_600", "status": "active", - "matched_fact_count_overall": 12, - "matched_fact_count_at_or_before_period": 11, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 95031.0, - "resolved_fact_period": "2025-01", - "resolved_fact_key": "ledger_aggregate_fact_v2_a2b30af28303935159ba0edc" + "resolved_value": 4431.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_3d0e936b240ba62209777ee3" } ] }, - "dfe.funded_childcare.universal_only_children": { + "dwp.benefit_cap.capped_households_600_01_to_700": { "status": "active", "candidates": [ { - "name": "dfe.funded_childcare.universal_only_children", + "name": "dwp.benefit_cap.capped_households_600_01_to_700", "status": "active", - "matched_fact_count_overall": 770, - "matched_fact_count_at_or_before_period": 686, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 396965.0, - "resolved_fact_period": "2025-01", - "resolved_fact_key": "ledger_aggregate_fact_v2_471573def13ebdc67ff1f40a" + "resolved_value": 3116.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_1d68398dd88958a8700dcfac" } ] }, - "dft.bus_fare_receipts.england": { + "dwp.benefit_cap.capped_households_700_01_to_800": { "status": "active", "candidates": [ { - "name": "dft.bus_fare_receipts.england", + "name": "dwp.benefit_cap.capped_households_700_01_to_800", "status": "active", - "matched_fact_count_overall": 3, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 3612036036.2194014, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_2ece7c3d283b6de43b30389f", - "uprating": { - "index": "dft.local_bus_fares_index", - "factor": "1.05695792880259", - "value_before_uprating": "3417388656.43538" - } + "resolved_value": 1902.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_999288b0fa67d7f657810a11" } ] }, - "dft.bus_net_support.england": { + "dwp.benefit_cap.capped_households_800_01_to_900": { "status": "active", "candidates": [ { - "name": "dft.bus_net_support.england", + "name": "dwp.benefit_cap.capped_households_800_01_to_900", "status": "active", - "matched_fact_count_overall": 3, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 3024904320.8399997, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_a12dfcdc0662c8a5e48bf003" + "resolved_value": 1328.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_b7a2d0cec131abfd0cb81ba0" } ] }, - "dft.bus_fare_receipts.london": { + "dwp.benefit_cap.capped_households_900_01_to_1000": { "status": "active", "candidates": [ { - "name": "dft.bus_fare_receipts.london", + "name": "dwp.benefit_cap.capped_households_900_01_to_1000", "status": "active", - "matched_fact_count_overall": 3, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 1347434943.01459, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_33611c64d2048fe660501802", - "uprating": { - "index": "dft.local_bus_fares_index", - "factor": "1", - "value_before_uprating": "1347434943.01459" - } + "resolved_value": 824.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_80c8fa82f3e07357e677ae93" } ] }, - "dft.bus_net_support.london": { + "dwp.benefit_cap.capped_households_1000_01_to_1100": { "status": "active", "candidates": [ { - "name": "dft.bus_net_support.london", + "name": "dwp.benefit_cap.capped_households_1000_01_to_1100", "status": "active", - "matched_fact_count_overall": 3, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 1130214000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_d8e40cee2fc723b719ff4680" + "resolved_value": 497.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_cf55cee33404d2283800b2b5" } ] }, - "dft.bus_fare_receipts.england_outside_london": { - "status": "signed_excluded", + "dwp.benefit_cap.capped_households_1100_01_to_1200": { + "status": "active", "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": "England outside London is England minus London: the England row and the London row (pinned at region E12000007) are both bound, so this publisher partition member is derived rather than pinned; Chronicle stamps it at statistical_scope and test_uk_bus_targets asserts the partition reconciles to England within GBP 1,000." + "name": "dwp.benefit_cap.capped_households_1100_01_to_1200", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 380.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_6f836a33391f4352151bd27f" } ] }, - "dft.bus_net_support.england_outside_london": { - "status": "signed_excluded", + "dwp.benefit_cap.capped_households_1200_01_to_1300": { + "status": "active", "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": "England outside London is England minus London: the England row and the London row (pinned at region E12000007) are both bound, so this publisher partition member is derived rather than pinned; Chronicle stamps it at statistical_scope and test_uk_bus_targets asserts the partition reconciles to England within GBP 1,000." + "name": "dwp.benefit_cap.capped_households_1200_01_to_1300", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 239.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_ad08714cf39be9ccf0450cf2" } ] }, - "dft.bus_fare_receipts.uk": { - "status": "signed_excluded", + "dwp.benefit_cap.capped_households_1300_01_and_above": { + "status": "active", "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." + "name": "dwp.benefit_cap.capped_households_1300_01_and_above", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 627.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_a3fee6cdec1b46a15a3b1434" } ] }, - "dft.bus_net_support.uk": { - "status": "signed_excluded", + "hmrc.cgt.taxpayers_by_age_band": { + "status": "active", "candidates": [ { - "name": "dft.bus_net_support.uk", + "name": "hmrc.cgt.taxpayers_by_age_band.age_0_to_15", "status": "signed_excluded", - "matched_fact_count_overall": 0, - "matched_fact_count_at_or_before_period": 0, - "signed_rationale": "BUS05i publishes no UK total and no England-to-UK uplift is declared. Net support binds instead as four country legs whose scopes differ: DfT BUS05bi net support (England, operators' view), Scottish Transport Statistics all government support (Scotland), StatsWales revenue outturn gross expenditure on concessionary fares and support to operators through local authorities only (Wales: no operator-side series and no Welsh Government grants outside the outturn), and the NITHC accounts' Public Service Obligation plus concessionary compensation as one bus-plus-rail cell excluding GBP 53.2m of other revenue funding (Northern Ireland). The legs are bound on their own terms; they are not a UK total under another name." + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "signed_row": { + "dimension": "age_band", + "value": "age_0_to_15" + }, + "signed_rationale": "HMRC Table 6's 15-and-below row (1,000 taxpayers, GBP 54m of gains, GBP 9m of tax in 2024-25) has no support: the CGT incidence clone and the size-band donors place gains on the oldest adult of a household, so the frame carries no gainer under 16 and the row would always measure zero. Signed out of the age-band fan-out; the eight adult bands stay bound." + }, + { + "name": "hmrc.cgt.taxpayers_by_age_band.age_16_to_24", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 4000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_8c3d294de4cbdbe292815164" + }, + { + "name": "hmrc.cgt.taxpayers_by_age_band.age_25_to_34", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 27000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_cc8ef619f52f7f44a885ce52" + }, + { + "name": "hmrc.cgt.taxpayers_by_age_band.age_35_to_44", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 65000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_8554e7f842699a5f49816a0d" + }, + { + "name": "hmrc.cgt.taxpayers_by_age_band.age_45_to_54", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 98000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_794376b60fba0684412fdff8" + }, + { + "name": "hmrc.cgt.taxpayers_by_age_band.age_55_to_64", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 144000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_0d6b6c36290ab598f74f6669" + }, + { + "name": "hmrc.cgt.taxpayers_by_age_band.age_65_to_74", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 125000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_a725972fe4ee87a3bddee1cf" + }, + { + "name": "hmrc.cgt.taxpayers_by_age_band.age_75_to_84", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 68000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_1e4899d950c2b2be8ae21459" + }, + { + "name": "hmrc.cgt.taxpayers_by_age_band.age_85_plus", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 19000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_7c419e2a82d25fae0127fd1d" } ] }, - "obr.fuel_duties_cars": { + "hmrc.cgt.gains_by_age_band": { "status": "active", "candidates": [ { - "name": "obr.fuel_duties_cars", + "name": "hmrc.cgt.gains_by_age_band.age_0_to_15", + "status": "signed_excluded", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "signed_row": { + "dimension": "age_band", + "value": "age_0_to_15" + }, + "signed_rationale": "HMRC Table 6's 15-and-below row (1,000 taxpayers, GBP 54m of gains, GBP 9m of tax in 2024-25) has no support: the CGT incidence clone and the size-band donors place gains on the oldest adult of a household, so the frame carries no gainer under 16 and the row would always measure zero. Signed out of the age-band fan-out; the eight adult bands stay bound." + }, + { + "name": "hmrc.cgt.gains_by_age_band.age_16_to_24", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 319000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_af584dedce4184d834502e56" + }, + { + "name": "hmrc.cgt.gains_by_age_band.age_25_to_34", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 14400000000.0, + "resolved_value": 2499000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_de6554fe8ab7b481035a432a" - } - ] - }, - "orr.rail_government_support": { - "status": "active", - "candidates": [ + "resolved_fact_key": "ledger_aggregate_fact_v2_40c8b42d3904c8eb44297559" + }, { - "name": "orr.rail_government_support", + "name": "hmrc.cgt.gains_by_age_band.age_35_to_44", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 21621100549.34064, + "resolved_value": 11775000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_b16b9b3f2329455f907f9ccc" - } - ] - }, - "ons.household_energy_expenditure": { - "status": "signed_excluded", - "candidates": [ + "resolved_fact_key": "ledger_aggregate_fact_v2_375b4cb880dcb4caacc5f003" + }, { - "name": "ons.household_energy_expenditure", - "status": "signed_excluded", - "matched_fact_count_overall": 6, - "matched_fact_count_at_or_before_period": 6, - "signed_rationale": "ONS Consumer Trends COICOP 04.5 (electricity, gas and other fuels) carries liquid and solid fuels the frame does not model; chronicle #271 (chronicle#270) published the 04.5.1 electricity and 04.5.2 gas sub-classes, which ons.household_electricity_expenditure and ons.household_gas_expenditure bind per fuel on the frame's own columns. The total row is retained in the contract for registry parity and signed out here (microcosm#890 F1)." - } - ] - }, - "ons.household_electricity_expenditure": { - "status": "active", - "candidates": [ + "name": "hmrc.cgt.gains_by_age_band.age_45_to_54", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 28422000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_567f8babf11f6356f72398de" + }, { - "name": "ons.household_electricity_expenditure", + "name": "hmrc.cgt.gains_by_age_band.age_55_to_64", "status": "active", - "matched_fact_count_overall": 6, - "matched_fact_count_at_or_before_period": 6, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 26522000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_69cd660b943ae8f21761f76a" - } - ] - }, - "ons.household_gas_expenditure": { - "status": "active", - "candidates": [ + "resolved_value": 38118000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_38da5aa08efc20c32951a860" + }, { - "name": "ons.household_gas_expenditure", + "name": "hmrc.cgt.gains_by_age_band.age_65_to_74", "status": "active", - "matched_fact_count_overall": 6, - "matched_fact_count_at_or_before_period": 6, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 15339000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_b56be49c552300f6c02fc559" - } - ] - }, - "scotgov.bus.passenger_revenue": { - "status": "active", - "candidates": [ + "resolved_value": 24260000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_69e2dec98e4cdbe34c3a0572" + }, { - "name": "scotgov.bus.passenger_revenue", + "name": "hmrc.cgt.gains_by_age_band.age_75_to_84", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 391000000.0, + "resolved_value": 11736000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_c4269bb83534f1e46f5801c1" - } - ] - }, - "scotgov.bus.government_support": { - "status": "active", - "candidates": [ + "resolved_fact_key": "ledger_aggregate_fact_v2_9d0fb4e1a0c63f6d06b73e61" + }, { - "name": "scotgov.bus.government_support", + "name": "hmrc.cgt.gains_by_age_band.age_85_plus", "status": "active", - "matched_fact_count_overall": 2, - "matched_fact_count_at_or_before_period": 2, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 499000000.0, + "resolved_value": 2076000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ceb60fd41d0f5587be94c234" + "resolved_fact_key": "ledger_aggregate_fact_v2_ca2b09a93c8a40ea4766b341" } ] }, - "welshgov.bus.public_support": { + "hmrc.cgt.tax_by_age_band": { "status": "active", "candidates": [ { - "name": "welshgov.bus.public_support", + "name": "hmrc.cgt.tax_by_age_band.age_0_to_15", + "status": "signed_excluded", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "signed_row": { + "dimension": "age_band", + "value": "age_0_to_15" + }, + "signed_rationale": "HMRC Table 6's 15-and-below row (1,000 taxpayers, GBP 54m of gains, GBP 9m of tax in 2024-25) has no support: the CGT incidence clone and the size-band donors place gains on the oldest adult of a household, so the frame carries no gainer under 16 and the row would always measure zero. Signed out of the age-band fan-out; the eight adult bands stay bound." + }, + { + "name": "hmrc.cgt.tax_by_age_band.age_16_to_24", "status": "active", - "matched_fact_count_overall": 6, - "matched_fact_count_at_or_before_period": 6, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 131489970.0, + "resolved_value": 59000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_a10fcfec7cb458fa0c8c7f10" - } - ] - }, - "dfi_ni.bus.passenger_receipts": { - "status": "active", - "candidates": [ + "resolved_fact_key": "ledger_aggregate_fact_v2_5e45e49cdf5771a4f3dbc0c6" + }, { - "name": "dfi_ni.bus.passenger_receipts", + "name": "hmrc.cgt.tax_by_age_band.age_25_to_34", "status": "active", - "matched_fact_count_overall": 12, - "matched_fact_count_at_or_before_period": 12, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 150082817.48999995, + "resolved_value": 456000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_96f72989614e0c5faaeeabbb" - } - ] - }, - "nithc.public_transport_support": { - "status": "active", - "candidates": [ + "resolved_fact_key": "ledger_aggregate_fact_v2_4f0a20f8646020c518ec1a6c" + }, { - "name": "nithc.public_transport_support", + "name": "hmrc.cgt.tax_by_age_band.age_35_to_44", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 4, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 111700000.0, + "resolved_value": 2246000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_be8eb7011b6f65fa65d52fcb" - } - ] - }, - "dwp.uc.households_lcwra_element": { - "status": "active", - "candidates": [ + "resolved_fact_key": "ledger_aggregate_fact_v2_041101c10e8ee3a674596ab2" + }, { - "name": "dwp.uc.households_lcwra_element", + "name": "hmrc.cgt.tax_by_age_band.age_45_to_54", "status": "active", - "matched_fact_count_overall": 12, - "matched_fact_count_at_or_before_period": 12, - "matched_fact_count_in_source_window": 12, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 2272425.1666666665, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_f59149c4c514e1acffb728a8" - } - ] - }, - "dwp.uc.households_carer_element": { - "status": "active", - "candidates": [ + "resolved_value": 5522000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_c678a6f27d3dc149131419ee" + }, { - "name": "dwp.uc.households_carer_element", + "name": "hmrc.cgt.tax_by_age_band.age_55_to_64", "status": "active", - "matched_fact_count_overall": 12, - "matched_fact_count_at_or_before_period": 12, - "matched_fact_count_in_source_window": 12, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 1078514.5, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_d56ddfa58d7ebb3ff0178b0a" - } - ] - }, - "dwp.uc.households_housing_element": { - "status": "active", - "candidates": [ + "resolved_value": 7152000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_76990ed6855fce16817d5289" + }, { - "name": "dwp.uc.households_housing_element", + "name": "hmrc.cgt.tax_by_age_band.age_65_to_74", "status": "active", - "matched_fact_count_overall": 12, - "matched_fact_count_at_or_before_period": 12, - "matched_fact_count_in_source_window": 12, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 4037650.3333333335, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_04b7ec6d195e6682f0421672" - } - ] - }, - "dwp.uc.households_housing_element_social_rented": { - "status": "active", - "candidates": [ + "resolved_value": 4409000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_3d4b0b5873bbe5bce9c14381" + }, { - "name": "dwp.uc.households_housing_element_social_rented", + "name": "hmrc.cgt.tax_by_age_band.age_75_to_84", "status": "active", - "matched_fact_count_overall": 12, - "matched_fact_count_at_or_before_period": 12, - "matched_fact_count_in_source_window": 12, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 2260000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_9c1150dfbd7f4f3b6235050b" + }, + { + "name": "hmrc.cgt.tax_by_age_band.age_85_plus", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 2354587.5833333335, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_109598f6aaa42fe1387d30d1" + "resolved_value": 390000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_e60df0c2438533341e2f4b08" } ] }, - "dwp.uc.households_housing_element_private_rented": { + "hmrc.cgt.taxpayers_by_region": { "status": "active", "candidates": [ { - "name": "dwp.uc.households_housing_element_private_rented", + "name": "hmrc.cgt.taxpayers_by_region@E12000001", "status": "active", - "matched_fact_count_overall": 12, - "matched_fact_count_at_or_before_period": 12, - "matched_fact_count_in_source_window": 12, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 1570545.4166666667, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_7a31b88dfcd4b3d0c758a1c3" - } - ] - }, - "dwp.uc.households_childcare_element": { - "status": "active", - "candidates": [ + "resolved_value": 11321.91780821918, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_06f4adc777a4a3036026872f" + }, { - "name": "dwp.uc.households_childcare_element", + "name": "hmrc.cgt.taxpayers_by_region@E12000002", "status": "active", - "matched_fact_count_overall": 12, - "matched_fact_count_at_or_before_period": 12, - "matched_fact_count_in_source_window": 12, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 178666.66666666666, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_0c1aa0cc56d86c50d6b2560a" - } - ] - }, - "dwp.uc.households_with_deduction": { - "status": "active", - "candidates": [ + "resolved_value": 41513.69863013699, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_9c0d0cc201d3d0f86df9f485" + }, { - "name": "dwp.uc.households_with_deduction", + "name": "hmrc.cgt.taxpayers_by_region@E12000003", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, - "matched_fact_count_in_source_window": 10, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 3130000.0, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_f7bfdb41a462c417535602d2" - } - ] - }, - "obr.universal_credit": { - "status": "active", - "candidates": [ + "resolved_value": 32078.767123287675, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_abfee7a635221f3a6573857f" + }, { - "name": "obr.universal_credit", + "name": "hmrc.cgt.taxpayers_by_region@E12000004", "status": "active", - "matched_fact_count_overall": 14, - "matched_fact_count_at_or_before_period": 4, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 76054754387.77309, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_4c927d7b33d1eee2455bdbd0" - } - ] - }, - "dwp.hb.households": { - "status": "active", - "candidates": [ + "resolved_value": 31135.273972602743, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_d8b059af35df8fc34df0ebfa" + }, { - "name": "dwp.hb.households", + "name": "hmrc.cgt.taxpayers_by_region@E12000005", "status": "active", - "matched_fact_count_overall": 12, - "matched_fact_count_at_or_before_period": 12, - "matched_fact_count_in_source_window": 12, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 1685702.9166666667, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_f2ecf4d38ef4dfc796336538" - } - ] - }, - "dwp.hb.households_social_rented": { - "status": "active", - "candidates": [ + "resolved_value": 33022.260273972606, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_d003284169d6847765c66221" + }, { - "name": "dwp.hb.households_social_rented", + "name": "hmrc.cgt.taxpayers_by_region@E12000006", "status": "active", - "matched_fact_count_overall": 12, - "matched_fact_count_at_or_before_period": 12, - "matched_fact_count_in_source_window": 12, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 1381089.75, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_40b45c74a40b8d085a8c28e2" - } - ] - }, - "dwp.hb.households_private_rented": { - "status": "active", - "candidates": [ + "resolved_value": 58496.57534246576, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_a48acd5e86822a82360de3c3" + }, { - "name": "dwp.hb.households_private_rented", + "name": "hmrc.cgt.taxpayers_by_region@E12000007", "status": "active", - "matched_fact_count_overall": 12, - "matched_fact_count_at_or_before_period": 12, - "matched_fact_count_in_source_window": 12, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 304422.6666666667, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_02281858b7b0d71477e429f3" - } - ] - }, - "dwp.benefit_cap.capped_households_up_to_100": { - "status": "active", - "candidates": [ + "resolved_value": 106614.72602739726, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_7bde136c5103f6b31dc478ef" + }, { - "name": "dwp.benefit_cap.capped_households_up_to_100", + "name": "hmrc.cgt.taxpayers_by_region@E12000008", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 38402.0, - "resolved_fact_period": "2025-11", - "resolved_fact_key": "ledger_aggregate_fact_v2_220b82ab05bec494e6dc9fe9" - } - ] - }, - "dwp.benefit_cap.capped_households_100_01_to_200": { - "status": "active", - "candidates": [ + "resolved_value": 114162.67123287672, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_228fb212eb226981e6213fb1" + }, { - "name": "dwp.benefit_cap.capped_households_100_01_to_200", + "name": "hmrc.cgt.taxpayers_by_region@E12000009", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 24274.0, - "resolved_fact_period": "2025-11", - "resolved_fact_key": "ledger_aggregate_fact_v2_4a9e2cc181aee62e1eccd188" - } - ] - }, - "dwp.benefit_cap.capped_households_200_01_to_300": { - "status": "active", - "candidates": [ + "resolved_value": 60383.56164383562, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_af8dd206a47ffbc3651ece3b" + }, { - "name": "dwp.benefit_cap.capped_households_200_01_to_300", + "name": "hmrc.cgt.taxpayers_by_region@W92000004", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "country", + "geography_id": "W92000004", "resolved_period": 2025, - "resolved_value": 16240.0, - "resolved_fact_period": "2025-11", - "resolved_fact_key": "ledger_aggregate_fact_v2_5ae8289242eabcffab23f32f" - } - ] - }, - "dwp.benefit_cap.capped_households_300_01_to_400": { - "status": "active", - "candidates": [ + "resolved_value": 16982.87671232877, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_c3fb868cb38397d0420cd136" + }, { - "name": "dwp.benefit_cap.capped_households_300_01_to_400", + "name": "hmrc.cgt.taxpayers_by_region@S92000003", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "country", + "geography_id": "S92000003", "resolved_period": 2025, - "resolved_value": 10562.0, - "resolved_fact_period": "2025-11", - "resolved_fact_key": "ledger_aggregate_fact_v2_a503d4e938aaf386720b96c4" + "resolved_value": 34909.24657534247, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_e3b5a134b920d7bcf071dc5c" + }, + { + "name": "hmrc.cgt.taxpayers_by_region@N92000002", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "country", + "geography_id": "N92000002", + "resolved_period": 2025, + "resolved_value": 9434.931506849316, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_2779d0ba66235d3ec59280b8" } ] }, - "dwp.benefit_cap.capped_households_400_01_to_500": { + "hmrc.cgt.gains_by_region": { "status": "active", "candidates": [ { - "name": "dwp.benefit_cap.capped_households_400_01_to_500", + "name": "hmrc.cgt.gains_by_region@E12000001", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000001", + "resolved_period": 2025, + "resolved_value": 1497797150.3974364, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_c56796163e95a924ef066aeb" + }, + { + "name": "hmrc.cgt.gains_by_region@E12000002", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000002", + "resolved_period": 2025, + "resolved_value": 8790074083.38308, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_07d5a851c664d71dad2233c6" + }, + { + "name": "hmrc.cgt.gains_by_region@E12000003", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 7813.0, - "resolved_fact_period": "2025-11", - "resolved_fact_key": "ledger_aggregate_fact_v2_df764409769b2078c69ff113" - } - ] - }, - "dwp.benefit_cap.capped_households_500_01_to_600": { - "status": "active", - "candidates": [ + "resolved_value": 6970985861.949795, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_6b4137649b34773c10d9731d" + }, { - "name": "dwp.benefit_cap.capped_households_500_01_to_600", + "name": "hmrc.cgt.gains_by_region@E12000004", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 4431.0, - "resolved_fact_period": "2025-11", - "resolved_fact_key": "ledger_aggregate_fact_v2_3d0e936b240ba62209777ee3" - } - ] - }, - "dwp.benefit_cap.capped_households_600_01_to_700": { - "status": "active", - "candidates": [ + "resolved_value": 6299365751.358824, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_61b52be8ce7d4fc692817ba9" + }, { - "name": "dwp.benefit_cap.capped_households_600_01_to_700", + "name": "hmrc.cgt.gains_by_region@E12000005", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 3116.0, - "resolved_fact_period": "2025-11", - "resolved_fact_key": "ledger_aggregate_fact_v2_1d68398dd88958a8700dcfac" - } - ] - }, - "dwp.benefit_cap.capped_households_700_01_to_800": { - "status": "active", - "candidates": [ + "resolved_value": 5890960774.765152, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_34a10615174b9297afe221b7" + }, { - "name": "dwp.benefit_cap.capped_households_700_01_to_800", + "name": "hmrc.cgt.gains_by_region@E12000006", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 1902.0, - "resolved_fact_period": "2025-11", - "resolved_fact_key": "ledger_aggregate_fact_v2_999288b0fa67d7f657810a11" - } - ] - }, - "dwp.benefit_cap.capped_households_800_01_to_900": { - "status": "active", - "candidates": [ + "resolved_value": 11545870966.728456, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f15225d0bcd17c6de4da7274" + }, { - "name": "dwp.benefit_cap.capped_households_800_01_to_900", + "name": "hmrc.cgt.gains_by_region@E12000007", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 1328.0, - "resolved_fact_period": "2025-11", - "resolved_fact_key": "ledger_aggregate_fact_v2_b7a2d0cec131abfd0cb81ba0" - } - ] - }, - "dwp.benefit_cap.capped_households_900_01_to_1000": { - "status": "active", - "candidates": [ + "resolved_value": 32519714615.602127, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_1c9e621227b5e9e0de086a29" + }, { - "name": "dwp.benefit_cap.capped_households_900_01_to_1000", + "name": "hmrc.cgt.gains_by_region@E12000008", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 824.0, - "resolved_fact_period": "2025-11", - "resolved_fact_key": "ledger_aggregate_fact_v2_80c8fa82f3e07357e677ae93" - } - ] - }, - "dwp.benefit_cap.capped_households_1000_01_to_1100": { - "status": "active", - "candidates": [ + "resolved_value": 25606804690.69088, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_e292074b43a3aaf4dbd7700e" + }, { - "name": "dwp.benefit_cap.capped_households_1000_01_to_1100", + "name": "hmrc.cgt.gains_by_region@E12000009", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 497.0, - "resolved_fact_period": "2025-11", - "resolved_fact_key": "ledger_aggregate_fact_v2_cf55cee33404d2283800b2b5" - } - ] - }, - "dwp.benefit_cap.capped_households_1100_01_to_1200": { - "status": "active", - "candidates": [ + "resolved_value": 10341263627.509504, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_c7cfe6f18b190daed3153cfc" + }, { - "name": "dwp.benefit_cap.capped_households_1100_01_to_1200", + "name": "hmrc.cgt.gains_by_region@W92000004", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "country", + "geography_id": "W92000004", "resolved_period": 2025, - "resolved_value": 380.0, - "resolved_fact_period": "2025-11", - "resolved_fact_key": "ledger_aggregate_fact_v2_6f836a33391f4352151bd27f" - } - ] - }, - "dwp.benefit_cap.capped_households_1200_01_to_1300": { - "status": "active", - "candidates": [ + "resolved_value": 2358632410.6946497, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_6cf6ec1d6cf7a4545c25ccb3" + }, { - "name": "dwp.benefit_cap.capped_households_1200_01_to_1300", + "name": "hmrc.cgt.gains_by_region@S92000003", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "country", + "geography_id": "S92000003", "resolved_period": 2025, - "resolved_value": 239.0, - "resolved_fact_period": "2025-11", - "resolved_fact_key": "ledger_aggregate_fact_v2_ad08714cf39be9ccf0450cf2" - } - ] - }, - "dwp.benefit_cap.capped_households_1300_01_and_above": { - "status": "active", - "candidates": [ + "resolved_value": 5680201325.83493, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_4af3f233994240b66f222933" + }, { - "name": "dwp.benefit_cap.capped_households_1300_01_and_above", + "name": "hmrc.cgt.gains_by_region@N92000002", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "country", + "geography_id": "N92000002", "resolved_period": 2025, - "resolved_value": 627.0, - "resolved_fact_period": "2025-11", - "resolved_fact_key": "ledger_aggregate_fact_v2_a3fee6cdec1b46a15a3b1434" + "resolved_value": 1757265449.747086, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_8b23977ac0a2db5257dc6bfe" } ] }, - "hmrc.cgt.taxpayers_by_age_band": { + "hmrc.cgt.taxpayers_by_gain_band": { "status": "active", "candidates": [ { - "name": "hmrc.cgt.taxpayers_by_age_band.age_0_to_15", + "name": "hmrc/cgt_taxpayers_band_0", "status": "signed_excluded", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "signed_row": { - "dimension": "age_band", - "value": "age_0_to_15" + "dimension": "cgt_gain_band", + "value": "gain_0_to_2999" }, - "signed_rationale": "HMRC Table 6's 15-and-below row (1,000 taxpayers, GBP 54m of gains, GBP 9m of tax in 2024-25) has no support: the CGT incidence clone and the size-band donors place gains on the oldest adult of a household, so the frame carries no gainer under 16 and the row would always measure zero. Signed out of the age-band fan-out; the eight adult bands stay bound." + "signed_rationale": "HMRC Table 2.1a's 0-2,999 row (3,000 taxpayers with a liability on gains at or below the 2024-25 annual exempt amount of GBP 3,000, from attributed gains and prior-year adjustments) lies below the AEA gate the taxpayer proxy measures, so the model cannot place anyone in it. Signed out; the twelve bands from 3,000 stay bound." }, { - "name": "hmrc.cgt.taxpayers_by_age_band.age_16_to_24", + "name": "hmrc/cgt_taxpayers_band_1000000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 4000.0, + "resolved_value": 9000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_8c3d294de4cbdbe292815164" + "resolved_fact_key": "ledger_aggregate_fact_v2_6a760ffb56140426b69a5269" }, { - "name": "hmrc.cgt.taxpayers_by_age_band.age_25_to_34", + "name": "hmrc/cgt_taxpayers_band_100000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 27000.0, + "resolved_value": 61000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_cc8ef619f52f7f44a885ce52" + "resolved_fact_key": "ledger_aggregate_fact_v2_9abad7ce7e36bcbf61e93db0" }, { - "name": "hmrc.cgt.taxpayers_by_age_band.age_35_to_44", + "name": "hmrc/cgt_taxpayers_band_10000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 65000.0, + "resolved_value": 26000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_8554e7f842699a5f49816a0d" + "resolved_fact_key": "ledger_aggregate_fact_v2_2393740ba1c11b1a31e54e75" }, { - "name": "hmrc.cgt.taxpayers_by_age_band.age_45_to_54", + "name": "hmrc/cgt_taxpayers_band_12300", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 98000.0, + "resolved_value": 97000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_794376b60fba0684412fdff8" + "resolved_fact_key": "ledger_aggregate_fact_v2_c5a351873a7b2c4cc4150711" }, { - "name": "hmrc.cgt.taxpayers_by_age_band.age_55_to_64", + "name": "hmrc/cgt_taxpayers_band_2000000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 144000.0, + "resolved_value": 5000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_0d6b6c36290ab598f74f6669" + "resolved_fact_key": "ledger_aggregate_fact_v2_7a32f131c687a8bed9ec747a" }, { - "name": "hmrc.cgt.taxpayers_by_age_band.age_65_to_74", + "name": "hmrc/cgt_taxpayers_band_250000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 125000.0, + "resolved_value": 25000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_a725972fe4ee87a3bddee1cf" + "resolved_fact_key": "ledger_aggregate_fact_v2_9df6b0435f02114bbff8b83e" }, { - "name": "hmrc.cgt.taxpayers_by_age_band.age_75_to_84", + "name": "hmrc/cgt_taxpayers_band_25000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 68000.0, + "resolved_value": 98000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_1e4899d950c2b2be8ae21459" + "resolved_fact_key": "ledger_aggregate_fact_v2_dbb814e164ce932da9f110e3" }, { - "name": "hmrc.cgt.taxpayers_by_age_band.age_85_plus", + "name": "hmrc/cgt_taxpayers_band_3000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 19000.0, + "resolved_value": 73000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_7c419e2a82d25fae0127fd1d" - } - ] - }, - "hmrc.cgt.gains_by_age_band": { - "status": "active", - "candidates": [ - { - "name": "hmrc.cgt.gains_by_age_band.age_0_to_15", - "status": "signed_excluded", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, - "signed_row": { - "dimension": "age_band", - "value": "age_0_to_15" - }, - "signed_rationale": "HMRC Table 6's 15-and-below row (1,000 taxpayers, GBP 54m of gains, GBP 9m of tax in 2024-25) has no support: the CGT incidence clone and the size-band donors place gains on the oldest adult of a household, so the frame carries no gainer under 16 and the row would always measure zero. Signed out of the age-band fan-out; the eight adult bands stay bound." + "resolved_fact_key": "ledger_aggregate_fact_v2_445cdec889b5a04a38bfc529" }, { - "name": "hmrc.cgt.gains_by_age_band.age_16_to_24", + "name": "hmrc/cgt_taxpayers_band_5000000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 319000000.0, + "resolved_value": 3000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_af584dedce4184d834502e56" + "resolved_fact_key": "ledger_aggregate_fact_v2_185d64390d180e168f174c93" }, { - "name": "hmrc.cgt.gains_by_age_band.age_25_to_34", + "name": "hmrc/cgt_taxpayers_band_500000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 2499000000.0, + "resolved_value": 16000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_40c8b42d3904c8eb44297559" + "resolved_fact_key": "ledger_aggregate_fact_v2_ff1311e347cb11ab13a55da8" }, { - "name": "hmrc.cgt.gains_by_age_band.age_35_to_44", + "name": "hmrc/cgt_taxpayers_band_50000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 11775000000.0, + "resolved_value": 78000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_375b4cb880dcb4caacc5f003" + "resolved_fact_key": "ledger_aggregate_fact_v2_16303d73f7eadbadac68edc5" }, { - "name": "hmrc.cgt.gains_by_age_band.age_45_to_54", + "name": "hmrc/cgt_taxpayers_band_6000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 28422000000.0, + "resolved_value": 57000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_567f8babf11f6356f72398de" + "resolved_fact_key": "ledger_aggregate_fact_v2_2f1e03f344a1e1de11bf0fe3" + } + ] + }, + "hmrc.cgt.gains_by_gain_band": { + "status": "active", + "candidates": [ + { + "name": "hmrc/capital_gains_band_0", + "status": "signed_excluded", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "signed_row": { + "dimension": "cgt_gain_band", + "value": "gain_0_to_2999" + }, + "signed_rationale": "HMRC Table 2.1a's 0-2,999 row (3,000 taxpayers with a liability on gains at or below the 2024-25 annual exempt amount of GBP 3,000, from attributed gains and prior-year adjustments) lies below the AEA gate the taxpayer proxy measures, so the model cannot place anyone in it. Signed out; the twelve bands from 3,000 stay bound." }, { - "name": "hmrc.cgt.gains_by_age_band.age_55_to_64", + "name": "hmrc/capital_gains_band_1000000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 38118000000.0, + "resolved_value": 12806000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_38da5aa08efc20c32951a860" + "resolved_fact_key": "ledger_aggregate_fact_v2_d4ad617897f228660a6a6be3" }, { - "name": "hmrc.cgt.gains_by_age_band.age_65_to_74", + "name": "hmrc/capital_gains_band_100000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 24260000000.0, + "resolved_value": 9487000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_69e2dec98e4cdbe34c3a0572" + "resolved_fact_key": "ledger_aggregate_fact_v2_ed181e27011def0336c6cd99" }, { - "name": "hmrc.cgt.gains_by_age_band.age_75_to_84", + "name": "hmrc/capital_gains_band_10000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 11736000000.0, + "resolved_value": 289000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_9d0fb4e1a0c63f6d06b73e61" + "resolved_fact_key": "ledger_aggregate_fact_v2_0ce43b4d53bb602f1b9fb49a" }, { - "name": "hmrc.cgt.gains_by_age_band.age_85_plus", + "name": "hmrc/capital_gains_band_12300", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 2076000000.0, + "resolved_value": 1747000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ca2b09a93c8a40ea4766b341" - } - ] - }, - "hmrc.cgt.tax_by_age_band": { - "status": "active", - "candidates": [ - { - "name": "hmrc.cgt.tax_by_age_band.age_0_to_15", - "status": "signed_excluded", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, - "signed_row": { - "dimension": "age_band", - "value": "age_0_to_15" - }, - "signed_rationale": "HMRC Table 6's 15-and-below row (1,000 taxpayers, GBP 54m of gains, GBP 9m of tax in 2024-25) has no support: the CGT incidence clone and the size-band donors place gains on the oldest adult of a household, so the frame carries no gainer under 16 and the row would always measure zero. Signed out of the age-band fan-out; the eight adult bands stay bound." + "resolved_fact_key": "ledger_aggregate_fact_v2_52d8b43cd07113d29860cd06" }, { - "name": "hmrc.cgt.tax_by_age_band.age_16_to_24", + "name": "hmrc/capital_gains_band_2000000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 59000000.0, + "resolved_value": 16477000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_5e45e49cdf5771a4f3dbc0c6" + "resolved_fact_key": "ledger_aggregate_fact_v2_36a58e75b04a937aa837b211" }, { - "name": "hmrc.cgt.tax_by_age_band.age_25_to_34", + "name": "hmrc/capital_gains_band_250000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 456000000.0, + "resolved_value": 8820000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_4f0a20f8646020c518ec1a6c" + "resolved_fact_key": "ledger_aggregate_fact_v2_e79c0dd87ea41c5469aa88af" }, { - "name": "hmrc.cgt.tax_by_age_band.age_35_to_44", + "name": "hmrc/capital_gains_band_25000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 2246000000.0, + "resolved_value": 3516000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_041101c10e8ee3a674596ab2" + "resolved_fact_key": "ledger_aggregate_fact_v2_12a05bb18f0245343b24c882" }, { - "name": "hmrc.cgt.tax_by_age_band.age_45_to_54", + "name": "hmrc/capital_gains_band_3000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 5522000000.0, + "resolved_value": 311000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_c678a6f27d3dc149131419ee" + "resolved_fact_key": "ledger_aggregate_fact_v2_68d13fca859e018be0915149" }, { - "name": "hmrc.cgt.tax_by_age_band.age_55_to_64", + "name": "hmrc/capital_gains_band_5000000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 7152000000.0, + "resolved_value": 48474000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_76990ed6855fce16817d5289" + "resolved_fact_key": "ledger_aggregate_fact_v2_e86658beb663c322dfe3f311" }, { - "name": "hmrc.cgt.tax_by_age_band.age_65_to_74", + "name": "hmrc/capital_gains_band_500000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 4409000000.0, + "resolved_value": 11372000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_3d4b0b5873bbe5bce9c14381" + "resolved_fact_key": "ledger_aggregate_fact_v2_bcee60127caf8ba271530f73" }, { - "name": "hmrc.cgt.tax_by_age_band.age_75_to_84", + "name": "hmrc/capital_gains_band_50000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 2260000000.0, + "resolved_value": 5510000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_9c1150dfbd7f4f3b6235050b" + "resolved_fact_key": "ledger_aggregate_fact_v2_6854e6a3ad1abc041042f35d" }, { - "name": "hmrc.cgt.tax_by_age_band.age_85_plus", + "name": "hmrc/capital_gains_band_6000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 390000000.0, + "resolved_value": 448000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_e60df0c2438533341e2f4b08" + "resolved_fact_key": "ledger_aggregate_fact_v2_f808792afed121cadff6f396" } ] }, - "hmrc.cgt.taxpayers_by_region": { + "hmrc.cgt.residential_property_taxpayers": { "status": "active", "candidates": [ { - "name": "hmrc.cgt.taxpayers_by_region@E12000001", + "name": "hmrc.cgt.residential_property_taxpayers.ty2024", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, - "geography_level": "region", - "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 11321.91780821918, + "resolved_value": 202630.0578034682, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_06f4adc777a4a3036026872f" - }, + "resolved_fact_key": "ledger_aggregate_fact_v2_a26f1261bd153727b83045de" + } + ] + }, + "hmrc.cgt.residential_property_gains": { + "status": "active", + "candidates": [ { - "name": "hmrc.cgt.taxpayers_by_region@E12000002", + "name": "hmrc.cgt.residential_property_gains.ty2024", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, - "geography_level": "region", - "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 41513.69863013699, + "resolved_value": 12242481474.688189, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_9c0d0cc201d3d0f86df9f485" - }, + "resolved_fact_key": "ledger_aggregate_fact_v2_1f8003c937764e4184da3f24" + } + ] + }, + "hmrc.cgt.badr_ir_taxpayers_by_band": { + "status": "active", + "candidates": [ { - "name": "hmrc.cgt.taxpayers_by_region@E12000003", + "name": "hmrc.cgt.badr_ir_taxpayers_by_band.gain_0_to_9999", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, - "geography_level": "region", - "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 32078.767123287675, + "resolved_value": 5000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_abfee7a635221f3a6573857f" + "resolved_fact_key": "ledger_aggregate_fact_v2_c71dc48a052cd232188e17da" }, { - "name": "hmrc.cgt.taxpayers_by_region@E12000004", + "name": "hmrc.cgt.badr_ir_taxpayers_by_band.gain_1000000_plus", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, - "geography_level": "region", - "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 31135.273972602743, + "resolved_value": 7000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_d8b059af35df8fc34df0ebfa" + "resolved_fact_key": "ledger_aggregate_fact_v2_5ff395a45be4717082a60b22" }, { - "name": "hmrc.cgt.taxpayers_by_region@E12000005", + "name": "hmrc.cgt.badr_ir_taxpayers_by_band.gain_100000_to_249999", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, - "geography_level": "region", - "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 33022.260273972606, + "resolved_value": 11000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_d003284169d6847765c66221" + "resolved_fact_key": "ledger_aggregate_fact_v2_9e67fe204032e08555997593" }, { - "name": "hmrc.cgt.taxpayers_by_region@E12000006", + "name": "hmrc.cgt.badr_ir_taxpayers_by_band.gain_10000_to_24999", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, - "geography_level": "region", - "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 58496.57534246576, + "resolved_value": 8000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_a48acd5e86822a82360de3c3" + "resolved_fact_key": "ledger_aggregate_fact_v2_d22c64afa6be19d572c1ed91" }, { - "name": "hmrc.cgt.taxpayers_by_region@E12000007", + "name": "hmrc.cgt.badr_ir_taxpayers_by_band.gain_250000_to_499999", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, - "geography_level": "region", - "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 106614.72602739726, + "resolved_value": 8000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_7bde136c5103f6b31dc478ef" + "resolved_fact_key": "ledger_aggregate_fact_v2_96d45c2b9c3bee35fce3db13" }, { - "name": "hmrc.cgt.taxpayers_by_region@E12000008", + "name": "hmrc.cgt.badr_ir_taxpayers_by_band.gain_25000_to_49999", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, - "geography_level": "region", - "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 114162.67123287672, + "resolved_value": 6000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_228fb212eb226981e6213fb1" + "resolved_fact_key": "ledger_aggregate_fact_v2_cbaeca9dc6ef9ead249789a1" }, { - "name": "hmrc.cgt.taxpayers_by_region@E12000009", + "name": "hmrc.cgt.badr_ir_taxpayers_by_band.gain_500000_to_999999", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, - "geography_level": "region", - "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 60383.56164383562, + "resolved_value": 8000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_af8dd206a47ffbc3651ece3b" + "resolved_fact_key": "ledger_aggregate_fact_v2_ef67d726efb00a1a791d32fa" }, { - "name": "hmrc.cgt.taxpayers_by_region@W92000004", + "name": "hmrc.cgt.badr_ir_taxpayers_by_band.gain_50000_to_99999", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, - "geography_level": "country", - "geography_id": "W92000004", "resolved_period": 2025, - "resolved_value": 16982.87671232877, + "resolved_value": 8000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_c3fb868cb38397d0420cd136" + "resolved_fact_key": "ledger_aggregate_fact_v2_0cc65d2933bfd5e3209916b5" }, { - "name": "hmrc.cgt.taxpayers_by_region@S92000003", + "name": "hmrc.cgt.badr_ir_taxpayers_by_band.individuals_total", + "status": "signed_excluded", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "signed_row": { + "dimension": "cgt_badr_ir_gain_band", + "value": "total" + }, + "signed_rationale": "HMRC Table 4.1's individuals total row (61,000 claimants, GBP 18,443m of qualifying gains and GBP 1,821m of tax in 2024-25) is the sum of the eight published bands and carries no band edge, so it cannot be measured as a band row. Signed out of the band fan-out; the eight bands stay bound." + } + ] + }, + "hmrc.cgt.badr_ir_qualifying_gains_by_band": { + "status": "active", + "candidates": [ + { + "name": "hmrc.cgt.badr_ir_qualifying_gains_by_band.gain_0_to_9999", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, - "geography_level": "country", - "geography_id": "S92000003", "resolved_period": 2025, - "resolved_value": 34909.24657534247, + "resolved_value": 32000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_e3b5a134b920d7bcf071dc5c" + "resolved_fact_key": "ledger_aggregate_fact_v2_2d2dcd2ab70170cbe79e9683" }, { - "name": "hmrc.cgt.taxpayers_by_region@N92000002", + "name": "hmrc.cgt.badr_ir_qualifying_gains_by_band.gain_1000000_plus", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, - "geography_level": "country", - "geography_id": "N92000002", "resolved_period": 2025, - "resolved_value": 9434.931506849316, + "resolved_value": 6787000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_2779d0ba66235d3ec59280b8" - } - ] - }, - "hmrc.cgt.gains_by_region": { - "status": "active", - "candidates": [ + "resolved_fact_key": "ledger_aggregate_fact_v2_7902eb60f3eb3e877a55209c" + }, { - "name": "hmrc.cgt.gains_by_region@E12000001", + "name": "hmrc.cgt.badr_ir_qualifying_gains_by_band.gain_100000_to_249999", "status": "active", "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, - "geography_level": "region", - "geography_id": "E12000001", + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 1497797150.3974364, + "resolved_value": 1866000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_c56796163e95a924ef066aeb" + "resolved_fact_key": "ledger_aggregate_fact_v2_fe7be6fa3787f96f36398a55" }, { - "name": "hmrc.cgt.gains_by_region@E12000002", + "name": "hmrc.cgt.badr_ir_qualifying_gains_by_band.gain_10000_to_24999", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, - "geography_level": "region", - "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 8790074083.38308, + "resolved_value": 129000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_07d5a851c664d71dad2233c6" + "resolved_fact_key": "ledger_aggregate_fact_v2_8e3f3a1d2d2d368e10d09ace" }, { - "name": "hmrc.cgt.gains_by_region@E12000003", + "name": "hmrc.cgt.badr_ir_qualifying_gains_by_band.gain_250000_to_499999", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, - "geography_level": "region", - "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 6970985861.949795, + "resolved_value": 2901000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_6b4137649b34773c10d9731d" + "resolved_fact_key": "ledger_aggregate_fact_v2_72da20bfe653913d4e114ce3" }, { - "name": "hmrc.cgt.gains_by_region@E12000004", + "name": "hmrc.cgt.badr_ir_qualifying_gains_by_band.gain_25000_to_49999", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, - "geography_level": "region", - "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 6299365751.358824, + "resolved_value": 224000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_61b52be8ce7d4fc692817ba9" + "resolved_fact_key": "ledger_aggregate_fact_v2_01616813e32ffc4ddc891dcc" }, { - "name": "hmrc.cgt.gains_by_region@E12000005", + "name": "hmrc.cgt.badr_ir_qualifying_gains_by_band.gain_500000_to_999999", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, - "geography_level": "region", - "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 5890960774.765152, + "resolved_value": 5929000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_34a10615174b9297afe221b7" + "resolved_fact_key": "ledger_aggregate_fact_v2_9a6304f7b15b3667e02ada02" }, { - "name": "hmrc.cgt.gains_by_region@E12000006", + "name": "hmrc.cgt.badr_ir_qualifying_gains_by_band.gain_50000_to_99999", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, - "geography_level": "region", - "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 11545870966.728456, + "resolved_value": 575000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f15225d0bcd17c6de4da7274" + "resolved_fact_key": "ledger_aggregate_fact_v2_e213445138d034b04552af29" }, { - "name": "hmrc.cgt.gains_by_region@E12000007", + "name": "hmrc.cgt.badr_ir_qualifying_gains_by_band.individuals_total", + "status": "signed_excluded", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "signed_row": { + "dimension": "cgt_badr_ir_gain_band", + "value": "total" + }, + "signed_rationale": "HMRC Table 4.1's individuals total row (61,000 claimants, GBP 18,443m of qualifying gains and GBP 1,821m of tax in 2024-25) is the sum of the eight published bands and carries no band edge, so it cannot be measured as a band row. Signed out of the band fan-out; the eight bands stay bound." + } + ] + }, + "hmrc.cgt.taxpayers_by_taxable_income_band": { + "status": "active", + "candidates": [ + { + "name": "hmrc.cgt.taxpayers_by_taxable_income_band.income_0_to_37699", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, - "geography_level": "region", - "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 32519714615.602127, + "resolved_value": 292000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_1c9e621227b5e9e0de086a29" + "resolved_fact_key": "ledger_aggregate_fact_v2_f28b96212db4bd74331f8289" }, { - "name": "hmrc.cgt.gains_by_region@E12000008", + "name": "hmrc.cgt.taxpayers_by_taxable_income_band.income_100000_to_125139", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, - "geography_level": "region", - "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 25606804690.69088, + "resolved_value": 21000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_e292074b43a3aaf4dbd7700e" + "resolved_fact_key": "ledger_aggregate_fact_v2_bc20105eff5e931018c0ec5b" }, { - "name": "hmrc.cgt.gains_by_region@E12000009", + "name": "hmrc.cgt.taxpayers_by_taxable_income_band.income_125140_to_199999", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, - "geography_level": "region", - "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 10341263627.509504, + "resolved_value": 34000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_c7cfe6f18b190daed3153cfc" + "resolved_fact_key": "ledger_aggregate_fact_v2_3ccfaab45013135497556c05" }, { - "name": "hmrc.cgt.gains_by_region@W92000004", + "name": "hmrc.cgt.taxpayers_by_taxable_income_band.income_200000_plus", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, - "geography_level": "country", - "geography_id": "W92000004", "resolved_period": 2025, - "resolved_value": 2358632410.6946497, + "resolved_value": 62000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_6cf6ec1d6cf7a4545c25ccb3" + "resolved_fact_key": "ledger_aggregate_fact_v2_265a5ff96328902a64f2ec39" }, { - "name": "hmrc.cgt.gains_by_region@S92000003", + "name": "hmrc.cgt.taxpayers_by_taxable_income_band.income_37700_to_49999", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, - "geography_level": "country", - "geography_id": "S92000003", "resolved_period": 2025, - "resolved_value": 5680201325.83493, + "resolved_value": 49000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_4af3f233994240b66f222933" + "resolved_fact_key": "ledger_aggregate_fact_v2_2a4327f9ee7eaa9258805572" }, { - "name": "hmrc.cgt.gains_by_region@N92000002", + "name": "hmrc.cgt.taxpayers_by_taxable_income_band.income_50000_to_99999", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, - "geography_level": "country", - "geography_id": "N92000002", "resolved_period": 2025, - "resolved_value": 1757265449.747086, + "resolved_value": 93000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_8b23977ac0a2db5257dc6bfe" + "resolved_fact_key": "ledger_aggregate_fact_v2_63ee0a3a5a137316b60dc445" } ] }, - "hmrc.cgt.taxpayers_by_gain_band": { + "hmrc.cgt.gains_by_taxable_income_band": { "status": "active", "candidates": [ { - "name": "hmrc/cgt_taxpayers_band_0", - "status": "signed_excluded", + "name": "hmrc.cgt.gains_by_taxable_income_band.income_0_to_37699", + "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, - "signed_row": { - "dimension": "cgt_gain_band", - "value": "gain_0_to_2999" - }, - "signed_rationale": "HMRC Table 2.1a's 0-2,999 row (3,000 taxpayers with a liability on gains at or below the 2024-25 annual exempt amount of GBP 3,000, from attributed gains and prior-year adjustments) lies below the AEA gate the taxpayer proxy measures, so the model cannot place anyone in it. Signed out; the twelve bands from 3,000 stay bound." + "resolved_period": 2025, + "resolved_value": 24551000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_34883c3349b61fb7875b85ce" }, { - "name": "hmrc/cgt_taxpayers_band_1000000", + "name": "hmrc.cgt.gains_by_taxable_income_band.income_100000_to_125139", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 9000.0, + "resolved_value": 5293000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_6a760ffb56140426b69a5269" + "resolved_fact_key": "ledger_aggregate_fact_v2_f4f922a95f792326faf77ec8" }, { - "name": "hmrc/cgt_taxpayers_band_100000", + "name": "hmrc.cgt.gains_by_taxable_income_band.income_125140_to_199999", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 61000.0, + "resolved_value": 10948000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_9abad7ce7e36bcbf61e93db0" + "resolved_fact_key": "ledger_aggregate_fact_v2_62b93eaa7a9e2acf76ef70e2" }, { - "name": "hmrc/cgt_taxpayers_band_10000", + "name": "hmrc.cgt.gains_by_taxable_income_band.income_200000_plus", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 26000.0, + "resolved_value": 55127000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_2393740ba1c11b1a31e54e75" + "resolved_fact_key": "ledger_aggregate_fact_v2_f5177011b130ef1ad4338bb4" }, { - "name": "hmrc/cgt_taxpayers_band_12300", + "name": "hmrc.cgt.gains_by_taxable_income_band.income_37700_to_49999", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 97000.0, + "resolved_value": 6178000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_c5a351873a7b2c4cc4150711" + "resolved_fact_key": "ledger_aggregate_fact_v2_738e2f54bc21206d6af1b64d" }, { - "name": "hmrc/cgt_taxpayers_band_2000000", + "name": "hmrc.cgt.gains_by_taxable_income_band.income_50000_to_99999", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 5000.0, + "resolved_value": 17160000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_7a32f131c687a8bed9ec747a" + "resolved_fact_key": "ledger_aggregate_fact_v2_342eca3641c9a9dd39b88c16" + } + ] + }, + "hmrc.itl.taxpayers_by_total_income_band": { + "status": "active", + "candidates": [ + { + "name": "hmrc.itl.taxpayers_by_total_income_band.band_100000_150000", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, + "resolved_period": 2025, + "resolved_value": 1092500.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_4dfde5206ad78ee391044162" }, { - "name": "hmrc/cgt_taxpayers_band_250000", + "name": "hmrc.itl.taxpayers_by_total_income_band.band_1000000_2000000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 25000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_9df6b0435f02114bbff8b83e" + "resolved_value": 20750.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_20329726f977dd1779716b6f" }, { - "name": "hmrc/cgt_taxpayers_band_25000", + "name": "hmrc.itl.taxpayers_by_total_income_band.band_12570_15000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 98000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_dbb814e164ce932da9f110e3" + "resolved_value": 2972500.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_3a1683d0d0e8fc64df15bb7d" }, { - "name": "hmrc/cgt_taxpayers_band_3000", + "name": "hmrc.itl.taxpayers_by_total_income_band.band_15000_20000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 73000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_445cdec889b5a04a38bfc529" + "resolved_value": 5412500.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_b091ce428064d8fc92ddbf0e" }, { - "name": "hmrc/cgt_taxpayers_band_5000000", + "name": "hmrc.itl.taxpayers_by_total_income_band.band_150000_200000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 3000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_185d64390d180e168f174c93" + "resolved_value": 342750.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_bb4b5a0be61cc0bccb1f138e" }, { - "name": "hmrc/cgt_taxpayers_band_500000", + "name": "hmrc.itl.taxpayers_by_total_income_band.band_20000_30000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 16000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ff1311e347cb11ab13a55da8" + "resolved_value": 10225000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_ce6b9659ea26c8b1a2c12dcf" + }, + { + "name": "hmrc.itl.taxpayers_by_total_income_band.band_200000_500000", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, + "resolved_period": 2025, + "resolved_value": 372500.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_fb06142225a5cc3067c35d18" + }, + { + "name": "hmrc.itl.taxpayers_by_total_income_band.band_2000000_plus", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, + "resolved_period": 2025, + "resolved_value": 10750.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_fe7feb575130feb78a6e7590" + }, + { + "name": "hmrc.itl.taxpayers_by_total_income_band.band_30000_50000", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, + "resolved_period": 2025, + "resolved_value": 12125000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_ed1524af73b18d05ad5c2853" }, { - "name": "hmrc/cgt_taxpayers_band_50000", + "name": "hmrc.itl.taxpayers_by_total_income_band.band_50000_100000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 78000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_16303d73f7eadbadac68edc5" + "resolved_value": 6950000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_215002b59ecd9283660632bc" }, { - "name": "hmrc/cgt_taxpayers_band_6000", + "name": "hmrc.itl.taxpayers_by_total_income_band.band_500000_1000000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 57000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_2f1e03f344a1e1de11bf0fe3" + "resolved_value": 65500.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_e19b3faa384ea09af15eb591" } ] }, - "hmrc.cgt.gains_by_gain_band": { + "hmrc.itl.total_income_by_total_income_band": { "status": "active", "candidates": [ { - "name": "hmrc/capital_gains_band_0", - "status": "signed_excluded", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, - "signed_row": { - "dimension": "cgt_gain_band", - "value": "gain_0_to_2999" - }, - "signed_rationale": "HMRC Table 2.1a's 0-2,999 row (3,000 taxpayers with a liability on gains at or below the 2024-25 annual exempt amount of GBP 3,000, from attributed gains and prior-year adjustments) lies below the AEA gate the taxpayer proxy measures, so the model cannot place anyone in it. Signed out; the twelve bands from 3,000 stay bound." - }, - { - "name": "hmrc/capital_gains_band_1000000", - "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, - "resolved_period": 2025, - "resolved_value": 12806000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_d4ad617897f228660a6a6be3" - }, - { - "name": "hmrc/capital_gains_band_100000", + "name": "hmrc.itl.total_income_by_total_income_band.band_100000_150000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 9487000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ed181e27011def0336c6cd99" + "resolved_value": 129750000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_4206ac3d1e306760a8cd90fe" }, { - "name": "hmrc/capital_gains_band_10000", + "name": "hmrc.itl.total_income_by_total_income_band.band_1000000_2000000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 289000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_0ce43b4d53bb602f1b9fb49a" + "resolved_value": 28425000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_082f58aced9f31b41d675e89" }, { - "name": "hmrc/capital_gains_band_12300", + "name": "hmrc.itl.total_income_by_total_income_band.band_12570_15000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 1747000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_52d8b43cd07113d29860cd06" + "resolved_value": 40950000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_5740a6c464861ca01edbd05d" }, { - "name": "hmrc/capital_gains_band_2000000", + "name": "hmrc.itl.total_income_by_total_income_band.band_15000_20000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 16477000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_36a58e75b04a937aa837b211" + "resolved_value": 94200000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_c837e9b3bf684218fe68ebad" }, { - "name": "hmrc/capital_gains_band_250000", + "name": "hmrc.itl.total_income_by_total_income_band.band_150000_200000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 8820000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_e79c0dd87ea41c5469aa88af" + "resolved_value": 58525000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_9dec94f99ff43c604bd0feeb" }, { - "name": "hmrc/capital_gains_band_25000", + "name": "hmrc.itl.total_income_by_total_income_band.band_20000_30000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 3516000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_12a05bb18f0245343b24c882" + "resolved_value": 253750000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_94d7a54a82d09ffcfdd550da" }, { - "name": "hmrc/capital_gains_band_3000", + "name": "hmrc.itl.total_income_by_total_income_band.band_200000_500000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 311000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_68d13fca859e018be0915149" + "resolved_value": 108250000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_a3d99427060437f8ee20ad67" }, { - "name": "hmrc/capital_gains_band_5000000", + "name": "hmrc.itl.total_income_by_total_income_band.band_2000000_plus", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 48474000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_e86658beb663c322dfe3f311" + "resolved_value": 55175000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_c0f84c920d7ec18ec2904a46" }, { - "name": "hmrc/capital_gains_band_500000", + "name": "hmrc.itl.total_income_by_total_income_band.band_30000_50000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 11372000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_bcee60127caf8ba271530f73" + "resolved_value": 465500000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_48ee9145e8905c8c3a645c18" }, { - "name": "hmrc/capital_gains_band_50000", + "name": "hmrc.itl.total_income_by_total_income_band.band_50000_100000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 5510000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_6854e6a3ad1abc041042f35d" + "resolved_value": 455500000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_1cc7e9aefd34df9b8e1434f7" }, { - "name": "hmrc/capital_gains_band_6000", + "name": "hmrc.itl.total_income_by_total_income_band.band_500000_1000000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 448000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f808792afed121cadff6f396" + "resolved_value": 44350000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_8e0a8f6f4b49892884b60d7c" } ] }, - "hmrc.cgt.residential_property_taxpayers": { + "hmrc.itl.income_tax_by_total_income_band": { "status": "active", "candidates": [ { - "name": "hmrc.cgt.residential_property_taxpayers.ty2024", + "name": "hmrc.itl.income_tax_by_total_income_band.band_100000_150000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 202630.0578034682, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_a26f1261bd153727b83045de" - } - ] - }, - "hmrc.cgt.residential_property_gains": { - "status": "active", - "candidates": [ + "resolved_value": 38000000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_69742f8204cc9ac1ef2c8e9e" + }, { - "name": "hmrc.cgt.residential_property_gains.ty2024", + "name": "hmrc.itl.income_tax_by_total_income_band.band_1000000_2000000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 12242481474.688189, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_1f8003c937764e4184da3f24" - } - ] - }, - "hmrc.cgt.badr_ir_taxpayers_by_band": { - "status": "active", - "candidates": [ + "resolved_value": 11550000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_4c0d2c52c414e75deb891a7a" + }, { - "name": "hmrc.cgt.badr_ir_taxpayers_by_band.gain_0_to_9999", + "name": "hmrc.itl.income_tax_by_total_income_band.band_12570_15000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 5000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_c71dc48a052cd232188e17da" + "resolved_value": 650750000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_0ab1c9f2169012fe9630ef63" }, { - "name": "hmrc.cgt.badr_ir_taxpayers_by_band.gain_1000000_plus", + "name": "hmrc.itl.income_tax_by_total_income_band.band_15000_20000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 7000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_5ff395a45be4717082a60b22" + "resolved_value": 4532500000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_11307d6a9a99ba80374bdf15" }, { - "name": "hmrc.cgt.badr_ir_taxpayers_by_band.gain_100000_to_249999", + "name": "hmrc.itl.income_tax_by_total_income_band.band_150000_200000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 11000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_9e67fe204032e08555997593" + "resolved_value": 20000000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_2954bada0d66920670eb5dec" }, { - "name": "hmrc.cgt.badr_ir_taxpayers_by_band.gain_10000_to_24999", + "name": "hmrc.itl.income_tax_by_total_income_band.band_20000_30000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 8000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_d22c64afa6be19d572c1ed91" + "resolved_value": 23025000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_0ef61cad9a110b5774ccea20" }, { - "name": "hmrc.cgt.badr_ir_taxpayers_by_band.gain_250000_to_499999", + "name": "hmrc.itl.income_tax_by_total_income_band.band_200000_500000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 8000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_96d45c2b9c3bee35fce3db13" + "resolved_value": 41075000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_919c63d863e7b92dc22868a9" }, { - "name": "hmrc.cgt.badr_ir_taxpayers_by_band.gain_25000_to_49999", + "name": "hmrc.itl.income_tax_by_total_income_band.band_2000000_plus", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 6000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_cbaeca9dc6ef9ead249789a1" + "resolved_value": 21800000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_2d60cb91572bce26d6ec18e0" }, { - "name": "hmrc.cgt.badr_ir_taxpayers_by_band.gain_500000_to_999999", + "name": "hmrc.itl.income_tax_by_total_income_band.band_30000_50000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 8000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ef67d726efb00a1a791d32fa" + "resolved_value": 57925000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_1e89268f4fb8c2499ad07d88" }, { - "name": "hmrc.cgt.badr_ir_taxpayers_by_band.gain_50000_to_99999", + "name": "hmrc.itl.income_tax_by_total_income_band.band_50000_100000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 8000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_0cc65d2933bfd5e3209916b5" + "resolved_value": 86025000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_e5bde95ce263d795f9583630" }, { - "name": "hmrc.cgt.badr_ir_taxpayers_by_band.individuals_total", - "status": "signed_excluded", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, - "signed_row": { - "dimension": "cgt_badr_ir_gain_band", - "value": "total" - }, - "signed_rationale": "HMRC Table 4.1's individuals total row (61,000 claimants, GBP 18,443m of qualifying gains and GBP 1,821m of tax in 2024-25) is the sum of the eight published bands and carries no band edge, so it cannot be measured as a band row. Signed out of the band fan-out; the eight bands stay bound." + "name": "hmrc.itl.income_tax_by_total_income_band.band_500000_1000000", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, + "resolved_period": 2025, + "resolved_value": 18100000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_76841022d640a76385d5a2e7" } ] }, - "hmrc.cgt.badr_ir_qualifying_gains_by_band": { + "hmrc.spi.savings_interest_income.amount_by_total_income_band": { "status": "active", "candidates": [ { - "name": "hmrc.cgt.badr_ir_qualifying_gains_by_band.gain_0_to_9999", - "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, - "resolved_period": 2025, - "resolved_value": 32000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_2d2dcd2ab70170cbe79e9683" - }, - { - "name": "hmrc.cgt.badr_ir_qualifying_gains_by_band.gain_1000000_plus", + "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_100000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 6787000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_7902eb60f3eb3e877a55209c" + "resolved_value": 1489138606.9960644, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_0ef4a95b830d9e4e41b15e02", + "uprating": { + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", + "factor": "1.18185603729846", + "value_before_uprating": "1260000000.0" + } }, { - "name": "hmrc.cgt.badr_ir_qualifying_gains_by_band.gain_100000_to_249999", + "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_1000000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 1866000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_fe7be6fa3787f96f36398a55" + "resolved_value": 1465501486.2500951, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_4f8e330da2fcd6774dd7ea1a", + "uprating": { + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", + "factor": "1.18185603729846", + "value_before_uprating": "1240000000.0" + } }, { - "name": "hmrc.cgt.badr_ir_qualifying_gains_by_band.gain_10000_to_24999", + "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_12570", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 129000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_8e3f3a1d2d2d368e10d09ace" + "resolved_value": 323828554.21977913, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_bd65aa884ad89d9837551b0e", + "uprating": { + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", + "factor": "1.18185603729846", + "value_before_uprating": "274000000.0" + } }, { - "name": "hmrc.cgt.badr_ir_qualifying_gains_by_band.gain_250000_to_499999", + "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_15000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 2901000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_72da20bfe653913d4e114ce3" + "resolved_value": 1619142771.0988955, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_34ecf84ec234f3525db59f91", + "uprating": { + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", + "factor": "1.18185603729846", + "value_before_uprating": "1370000000.0" + } }, { - "name": "hmrc.cgt.badr_ir_qualifying_gains_by_band.gain_25000_to_49999", + "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_150000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 224000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_01616813e32ffc4ddc891dcc" + "resolved_value": 768206424.2440015, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_89bdbe74eda3cee8844ad898", + "uprating": { + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", + "factor": "1.18185603729846", + "value_before_uprating": "650000000.0" + } }, { - "name": "hmrc.cgt.badr_ir_qualifying_gains_by_band.gain_500000_to_999999", + "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_20000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 5929000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_9a6304f7b15b3667e02ada02" + "resolved_value": 3699209396.744192, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_752ea2329d313046c61bf1e2", + "uprating": { + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", + "factor": "1.18185603729846", + "value_before_uprating": "3130000000.0" + } }, { - "name": "hmrc.cgt.badr_ir_qualifying_gains_by_band.gain_50000_to_99999", + "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_200000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 575000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_e213445138d034b04552af29" + "resolved_value": 866300475.339774, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_02f3a7f7b7097a3fd455b702", + "uprating": { + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", + "factor": "1.18185603729846", + "value_before_uprating": "733000000.0" + } }, { - "name": "hmrc.cgt.badr_ir_qualifying_gains_by_band.individuals_total", - "status": "signed_excluded", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, - "signed_row": { - "dimension": "cgt_badr_ir_gain_band", - "value": "total" - }, - "signed_rationale": "HMRC Table 4.1's individuals total row (61,000 claimants, GBP 18,443m of qualifying gains and GBP 1,821m of tax in 2024-25) is the sum of the eight published bands and carries no band edge, so it cannot be measured as a band row. Signed out of the band fan-out; the eight bands stay bound." - } - ] - }, - "hmrc.cgt.taxpayers_by_taxable_income_band": { - "status": "active", - "candidates": [ - { - "name": "hmrc.cgt.taxpayers_by_taxable_income_band.income_0_to_37699", + "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_30000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 292000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f28b96212db4bd74331f8289" + "resolved_value": 2990095774.3651137, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_d341b6820714e38a12ac4b1c", + "uprating": { + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", + "factor": "1.18185603729846", + "value_before_uprating": "2530000000.0" + } }, { - "name": "hmrc.cgt.taxpayers_by_taxable_income_band.income_100000_to_125139", + "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_300000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 21000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_bc20105eff5e931018c0ec5b" + "resolved_value": 795389113.1018662, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_8fc8bdb298f62c90d7af57b8", + "uprating": { + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", + "factor": "1.18185603729846", + "value_before_uprating": "673000000.0" + } }, { - "name": "hmrc.cgt.taxpayers_by_taxable_income_band.income_125140_to_199999", + "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_40000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 34000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_3ccfaab45013135497556c05" + "resolved_value": 2210070789.7481275, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_367d1c49bfab3c640463ded8", + "uprating": { + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", + "factor": "1.18185603729846", + "value_before_uprating": "1870000000.0" + } }, { - "name": "hmrc.cgt.taxpayers_by_taxable_income_band.income_200000_plus", + "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_50000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 62000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_265a5ff96328902a64f2ec39" + "resolved_value": 2765543127.2784057, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_819d2f77e45b3ba5a7907a4a", + "uprating": { + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", + "factor": "1.18185603729846", + "value_before_uprating": "2340000000.0" + } }, { - "name": "hmrc.cgt.taxpayers_by_taxable_income_band.income_37700_to_49999", + "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_500000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 49000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_2a4327f9ee7eaa9258805572" + "resolved_value": 771751992.355897, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_5d68b2314b5c54a09f274733", + "uprating": { + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", + "factor": "1.18185603729846", + "value_before_uprating": "653000000.0" + } }, { - "name": "hmrc.cgt.taxpayers_by_taxable_income_band.income_50000_to_99999", + "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_70000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 93000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_63ee0a3a5a137316b60dc445" + "resolved_value": 1914606780.4235115, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_ab8a5ac6dd4ba75e194133f1", + "uprating": { + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", + "factor": "1.18185603729846", + "value_before_uprating": "1620000000.0" + } } ] }, - "hmrc.cgt.gains_by_taxable_income_band": { + "hmrc.spi.savings_interest_income.count_by_total_income_band": { "status": "active", "candidates": [ { - "name": "hmrc.cgt.gains_by_taxable_income_band.income_0_to_37699", + "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_100000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 24551000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_34883c3349b61fb7875b85ce" + "resolved_value": 608465.2619589977, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_cc751c95928989eb960cb707", + "uprating": { + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.24430523917995", + "value_before_uprating": "489000.0" + } }, { - "name": "hmrc.cgt.gains_by_taxable_income_band.income_100000_to_125139", + "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_1000000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 5293000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f4f922a95f792326faf77ec8" + "resolved_value": 24500.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_b1146332a0862643714ecd16", + "uprating": { + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.16666666666667", + "value_before_uprating": "21000.0" + } }, { - "name": "hmrc.cgt.gains_by_taxable_income_band.income_125140_to_199999", + "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_12570", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 10948000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_62b93eaa7a9e2acf76ef70e2" + "resolved_value": 1303728.0701754387, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_8dc7ca35e8068968a019f95a", + "uprating": { + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.04298245614035", + "value_before_uprating": "1250000.0" + } }, { - "name": "hmrc.cgt.gains_by_taxable_income_band.income_200000_plus", + "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_15000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 55127000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f5177011b130ef1ad4338bb4" + "resolved_value": 2779656.419529837, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_67f08d2099c256d2dffa19e1", + "uprating": { + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "0.97875226039783", + "value_before_uprating": "2840000.0" + } }, { - "name": "hmrc.cgt.gains_by_taxable_income_band.income_37700_to_49999", + "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_150000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 6178000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_738e2f54bc21206d6af1b64d" + "resolved_value": 170209.1836734694, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_555072d001278266acad64d4", + "uprating": { + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.16581632653061", + "value_before_uprating": "146000.0" + } }, { - "name": "hmrc.cgt.gains_by_taxable_income_band.income_50000_to_99999", + "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_20000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 17160000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_342eca3641c9a9dd39b88c16" - } - ] - }, - "hmrc.itl.taxpayers_by_total_income_band": { - "status": "active", - "candidates": [ - { - "name": "hmrc.itl.taxpayers_by_total_income_band.band_100000_150000", - "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, - "resolved_period": 2025, - "resolved_value": 1092500.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_4dfde5206ad78ee391044162" - }, - { - "name": "hmrc.itl.taxpayers_by_total_income_band.band_1000000_2000000", - "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, - "resolved_period": 2025, - "resolved_value": 20750.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_20329726f977dd1779716b6f" - }, - { - "name": "hmrc.itl.taxpayers_by_total_income_band.band_12570_15000", - "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, - "resolved_period": 2025, - "resolved_value": 2972500.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_3a1683d0d0e8fc64df15bb7d" - }, - { - "name": "hmrc.itl.taxpayers_by_total_income_band.band_15000_20000", - "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, - "resolved_period": 2025, - "resolved_value": 5412500.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_b091ce428064d8fc92ddbf0e" + "resolved_value": 5262867.647058823, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_ee833e8b84d420fa560c50de", + "uprating": { + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.00245098039216", + "value_before_uprating": "5250000.0" + } }, { - "name": "hmrc.itl.taxpayers_by_total_income_band.band_150000_200000", + "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_200000", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 342750.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_bb4b5a0be61cc0bccb1f138e" + "resolved_value": 132950.16077170416, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_c9084328800ae8dd29f6fedc", + "uprating": { + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.19774919614148", + "value_before_uprating": "111000.0" + } }, { - "name": "hmrc.itl.taxpayers_by_total_income_band.band_20000_30000", + "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_30000", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 10225000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_ce6b9659ea26c8b1a2c12dcf" + "resolved_value": 4142708.333333333, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_53f5b48bbcf461f728be5b8f", + "uprating": { + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.12268518518519", + "value_before_uprating": "3690000.0" + } }, { - "name": "hmrc.itl.taxpayers_by_total_income_band.band_200000_500000", + "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_300000", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 372500.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_fb06142225a5cc3067c35d18" + "resolved_value": 81446.94533762058, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_c18d1294d4f9b41cd396a6ba", + "uprating": { + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.19774919614148", + "value_before_uprating": "68000.0" + } }, { - "name": "hmrc.itl.taxpayers_by_total_income_band.band_2000000_plus", + "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_40000", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 10750.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_fe7feb575130feb78a6e7590" + "resolved_value": 2660763.8888888885, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_abd9f1a8fe87970d0b8ad851", + "uprating": { + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.12268518518519", + "value_before_uprating": "2370000.0" + } }, { - "name": "hmrc.itl.taxpayers_by_total_income_band.band_30000_50000", + "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_50000", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 12125000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_ed1524af73b18d05ad5c2853" + "resolved_value": 2714273.204903678, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_2b269edb165684a70d5c1359", + "uprating": { + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.21716287215412", + "value_before_uprating": "2230000.0" + } }, { - "name": "hmrc.itl.taxpayers_by_total_income_band.band_50000_100000", + "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_500000", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 6950000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_215002b59ecd9283660632bc" + "resolved_value": 46092.59259259259, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_3c55f69b2611214dd3797239", + "uprating": { + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.21296296296296", + "value_before_uprating": "38000.0" + } }, { - "name": "hmrc.itl.taxpayers_by_total_income_band.band_500000_1000000", + "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_70000", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 65500.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_e19b3faa384ea09af15eb591" + "resolved_value": 1302364.2732049038, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_b6d8c5fb857de26f65fb7adb", + "uprating": { + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.21716287215412", + "value_before_uprating": "1070000.0" + } } ] }, - "hmrc.itl.total_income_by_total_income_band": { + "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band": { "status": "active", "candidates": [ { - "name": "hmrc.itl.total_income_by_total_income_band.band_100000_150000", + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_100000_150000", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 129750000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_4206ac3d1e306760a8cd90fe" + "resolved_value": 1748592941.2404864, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_69ca3488034d7d0999ea4445", + "uprating": { + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "1580000000.0" + } }, { - "name": "hmrc.itl.total_income_by_total_income_band.band_1000000_2000000", + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_1000000_plus", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 28425000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_082f58aced9f31b41d675e89" + "resolved_value": 9960339.538711632, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_e09d754eff2e1e564909379b", + "uprating": { + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "9000000.0" + } }, { - "name": "hmrc.itl.total_income_by_total_income_band.band_12570_15000", + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_12570_15000", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 40950000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_5740a6c464861ca01edbd05d" + "resolved_value": 167112363.37171736, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_a39a596f4452ac87dce45705", + "uprating": { + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "151000000.0" + } }, { - "name": "hmrc.itl.total_income_by_total_income_band.band_15000_20000", + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_15000_20000", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 94200000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_c837e9b3bf684218fe68ebad" + "resolved_value": 749238874.1897527, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_ce714b4f80dbbd968c06ba36", + "uprating": { + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "677000000.0" + } }, { - "name": "hmrc.itl.total_income_by_total_income_band.band_150000_200000", + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_150000_200000", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 58525000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_9dec94f99ff43c604bd0feeb" + "resolved_value": 785760119.1650287, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_9adb54bc49ea4994b46468e5", + "uprating": { + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "710000000.0" + } }, { - "name": "hmrc.itl.total_income_by_total_income_band.band_20000_30000", + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_20000_30000", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 253750000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_94d7a54a82d09ffcfdd550da" + "resolved_value": 2965967773.749686, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_11d669d44fe0ac81e7ac9fcc", + "uprating": { + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "2680000000.0" + } }, { - "name": "hmrc.itl.total_income_by_total_income_band.band_200000_500000", + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_200000_300000", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 108250000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_a3d99427060437f8ee20ad67" + "resolved_value": 418334260.6258885, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_2211d55a20fbe6510985fab1", + "uprating": { + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "378000000.0" + } }, { - "name": "hmrc.itl.total_income_by_total_income_band.band_2000000_plus", + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_30000_40000", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 55175000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_c0f84c920d7ec18ec2904a46" + "resolved_value": 3962001727.6208487, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_6663f19bf07b337d0f596bee", + "uprating": { + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "3580000000.0" + } }, { - "name": "hmrc.itl.total_income_by_total_income_band.band_30000_50000", + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_300000_500000", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 465500000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_48ee9145e8905c8c3a645c18" + "resolved_value": 150511797.47386464, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_a0fa23c34ca03fb21900996a", + "uprating": { + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "136000000.0" + } }, { - "name": "hmrc.itl.total_income_by_total_income_band.band_50000_100000", + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_40000_50000", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 455500000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_1cc7e9aefd34df9b8e1434f7" + "resolved_value": 4006269903.348456, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_cc84f08131e4e6b264c7fd80", + "uprating": { + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "3620000000.0" + } }, { - "name": "hmrc.itl.total_income_by_total_income_band.band_500000_1000000", + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_50000_70000", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 44350000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_8e0a8f6f4b49892884b60d7c" + "resolved_value": 5345382219.108575, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_9598d3c1f8b6f7f20c749957", + "uprating": { + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "4830000000.0" + } + }, + { + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_500000_1000000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 30987723.009325072, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_d881d51cc1c615ace3627f11", + "uprating": { + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "28000000.0" + } + }, + { + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_70000_100000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 2667157587.588337, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_c2dea35b8f673106284a6d14", + "uprating": { + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "2410000000.0" + } } ] }, - "hmrc.itl.income_tax_by_total_income_band": { + "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band": { "status": "active", "candidates": [ { - "name": "hmrc.itl.income_tax_by_total_income_band.band_100000_150000", + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_100000_150000", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 38000000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_69742f8204cc9ac1ef2c8e9e" + "resolved_value": 226463.55353075173, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_da03a2780fbba864d40f7010", + "uprating": { + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.24430523917995", + "value_before_uprating": "182000.0" + } }, { - "name": "hmrc.itl.income_tax_by_total_income_band.band_1000000_2000000", + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_1000000_plus", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 11550000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_4c0d2c52c414e75deb891a7a" + "resolved_value": 1166.6666666666667, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_aee102e14c8660157ed202cf", + "uprating": { + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.16666666666667", + "value_before_uprating": "1000.0" + } }, { - "name": "hmrc.itl.income_tax_by_total_income_band.band_12570_15000", + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_12570_15000", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 650750000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_0ab1c9f2169012fe9630ef63" + "resolved_value": 349399.1228070175, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_52052dcfa84c3b0620d8b980", + "uprating": { + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.04298245614035", + "value_before_uprating": "335000.0" + } }, { - "name": "hmrc.itl.income_tax_by_total_income_band.band_15000_20000", + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_15000_20000", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 4532500000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_11307d6a9a99ba80374bdf15" + "resolved_value": 988539.7830018083, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_5857734e278d6dd9c6f038c6", + "uprating": { + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "0.97875226039783", + "value_before_uprating": "1010000.0" + } }, { - "name": "hmrc.itl.income_tax_by_total_income_band.band_150000_200000", + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_150000_200000", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 20000000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_2954bada0d66920670eb5dec" + "resolved_value": 69948.97959183673, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_eca0d63510daab5cd94b5c08", + "uprating": { + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.16581632653061", + "value_before_uprating": "60000.0" + } + }, + { + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_20000_30000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 2435955.882352941, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_7b2fe2031fef3b5548e3f3c4", + "uprating": { + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.00245098039216", + "value_before_uprating": "2430000.0" + } + }, + { + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_200000_300000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 38327.974276527326, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_63aa600ed5f19c9fe4a56f51", + "uprating": { + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.19774919614148", + "value_before_uprating": "32000.0" + } }, { - "name": "hmrc.itl.income_tax_by_total_income_band.band_20000_30000", + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_30000_40000", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 23025000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_0ef61cad9a110b5774ccea20" + "resolved_value": 2121875.0, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_e67144b24c53ca5969c5e99b", + "uprating": { + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.12268518518519", + "value_before_uprating": "1890000.0" + } }, { - "name": "hmrc.itl.income_tax_by_total_income_band.band_200000_500000", + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_300000_500000", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 41075000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_919c63d863e7b92dc22868a9" + "resolved_value": 14372.990353697749, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_3dedd2e692e38c826782d028", + "uprating": { + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.19774919614148", + "value_before_uprating": "12000.0" + } }, { - "name": "hmrc.itl.income_tax_by_total_income_band.band_2000000_plus", + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_40000_50000", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 21800000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_2d60cb91572bce26d6ec18e0" + "resolved_value": 1425810.1851851852, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_7347727cb44787847d8e1292", + "uprating": { + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.12268518518519", + "value_before_uprating": "1270000.0" + } }, { - "name": "hmrc.itl.income_tax_by_total_income_band.band_30000_50000", + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_50000_70000", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 57925000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_1e89268f4fb8c2499ad07d88" + "resolved_value": 1460595.4465849388, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_df636cc5cb9af8d5b4772e17", + "uprating": { + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.21716287215412", + "value_before_uprating": "1200000.0" + } }, { - "name": "hmrc.itl.income_tax_by_total_income_band.band_50000_100000", + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_500000_1000000", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 86025000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_e5bde95ce263d795f9583630" + "resolved_value": 4851.851851851852, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_c260f5cd6c361c9311f0bb82", + "uprating": { + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.21296296296296", + "value_before_uprating": "4000.0" + } }, { - "name": "hmrc.itl.income_tax_by_total_income_band.band_500000_1000000", + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_70000_100000", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 18100000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_76841022d640a76385d5a2e7" + "resolved_value": 520945.7092819615, + "resolved_fact_period": "2023", + "resolved_fact_key": "ledger_aggregate_fact_v2_bb1de045c936f54320cc8681", + "uprating": { + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.21716287215412", + "value_before_uprating": "428000.0" + } } ] }, - "hmrc.spi.savings_interest_income.amount_by_total_income_band": { + "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band": { "status": "active", "candidates": [ { - "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_100000", + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_100000_150000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 1489138606.9960644, + "resolved_value": 2888498466.226373, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_0ef4a95b830d9e4e41b15e02", + "resolved_fact_key": "ledger_aggregate_fact_v2_ad786b998eed3e49ad12c0a7", "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", - "factor": "1.18185603729846", - "value_before_uprating": "1260000000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "2610000000.0" } }, { - "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_1000000", + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_1000000_plus", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 1465501486.2500951, + "resolved_value": 84109533.88245377, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_4f8e330da2fcd6774dd7ea1a", + "resolved_fact_key": "ledger_aggregate_fact_v2_8fa1705682f55cff9e18a0b5", "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", - "factor": "1.18185603729846", - "value_before_uprating": "1240000000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "76000000.0" } }, { - "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_12570", + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_12570_15000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 323828554.21977913, + "resolved_value": 193673268.80828172, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_bd65aa884ad89d9837551b0e", + "resolved_fact_key": "ledger_aggregate_fact_v2_d85ca871c404258929b62b14", "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", - "factor": "1.18185603729846", - "value_before_uprating": "274000000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "175000000.0" } }, { - "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_15000", + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_15000_20000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 1619142771.0988955, + "resolved_value": 775799779.626317, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_34ecf84ec234f3525db59f91", + "resolved_fact_key": "ledger_aggregate_fact_v2_f613cd427677fd0c6ec74446", "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", - "factor": "1.18185603729846", - "value_before_uprating": "1370000000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "701000000.0" } }, { - "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_150000", + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_150000_200000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 768206424.2440015, + "resolved_value": 1604721370.1257627, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_89bdbe74eda3cee8844ad898", + "resolved_fact_key": "ledger_aggregate_fact_v2_28dfee53a20f51baa78ce2e2", "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", - "factor": "1.18185603729846", - "value_before_uprating": "650000000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "1450000000.0" } }, { - "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_20000", + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_20000_30000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 3699209396.744192, + "resolved_value": 3120906388.796311, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_752ea2329d313046c61bf1e2", + "resolved_fact_key": "ledger_aggregate_fact_v2_818ba25d69b70814b2e69129", "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", - "factor": "1.18185603729846", - "value_before_uprating": "3130000000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "2820000000.0" } }, { - "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_200000", + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_200000_300000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 866300475.339774, + "resolved_value": 1261643008.2368066, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_02f3a7f7b7097a3fd455b702", + "resolved_fact_key": "ledger_aggregate_fact_v2_f1685e6eb7c2cd733e8666e0", "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", - "factor": "1.18185603729846", - "value_before_uprating": "733000000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "1140000000.0" } }, { - "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_30000", + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_30000_40000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 2990095774.3651137, + "resolved_value": 2833163246.566864, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_d341b6820714e38a12ac4b1c", + "resolved_fact_key": "ledger_aggregate_fact_v2_0a83445ae5da86296e31e6ae", "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", - "factor": "1.18185603729846", - "value_before_uprating": "2530000000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "2560000000.0" } }, { - "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_300000", + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_300000_500000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 795389113.1018662, + "resolved_value": 453748801.2079743, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_8fc8bdb298f62c90d7af57b8", + "resolved_fact_key": "ledger_aggregate_fact_v2_a2ed3fe8cb8ea8cdafbb57eb", "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", - "factor": "1.18185603729846", - "value_before_uprating": "673000000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "410000000.0" } }, { - "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_40000", + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_40000_50000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 2210070789.7481275, + "resolved_value": 2158073566.7208533, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_367d1c49bfab3c640463ded8", + "resolved_fact_key": "ledger_aggregate_fact_v2_43c82cc4e382737eae7e59b6", "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", - "factor": "1.18185603729846", - "value_before_uprating": "1870000000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "1950000000.0" } }, { - "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_50000", + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_50000_70000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 2765543127.2784057, + "resolved_value": 2899565510.1582747, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_819d2f77e45b3ba5a7907a4a", + "resolved_fact_key": "ledger_aggregate_fact_v2_1b0ff080c0f6274ec84d8194", "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", - "factor": "1.18185603729846", - "value_before_uprating": "2340000000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "2620000000.0" } }, { - "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_500000", + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_500000_1000000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 771751992.355897, + "resolved_value": 184819633.66276026, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_5d68b2314b5c54a09f274733", + "resolved_fact_key": "ledger_aggregate_fact_v2_7094bdafe2aafc7ebdbdbf71", "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", - "factor": "1.18185603729846", - "value_before_uprating": "653000000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "167000000.0" } }, { - "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_70000", + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_70000_100000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 1914606780.4235115, + "resolved_value": 2645023499.724533, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_ab8a5ac6dd4ba75e194133f1", + "resolved_fact_key": "ledger_aggregate_fact_v2_cce64f76ec702d7156fc0a7f", "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", - "factor": "1.18185603729846", - "value_before_uprating": "1620000000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "factor": "1.10670439319018", + "value_before_uprating": "2390000000.0" } } ] }, - "hmrc.spi.savings_interest_income.count_by_total_income_band": { + "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band": { "status": "active", "candidates": [ { - "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_100000", + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_100000_150000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 608465.2619589977, + "resolved_value": 332229.49886104785, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_cc751c95928989eb960cb707", + "resolved_fact_key": "ledger_aggregate_fact_v2_0e72018eb0ad9245363dfa56", "uprating": { "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", "factor": "1.24430523917995", - "value_before_uprating": "489000.0" + "value_before_uprating": "267000.0" } }, { - "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_1000000", + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_1000000_plus", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 24500.0, + "resolved_value": 8166.666666666667, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_b1146332a0862643714ecd16", + "resolved_fact_key": "ledger_aggregate_fact_v2_a7220ffd945f41bc1f8420a8", "uprating": { "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", "factor": "1.16666666666667", - "value_before_uprating": "21000.0" + "value_before_uprating": "7000.0" } }, { - "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_12570", + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_12570_15000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 1303728.0701754387, + "resolved_value": 538178.947368421, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_8dc7ca35e8068968a019f95a", + "resolved_fact_key": "ledger_aggregate_fact_v2_b9b586efc9ab9d4a6b054d9d", "uprating": { "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", "factor": "1.04298245614035", - "value_before_uprating": "1250000.0" + "value_before_uprating": "516000.0" } }, { - "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_15000", + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_15000_20000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 2779656.419529837, + "resolved_value": 1282165.4611211573, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_67f08d2099c256d2dffa19e1", + "resolved_fact_key": "ledger_aggregate_fact_v2_7b95a6a4cc78d60a04dd89f3", "uprating": { "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", "factor": "0.97875226039783", - "value_before_uprating": "2840000.0" + "value_before_uprating": "1310000.0" } }, { - "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_150000", + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_150000_200000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 170209.1836734694, + "resolved_value": 108420.91836734694, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_555072d001278266acad64d4", + "resolved_fact_key": "ledger_aggregate_fact_v2_610c984d016f5d1de385c867", "uprating": { "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", "factor": "1.16581632653061", - "value_before_uprating": "146000.0" + "value_before_uprating": "93000.0" } }, { - "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_20000", + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_20000_30000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 5262867.647058823, + "resolved_value": 3267990.1960784313, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_ee833e8b84d420fa560c50de", + "resolved_fact_key": "ledger_aggregate_fact_v2_627613cc1f1ee670ad30ccb8", "uprating": { "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", "factor": "1.00245098039216", - "value_before_uprating": "5250000.0" + "value_before_uprating": "3260000.0" } }, { - "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_200000", + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_200000_300000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 132950.16077170416, + "resolved_value": 74260.4501607717, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_c9084328800ae8dd29f6fedc", + "resolved_fact_key": "ledger_aggregate_fact_v2_906b2677a58cad2e8dbe77af", "uprating": { "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", "factor": "1.19774919614148", - "value_before_uprating": "111000.0" + "value_before_uprating": "62000.0" } }, { - "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_30000", + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_30000_40000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 4142708.333333333, + "resolved_value": 2211689.814814815, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_53f5b48bbcf461f728be5b8f", + "resolved_fact_key": "ledger_aggregate_fact_v2_7c4ca60e993c754568b1e747", "uprating": { "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", "factor": "1.12268518518519", - "value_before_uprating": "3690000.0" + "value_before_uprating": "1970000.0" } }, { - "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_300000", + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_300000_500000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 81446.94533762058, + "resolved_value": 33536.977491961414, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_c18d1294d4f9b41cd396a6ba", + "resolved_fact_key": "ledger_aggregate_fact_v2_1382eb43553da82b11fc0ea3", "uprating": { "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", "factor": "1.19774919614148", - "value_before_uprating": "68000.0" + "value_before_uprating": "28000.0" } }, { - "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_40000", + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_40000_50000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 2660763.8888888885, + "resolved_value": 1212500.0, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_abd9f1a8fe87970d0b8ad851", + "resolved_fact_key": "ledger_aggregate_fact_v2_c4f2ea45e164ef5b82da6b42", "uprating": { "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", "factor": "1.12268518518519", - "value_before_uprating": "2370000.0" + "value_before_uprating": "1080000.0" } }, { - "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_50000", + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_50000_70000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 2714273.204903678, + "resolved_value": 1194036.7775831874, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_2b269edb165684a70d5c1359", + "resolved_fact_key": "ledger_aggregate_fact_v2_3be9ba98483d526840fb85be", "uprating": { "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", "factor": "1.21716287215412", - "value_before_uprating": "2230000.0" + "value_before_uprating": "981000.0" } }, { - "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_500000", + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_500000_1000000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 46092.59259259259, + "resolved_value": 16981.48148148148, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_3c55f69b2611214dd3797239", + "resolved_fact_key": "ledger_aggregate_fact_v2_c101024b1a2949a598bb4685", "uprating": { "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", "factor": "1.21296296296296", - "value_before_uprating": "38000.0" + "value_before_uprating": "14000.0" } }, { - "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_70000", + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_70000_100000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 1302364.2732049038, + "resolved_value": 591541.1558669002, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_b6d8c5fb857de26f65fb7adb", + "resolved_fact_key": "ledger_aggregate_fact_v2_e4e549331f3c79ca34cef20f", "uprating": { "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", "factor": "1.21716287215412", - "value_before_uprating": "1070000.0" + "value_before_uprating": "486000.0" } } ] @@ -29060,7 +30292,7 @@ { "family": "hmrc_spi", "status": "active_with_signed_property_amount_exclusion", - "active_reference_count": 169, + "active_reference_count": 221, "signed_rationale": "SPI income-band targets fan out by strict total-income-band dimension pins, except the HMRC property-income amount surface. Those 13 rows are signed out because Ledger carries the official SPI Table 3.7 net property-income amounts, while the incumbent target applies the populace-side x1.9 property-income undercount adjustment traced to policyengine-uk-data PR #311 / issue #230 and HMRC Property Rental Income Statistics." }, { 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 4f6a08230..62d546b2b 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/target_references.json +++ b/packages/microcosm-build/src/microcosm/build/uk/target_references.json @@ -366,9 +366,13 @@ "hmrc.spi.dividend_income.count_by_total_income_band": "hmrc.survey_of_personal_incomes", "hmrc.spi.employment_income.amount_by_total_income_band": "hmrc.survey_of_personal_incomes", "hmrc.spi.employment_income.count_by_total_income_band": "hmrc.survey_of_personal_incomes", + "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band": "hmrc.survey_of_personal_incomes", + "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band": "hmrc.survey_of_personal_incomes", "hmrc.spi.private_pension_income.amount_by_total_income_band": "hmrc.survey_of_personal_incomes", "hmrc.spi.private_pension_income.count_by_total_income_band": "hmrc.survey_of_personal_incomes", "hmrc.spi.property_income.count_by_total_income_band": "hmrc.survey_of_personal_incomes", + "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band": "hmrc.survey_of_personal_incomes", + "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band": "hmrc.survey_of_personal_incomes", "hmrc.spi.savings_interest_income.amount_by_total_income_band": "hmrc.survey_of_personal_incomes", "hmrc.spi.savings_interest_income.count_by_total_income_band": "hmrc.survey_of_personal_incomes", "hmrc.spi.self_employment_income.amount_by_total_income_band": "hmrc.survey_of_personal_incomes", @@ -687,9 +691,13 @@ "hmrc.spi.dividend_income.count_by_total_income_band": "Count by total income band", "hmrc.spi.employment_income.amount_by_total_income_band": "Amount by total income band", "hmrc.spi.employment_income.count_by_total_income_band": "Count by total income band", + "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band": "Pension contributions under net pay arrangements, amount by total income band", + "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band": "Pension contributions under net pay arrangements, count by total income band", "hmrc.spi.private_pension_income.amount_by_total_income_band": "Amount by total income band", "hmrc.spi.private_pension_income.count_by_total_income_band": "Count by total income band", "hmrc.spi.property_income.count_by_total_income_band": "Count by total income band", + "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band": "Pension contributions under relief at source, amount by total income band", + "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band": "Pension contributions under relief at source, count by total income band", "hmrc.spi.savings_interest_income.amount_by_total_income_band": "Amount by total income band", "hmrc.spi.savings_interest_income.count_by_total_income_band": "Count by total income band", "hmrc.spi.self_employment_income.amount_by_total_income_band": "Amount by total income band", @@ -29809,6 +29817,1306 @@ "uprating_from_period": "2023", "uprating_to_period": 2025 }, + { + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_100000_150000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_net_pay_pension_contributions_amount", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 100000 + } + }, + "entity": "person", + "measure": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_100000_150000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_1000000_plus", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_net_pay_pension_contributions_amount", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 1000000 + } + }, + "entity": "person", + "measure": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_1000000_plus", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_12570_15000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_net_pay_pension_contributions_amount", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 12570 + } + }, + "entity": "person", + "measure": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_12570_15000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_15000_20000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_net_pay_pension_contributions_amount", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 15000 + } + }, + "entity": "person", + "measure": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_15000_20000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_150000_200000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_net_pay_pension_contributions_amount", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 150000 + } + }, + "entity": "person", + "measure": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_150000_200000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_20000_30000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_net_pay_pension_contributions_amount", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 20000 + } + }, + "entity": "person", + "measure": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_20000_30000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_200000_300000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_net_pay_pension_contributions_amount", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 200000 + } + }, + "entity": "person", + "measure": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_200000_300000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_30000_40000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_net_pay_pension_contributions_amount", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 30000 + } + }, + "entity": "person", + "measure": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_30000_40000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_300000_500000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_net_pay_pension_contributions_amount", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 300000 + } + }, + "entity": "person", + "measure": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_300000_500000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_40000_50000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_net_pay_pension_contributions_amount", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 40000 + } + }, + "entity": "person", + "measure": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_40000_50000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_50000_70000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_net_pay_pension_contributions_amount", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 50000 + } + }, + "entity": "person", + "measure": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_50000_70000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_500000_1000000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_net_pay_pension_contributions_amount", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 500000 + } + }, + "entity": "person", + "measure": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_500000_1000000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_70000_100000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_net_pay_pension_contributions_amount", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 70000 + } + }, + "entity": "person", + "measure": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_70000_100000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_100000_150000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_net_pay_pension_contributions_count", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 100000 + } + }, + "entity": "person", + "measure": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_100000_150000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_1000000_plus", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_net_pay_pension_contributions_count", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 1000000 + } + }, + "entity": "person", + "measure": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_1000000_plus", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_12570_15000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_net_pay_pension_contributions_count", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 12570 + } + }, + "entity": "person", + "measure": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_12570_15000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_15000_20000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_net_pay_pension_contributions_count", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 15000 + } + }, + "entity": "person", + "measure": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_15000_20000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_150000_200000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_net_pay_pension_contributions_count", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 150000 + } + }, + "entity": "person", + "measure": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_150000_200000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_20000_30000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_net_pay_pension_contributions_count", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 20000 + } + }, + "entity": "person", + "measure": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_20000_30000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_200000_300000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_net_pay_pension_contributions_count", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 200000 + } + }, + "entity": "person", + "measure": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_200000_300000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_30000_40000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_net_pay_pension_contributions_count", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 30000 + } + }, + "entity": "person", + "measure": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_30000_40000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_300000_500000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_net_pay_pension_contributions_count", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 300000 + } + }, + "entity": "person", + "measure": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_300000_500000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_40000_50000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_net_pay_pension_contributions_count", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 40000 + } + }, + "entity": "person", + "measure": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_40000_50000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_50000_70000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_net_pay_pension_contributions_count", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 50000 + } + }, + "entity": "person", + "measure": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_50000_70000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_500000_1000000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_net_pay_pension_contributions_count", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 500000 + } + }, + "entity": "person", + "measure": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_500000_1000000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_70000_100000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_net_pay_pension_contributions_count", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 70000 + } + }, + "entity": "person", + "measure": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_70000_100000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_100000_150000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_relief_at_source_pension_contributions_amount", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 100000 + } + }, + "entity": "person", + "measure": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_100000_150000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_1000000_plus", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_relief_at_source_pension_contributions_amount", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 1000000 + } + }, + "entity": "person", + "measure": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_1000000_plus", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_12570_15000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_relief_at_source_pension_contributions_amount", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 12570 + } + }, + "entity": "person", + "measure": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_12570_15000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_15000_20000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_relief_at_source_pension_contributions_amount", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 15000 + } + }, + "entity": "person", + "measure": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_15000_20000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_150000_200000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_relief_at_source_pension_contributions_amount", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 150000 + } + }, + "entity": "person", + "measure": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_150000_200000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_20000_30000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_relief_at_source_pension_contributions_amount", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 20000 + } + }, + "entity": "person", + "measure": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_20000_30000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_200000_300000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_relief_at_source_pension_contributions_amount", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 200000 + } + }, + "entity": "person", + "measure": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_200000_300000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_30000_40000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_relief_at_source_pension_contributions_amount", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 30000 + } + }, + "entity": "person", + "measure": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_30000_40000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_300000_500000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_relief_at_source_pension_contributions_amount", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 300000 + } + }, + "entity": "person", + "measure": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_300000_500000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_40000_50000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_relief_at_source_pension_contributions_amount", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 40000 + } + }, + "entity": "person", + "measure": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_40000_50000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_50000_70000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_relief_at_source_pension_contributions_amount", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 50000 + } + }, + "entity": "person", + "measure": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_50000_70000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_500000_1000000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_relief_at_source_pension_contributions_amount", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 500000 + } + }, + "entity": "person", + "measure": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_500000_1000000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_70000_100000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_relief_at_source_pension_contributions_amount", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 70000 + } + }, + "entity": "person", + "measure": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_70000_100000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_100000_150000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_relief_at_source_pension_contributions_count", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 100000 + } + }, + "entity": "person", + "measure": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_100000_150000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_1000000_plus", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_relief_at_source_pension_contributions_count", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 1000000 + } + }, + "entity": "person", + "measure": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_1000000_plus", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_12570_15000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_relief_at_source_pension_contributions_count", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 12570 + } + }, + "entity": "person", + "measure": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_12570_15000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_15000_20000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_relief_at_source_pension_contributions_count", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 15000 + } + }, + "entity": "person", + "measure": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_15000_20000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_150000_200000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_relief_at_source_pension_contributions_count", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 150000 + } + }, + "entity": "person", + "measure": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_150000_200000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_20000_30000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_relief_at_source_pension_contributions_count", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 20000 + } + }, + "entity": "person", + "measure": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_20000_30000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_200000_300000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_relief_at_source_pension_contributions_count", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 200000 + } + }, + "entity": "person", + "measure": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_200000_300000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_30000_40000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_relief_at_source_pension_contributions_count", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 30000 + } + }, + "entity": "person", + "measure": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_30000_40000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_300000_500000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_relief_at_source_pension_contributions_count", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 300000 + } + }, + "entity": "person", + "measure": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_300000_500000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_40000_50000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_relief_at_source_pension_contributions_count", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 40000 + } + }, + "entity": "person", + "measure": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_40000_50000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_50000_70000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_relief_at_source_pension_contributions_count", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 50000 + } + }, + "entity": "person", + "measure": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_50000_70000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_500000_1000000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_relief_at_source_pension_contributions_count", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 500000 + } + }, + "entity": "person", + "measure": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_500000_1000000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, + { + "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_70000_100000", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_relief_at_source_pension_contributions_count", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001", + "dimension_values": { + "total_income_lower_bound": 70000 + } + }, + "entity": "person", + "measure": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_70000_100000", + "family": "hmrc_spi", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band", + "measure_kind": "prepared_column" + }, + "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "uprating_from_period": "2023", + "uprating_to_period": 2025 + }, { "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@E12000001", "ledger_selector": { 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 fe6d2eebc..c9bb7b12f 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 @@ -823,7 +823,11 @@ "dwp.pension_credit.benefit_units_80_84": "Post-freeze fact family (DWP Stat-Xplore Pension Credit caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", "dwp.pension_credit.benefit_units_85_89": "Post-freeze fact family (DWP Stat-Xplore Pension Credit caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", "dwp.pension_credit.benefit_units_90_plus": "Post-freeze fact family (DWP Stat-Xplore Pension Credit caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", - "dfc_ni.pension_credit.benefit_units": "Post-freeze fact family (DfC Northern Ireland Pension Credit statistics, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069)." + "dfc_ni.pension_credit.benefit_units": "Post-freeze fact family (DfC Northern Ireland Pension Credit statistics, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", + "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band": "Post-freeze fact family (HMRC SPI 2023-24 Table 3.8, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", + "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band": "Post-freeze fact family (HMRC SPI 2023-24 Table 3.8, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", + "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band": "Post-freeze fact family (HMRC SPI 2023-24 Table 3.8, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", + "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band": "Post-freeze fact family (HMRC SPI 2023-24 Table 3.8, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069)." }, "suppressed_ancestors": { "hmrc/salary_sacrifice_it_relief_basic_rate": { @@ -1121,6 +1125,10 @@ "hmrc.itl.income_tax_by_total_income_band", "hmrc.spi.savings_interest_income.amount_by_total_income_band", "hmrc.spi.savings_interest_income.count_by_total_income_band", + "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band", + "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band", + "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band", + "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band", "hmrc.spi_region.taxpayers_by_region_12570_15000", "hmrc.spi_region.taxpayers_by_region_15000_20000", "hmrc.spi_region.taxpayers_by_region_20000_30000", @@ -18245,6 +18253,186 @@ "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", "selector_note": "Uprated from the SPI 2023-24 fact to the 2025 calibration period by HMRC's own projected growth in Income Tax payers for the Table 2.5 band containing this band (Income Tax liabilities statistics, July 2026): the calendar-2025 window of the 2024-25 and 2025-26 projections (3/12 and 9/12) over the 2023-24 outturn, from the vendored hmrc_itl_taxpayer_counts.json. Ruled by María on 2026-09-22 (PolicyEngine/chronicle#280 lane): calendar 2025, months to the end of the year for fiscal- and tax-year facts." }, + { + "target_id": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band", + "family": "hmrc_spi", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "person", + "map_to": "household", + "concept": "uk.pensions.contributions.net_pay.amount", + "groupby_dimension": "hmrc.total_income_band" + }, + "bindings": { + "policyengine": { + "metric_name": "hmrc/net_pay_pension_contributions_amount_income_band", + "value_variable": "employee_pension_contributions", + "from_entity": "person", + "map_to": "household", + "groupby_variable": "total_income", + "notes": "HMRC Survey of Personal Incomes 2023-24, collated Table 3.8 (deductions and reliefs by range of total income; PolicyEngine/chronicle#302 via #305): employee contributions deducted from pay before tax (the engine's employee_pension_contributions: reported workplace contributions not made by salary sacrifice), summed by person-level total income band; band edges come from the fact dimension (microcosm#1069 c8, R5)." + }, + "axiom": { + "metric_name": "hmrc/net_pay_pension_contributions_amount_income_band", + "status": "pending", + "value_rule": "uk.pensions.contributions.net_pay.amount" + } + }, + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_net_pay_pension_contributions_amount", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person" + }, + "category_id": "hmrc.survey_of_personal_incomes", + "label": "Pension contributions under net pay arrangements, amount by total income band", + "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "selector_note": "Uprated from the SPI 2023-24 fact to the 2025 calibration period by the pinned engine's gov.economic_assumptions.indices.obr.average_earnings between 1 January 2023 and 1 January 2025, the earnings applier R5 rules for contributions (microcosm#1069)." + }, + { + "target_id": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band", + "family": "hmrc_spi", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "person", + "map_to": "household", + "concept": "uk.person.count", + "groupby_dimension": "hmrc.total_income_band", + "filters": [ + { + "concept": "uk.pensions.contributions.net_pay.amount", + "operator": ">", + "value": 0 + } + ] + }, + "bindings": { + "policyengine": { + "metric_name": "hmrc/net_pay_pension_contributions_count_income_band", + "value_variable": "person_count", + "from_entity": "person", + "map_to": "household", + "groupby_variable": "total_income", + "notes": "HMRC Survey of Personal Incomes 2023-24, collated Table 3.8 (deductions and reliefs by range of total income; PolicyEngine/chronicle#302 via #305): employee contributions deducted from pay before tax (the engine's employee_pension_contributions: reported workplace contributions not made by salary sacrifice), counted where positive by person-level total income band; band edges come from the fact dimension (microcosm#1069 c8, R5).", + "filters": [ + { + "variable": "employee_pension_contributions", + "operator": ">", + "value": 0 + } + ] + }, + "axiom": { + "metric_name": "hmrc/net_pay_pension_contributions_count_income_band", + "status": "pending", + "value_rule": "uk.person.count" + } + }, + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_net_pay_pension_contributions_count", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person" + }, + "category_id": "hmrc.survey_of_personal_incomes", + "label": "Pension contributions under net pay arrangements, count by total income band", + "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "selector_note": "Uprated from the SPI 2023-24 fact to the 2025 calibration period by HMRC's projected growth in Income Tax payers for the Table 2.5 band containing this band, as the other SPI counts are (microcosm#1069)." + }, + { + "target_id": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band", + "family": "hmrc_spi", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "person", + "map_to": "household", + "concept": "uk.pensions.contributions.relief_at_source.amount", + "groupby_dimension": "hmrc.total_income_band" + }, + "bindings": { + "policyengine": { + "metric_name": "hmrc/relief_at_source_pension_contributions_amount_income_band", + "value_variable": "personal_pension_contributions", + "from_entity": "person", + "map_to": "household", + "groupby_variable": "total_income", + "notes": "HMRC Survey of Personal Incomes 2023-24, collated Table 3.8 (deductions and reliefs by range of total income; PolicyEngine/chronicle#302 via #305): contributions paid from taxed income with basic-rate relief added by the scheme (the engine's personal_pension_contributions, FRS personal and stakeholder pensions), summed by person-level total income band; band edges come from the fact dimension (microcosm#1069 c8, R5)." + }, + "axiom": { + "metric_name": "hmrc/relief_at_source_pension_contributions_amount_income_band", + "status": "pending", + "value_rule": "uk.pensions.contributions.relief_at_source.amount" + } + }, + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_relief_at_source_pension_contributions_amount", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person" + }, + "category_id": "hmrc.survey_of_personal_incomes", + "label": "Pension contributions under relief at source, amount by total income band", + "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", + "selector_note": "Uprated from the SPI 2023-24 fact to the 2025 calibration period by the pinned engine's gov.economic_assumptions.indices.obr.average_earnings between 1 January 2023 and 1 January 2025, the earnings applier R5 rules for contributions (microcosm#1069)." + }, + { + "target_id": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band", + "family": "hmrc_spi", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "person", + "map_to": "household", + "concept": "uk.person.count", + "groupby_dimension": "hmrc.total_income_band", + "filters": [ + { + "concept": "uk.pensions.contributions.relief_at_source.amount", + "operator": ">", + "value": 0 + } + ] + }, + "bindings": { + "policyengine": { + "metric_name": "hmrc/relief_at_source_pension_contributions_count_income_band", + "value_variable": "person_count", + "from_entity": "person", + "map_to": "household", + "groupby_variable": "total_income", + "notes": "HMRC Survey of Personal Incomes 2023-24, collated Table 3.8 (deductions and reliefs by range of total income; PolicyEngine/chronicle#302 via #305): contributions paid from taxed income with basic-rate relief added by the scheme (the engine's personal_pension_contributions, FRS personal and stakeholder pensions), counted where positive by person-level total income band; band edges come from the fact dimension (microcosm#1069 c8, R5).", + "filters": [ + { + "variable": "personal_pension_contributions", + "operator": ">", + "value": 0 + } + ] + }, + "axiom": { + "metric_name": "hmrc/relief_at_source_pension_contributions_count_income_band", + "status": "pending", + "value_rule": "uk.person.count" + } + }, + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.spi_relief_at_source_pension_contributions_count", + "groupby_dimension": "hmrc.total_income_band", + "entity_name": "person" + }, + "category_id": "hmrc.survey_of_personal_incomes", + "label": "Pension contributions under relief at source, count by total income band", + "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "selector_note": "Uprated from the SPI 2023-24 fact to the 2025 calibration period by HMRC's projected growth in Income Tax payers for the Table 2.5 band containing this band, as the other SPI counts are (microcosm#1069)." + }, { "target_id": "hmrc.spi_region.taxpayers_by_region_12570_15000", "family": "hmrc_spi_region", diff --git a/packages/microcosm-build/src/microcosm/build/uk_runtime/frs_spine.py b/packages/microcosm-build/src/microcosm/build/uk_runtime/frs_spine.py index f2c2f4d39..7d0ab38ba 100644 --- a/packages/microcosm-build/src/microcosm/build/uk_runtime/frs_spine.py +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/frs_spine.py @@ -732,14 +732,18 @@ def _add_person_expenses( ) penprov = frs["penprov"] pension_amount = _number(penprov, "penamt") - pension_clip = float(pension_amount.quantile(0.95)) if len(pension_amount) else 0.0 + # Personal and stakeholder pension contributions as reported, no longer + # clipped at the 95th percentile of every PENPROV amount: the clip removed + # 28% of the reported amount (1.8% of rows) against HMRC's relief-at-source + # total, which SPI Table 3.8 now binds by income band; the engine caps the + # relief itself at the annual allowance (microcosm#1069 c8). pe_person["personal_pension_contributions"] = np.maximum( 0, _sum_to_entity( pension_amount[_number(penprov, "stemppen").isin((5, 6))], penprov.loc[_number(penprov, "stemppen").isin((5, 6)), "person_id"], person["person_id"], - ).clip(0, pension_clip) + ) * WEEKS_IN_YEAR, ) job = frs["job"] diff --git a/packages/microcosm-build/tests/engine_free/shared/test_country_spec.py b/packages/microcosm-build/tests/engine_free/shared/test_country_spec.py index d464d3316..8768e2757 100644 --- a/packages/microcosm-build/tests/engine_free/shared/test_country_spec.py +++ b/packages/microcosm-build/tests/engine_free/shared/test_country_spec.py @@ -1126,7 +1126,7 @@ def test_uk_target_references_accept_regenerated_contract_fields(self) -> None: references = {reference.name: reference for reference in spec.target_references} assert ( - len(references) == 1224 + len(references) == 1276 ) # PolicyEngine/chronicle#280 lane: 705 + 33 HMRC liabilities rows (Table 2.5, three # measures by eleven bands) + 26 SPI savings-interest rows (two measures by # thirteen bands) + 360 SPI Table 3.11 region-tier rows (three measures by @@ -1140,7 +1140,8 @@ def test_uk_target_references_accept_regenerated_contract_fields(self) -> None: # Pension rows (4 levels, 14 age-by-sex cells, 22 area cells, 20 bands) # less the OBR State Pension line, now a diagnostic, and the signed-out # empty new State Pension £40-£60 band; 14 Pension Credit caseload rows - # (Great Britain total, six type-by-partner cells, six age bands, NI) + # (Great Britain total, six type-by-partner cells, six age bands, NI); + # 52 SPI Table 3.8 contribution rows (four measures by thirteen bands) assert references["obr.esa"].value_operation == "calendar_year_window" assert references["dwp.uc.households"].value_operation == ( "monthly_window_sum_average" diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_frs_spine.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_frs_spine.py index f9cf9ef37..ce94fbd8d 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_frs_spine.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_frs_spine.py @@ -1073,8 +1073,10 @@ def test_direct_person_mapping_values_are_ported(tmp_path: Path) -> None: assert adult["council_tax_benefit_reported"] == pytest.approx(WEEKS_IN_YEAR) assert adult["maintenance_expenses"] == pytest.approx(2 * WEEKS_IN_YEAR) assert adult["childcare_expenses"] == pytest.approx(5 * WEEKS_IN_YEAR) + # Reported personal and stakeholder amounts, no longer clipped at the 95th + # percentile of every PENPROV amount (microcosm#1069 c8). assert adult["personal_pension_contributions"] == pytest.approx( - 95.2 * WEEKS_IN_YEAR + 104.0 * WEEKS_IN_YEAR ) assert adult["employee_pension_contributions"] == pytest.approx(2 * WEEKS_IN_YEAR) assert adult["pension_contributions_via_salary_sacrifice"] == pytest.approx( diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_national_calibration.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_national_calibration.py index 3b0a2127d..3b32ab3f6 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_national_calibration.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_national_calibration.py @@ -53,7 +53,7 @@ from microcosm.calibrate.artifacts import decode_problem from microcosm.frame import EntitySchema, Frame, MassChange, WeightKind, Weights -ACTIVE_REFERENCE_COUNT = 1224 +ACTIVE_REFERENCE_COUNT = 1276 def _uc_reference(**overrides) -> LedgerTargetReference: diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_population_targets.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_population_targets.py index 9c64c1a8f..b56dc01df 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_population_targets.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_population_targets.py @@ -187,8 +187,9 @@ def test_uk_population_targets_shape_order_and_registry_accounting() -> None: "assertion_policy": "observed_only", } # 26 State Pension targets since microcosm#1069 c3; the OBR State Pension - # line became a diagnostic in c4; 14 Pension Credit caseload targets in c7. - assert len(resource["targets"]) == 385 + # line became a diagnostic in c4; 14 Pension Credit caseload targets in c7; + # four SPI pension contribution band targets in c8. + assert len(resource["targets"]) == 389 providers = resource["hierarchy"]["providers"] categories = resource["hierarchy"]["categories"] @@ -202,10 +203,10 @@ def test_uk_population_targets_shape_order_and_registry_accounting() -> None: 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) == 334 + assert len(registry_scope) == 338 assert len(profile_scope) == 51 - assert target_ids[:334] == registry_scope - assert target_ids[334:] == profile_scope + assert target_ids[:338] == registry_scope + assert target_ids[338:] == profile_scope parity = resource["registry_parity"] assert parity["pinned_ref"] == "12a1e028afeef08d8b2d74ee03fd9de3a78b2dd3" @@ -219,7 +220,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) == 193 - assert len(unmapped_declarations) == 141 + assert len(unmapped_declarations) == 145 suppressed_ancestors = parity["suppressed_ancestors"] assert len(suppressed_ancestors) == 5 assert set(suppressed_ancestors).isdisjoint(parity["mapped"]) @@ -338,7 +339,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) == 385 + assert len(target_ids) == 389 assert len(target_ids) == len(set(target_ids)) @@ -806,7 +807,7 @@ def test_uc_payment_bands_share_administrative_family_but_keep_source_window() - def test_paid_joint_diagnostics_do_not_add_active_targets() -> None: targets = _load()["targets"] - assert len(targets) == 385 + assert len(targets) == 389 assert not any( f.get("variable") == "uc_calibration_child_entitlement" for target in targets diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_target_references.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_target_references.py index a6ad5dcaf..255fce101 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_target_references.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_target_references.py @@ -64,7 +64,7 @@ _TEST_PATHS = paths_for("microcosm-build") -ACTIVE_REFERENCE_COUNT = 1224 +ACTIVE_REFERENCE_COUNT = 1276 REGION_TIER_LEVEL = {code: level for level, code in UK_REGION_TIER} UK_DATA_REPO = "policyengine-" + "uk-data" @@ -750,7 +750,7 @@ def test_uk_target_reference_membership_report_is_packaged() -> None: assert membership["target_period"] == 2025 assert membership["active_reference_count"] == ACTIVE_REFERENCE_COUNT assert membership["status_counts"] == { - "active": 1224, + "active": 1276, "no_fact_at_or_before_period": 7, "signed_excluded": 16, } @@ -768,7 +768,7 @@ def test_uk_target_reference_membership_report_is_packaged() -> None: { "family": "hmrc_spi", "status": "active_with_signed_property_amount_exclusion", - "active_reference_count": 169, + "active_reference_count": 221, "signed_rationale": ( "SPI income-band targets fan out by strict total-income-band " "dimension pins, except the HMRC property-income amount " From b19f14d9860a4bb8253103aa252311b4d804f93b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20Juaristi?= <127882282+juaristi22@users.noreply.github.com> Date: Thu, 1 Oct 2026 17:08:59 +0100 Subject: [PATCH 11/22] UK target-fit register: retire the state-pension 50-70k deferral (#1069) The SPI state-pension amount band for total income GBP 50,000 to 70,000 fits at +23.0 % on the c5-fix arm (+28.6 % on c4) and at +23.6 % and +24.0 % on the two c6 arms: the SPI channel's 66-year-olds receive the State Pension again (c5 fix), so the band is back inside the 25 % release bound and the terminal uk_target_fit gate fails its reviewed deferral (ruling D6 of 2026-09-23, expiring 2026-10-21) as stale. The entry is retired, as the SE deferrals were in 9c171730a and 8e77a9080; the register is empty. Co-Authored-By: Claude Opus 5.5 --- .../uk/target_fit_reviewed_exclusions.json | 10 +--------- .../engine_free/uk/test_uk_terminal_gates.py | 18 ++++++------------ 2 files changed, 7 insertions(+), 21 deletions(-) diff --git a/packages/microcosm-build/src/microcosm/build/uk/target_fit_reviewed_exclusions.json b/packages/microcosm-build/src/microcosm/build/uk/target_fit_reviewed_exclusions.json index 6a9c9660a..1e9d92c1d 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/target_fit_reviewed_exclusions.json +++ b/packages/microcosm-build/src/microcosm/build/uk/target_fit_reviewed_exclusions.json @@ -1,13 +1,5 @@ { "schema_version": 2, "description": "Reviewed target-fit exclusions for the UK terminal battery (schema 2 per #610). Each entry defers one calibration target whose |relative error| breaches the 25% release bound, with the defect diagnosed, tracked, and owned elsewhere; the receipt records the reasoning, approver, adjudication reference, approval date, and expiry. The gate keeps the target BOUND in calibration (exclusion applies to the release fence only, never the solve), reports dormant entries, FAILS stale ones (targets back inside the bound), and FAILS expired ones until the adjudication is renewed, so this register cannot rot.", - "exclusions": { - "hmrc/state_pension_income_band_50_000_to_70_000@2025": { - "reason": "Calibration-competition residual, not a data defect: the SPI state-pension amount band for total income GBP 50,000 to 70,000 (2023-24 Table 3.7, uprated by the new State Pension rate the engine pays) fitted at +23.4% on v21 and +27.6% on v21b (target GBP 5.26bn); the state-pension family sums 6.9% over its target because the engine pays every recipient the 2025-26 rate while the taxpayer counts by band fit within 1%, and this band carries the residual after the reserved income band donors moved the surrounding bands. Deferred four weeks while the state-pension amount anchor is scoped (PolicyEngine/chronicle#280 lane).", - "approved_by": "juaristi22", - "adjudication": "PolicyEngine/microcosm#1006 (issue comment 5812206367, the register rulings María gave in session: ruling D6 of 2026-09-23; income-anchor lane, PolicyEngine/chronicle#280)", - "approved_on": "2026-09-23", - "expires_on": "2026-10-21" - } - } + "exclusions": {} } diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_terminal_gates.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_terminal_gates.py index 0a6dad118..fcaf03d39 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_terminal_gates.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_terminal_gates.py @@ -394,18 +394,12 @@ def test_committed_target_fit_register_retains_only_live_deferrals() -> None: # calibration-competition residuals are deferred for four weeks. The SE # 12,570-15,000 income-tax deferral is retired in turn (microcosm#1012): # with the SPI households' housing imputed from their own incomes the row - # fits at +24.5 %, back inside the bound. - assert set(register) == { - "hmrc/state_pension_income_band_50_000_to_70_000@2025", - } - for name in sorted(register): - record = register[name] - assert record.approved_by == "juaristi22" - assert record.adjudication.startswith( - "PolicyEngine/microcosm#1006 (issue comment 5812206367" - ) - assert record.approved_on == "2026-09-23" - assert record.expires_on == "2026-10-21" + # fits at +24.5 %, back inside the bound. The state-pension 50-70k + # deferral (ruling D6) is retired in turn (microcosm#1069): with the SPI + # channel's State Pension at 66 repaired the row fits at +23.0 % to +24.0 % + # across the c5-fix and c6 arms, back inside the bound. The register is + # empty. + assert set(register) == set() # Aggregate errors from the fresh UC #882 development run: 1,500 epochs with From 8b3e9f99392d148ffdfb41188d6390ea89e2a17c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20Juaristi?= <127882282+juaristi22@users.noreply.github.com> Date: Thu, 1 Oct 2026 16:46:16 +0100 Subject: [PATCH 12/22] Draw employer pension contributions from ASHE rate bands and bind workplace pension contributions (#1069 c9) The FRS HMRC spine leaves set employer contributions to three times the employee contribution. Each member of an employer scheme (PENPROV.STEMPPEN 1-4, occupational first) now draws a rate inside an ASHE 2024 rate band for their scheme type and job sector (JOB.JOBSECT), applied to their pay; the bands are a vendored Chronicle resource (81 rows; all-sector bands are the public and private bands weighted by Table P2 jobs). The leaves stage now reads pay (graph consumes employment_income) and the penprov and job tabs; the HMRC/SPI chain contract expects the new operation. Converted salary-sacrifice records lose the sacrificed amount from employment_income. Contract (R6, R10; PolicyEngine/chronicle#302 via #305): - DWP employer contributions into workplace pensions, calendar 2025, all savers, Great Britain (GBP 104.2bn), against the engine's employer contributions plus salary sacrifice; - gross employee contributions (GBP 45.5bn net of tax plus GBP 20.7bn relief = GBP 66.2bn), a linear combination whose operands, not the row selector, pick the saving components; - the 2024-25 salary-sacrifice amount, HMRC Table 6.2's employer NICs relief over 13.8% (GBP 24.6bn), at the default latest-not-after policy; - the salary-sacrifice users total (7.7m) leaves the fit. Active national references 1,276 -> 1,278. The new hierarchy category dwp.workplace_pensions moves the local references; the coverage manifest moves with the stage; the charter-H2 fixture writes JOBSECT and an occupational scheme on even households. Co-Authored-By: Claude Opus 5.5 --- ...ployer-pension-contributions-1069.added.md | 3 + .../src/microcosm/build/source_manifest.py | 1 + .../spec_engine/schema/sources.schema.json | 32 + ...e_employer_pension_contribution_rates.json | 4118 +++++++++++++++++ .../microcosm/build/uk/country_package.json | 5 + ...ity_incumbent_2025_signed_differences.json | 46 +- ...ty_production_2023_signed_differences.json | 13 +- .../uk/ledger_fact_vendor_selections.json | 61 + .../build/uk/local_target_references.json | 4 + .../uk/release_input_coverage_manifest.json | 38 +- .../src/microcosm/build/uk/source_stages.json | 68 +- .../src/microcosm/build/uk/spec/sources.yaml | 56 +- .../build/uk/target_reference_membership.json | 90 +- .../microcosm/build/uk/target_references.json | 146 +- .../build/uk/uk_population_targets.json | 266 +- .../employer_pension_contributions.py | 301 ++ .../src/microcosm/build/uk_runtime/graph.py | 5 +- .../build/uk_runtime/hmrc_source_contract.py | 3 +- .../build/uk_runtime/salary_sacrifice.py | 21 +- .../microcosm/build/uk_runtime/spi_spine.py | 69 +- .../engine_free/shared/test_country_spec.py | 8 +- .../test_uk_employer_pension_contributions.py | 152 + .../uk/test_uk_national_calibration.py | 2 +- .../uk/test_uk_population_targets.py | 20 +- .../uk/test_uk_salary_sacrifice.py | 7 + .../engine_free/uk/test_uk_source_stages.py | 3 +- .../tests/engine_free/uk/test_uk_spi_spine.py | 21 +- .../uk/test_uk_target_references.py | 4 +- .../parity/uk_spine/sources/fixture.json | 70 +- .../parity/uk_spine/sources/frs_raw/job.tab | 272 +- .../uk_spine/sources/frs_raw/penprov.tab | 67 + .../fixtures/parity/uk_spine/uk_spine.json | 2 +- tools/graph_uk_spine_fixture.py | 13 + 33 files changed, 5652 insertions(+), 335 deletions(-) create mode 100644 changelog.d/uk-employer-pension-contributions-1069.added.md create mode 100644 packages/microcosm-build/src/microcosm/build/uk/ashe_employer_pension_contribution_rates.json create mode 100644 packages/microcosm-build/src/microcosm/build/uk_runtime/employer_pension_contributions.py create mode 100644 packages/microcosm-build/tests/engine_free/uk/test_uk_employer_pension_contributions.py diff --git a/changelog.d/uk-employer-pension-contributions-1069.added.md b/changelog.d/uk-employer-pension-contributions-1069.added.md new file mode 100644 index 000000000..39bc6df2d --- /dev/null +++ b/changelog.d/uk-employer-pension-contributions-1069.added.md @@ -0,0 +1,3 @@ +Draw UK employer pension contributions from ASHE rate bands and bind workplace pension contributions (#1069 c9; PolicyEngine/chronicle#302 via #305). The FRS HMRC spine leaves no longer set employer contributions to three times the employee contribution. Each member of an employer scheme (FRS `PENPROV.STEMPPEN` 1 to 4; occupational first when a person reports several) draws a contribution rate within an ASHE 2024 Table P10 rate band for their scheme type and job sector (`JOB.JOBSECT`), and the rate applies to their pay. The bands are vendored as `ashe_employer_pension_contribution_rates.json` (81 rows); all-sector rows are the public and private bands weighted by Table P2 jobs. Converted salary-sacrifice records now also lose the sacrificed amount from `employment_income`. + +Three targets: DWP's employer contributions into workplace pensions in calendar 2025 (£104.2bn, Great Britain, all savers, 2025 earnings terms) against the engine's employer contributions plus salary sacrifice, which ASHE and DWP count as an employer contribution; DWP's gross employee contributions (£66.2bn: the employee part net of tax, £45.5bn, plus its tax relief, £20.7bn) against the engine's employee contributions; and the 2024-25 salary-sacrifice amount, HMRC Table 6.2's employer National Insurance relief divided by the 13.8% employer rate (about £24.6bn, a declared conversion until the relief rows bind directly). The salary-sacrifice users total (7.7m) leaves the fit; the two headcounts either side of £2,000 stay bound. diff --git a/packages/microcosm-build/src/microcosm/build/source_manifest.py b/packages/microcosm-build/src/microcosm/build/source_manifest.py index 5d95fc5b8..be741c594 100644 --- a/packages/microcosm-build/src/microcosm/build/source_manifest.py +++ b/packages/microcosm-build/src/microcosm/build/source_manifest.py @@ -108,6 +108,7 @@ "derive_wic_claim", "disaggregate_aggregate_records", "draw_capital_gains_prior_from_banded_quantiles", + "draw_employer_pension_contributions_from_rate_bands", "draw_spi_donor_ages_by_population", "fit_labor_market_models", "fit_tip_income_model", 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 1f9c63be1..eaf7c3993 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 @@ -8638,6 +8638,38 @@ } } }, + { + "type": "object", + "additionalProperties": false, + "required": [ + "kind", + "output", + "artifact_role", + "resource", + "scheme_source", + "sector_source", + "occupational_split", + "rate_basis", + "top_band_ceiling", + "seed", + "salts" + ], + "properties": { + "kind": { + "const": "draw_employer_pension_contributions_from_rate_bands" + }, + "output": {"type": "string"}, + "artifact_role": {"type": "string"}, + "resource": {"type": "string"}, + "scheme_source": {"type": "string"}, + "sector_source": {"type": "string"}, + "occupational_split": {"type": "string"}, + "rate_basis": {"type": "string"}, + "top_band_ceiling": {"type": "number"}, + "seed": {"type": "integer"}, + "salts": {"type": "array", "items": {"type": "string"}} + } + }, { "type": "object", "additionalProperties": false, diff --git a/packages/microcosm-build/src/microcosm/build/uk/ashe_employer_pension_contribution_rates.json b/packages/microcosm-build/src/microcosm/build/uk/ashe_employer_pension_contribution_rates.json new file mode 100644 index 000000000..f55f3b992 --- /dev/null +++ b/packages/microcosm-build/src/microcosm/build/uk/ashe_employer_pension_contribution_rates.json @@ -0,0 +1,4118 @@ +{ + "schema_version": 1, + "country": "uk", + "kind": "uk_vendored_ledger_facts", + "resource": "ashe_employer_pension_contribution_rates.json", + "purpose": "ONS ASHE 2024 workplace pension tables: the share of jobs in each employer contribution band (full pay) by pension type and sector, all industries (Table P10), and jobs by pension type and sector (Table P2). Consumed by the FRS HMRC spine-leaves stage, which draws each employer-scheme member's employer contribution rate for their scheme type and sector (microcosm#1069 c9, R6).", + "consumers": [ + "uk_runtime.employer_pension_contributions" + ], + "planned_consumers": [], + "policy": "Rows are copied verbatim from the pinned Chronicle consumer feed named in source_fact_feed; every value is a publisher-stated fact. Consumers declare their own arithmetic on these rows and never edit this file by hand: regenerate it with tools/vendor_uk_ledger_facts.py.", + "generator": { + "tool": "tools/vendor_uk_ledger_facts.py", + "version": 1 + }, + "source_fact_feed": { + "source_repo": "PolicyEngine/chronicle", + "source_commit": "825406f98913ab7324c834c3642804e9317a2256", + "build": "build-bundle --suite uk -> build-consumer-artifact", + "artifact_schema_version": "policyengine_ledger.consumer_artifact.v2", + "fact_row_count": 344402, + "facts_sha256": "28b7105761be48ff01244bd0e28f4b579bac103f2c4a98473a04e2cc4303eb3d", + "manifest_sha256": "6e04a43d7dca4d398e14c0ec59ec983477633ba3e9bef062a8843f554dcb7119" + }, + "selections": [ + { + "label": "ashe_p10_employer_rate_band_share_full_pay_by_type_and_sector", + "selector": { + "source_name": "ons", + "source_concept": "ons.workplace_pension_employer_contribution_band_share", + "geography_id": "K02000001", + "period_type": "calendar_year", + "period_value": [ + "2024" + ], + "dimensions": [ + "contribution_basis", + "employer_contribution_rate_band", + "pension_type", + "sector", + "sic2007_section", + "sic2007_summary_category" + ], + "dimension_values": { + "contribution_basis": "full_pay", + "sic2007_section": "all", + "sic2007_summary_category": "all" + } + }, + "row_count": 68 + }, + { + "label": "ashe_p2_jobs_by_type_and_sector", + "selector": { + "source_name": "ons", + "source_concept": "ons.workplace_pension_jobs_by_type", + "geography_id": "K02000001", + "period_type": "calendar_year", + "period_value": [ + "2024" + ], + "dimensions": [ + "pension_type", + "sector", + "sic2007_section", + "sic2007_summary_category", + "weekly_earnings_band" + ], + "dimension_values": { + "sic2007_section": "all", + "sic2007_summary_category": "all", + "weekly_earnings_band": "all" + } + }, + "row_count": 13 + } + ], + "row_count": 81, + "rows": [ + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_93c0cdb16a77b0b81b59f540", + "semantic_fact_key": "ledger_semantic_fact_v2_60586902e9dd81987b452fdf", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.10_to_12.share.cy2024.private_sector__all_pension_types.share_10_to_12", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_10_to_12", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.10_to_12.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "private_sector__all_pension_types", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "10% to < 12%", + "pension_type": "all", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 5.4 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_eefa99a3a5fdcc3983efb156", + "semantic_fact_key": "ledger_semantic_fact_v2_62d99c5b4019188ae8683a5d", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.12_to_15.share.cy2024.private_sector__all_pension_types.share_12_to_15", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_12_to_15", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.12_to_15.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "private_sector__all_pension_types", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "12% to < 15%", + "pension_type": "all", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 5.2 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_6ce0ebb782764efc07c2aadb", + "semantic_fact_key": "ledger_semantic_fact_v2_221f2158d0f9620786e9399c", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.15_to_20.share.cy2024.private_sector__all_pension_types.share_15_to_20", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_15_to_20", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.15_to_20.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "private_sector__all_pension_types", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "15% to < 20%", + "pension_type": "all", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 2.4 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_803e0f9848bece059795731a", + "semantic_fact_key": "ledger_semantic_fact_v2_3d4e5a501a983b3f01fc6f0d", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.20_and_over.share.cy2024.private_sector__all_pension_types.share_20_and_over", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_20_and_over", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.20_and_over.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "private_sector__all_pension_types", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "20% and over", + "pension_type": "all", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 2.2 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_1216210b2ec6b7997e467f8d", + "semantic_fact_key": "ledger_semantic_fact_v2_aa6dec806a6f8745f4746789", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.4_to_8.share.cy2024.private_sector__all_pension_types.share_4_to_8", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_4_to_8", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.4_to_8.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "private_sector__all_pension_types", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "4% to < 8%", + "pension_type": "all", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 28.4 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_8cfe946485ce77a0061ae53e", + "semantic_fact_key": "ledger_semantic_fact_v2_ab1755f3314da7d04d43fbe4", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.8_to_10.share.cy2024.private_sector__all_pension_types.share_8_to_10", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_8_to_10", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.8_to_10.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "private_sector__all_pension_types", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "8% to < 10%", + "pension_type": "all", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 8 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_a001a3e905400d9b01baf361", + "semantic_fact_key": "ledger_semantic_fact_v2_743bb8299fd68234a7fdefe6", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.under_4.share.cy2024.private_sector__all_pension_types.share_under_4", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_under_4", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.under_4.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "private_sector__all_pension_types", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "Under 4%", + "pension_type": "all", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 48.4 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_6a31d9e670950dc7f9120acb", + "semantic_fact_key": "ledger_semantic_fact_v2_d35bf969c372973e0f731a8e", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.10_to_12.share.cy2024.private_sector__defined_benefit.share_10_to_12", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_10_to_12", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.10_to_12.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "private_sector__defined_benefit", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "10% to < 12%", + "pension_type": "defined_benefit", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 3.7 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_1862003590801261b1caedd4", + "semantic_fact_key": "ledger_semantic_fact_v2_9dd70da7e66ee03578cc7139", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.12_to_15.share.cy2024.private_sector__defined_benefit.share_12_to_15", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_12_to_15", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.12_to_15.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "private_sector__defined_benefit", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "12% to < 15%", + "pension_type": "defined_benefit", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 19.4 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_18407118c82d979d52f81aac", + "semantic_fact_key": "ledger_semantic_fact_v2_7f1f044ef18c8e061c4e6c24", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.15_to_20.share.cy2024.private_sector__defined_benefit.share_15_to_20", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_15_to_20", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.15_to_20.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "private_sector__defined_benefit", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "15% to < 20%", + "pension_type": "defined_benefit", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 7.5 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_46f6ce1ff44e94d67792d345", + "semantic_fact_key": "ledger_semantic_fact_v2_244d4848fc5fc2d53eb2094c", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.20_and_over.share.cy2024.private_sector__defined_benefit.share_20_and_over", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_20_and_over", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.20_and_over.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "private_sector__defined_benefit", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "20% and over", + "pension_type": "defined_benefit", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 11.4 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_7e2bd273b45315e79a081c7d", + "semantic_fact_key": "ledger_semantic_fact_v2_e7a8552ca0da66aac84f21eb", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.4_to_8.share.cy2024.private_sector__defined_benefit.share_4_to_8", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_4_to_8", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.4_to_8.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "private_sector__defined_benefit", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "4% to < 8%", + "pension_type": "defined_benefit", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 18.5 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_0adcc1eb328379cd4aa7dded", + "semantic_fact_key": "ledger_semantic_fact_v2_1981b1c2ddbc1bc8222efd56", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.8_to_10.share.cy2024.private_sector__defined_benefit.share_8_to_10", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_8_to_10", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.8_to_10.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "private_sector__defined_benefit", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "8% to < 10%", + "pension_type": "defined_benefit", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 5.2 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_4cb1415c8b69672913193a39", + "semantic_fact_key": "ledger_semantic_fact_v2_3d35d536f9222ca08c179f79", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.under_4.share.cy2024.private_sector__defined_benefit.share_under_4", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_under_4", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.under_4.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "private_sector__defined_benefit", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "Under 4%", + "pension_type": "defined_benefit", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 34.3 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_f1e93f5efb1e63b0e720cf59", + "semantic_fact_key": "ledger_semantic_fact_v2_399b35a22bc0bd500598eca4", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.10_to_12.share.cy2024.private_sector__defined_contribution.share_10_to_12", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_10_to_12", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.10_to_12.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "private_sector__defined_contribution", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "10% to < 12%", + "pension_type": "defined_contribution", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 6.1 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_ead155b7c4b46fbb809edf97", + "semantic_fact_key": "ledger_semantic_fact_v2_4589b9ed81e6537d6f1225b2", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.12_to_15.share.cy2024.private_sector__defined_contribution.share_12_to_15", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_12_to_15", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.12_to_15.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "private_sector__defined_contribution", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "12% to < 15%", + "pension_type": "defined_contribution", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 4.1 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_bb71c29d73d028536f804305", + "semantic_fact_key": "ledger_semantic_fact_v2_dd41a6bce05da8fec8ef75b1", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.15_to_20.share.cy2024.private_sector__defined_contribution.share_15_to_20", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_15_to_20", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.15_to_20.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "private_sector__defined_contribution", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "15% to < 20%", + "pension_type": "defined_contribution", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 2.2 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_7a2ecb366ad58d4d1b97dccb", + "semantic_fact_key": "ledger_semantic_fact_v2_b5f359d7efc69fbbca51b05b", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.20_and_over.share.cy2024.private_sector__defined_contribution.share_20_and_over", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_20_and_over", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.20_and_over.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "private_sector__defined_contribution", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "20% and over", + "pension_type": "defined_contribution", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 1.2 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_556c513fa47866299dd4100c", + "semantic_fact_key": "ledger_semantic_fact_v2_fb80870f6152fdca5b424564", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.4_to_8.share.cy2024.private_sector__defined_contribution.share_4_to_8", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_4_to_8", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.4_to_8.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "private_sector__defined_contribution", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "4% to < 8%", + "pension_type": "defined_contribution", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 23.8 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_044abe3d6eab0d3e1b82295b", + "semantic_fact_key": "ledger_semantic_fact_v2_ec4d895986500bfef15cc525", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.8_to_10.share.cy2024.private_sector__defined_contribution.share_8_to_10", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_8_to_10", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.8_to_10.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "private_sector__defined_contribution", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "8% to < 10%", + "pension_type": "defined_contribution", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 8.5 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_fb0d06b00163204f667ab27e", + "semantic_fact_key": "ledger_semantic_fact_v2_f7aa5e95a878af2dd503384c", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.under_4.share.cy2024.private_sector__defined_contribution.share_under_4", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_under_4", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.under_4.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "private_sector__defined_contribution", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "Under 4%", + "pension_type": "defined_contribution", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 54.1 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_4fb9bee84fba03efce7a6a06", + "semantic_fact_key": "ledger_semantic_fact_v2_f43c64d108d7b2fa479e3bdd", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.10_to_12.share.cy2024.private_sector__group_personal_pension.share_10_to_12", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_10_to_12", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.10_to_12.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "private_sector__group_personal_pension", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "10% to < 12%", + "pension_type": "group_personal_pension", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 4.6 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_c35510ba1b3ed2f0370fbad2", + "semantic_fact_key": "ledger_semantic_fact_v2_5b6c83182427335941b39f16", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.12_to_15.share.cy2024.private_sector__group_personal_pension.share_12_to_15", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_12_to_15", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.12_to_15.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "private_sector__group_personal_pension", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "12% to < 15%", + "pension_type": "group_personal_pension", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 3.3 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_7dd42732996af44074b5057a", + "semantic_fact_key": "ledger_semantic_fact_v2_a3446d5f662dd301955ea057", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.15_to_20.share.cy2024.private_sector__group_personal_pension.share_15_to_20", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_15_to_20", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.15_to_20.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "private_sector__group_personal_pension", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "15% to < 20%", + "pension_type": "group_personal_pension", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 1.5 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_d4226e6982cbbeba004660ec", + "semantic_fact_key": "ledger_semantic_fact_v2_c6699f23c7440abcadc52a45", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.20_and_over.share.cy2024.private_sector__group_personal_pension.share_20_and_over", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_20_and_over", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.20_and_over.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "private_sector__group_personal_pension", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "20% and over", + "pension_type": "group_personal_pension", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 1.2 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_869faf29ed63489db9de1499", + "semantic_fact_key": "ledger_semantic_fact_v2_6a9074bd247ceb582cd209c3", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.4_to_8.share.cy2024.private_sector__group_personal_pension.share_4_to_8", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_4_to_8", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.4_to_8.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "private_sector__group_personal_pension", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "4% to < 8%", + "pension_type": "group_personal_pension", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 38.6 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_863b02300ce178c5016a4ad4", + "semantic_fact_key": "ledger_semantic_fact_v2_272ffcc03a7f956ecd084552", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.8_to_10.share.cy2024.private_sector__group_personal_pension.share_8_to_10", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_8_to_10", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.8_to_10.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "private_sector__group_personal_pension", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "8% to < 10%", + "pension_type": "group_personal_pension", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 8.3 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_ef9561d1d4936bf816f832be", + "semantic_fact_key": "ledger_semantic_fact_v2_0659b2d56d0c997d8db35274", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.under_4.share.cy2024.private_sector__group_personal_pension.share_under_4", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_under_4", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.under_4.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "private_sector__group_personal_pension", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "Under 4%", + "pension_type": "group_personal_pension", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 42.6 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_f9ffbb4b15752976242022ae", + "semantic_fact_key": "ledger_semantic_fact_v2_3ae713c73cabacf58d6be777", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.10_to_12.share.cy2024.private_sector__group_self_invested_personal_pension.share_10_to_12", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_10_to_12", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.10_to_12.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "private_sector__group_self_invested_personal_pension", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "10% to < 12%", + "pension_type": "group_self_invested_personal_pension", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 6.6 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_408ed671e319763dfddb3fba", + "semantic_fact_key": "ledger_semantic_fact_v2_9bb3d5d6d20e2fefba937506", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.12_to_15.share.cy2024.private_sector__group_self_invested_personal_pension.share_12_to_15", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_12_to_15", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.12_to_15.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "private_sector__group_self_invested_personal_pension", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "12% to < 15%", + "pension_type": "group_self_invested_personal_pension", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 4 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_78f8d635f39f449faf785df5", + "semantic_fact_key": "ledger_semantic_fact_v2_9141d01577378803c2dc9986", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.20_and_over.share.cy2024.private_sector__group_self_invested_personal_pension.share_20_and_over", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_20_and_over", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.20_and_over.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "private_sector__group_self_invested_personal_pension", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "20% and over", + "pension_type": "group_self_invested_personal_pension", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 1.6 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_690cd04f82a4d2e61ef746ac", + "semantic_fact_key": "ledger_semantic_fact_v2_700210e1c6c567096b3a3f51", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.4_to_8.share.cy2024.private_sector__group_self_invested_personal_pension.share_4_to_8", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_4_to_8", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.4_to_8.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "private_sector__group_self_invested_personal_pension", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "4% to < 8%", + "pension_type": "group_self_invested_personal_pension", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 50.9 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_d76db16b72cf91dfef98aad3", + "semantic_fact_key": "ledger_semantic_fact_v2_df0a7cb12af06184358517c8", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.8_to_10.share.cy2024.private_sector__group_self_invested_personal_pension.share_8_to_10", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_8_to_10", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.8_to_10.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "private_sector__group_self_invested_personal_pension", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "8% to < 10%", + "pension_type": "group_self_invested_personal_pension", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 10.5 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_593763a4a3d9100460c6ed4b", + "semantic_fact_key": "ledger_semantic_fact_v2_9f2dec853b3ecde19949c5d4", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.under_4.share.cy2024.private_sector__group_self_invested_personal_pension.share_under_4", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_under_4", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.under_4.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "private_sector__group_self_invested_personal_pension", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "Under 4%", + "pension_type": "group_self_invested_personal_pension", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 25.3 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_4eb7f7ae6fca6ac2f5bdbb53", + "semantic_fact_key": "ledger_semantic_fact_v2_0d048518603576191847709c", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.10_to_12.share.cy2024.private_sector__group_stakeholder_pension.share_10_to_12", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_10_to_12", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.10_to_12.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "private_sector__group_stakeholder_pension", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "10% to < 12%", + "pension_type": "group_stakeholder_pension", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 4.6 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_51008f70bd9e7a08ae14e8e7", + "semantic_fact_key": "ledger_semantic_fact_v2_dd15b4b76f448e606bcd1e5c", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.12_to_15.share.cy2024.private_sector__group_stakeholder_pension.share_12_to_15", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_12_to_15", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.12_to_15.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "private_sector__group_stakeholder_pension", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "12% to < 15%", + "pension_type": "group_stakeholder_pension", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 2.7 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_18cdc8a730e53eee3f39147c", + "semantic_fact_key": "ledger_semantic_fact_v2_fbf82bc90847ce6eb013bbb0", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.15_to_20.share.cy2024.private_sector__group_stakeholder_pension.share_15_to_20", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_15_to_20", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.15_to_20.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "private_sector__group_stakeholder_pension", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "15% to < 20%", + "pension_type": "group_stakeholder_pension", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 1.4 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_6e6f422abfd5b482d437dd23", + "semantic_fact_key": "ledger_semantic_fact_v2_26e28198818863246a24479d", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.20_and_over.share.cy2024.private_sector__group_stakeholder_pension.share_20_and_over", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_20_and_over", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.20_and_over.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "private_sector__group_stakeholder_pension", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "20% and over", + "pension_type": "group_stakeholder_pension", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 1.3 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_ed1c74c4fb62487bff5d9284", + "semantic_fact_key": "ledger_semantic_fact_v2_e05614625f83c8675d020b3d", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.4_to_8.share.cy2024.private_sector__group_stakeholder_pension.share_4_to_8", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_4_to_8", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.4_to_8.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "private_sector__group_stakeholder_pension", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "4% to < 8%", + "pension_type": "group_stakeholder_pension", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 31.4 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_555bc67ada97c92d980444f9", + "semantic_fact_key": "ledger_semantic_fact_v2_bea5a7f8f2bc87519848bb01", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.8_to_10.share.cy2024.private_sector__group_stakeholder_pension.share_8_to_10", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_8_to_10", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.8_to_10.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "private_sector__group_stakeholder_pension", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "8% to < 10%", + "pension_type": "group_stakeholder_pension", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 7.2 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_d4afa05f95e24b4640cba6f1", + "semantic_fact_key": "ledger_semantic_fact_v2_33cc58f20e4c7e7d59a354ce", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.under_4.share.cy2024.private_sector__group_stakeholder_pension.share_under_4", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_under_4", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.under_4.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "private_sector__group_stakeholder_pension", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "Under 4%", + "pension_type": "group_stakeholder_pension", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 51.5 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_1a70912e85589f081326cbd5", + "semantic_fact_key": "ledger_semantic_fact_v2_cc8727b007a74ac2aa6d1923", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.10_to_12.share.cy2024.public_sector__all_pension_types.share_10_to_12", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_10_to_12", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.10_to_12.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "public_sector__all_pension_types", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "10% to < 12%", + "pension_type": "all", + "sector": "Public", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 3.2 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_b159f0edd912c721024e7aff", + "semantic_fact_key": "ledger_semantic_fact_v2_1fd199a6c4d9d49f6375ece2", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.12_to_15.share.cy2024.public_sector__all_pension_types.share_12_to_15", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_12_to_15", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.12_to_15.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "public_sector__all_pension_types", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "12% to < 15%", + "pension_type": "all", + "sector": "Public", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 24.5 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_60258ea975fcb87b7e37d92e", + "semantic_fact_key": "ledger_semantic_fact_v2_b11e598d36ae718de3bedf51", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.15_to_20.share.cy2024.public_sector__all_pension_types.share_15_to_20", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_15_to_20", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.15_to_20.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "public_sector__all_pension_types", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "15% to < 20%", + "pension_type": "all", + "sector": "Public", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 20.7 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_661d88cca65062ec5246370d", + "semantic_fact_key": "ledger_semantic_fact_v2_7f283e70a6ca8003f1d47db3", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.20_and_over.share.cy2024.public_sector__all_pension_types.share_20_and_over", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_20_and_over", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.20_and_over.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "public_sector__all_pension_types", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "20% and over", + "pension_type": "all", + "sector": "Public", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 44.7 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_085b86ea42916e42f02797cd", + "semantic_fact_key": "ledger_semantic_fact_v2_3853f10b0351b63b1813478a", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.4_to_8.share.cy2024.public_sector__all_pension_types.share_4_to_8", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_4_to_8", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.4_to_8.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "public_sector__all_pension_types", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "4% to < 8%", + "pension_type": "all", + "sector": "Public", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 3.8 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_737967496debae64b2f8d993", + "semantic_fact_key": "ledger_semantic_fact_v2_13d5c6d192f736145700c543", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.8_to_10.share.cy2024.public_sector__all_pension_types.share_8_to_10", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_8_to_10", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.8_to_10.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "public_sector__all_pension_types", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "8% to < 10%", + "pension_type": "all", + "sector": "Public", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 2.1 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_8751ffc413b2311e6a90a40e", + "semantic_fact_key": "ledger_semantic_fact_v2_3be083bc40e6f336c497ef90", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.under_4.share.cy2024.public_sector__all_pension_types.share_under_4", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_under_4", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.under_4.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "public_sector__all_pension_types", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "Under 4%", + "pension_type": "all", + "sector": "Public", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 1 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_514ac3d611d5028170ec83e9", + "semantic_fact_key": "ledger_semantic_fact_v2_3e63db2d7a60e2de1c1b0811", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.10_to_12.share.cy2024.public_sector__defined_benefit.share_10_to_12", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_10_to_12", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.10_to_12.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "public_sector__defined_benefit", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "10% to < 12%", + "pension_type": "defined_benefit", + "sector": "Public", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 2.8 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_032e14f588e2ca9d076c22b7", + "semantic_fact_key": "ledger_semantic_fact_v2_7ed127744b54a6374730cc02", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.12_to_15.share.cy2024.public_sector__defined_benefit.share_12_to_15", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_12_to_15", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.12_to_15.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "public_sector__defined_benefit", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "12% to < 15%", + "pension_type": "defined_benefit", + "sector": "Public", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 24.2 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_100f6c8a7b68f50c9612859b", + "semantic_fact_key": "ledger_semantic_fact_v2_5c4d5412dcacfd09584988f4", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.15_to_20.share.cy2024.public_sector__defined_benefit.share_15_to_20", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_15_to_20", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.15_to_20.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "public_sector__defined_benefit", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "15% to < 20%", + "pension_type": "defined_benefit", + "sector": "Public", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 21.8 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_1072ec1d11d78c7dfe8615f6", + "semantic_fact_key": "ledger_semantic_fact_v2_351dddd71376a5a912414b3d", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.20_and_over.share.cy2024.public_sector__defined_benefit.share_20_and_over", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_20_and_over", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.20_and_over.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "public_sector__defined_benefit", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "20% and over", + "pension_type": "defined_benefit", + "sector": "Public", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 45.7 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_6d031f385600112f9d67c363", + "semantic_fact_key": "ledger_semantic_fact_v2_adf5bbba775807ac00ba22d4", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.4_to_8.share.cy2024.public_sector__defined_benefit.share_4_to_8", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_4_to_8", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.4_to_8.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "public_sector__defined_benefit", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "4% to < 8%", + "pension_type": "defined_benefit", + "sector": "Public", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 3.5 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_c48511c056eca7abaa7b0322", + "semantic_fact_key": "ledger_semantic_fact_v2_8bf63d89df1c2444e695c4bd", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.8_to_10.share.cy2024.public_sector__defined_benefit.share_8_to_10", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_8_to_10", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.8_to_10.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "public_sector__defined_benefit", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "8% to < 10%", + "pension_type": "defined_benefit", + "sector": "Public", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 1.8 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_ca96a50564191af127164dbd", + "semantic_fact_key": "ledger_semantic_fact_v2_77f8be38e38552254119dd71", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.under_4.share.cy2024.public_sector__defined_benefit.share_under_4", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_under_4", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.under_4.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "public_sector__defined_benefit", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "Under 4%", + "pension_type": "defined_benefit", + "sector": "Public", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 0.2 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_4f9aaa7625b7cdec3ba5c9b4", + "semantic_fact_key": "ledger_semantic_fact_v2_30f5845b37cb82cf51f531e6", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.10_to_12.share.cy2024.public_sector__defined_contribution.share_10_to_12", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_10_to_12", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.10_to_12.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "public_sector__defined_contribution", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "10% to < 12%", + "pension_type": "defined_contribution", + "sector": "Public", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 5.4 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_5d853091242a4b1c2bebbf0b", + "semantic_fact_key": "ledger_semantic_fact_v2_60d4d1ff82621ebd28b17e59", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.12_to_15.share.cy2024.public_sector__defined_contribution.share_12_to_15", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_12_to_15", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.12_to_15.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "public_sector__defined_contribution", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "12% to < 15%", + "pension_type": "defined_contribution", + "sector": "Public", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 28.4 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_4ff9a6a870e96b7d1eda9e14", + "semantic_fact_key": "ledger_semantic_fact_v2_a56116481c154fc0534a239c", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.15_to_20.share.cy2024.public_sector__defined_contribution.share_15_to_20", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_15_to_20", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.15_to_20.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "public_sector__defined_contribution", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "15% to < 20%", + "pension_type": "defined_contribution", + "sector": "Public", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 14.6 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_0ac7835dcb10fe3eb5fd0c4a", + "semantic_fact_key": "ledger_semantic_fact_v2_e5439e52b90f7bc816c00d9d", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.20_and_over.share.cy2024.public_sector__defined_contribution.share_20_and_over", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_20_and_over", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.20_and_over.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "public_sector__defined_contribution", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "20% and over", + "pension_type": "defined_contribution", + "sector": "Public", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 34.5 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_c51b95d8242cfab813513e47", + "semantic_fact_key": "ledger_semantic_fact_v2_9a4bc96b864d975abaad4083", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.4_to_8.share.cy2024.public_sector__defined_contribution.share_4_to_8", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_4_to_8", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.4_to_8.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "public_sector__defined_contribution", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "4% to < 8%", + "pension_type": "defined_contribution", + "sector": "Public", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 5.9 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_bfe1dc6c3940dfdfcd462462", + "semantic_fact_key": "ledger_semantic_fact_v2_182a69fce0301d56938fb7dc", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.8_to_10.share.cy2024.public_sector__defined_contribution.share_8_to_10", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_8_to_10", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.8_to_10.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "public_sector__defined_contribution", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "8% to < 10%", + "pension_type": "defined_contribution", + "sector": "Public", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 4.2 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_a9e266ea44a900612c7514d0", + "semantic_fact_key": "ledger_semantic_fact_v2_d385e3a9137faee4feba6f5d", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.under_4.share.cy2024.public_sector__defined_contribution.share_under_4", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_under_4", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.under_4.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "public_sector__defined_contribution", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "Under 4%", + "pension_type": "defined_contribution", + "sector": "Public", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 6.9 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_f13e8f31e733ee6e1ed16dc8", + "semantic_fact_key": "ledger_semantic_fact_v2_a8171c71c0e8077be3877250", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.15_to_20.share.cy2024.public_sector__group_personal_pension.share_15_to_20", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_15_to_20", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.15_to_20.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "public_sector__group_personal_pension", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "15% to < 20%", + "pension_type": "group_personal_pension", + "sector": "Public", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 9.5 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_d0b32f08c0eee49ccdd9f7aa", + "semantic_fact_key": "ledger_semantic_fact_v2_9f3001fcda29f05a91ebb107", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.20_and_over.share.cy2024.public_sector__group_personal_pension.share_20_and_over", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_20_and_over", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.20_and_over.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "public_sector__group_personal_pension", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "20% and over", + "pension_type": "group_personal_pension", + "sector": "Public", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 69 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_2fc0f6b619665f24b6e00c8a", + "semantic_fact_key": "ledger_semantic_fact_v2_550c292b32a3aaa3a78335b2", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.4_to_8.share.cy2024.public_sector__group_personal_pension.share_4_to_8", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_4_to_8", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.4_to_8.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "public_sector__group_personal_pension", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "4% to < 8%", + "pension_type": "group_personal_pension", + "sector": "Public", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 7.2 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_ee6c688295a52a91256776e1", + "semantic_fact_key": "ledger_semantic_fact_v2_2931210730faef5cb2b9b0a3", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.15_to_20.share.cy2024.public_sector__group_stakeholder_pension.share_15_to_20", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_15_to_20", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.15_to_20.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "public_sector__group_stakeholder_pension", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "15% to < 20%", + "pension_type": "group_stakeholder_pension", + "sector": "Public", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 16 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_d2f1767704fefd41fc75b3e2", + "semantic_fact_key": "ledger_semantic_fact_v2_973a4717669ee95e3f492447", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.20_and_over.share.cy2024.public_sector__group_stakeholder_pension.share_20_and_over", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_20_and_over", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.20_and_over.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "public_sector__group_stakeholder_pension", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "20% and over", + "pension_type": "group_stakeholder_pension", + "sector": "Public", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 47.5 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_0cb733c9921fe77de6497685", + "semantic_fact_key": "ledger_semantic_fact_v2_672d26aa1ceb0f19b91aa09b", + "source_record_id": "ons.ashe_pensions_2024.p10.full_pay.4_to_8.share.cy2024.public_sector__group_stakeholder_pension.share_4_to_8", + "concept": "ons.workplace_pension_employer_contribution_band_share", + "measure_id": "share_4_to_8", + "unit": "percent", + "aggregation": "share", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p10.full_pay.4_to_8.share.cy2024", + "groupby_dimension": "ons.ashe_industry_pension_type", + "groupby_value_id": "public_sector__group_stakeholder_pension", + "table_record_kind": "detail" + }, + "dimensions": { + "contribution_basis": "full_pay", + "employer_contribution_rate_band": "4% to < 8%", + "pension_type": "group_stakeholder_pension", + "sector": "Public", + "sic2007_section": "all", + "sic2007_summary_category": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P10: employer pension contribution bands (full pay) by pension type and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp10.zip!P10 estimates - Employer pension contributions (percentage of full pay) by pension type and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "1fed33447de0187a1d4171ed44428ff7cad1aa41771c7f93faacf3a2746486fd", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-employer-contribution-bands-by-industry-2024-full-pay/2026/1bc4baaf70a278f44d753db84148fda975572d892a13b48ef3a97f28082f3aa1/2024provisionalp10.zip" + }, + "value": 12.1 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_9b05bce12ad1cc14f7824d37", + "semantic_fact_key": "ledger_semantic_fact_v2_c4621358c9471e84adfdebb1", + "source_record_id": "ons.ashe_pensions_2024.p2.defined_benefit.jobs.cy2024.private_sector__all_earnings.jobs_defined_benefit", + "concept": "ons.workplace_pension_jobs_by_type", + "measure_id": "jobs_defined_benefit", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p2.defined_benefit.jobs.cy2024", + "groupby_dimension": "ons.ashe_industry_weekly_earnings", + "groupby_value_id": "private_sector__all_earnings", + "table_record_kind": "detail" + }, + "dimensions": { + "pension_type": "defined_benefit", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all", + "weekly_earnings_band": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P2: pension membership by pension type, earnings and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp2.zip!P2 estimates - Pension membership by pension type, earnings and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "de6dfc4cf078f520f1fb4f8cb6d0ac53432507a6c91132dbb5d958c99a45a354", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-pension-membership-by-industry-earnings-2024/2026/c47ddacb924b23198f8e12bd0915a35ab683597ca1fee1ba5d3cb52868bb43d4/2024provisionalp2.zip" + }, + "value": 1333000 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_3d6772fffa68209be2b9b71c", + "semantic_fact_key": "ledger_semantic_fact_v2_d380c1e2cb93c489b724c4ed", + "source_record_id": "ons.ashe_pensions_2024.p2.defined_contribution.jobs.cy2024.private_sector__all_earnings.jobs_defined_contribution", + "concept": "ons.workplace_pension_jobs_by_type", + "measure_id": "jobs_defined_contribution", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p2.defined_contribution.jobs.cy2024", + "groupby_dimension": "ons.ashe_industry_weekly_earnings", + "groupby_value_id": "private_sector__all_earnings", + "table_record_kind": "detail" + }, + "dimensions": { + "pension_type": "defined_contribution", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all", + "weekly_earnings_band": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P2: pension membership by pension type, earnings and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp2.zip!P2 estimates - Pension membership by pension type, earnings and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "de6dfc4cf078f520f1fb4f8cb6d0ac53432507a6c91132dbb5d958c99a45a354", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-pension-membership-by-industry-earnings-2024/2026/c47ddacb924b23198f8e12bd0915a35ab683597ca1fee1ba5d3cb52868bb43d4/2024provisionalp2.zip" + }, + "value": 7729000 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_f0144d278ac6c54fe9a13fef", + "semantic_fact_key": "ledger_semantic_fact_v2_d968962341b6b86e05798290", + "source_record_id": "ons.ashe_pensions_2024.p2.group_personal_pension.jobs.cy2024.private_sector__all_earnings.jobs_group_personal_pension", + "concept": "ons.workplace_pension_jobs_by_type", + "measure_id": "jobs_group_personal_pension", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p2.group_personal_pension.jobs.cy2024", + "groupby_dimension": "ons.ashe_industry_weekly_earnings", + "groupby_value_id": "private_sector__all_earnings", + "table_record_kind": "detail" + }, + "dimensions": { + "pension_type": "group_personal_pension", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all", + "weekly_earnings_band": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P2: pension membership by pension type, earnings and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp2.zip!P2 estimates - Pension membership by pension type, earnings and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "de6dfc4cf078f520f1fb4f8cb6d0ac53432507a6c91132dbb5d958c99a45a354", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-pension-membership-by-industry-earnings-2024/2026/c47ddacb924b23198f8e12bd0915a35ab683597ca1fee1ba5d3cb52868bb43d4/2024provisionalp2.zip" + }, + "value": 3688000 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_b7f1bb32436c7de5e286e8b6", + "semantic_fact_key": "ledger_semantic_fact_v2_369d2543fbec562d14fdc2f9", + "source_record_id": "ons.ashe_pensions_2024.p2.group_self_invested_personal_pension.jobs.cy2024.private_sector__all_earnings.jobs_group_self_invested_personal_pension", + "concept": "ons.workplace_pension_jobs_by_type", + "measure_id": "jobs_group_self_invested_personal_pension", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p2.group_self_invested_personal_pension.jobs.cy2024", + "groupby_dimension": "ons.ashe_industry_weekly_earnings", + "groupby_value_id": "private_sector__all_earnings", + "table_record_kind": "detail" + }, + "dimensions": { + "pension_type": "group_self_invested_personal_pension", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all", + "weekly_earnings_band": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P2: pension membership by pension type, earnings and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp2.zip!P2 estimates - Pension membership by pension type, earnings and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "de6dfc4cf078f520f1fb4f8cb6d0ac53432507a6c91132dbb5d958c99a45a354", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-pension-membership-by-industry-earnings-2024/2026/c47ddacb924b23198f8e12bd0915a35ab683597ca1fee1ba5d3cb52868bb43d4/2024provisionalp2.zip" + }, + "value": 343000 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_0edf34c7dbc43a36e02441b0", + "semantic_fact_key": "ledger_semantic_fact_v2_796a16c18aa33bac8c322fa5", + "source_record_id": "ons.ashe_pensions_2024.p2.group_stakeholder_pension.jobs.cy2024.private_sector__all_earnings.jobs_group_stakeholder_pension", + "concept": "ons.workplace_pension_jobs_by_type", + "measure_id": "jobs_group_stakeholder_pension", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p2.group_stakeholder_pension.jobs.cy2024", + "groupby_dimension": "ons.ashe_industry_weekly_earnings", + "groupby_value_id": "private_sector__all_earnings", + "table_record_kind": "detail" + }, + "dimensions": { + "pension_type": "group_stakeholder_pension", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all", + "weekly_earnings_band": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P2: pension membership by pension type, earnings and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp2.zip!P2 estimates - Pension membership by pension type, earnings and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "de6dfc4cf078f520f1fb4f8cb6d0ac53432507a6c91132dbb5d958c99a45a354", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-pension-membership-by-industry-earnings-2024/2026/c47ddacb924b23198f8e12bd0915a35ab683597ca1fee1ba5d3cb52868bb43d4/2024provisionalp2.zip" + }, + "value": 1034000 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_349f905a44cb69d085f6b0ce", + "semantic_fact_key": "ledger_semantic_fact_v2_54859c92504958fd5feb3a8d", + "source_record_id": "ons.ashe_pensions_2024.p2.no_pension_provision.jobs.cy2024.private_sector__all_earnings.jobs_no_pension_provision", + "concept": "ons.workplace_pension_jobs_by_type", + "measure_id": "jobs_no_pension_provision", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p2.no_pension_provision.jobs.cy2024", + "groupby_dimension": "ons.ashe_industry_weekly_earnings", + "groupby_value_id": "private_sector__all_earnings", + "table_record_kind": "detail" + }, + "dimensions": { + "pension_type": "no_pension_provision", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all", + "weekly_earnings_band": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P2: pension membership by pension type, earnings and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp2.zip!P2 estimates - Pension membership by pension type, earnings and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "de6dfc4cf078f520f1fb4f8cb6d0ac53432507a6c91132dbb5d958c99a45a354", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-pension-membership-by-industry-earnings-2024/2026/c47ddacb924b23198f8e12bd0915a35ab683597ca1fee1ba5d3cb52868bb43d4/2024provisionalp2.zip" + }, + "value": 3815000 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_0051ad6094432ec4282e8035", + "semantic_fact_key": "ledger_semantic_fact_v2_1f0556bc3b97450b5f315733", + "source_record_id": "ons.ashe_pensions_2024.p2.unknown_pension_provision.jobs.cy2024.private_sector__all_earnings.jobs_unknown_pension_provision", + "concept": "ons.workplace_pension_jobs_by_type", + "measure_id": "jobs_unknown_pension_provision", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p2.unknown_pension_provision.jobs.cy2024", + "groupby_dimension": "ons.ashe_industry_weekly_earnings", + "groupby_value_id": "private_sector__all_earnings", + "table_record_kind": "detail" + }, + "dimensions": { + "pension_type": "unknown_pension_provision", + "sector": "Private", + "sic2007_section": "all", + "sic2007_summary_category": "all", + "weekly_earnings_band": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P2: pension membership by pension type, earnings and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp2.zip!P2 estimates - Pension membership by pension type, earnings and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "de6dfc4cf078f520f1fb4f8cb6d0ac53432507a6c91132dbb5d958c99a45a354", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-pension-membership-by-industry-earnings-2024/2026/c47ddacb924b23198f8e12bd0915a35ab683597ca1fee1ba5d3cb52868bb43d4/2024provisionalp2.zip" + }, + "value": 202000 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_3651fcaad6c0d680fd60a502", + "semantic_fact_key": "ledger_semantic_fact_v2_17cd0b6ac1ecba27bb9c1f05", + "source_record_id": "ons.ashe_pensions_2024.p2.defined_benefit.jobs.cy2024.public_sector__all_earnings.jobs_defined_benefit", + "concept": "ons.workplace_pension_jobs_by_type", + "measure_id": "jobs_defined_benefit", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p2.defined_benefit.jobs.cy2024", + "groupby_dimension": "ons.ashe_industry_weekly_earnings", + "groupby_value_id": "public_sector__all_earnings", + "table_record_kind": "detail" + }, + "dimensions": { + "pension_type": "defined_benefit", + "sector": "Public", + "sic2007_section": "all", + "sic2007_summary_category": "all", + "weekly_earnings_band": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P2: pension membership by pension type, earnings and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp2.zip!P2 estimates - Pension membership by pension type, earnings and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "de6dfc4cf078f520f1fb4f8cb6d0ac53432507a6c91132dbb5d958c99a45a354", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-pension-membership-by-industry-earnings-2024/2026/c47ddacb924b23198f8e12bd0915a35ab683597ca1fee1ba5d3cb52868bb43d4/2024provisionalp2.zip" + }, + "value": 5711000 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_27f771ae67513d37545bf6da", + "semantic_fact_key": "ledger_semantic_fact_v2_49118ecc890c835d0accf810", + "source_record_id": "ons.ashe_pensions_2024.p2.defined_contribution.jobs.cy2024.public_sector__all_earnings.jobs_defined_contribution", + "concept": "ons.workplace_pension_jobs_by_type", + "measure_id": "jobs_defined_contribution", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p2.defined_contribution.jobs.cy2024", + "groupby_dimension": "ons.ashe_industry_weekly_earnings", + "groupby_value_id": "public_sector__all_earnings", + "table_record_kind": "detail" + }, + "dimensions": { + "pension_type": "defined_contribution", + "sector": "Public", + "sic2007_section": "all", + "sic2007_summary_category": "all", + "weekly_earnings_band": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P2: pension membership by pension type, earnings and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp2.zip!P2 estimates - Pension membership by pension type, earnings and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "de6dfc4cf078f520f1fb4f8cb6d0ac53432507a6c91132dbb5d958c99a45a354", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-pension-membership-by-industry-earnings-2024/2026/c47ddacb924b23198f8e12bd0915a35ab683597ca1fee1ba5d3cb52868bb43d4/2024provisionalp2.zip" + }, + "value": 723000 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_50ee88372612f6d2b2d8ce2a", + "semantic_fact_key": "ledger_semantic_fact_v2_ce776160a7cea41abd0095f9", + "source_record_id": "ons.ashe_pensions_2024.p2.group_personal_pension.jobs.cy2024.public_sector__all_earnings.jobs_group_personal_pension", + "concept": "ons.workplace_pension_jobs_by_type", + "measure_id": "jobs_group_personal_pension", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p2.group_personal_pension.jobs.cy2024", + "groupby_dimension": "ons.ashe_industry_weekly_earnings", + "groupby_value_id": "public_sector__all_earnings", + "table_record_kind": "detail" + }, + "dimensions": { + "pension_type": "group_personal_pension", + "sector": "Public", + "sic2007_section": "all", + "sic2007_summary_category": "all", + "weekly_earnings_band": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P2: pension membership by pension type, earnings and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp2.zip!P2 estimates - Pension membership by pension type, earnings and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "de6dfc4cf078f520f1fb4f8cb6d0ac53432507a6c91132dbb5d958c99a45a354", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-pension-membership-by-industry-earnings-2024/2026/c47ddacb924b23198f8e12bd0915a35ab683597ca1fee1ba5d3cb52868bb43d4/2024provisionalp2.zip" + }, + "value": 102000 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_e94cbdc1955823fab4ab5842", + "semantic_fact_key": "ledger_semantic_fact_v2_924c33da43623720470068fe", + "source_record_id": "ons.ashe_pensions_2024.p2.group_stakeholder_pension.jobs.cy2024.public_sector__all_earnings.jobs_group_stakeholder_pension", + "concept": "ons.workplace_pension_jobs_by_type", + "measure_id": "jobs_group_stakeholder_pension", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p2.group_stakeholder_pension.jobs.cy2024", + "groupby_dimension": "ons.ashe_industry_weekly_earnings", + "groupby_value_id": "public_sector__all_earnings", + "table_record_kind": "detail" + }, + "dimensions": { + "pension_type": "group_stakeholder_pension", + "sector": "Public", + "sic2007_section": "all", + "sic2007_summary_category": "all", + "weekly_earnings_band": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P2: pension membership by pension type, earnings and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp2.zip!P2 estimates - Pension membership by pension type, earnings and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "de6dfc4cf078f520f1fb4f8cb6d0ac53432507a6c91132dbb5d958c99a45a354", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-pension-membership-by-industry-earnings-2024/2026/c47ddacb924b23198f8e12bd0915a35ab683597ca1fee1ba5d3cb52868bb43d4/2024provisionalp2.zip" + }, + "value": 43000 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_eca63750497c6b5ad79fee20", + "semantic_fact_key": "ledger_semantic_fact_v2_dda69ccbb2179197d4b8539f", + "source_record_id": "ons.ashe_pensions_2024.p2.no_pension_provision.jobs.cy2024.public_sector__all_earnings.jobs_no_pension_provision", + "concept": "ons.workplace_pension_jobs_by_type", + "measure_id": "jobs_no_pension_provision", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p2.no_pension_provision.jobs.cy2024", + "groupby_dimension": "ons.ashe_industry_weekly_earnings", + "groupby_value_id": "public_sector__all_earnings", + "table_record_kind": "detail" + }, + "dimensions": { + "pension_type": "no_pension_provision", + "sector": "Public", + "sic2007_section": "all", + "sic2007_summary_category": "all", + "weekly_earnings_band": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P2: pension membership by pension type, earnings and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp2.zip!P2 estimates - Pension membership by pension type, earnings and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "de6dfc4cf078f520f1fb4f8cb6d0ac53432507a6c91132dbb5d958c99a45a354", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-pension-membership-by-industry-earnings-2024/2026/c47ddacb924b23198f8e12bd0915a35ab683597ca1fee1ba5d3cb52868bb43d4/2024provisionalp2.zip" + }, + "value": 729000 + }, + { + "aggregate_fact_key": "ledger_aggregate_fact_v2_c1d3f2c28d5032cb3aceb4ad", + "semantic_fact_key": "ledger_semantic_fact_v2_ff1ecfa656a856cce1f88911", + "source_record_id": "ons.ashe_pensions_2024.p2.unknown_pension_provision.jobs.cy2024.public_sector__all_earnings.jobs_unknown_pension_provision", + "concept": "ons.workplace_pension_jobs_by_type", + "measure_id": "jobs_unknown_pension_provision", + "unit": "count", + "aggregation": "sum", + "entity": { + "name": "person", + "role": "employee_job" + }, + "geography": { + "id": "K02000001", + "level": "country", + "vintage": "current" + }, + "period": { + "type": "calendar_year", + "value": 2024 + }, + "period_coverage": { + "start_date": null, + "end_date": null, + "basis": null + }, + "layout": { + "record_set_id": "ons.ashe_pensions_2024.p2.unknown_pension_provision.jobs.cy2024", + "groupby_dimension": "ons.ashe_industry_weekly_earnings", + "groupby_value_id": "public_sector__all_earnings", + "table_record_kind": "detail" + }, + "dimensions": { + "pension_type": "unknown_pension_provision", + "sector": "Public", + "sic2007_section": "all", + "sic2007_summary_category": "all", + "weekly_earnings_band": "all" + }, + "source": { + "source_name": "ons", + "source_table": "ASHE pension tables P2: pension membership by pension type, earnings and SIC2007 industry, 2024 provisional", + "source_file": "2024provisionalp2.zip!P2 estimates - Pension membership by pension type, earnings and SIC2007 industry - 2024 PROV.xlsx", + "source_sha256": "de6dfc4cf078f520f1fb4f8cb6d0ac53432507a6c91132dbb5d958c99a45a354", + "vintage": "ashe_pension_tables_2024_provisional", + "raw_r2_key": "raw/uk/ons/ons-ashe-pension-membership-by-industry-earnings-2024/2026/c47ddacb924b23198f8e12bd0915a35ab683597ca1fee1ba5d3cb52868bb43d4/2024provisionalp2.zip" + }, + "value": 52000 + } + ] +} 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 b46ad53c1..8a7199439 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/country_package.json +++ b/packages/microcosm-build/src/microcosm/build/uk/country_package.json @@ -152,6 +152,11 @@ "kind": "legacy_json", "schema_id": "legacy_json" }, + { + "path": "ashe_employer_pension_contribution_rates.json", + "kind": "legacy_json", + "schema_id": "legacy_json" + }, { "path": "ons_single_year_age_populations.json", "kind": "legacy_json", 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 250c182f0..21eebbb28 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": 1276, + "compiled_count": 1278, "counts_by_kind": { - "calibration_drift": 554, - "fixture_only": 54, - "ledger_only": 693 + "calibration_drift": 553, + "fixture_only": 55, + "ledger_only": 696 }, - "difference_count": 1301, + "difference_count": 1304, "differences": [ { "fixture_value": 1608000.0, @@ -56,6 +56,13 @@ "period": 2025, "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." }, + { + "fixture_value": 7884800.0, + "kind": "fixture_only", + "name": "hmrc.salary_sacrifice.users_total", + "period": 2025, + "reason": "Fixture row has no Ledger-compiled counterpart at this comparison period." + }, { "fixture_value": 4845000000.0, "kind": "fixture_only", @@ -1225,6 +1232,20 @@ "period": 2025, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, + { + "kind": "ledger_only", + "ledger_value": 66200000000.0, + "name": "dwp.workplace_pension.employee_contributions", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 104200000000.0, + "name": "dwp.workplace_pension.employer_contributions", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, { "kind": "ledger_only", "ledger_value": 32000000.0, @@ -2009,6 +2030,13 @@ "period": 2025, "reason": "Coverage the incumbent lacks (PolicyEngine/chronicle#280 lane): HMRC's Income Tax liabilities Table 2.5 taxpayers, total income and tax by band as the calendar-2025 window of the 2024-25 and 2025-26 projections, and the SPI 2023-24 savings-interest rows by band uprated by the household interest index; the incumbent registry binds neither (chronicle#282)." }, + { + "kind": "ledger_only", + "ledger_value": 24637681159.419598, + "name": "hmrc.salary_sacrifice.amount", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, { "kind": "ledger_only", "ledger_value": 1800000000.0, @@ -6196,14 +6224,6 @@ "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." }, - { - "fixture_value": 7884800.0, - "kind": "calibration_drift", - "ledger_value": 7700000.0, - "name": "hmrc.salary_sacrifice.users_total", - "period": 2025, - "reason": "Ledger-compiled value differs from the fixture value at this comparison period." - }, { "fixture_value": 5805652941.176472, "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 e742807e7..137756a14 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": 965, + "compiled_count": 966, "counts_by_kind": { "calibration_drift": 120, "fixture_only": 17, - "ledger_only": 833 + "ledger_only": 834 }, - "difference_count": 970, + "difference_count": 971, "differences": [ { "fixture_value": 82000.0, @@ -833,6 +833,13 @@ "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, + { + "kind": "ledger_only", + "ledger_value": 21014492753.6226, + "name": "hmrc.salary_sacrifice.amount", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, { "kind": "ledger_only", "ledger_value": 1200000000.0, diff --git a/packages/microcosm-build/src/microcosm/build/uk/ledger_fact_vendor_selections.json b/packages/microcosm-build/src/microcosm/build/uk/ledger_fact_vendor_selections.json index 36bdc2c26..a404f29c3 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/ledger_fact_vendor_selections.json +++ b/packages/microcosm-build/src/microcosm/build/uk/ledger_fact_vendor_selections.json @@ -880,6 +880,67 @@ "expected_row_count": 182 } ] + }, + { + "resource": "ashe_employer_pension_contribution_rates.json", + "purpose": "ONS ASHE 2024 workplace pension tables: the share of jobs in each employer contribution band (full pay) by pension type and sector, all industries (Table P10), and jobs by pension type and sector (Table P2). Consumed by the FRS HMRC spine-leaves stage, which draws each employer-scheme member's employer contribution rate for their scheme type and sector (microcosm#1069 c9, R6).", + "consumers": [ + "uk_runtime.employer_pension_contributions" + ], + "planned_consumers": [], + "selections": [ + { + "label": "ashe_p10_employer_rate_band_share_full_pay_by_type_and_sector", + "selector": { + "source_name": "ons", + "source_concept": "ons.workplace_pension_employer_contribution_band_share", + "geography_id": "K02000001", + "period_type": "calendar_year", + "period_value": [ + "2024" + ], + "dimensions": [ + "contribution_basis", + "employer_contribution_rate_band", + "pension_type", + "sector", + "sic2007_section", + "sic2007_summary_category" + ], + "dimension_values": { + "contribution_basis": "full_pay", + "sic2007_section": "all", + "sic2007_summary_category": "all" + } + }, + "expected_row_count": 68 + }, + { + "label": "ashe_p2_jobs_by_type_and_sector", + "selector": { + "source_name": "ons", + "source_concept": "ons.workplace_pension_jobs_by_type", + "geography_id": "K02000001", + "period_type": "calendar_year", + "period_value": [ + "2024" + ], + "dimensions": [ + "pension_type", + "sector", + "sic2007_section", + "sic2007_summary_category", + "weekly_earnings_band" + ], + "dimension_values": { + "sic2007_section": "all", + "sic2007_summary_category": "all", + "weekly_earnings_band": "all" + } + }, + "expected_row_count": 13 + } + ] } ] } 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 25db0d8aa..e2e51d5df 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 @@ -225,6 +225,10 @@ "dfc_ni.pension_credit": { "provider_id": "dfc_ni", "label": "Pension Credit" + }, + "dwp.workplace_pensions": { + "provider_id": "dwp", + "label": "Workplace pensions" } }, "target_categories": { 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 6eba49d22..11878e3f3 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 @@ -468,7 +468,7 @@ "required_mass_change_reason": "Capital-gains incidence anchor moves the mass of non-liable clone households back to their paired originals until the sub-exempt and loss-making clone mass match the Advani-Summers reporter composition at the redrawn liable mass; every pair's mass and the total household mass are conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "2150fdd831ed2835a761b721ba44cd8f6ce45963873fec8751e424d01072c510", + "source_manifest_sha256": "43e06433b2d35deeeec9192678fe75d73d8a5fcdd54f2a4a2117fd64208c941d", "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, the HMRC Table 3 redrawn gains on the spine and Advani-Summers capital-gains incidence" @@ -491,7 +491,7 @@ "capital_gains" ], "source_manifest": "source_stages.json", - "source_manifest_sha256": "2150fdd831ed2835a761b721ba44cd8f6ce45963873fec8751e424d01072c510", + "source_manifest_sha256": "43e06433b2d35deeeec9192678fe75d73d8a5fcdd54f2a4a2117fd64208c941d", "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" @@ -513,7 +513,7 @@ "required_mass_change_reason": "Capital-gains support split divides the wealthiest households of each HMRC Table 3 income band into light copies at equal weight; every household's mass and the total household mass are conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "2150fdd831ed2835a761b721ba44cd8f6ce45963873fec8751e424d01072c510", + "source_manifest_sha256": "43e06433b2d35deeeec9192678fe75d73d8a5fcdd54f2a4a2117fd64208c941d", "source_vintages": { "source": "HMRC Capital Gains Tax statistics, July 2026 release, Table 3 for 2024-25, via the vendored conditioning facts", "survey": "Family Resources Survey 2024-25, SPI synthetic support and HMRC Capital Gains Tax statistics Table 3 (2024-25 individuals by size of gain and taxable income)" @@ -542,7 +542,7 @@ "required_mass_change_reason": "ETB public-services imputation on the source spine: household weights pass through unchanged and total household mass is conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "2150fdd831ed2835a761b721ba44cd8f6ce45963873fec8751e424d01072c510", + "source_manifest_sha256": "43e06433b2d35deeeec9192678fe75d73d8a5fcdd54f2a4a2117fd64208c941d", "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" @@ -562,7 +562,7 @@ "required_mass_change_reason": "ETB VAT expenditure-rate imputation on the source spine: household weights pass through unchanged and total household mass is conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "2150fdd831ed2835a761b721ba44cd8f6ce45963873fec8751e424d01072c510", + "source_manifest_sha256": "43e06433b2d35deeeec9192678fe75d73d8a5fcdd54f2a4a2117fd64208c941d", "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" @@ -584,7 +584,7 @@ "required_mass_change_reason": "CGT asset-type assignment on the source spine: household weights pass through unchanged and total household mass is conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "2150fdd831ed2835a761b721ba44cd8f6ce45963873fec8751e424d01072c510", + "source_manifest_sha256": "43e06433b2d35deeeec9192678fe75d73d8a5fcdd54f2a4a2117fd64208c941d", "source_vintages": { "source": "https://www.gov.uk/government/statistics/capital-gains-tax-statistics", "survey": "HMRC Capital Gains Tax statistics 2026 release, Table 8 (UK residential property disposals, 2024-25, administrative), Table 4.1 (individuals claiming Business Asset Disposal Relief or Investors' Relief by band of qualifying gain, 2024-25, administrative) and Table 7 (disposals, proceeds and gains by asset type, 2023-24, sample-based), vendored from the pinned Chronicle feed" @@ -608,7 +608,7 @@ "capital_gains" ], "source_manifest": "source_stages.json", - "source_manifest_sha256": "2150fdd831ed2835a761b721ba44cd8f6ce45963873fec8751e424d01072c510", + "source_manifest_sha256": "43e06433b2d35deeeec9192678fe75d73d8a5fcdd54f2a4a2117fd64208c941d", "source_vintages": { "conditioning_resource": "hmrc_cgt_conditioning_facts.json", "conditioning_resource_sha256": "067ba21c12aeb4e95e6a8a16141dbaa075e8787ed875a005f549cab6e91a6b56", @@ -697,7 +697,7 @@ "full_frs_tei_band_unavailable" ], "source_manifest": "source_stages.json", - "source_manifest_sha256": "2150fdd831ed2835a761b721ba44cd8f6ce45963873fec8751e424d01072c510", + "source_manifest_sha256": "43e06433b2d35deeeec9192678fe75d73d8a5fcdd54f2a4a2117fd64208c941d", "source_vintages": { "hmrc_surface": "2023-24", "mapped_build_period": "2024", @@ -738,7 +738,7 @@ "required_mass_change_reason": "LCFS consumption imputation on the source spine: household weights pass through unchanged and total household mass is conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "2150fdd831ed2835a761b721ba44cd8f6ce45963873fec8751e424d01072c510", + "source_manifest_sha256": "43e06433b2d35deeeec9192678fe75d73d8a5fcdd54f2a4a2117fd64208c941d", "source_vintages": { "source": "UK Data Service SN 9468 Living Costs and Food Survey 2023-24 household/person tabs and the vendored Chronicle facts for NEED 2023 mean kWh, the FY2024-25 Ofgem cap levels, road-fuel outturn (DESNZ, HMRC, ONS), the DfT VEH1103 licensed-car stock, NTS bus use and the DfT and devolved bus finance tables.", "survey": "Living Costs and Food Survey 2023-24" @@ -764,7 +764,7 @@ "required_mass_change_reason": "NTS bus-travel imputation on the source spine: household weights pass through unchanged and total household mass is conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "2150fdd831ed2835a761b721ba44cd8f6ce45963873fec8751e424d01072c510", + "source_manifest_sha256": "43e06433b2d35deeeec9192678fe75d73d8a5fcdd54f2a4a2117fd64208c941d", "source_vintages": { "source": "Department for Transport National Travel Survey, UK Data Service SN 5340 (End User Licence, 19th edition, November 2025), DOI 10.5255/UKDA-SN-5340-19; local licensed tab files (household, individual, trip); England residents only from 2013.", "survey": "National Travel Survey 2002-2024" @@ -785,7 +785,7 @@ "property_wealth" ], "source_manifest": "source_stages.json", - "source_manifest_sha256": "2150fdd831ed2835a761b721ba44cd8f6ce45963873fec8751e424d01072c510", + "source_manifest_sha256": "43e06433b2d35deeeec9192678fe75d73d8a5fcdd54f2a4a2117fd64208c941d", "source_vintages": { "source": "MHCLG dwellings and ONS UK House Price Index December 2025 regional average prices.", "survey": "Public regional property reference" @@ -801,15 +801,17 @@ "output_weight_kind": "importance", "outputs": [ "pension_contributions_via_salary_sacrifice", - "employee_pension_contributions" + "employee_pension_contributions", + "employment_income" ], - "required_mass_change_reason": "Salary-sacrifice support stage rewrites pension columns only; household rows and typed household weights pass through and total household mass is conserved.", + "required_mass_change_reason": "Salary-sacrifice support stage rewrites pension columns and converted records' pay; household rows and typed household weights pass through and total household mass is conserved.", "rewrites": [ "pension_contributions_via_salary_sacrifice", - "employee_pension_contributions" + "employee_pension_contributions", + "employment_income" ], "source_manifest": "source_stages.json", - "source_manifest_sha256": "2150fdd831ed2835a761b721ba44cd8f6ce45963873fec8751e424d01072c510", + "source_manifest_sha256": "43e06433b2d35deeeec9192678fe75d73d8a5fcdd54f2a4a2117fd64208c941d", "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" @@ -831,7 +833,7 @@ "student_loan_plan" ], "source_manifest": "source_stages.json", - "source_manifest_sha256": "2150fdd831ed2835a761b721ba44cd8f6ce45963873fec8751e424d01072c510", + "source_manifest_sha256": "43e06433b2d35deeeec9192678fe75d73d8a5fcdd54f2a4a2117fd64208c941d", "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" @@ -853,7 +855,7 @@ "required_mass_change_reason": "WAS Lifetime ISA imputation on the source spine: household weights pass through unchanged and total household mass is conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "2150fdd831ed2835a761b721ba44cd8f6ce45963873fec8751e424d01072c510", + "source_manifest_sha256": "43e06433b2d35deeeec9192678fe75d73d8a5fcdd54f2a4a2117fd64208c941d", "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 round-8 person and household tabs (interviews April 2020 to March 2022, Great Britain).", "survey": "Wealth and Assets Survey round 8" @@ -888,7 +890,7 @@ "required_mass_change_reason": "WAS wealth imputation on the source spine: household weights pass through unchanged and total household mass is conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "2150fdd831ed2835a761b721ba44cd8f6ce45963873fec8751e424d01072c510", + "source_manifest_sha256": "43e06433b2d35deeeec9192678fe75d73d8a5fcdd54f2a4a2117fd64208c941d", "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 b991b4d06..b2e8d25c1 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/source_stages.json +++ b/packages/microcosm-build/src/microcosm/build/uk/source_stages.json @@ -1233,6 +1233,41 @@ "tax_year_start": 2024, "ukds_study_number": 9563, "doi": "10.5255/UKDA-SN-9563-1" + }, + { + "role": "frs_table", + "table": "job", + "kind": "licensed_microdata", + "format": "tab", + "vintage": "2024_25", + "locator": "job.tab", + "sha256": "eb7faf7ada3a3851cb2afb83e2983f8907ffeec897cfbe01e56cb0dfefa853e2", + "size_bytes": 10518760, + "runtime_sha256_required": true, + "tax_year_start": 2024, + "ukds_study_number": 9563, + "doi": "10.5255/UKDA-SN-9563-1" + }, + { + "role": "frs_table", + "table": "penprov", + "kind": "licensed_microdata", + "format": "tab", + "vintage": "2024_25", + "locator": "penprov.tab", + "sha256": "9e53de0dc969baec000b3cd68387f0f2dfb3f678732e408de175e0a1d6e3fdc1", + "size_bytes": 513614, + "runtime_sha256_required": true, + "tax_year_start": 2024, + "ukds_study_number": 9563, + "doi": "10.5255/UKDA-SN-9563-1" + }, + { + "role": "employer_rate_bands", + "kind": "public_aggregate_reference", + "resource": "ashe_employer_pension_contribution_rates.json", + "format": "json", + "runtime_sha256_required": true } ], "operations": [ @@ -1314,10 +1349,20 @@ "fail_on_full_concept_alias": true }, { - "kind": "derive", + "kind": "draw_employer_pension_contributions_from_rate_bands", "output": "employer_pension_contributions", - "formula": "3 * employee_pension_contributions", - "source": "incumbent enhanced-FRS frs.py employer-pension contribution estimate" + "artifact_role": "employer_rate_bands", + "resource": "ashe_employer_pension_contribution_rates.json", + "scheme_source": "PENPROV.STEMPPEN 1 to 4 (employer schemes; occupational before group personal, group stakeholder, other)", + "sector_source": "JOB.JOBSECT (first job with a stated sector)", + "occupational_split": "defined benefit or defined contribution by ASHE Table P2 job counts in the sector", + "rate_basis": "full pay (employment_income)", + "top_band_ceiling": 0.3, + "seed": 0, + "salts": [ + "employer_pension_occupational_type", + "employer_pension_contribution_rate" + ] } ], "outputs": [ @@ -1336,7 +1381,7 @@ "srp_regular_code5", "employer_pension_contributions" ], - "notes": "Retains adjudicated raw-FRS HMRC leaves on the raw FRS spine, where person_id equals the raw sernum*1000+person identity, then ports the incumbent employer-pension-contributions estimate." + "notes": "Retains adjudicated raw-FRS HMRC leaves on the raw FRS spine, where person_id equals the raw sernum*1000+person identity, then draws employer pension contributions: each member of an employer scheme (PENPROV.STEMPPEN 1 to 4) with earnings takes an ASHE 2024 employer contribution rate for their scheme type and sector (Table P10 band shares, full pay, all industries; occupational schemes split into defined benefit and defined contribution by the sector's Table P2 job counts), uniform within the band (top band 20% to 30%), times pay. It replaces the incumbent's three times the employee contribution (microcosm#1069 c9, R6)." }, { "stage": "spi_support_channel", @@ -5170,26 +5215,29 @@ "target": 5400000, "donor_pool": "employee_pension_contributions > 0 and pension_contributions_via_salary_sacrifice == 0 and employment_income > 0", "rate_cap": 0.5, - "move": "full employee_pension_contributions to pension_contributions_via_salary_sacrifice; source zeroed", + "move": "full employee_pension_contributions to pension_contributions_via_salary_sacrifice; source zeroed; employment_income lowered by the amount sacrificed", "seed": 2024, "salt": "salary_sacrifice_conversion", "receipt": "weighted_headcount", - "reason": "Salary-sacrifice support stage rewrites pension columns only; household rows and typed household weights pass through and total household mass is conserved." + "reason": "Salary-sacrifice support stage rewrites pension columns and converted records' pay; household rows and typed household weights pass through and total household mass is conserved." } ], "outputs": [ "pension_contributions_via_salary_sacrifice", - "employee_pension_contributions" + "employee_pension_contributions", + "employment_income" ], "nonnegative_outputs": [ "pension_contributions_via_salary_sacrifice", - "employee_pension_contributions" + "employee_pension_contributions", + "employment_income" ], "rewrites": [ "pension_contributions_via_salary_sacrifice", - "employee_pension_contributions" + "employee_pension_contributions", + "employment_income" ], - "notes": "The QRF trains only on the 2024-25 FRS asked subset. The second arm creates support toward the reviewed 5.4m staging target by moving contributors' full pension amounts." + "notes": "The QRF trains only on the 2024-25 FRS asked subset. The second arm creates support toward the reviewed 5.4m staging target by moving contributors' full pension amounts into salary sacrifice and lowering their pay by the same amount, since the engine reads employment_income after sacrifice; before microcosm#1069 c9 the pay stayed whole and the converted record lost its net-pay relief." }, { "stage": "student_loans", 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 ffd0c8c03..eaa342601 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/spec/sources.yaml +++ b/packages/microcosm-build/src/microcosm/build/uk/spec/sources.yaml @@ -1089,6 +1089,35 @@ stages: tax_year_start: 2024 ukds_study_number: 9563 doi: 10.5255/UKDA-SN-9563-1 + - role: frs_table + table: job + kind: licensed_microdata + format: tab + vintage: '2024_25' + locator: job.tab + sha256: eb7faf7ada3a3851cb2afb83e2983f8907ffeec897cfbe01e56cb0dfefa853e2 + size_bytes: 10518760 + runtime_sha256_required: true + tax_year_start: 2024 + ukds_study_number: 9563 + doi: 10.5255/UKDA-SN-9563-1 + - role: frs_table + table: penprov + kind: licensed_microdata + format: tab + vintage: '2024_25' + locator: penprov.tab + sha256: 9e53de0dc969baec000b3cd68387f0f2dfb3f678732e408de175e0a1d6e3fdc1 + size_bytes: 513614 + runtime_sha256_required: true + tax_year_start: 2024 + ukds_study_number: 9563 + doi: 10.5255/UKDA-SN-9563-1 + - role: employer_rate_bands + kind: public_aggregate_reference + resource: ashe_employer_pension_contribution_rates.json + format: json + runtime_sha256_required: true operations: - kind: retain_adjudicated_frs_hmrc_leaves population: uk_frs_raw_spine @@ -1150,10 +1179,19 @@ stages: - miscellaneous_income fail_on_missing_retained_constituent: true fail_on_full_concept_alias: true - - kind: derive + - kind: draw_employer_pension_contributions_from_rate_bands output: employer_pension_contributions - formula: 3 * employee_pension_contributions - source: incumbent enhanced-FRS frs.py employer-pension contribution estimate + artifact_role: employer_rate_bands + resource: ashe_employer_pension_contribution_rates.json + scheme_source: PENPROV.STEMPPEN 1 to 4 (employer schemes; occupational before group personal, group stakeholder, other) + sector_source: JOB.JOBSECT (first job with a stated sector) + occupational_split: defined benefit or defined contribution by ASHE Table P2 job counts in the sector + rate_basis: full pay (employment_income) + top_band_ceiling: 0.3 + seed: 0 + salts: + - employer_pension_occupational_type + - employer_pension_contribution_rate outputs: - hmrc_spi_pay - hmrc_spi_unemployment_benefit_income @@ -1168,7 +1206,7 @@ stages: - ossben_identifiable_subset - srp_regular_code5 - employer_pension_contributions - notes: Retains adjudicated raw-FRS HMRC leaves on the raw FRS spine, where person_id equals the raw sernum*1000+person identity, then ports the incumbent employer-pension-contributions estimate. + notes: 'Retains adjudicated raw-FRS HMRC leaves on the raw FRS spine, where person_id equals the raw sernum*1000+person identity, then draws employer pension contributions: each member of an employer scheme (PENPROV.STEMPPEN 1 to 4) with earnings takes an ASHE 2024 employer contribution rate for their scheme type and sector (Table P10 band shares, full pay, all industries; occupational schemes split into defined benefit and defined contribution by the sector''s Table P2 job counts), uniform within the band (top band 20% to 30%), times pay. It replaces the incumbent''s three times the employee contribution (microcosm#1069 c9, R6).' - stage: spi_support_channel survey: Family Resources Survey 2024-25 source: Synthetic SPI support channel sampled uniformly without replacement from the raw FRS spine before cloning. @@ -4180,22 +4218,24 @@ stages: target: 5400000 donor_pool: employee_pension_contributions > 0 and pension_contributions_via_salary_sacrifice == 0 and employment_income > 0 rate_cap: 0.5 - move: full employee_pension_contributions to pension_contributions_via_salary_sacrifice; source zeroed + move: full employee_pension_contributions to pension_contributions_via_salary_sacrifice; source zeroed; employment_income lowered by the amount sacrificed seed: 2024 salt: salary_sacrifice_conversion receipt: weighted_headcount - reason: Salary-sacrifice support stage rewrites pension columns only; household - rows and typed household weights pass through and total household mass is conserved. + reason: Salary-sacrifice support stage rewrites pension columns and converted records' pay; household rows and typed household weights pass through and total household mass is conserved. outputs: - pension_contributions_via_salary_sacrifice - employee_pension_contributions + - employment_income nonnegative_outputs: - pension_contributions_via_salary_sacrifice - employee_pension_contributions + - employment_income rewrites: - pension_contributions_via_salary_sacrifice - employee_pension_contributions - notes: The QRF trains only on the 2024-25 FRS asked subset. The second arm creates support toward the reviewed 5.4m staging target by moving contributors' full pension amounts. + - employment_income + notes: The QRF trains only on the 2024-25 FRS asked subset. The second arm creates support toward the reviewed 5.4m staging target by moving contributors' full pension amounts into salary sacrifice and lowering their pay by the same amount, since the engine reads employment_income after sacrifice; before microcosm#1069 c9 the pay stayed whole and the converted record lost its net-pay relief. - stage: student_loans survey: Family Resources Survey 2024-25 and Student Loans Company borrower forecasts for England source: Explore Education Statistics Table 6a, Higher education total 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 910289a2d..a6ecbd0e7 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/target_reference_membership.json +++ b/packages/microcosm-build/src/microcosm/build/uk/target_reference_membership.json @@ -1,11 +1,11 @@ { "source_fact_feed": "chronicle-uk-825406f9-consumer-facts", "target_period": 2025, - "candidate_count": 1299, - "contract_target_count": 338, - "active_reference_count": 1276, + "candidate_count": 1301, + "contract_target_count": 340, + "active_reference_count": 1278, "status_counts": { - "active": 1276, + "active": 1278, "no_fact_at_or_before_period": 7, "signed_excluded": 16 }, @@ -142,10 +142,6 @@ "geography_level": "country", "geography_id": "K02000001" }, - "hmrc.salary_sacrifice.users_total": { - "geography_level": "country", - "geography_id": "K02000001" - }, "hmrc.salary_sacrifice.users_below_cap": { "geography_level": "country", "geography_id": "K02000001" @@ -4067,11 +4063,24 @@ "dfc_ni.pension_credit.benefit_units": { "geography_level": "country", "geography_id": "N92000002" + }, + "dwp.workplace_pension.employer_contributions": { + "geography_level": "country", + "geography_id": "K03000001" + }, + "dwp.workplace_pension.employee_contributions": { + "geography_level": "country", + "geography_id": "K03000001" + }, + "hmrc.salary_sacrifice.amount": { + "geography_level": "country", + "geography_id": "K02000001" } }, "genuine_sum_residue": [ "dfe.funded_childcare.working_parent_children_2_to_4", "dfi_ni.bus.passenger_receipts", + "dwp.workplace_pension.employer_contributions", "nithc.public_transport_support", "ons.population.age_0_9_by_region@E12000001", "ons.population.age_0_9_by_region@E12000002", @@ -11438,6 +11447,11 @@ "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", "factor": "1.21312442637997", "value_before_uprating": "522000000.0" + }, + { + "name": "hmrc.salary_sacrifice.amount", + "from": "2024", + "to": "2025" } ], "targets": { @@ -11921,21 +11935,6 @@ } ] }, - "hmrc.salary_sacrifice.users_total": { - "status": "active", - "candidates": [ - { - "name": "hmrc.salary_sacrifice.users_total", - "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, - "resolved_period": 2025, - "resolved_value": 7700000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_06d585b8684b5fe0ce25f6ec" - } - ] - }, "hmrc.salary_sacrifice.users_below_cap": { "status": "active", "candidates": [ @@ -30286,6 +30285,51 @@ "resolved_fact_key": "ledger_aggregate_fact_v2_31088d4513e7b7e4b21233d7" } ] + }, + "dwp.workplace_pension.employer_contributions": { + "status": "active", + "candidates": [ + { + "name": "dwp.workplace_pension.employer_contributions", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 104200000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_084d676d6e9bd618bb35e125" + } + ] + }, + "dwp.workplace_pension.employee_contributions": { + "status": "active", + "candidates": [ + { + "name": "dwp.workplace_pension.employee_contributions", + "status": "active", + "matched_fact_count_overall": 24, + "matched_fact_count_at_or_before_period": 24, + "resolved_period": 2025, + "resolved_value": 66200000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_9077833a715946b65beb9f3d" + } + ] + }, + "hmrc.salary_sacrifice.amount": { + "status": "active", + "candidates": [ + { + "name": "hmrc.salary_sacrifice.amount", + "status": "active", + "matched_fact_count_overall": 2, + "matched_fact_count_at_or_before_period": 2, + "resolved_period": 2025, + "resolved_value": 24637681159.419598, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_026ae1169f5f0f997bb06479" + } + ] } }, "fanout_family_outcomes": [ 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 62d546b2b..c21543e1a 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/target_references.json +++ b/packages/microcosm-build/src/microcosm/build/uk/target_references.json @@ -225,6 +225,10 @@ "dfc_ni.pension_credit": { "provider_id": "dfc_ni", "label": "Pension Credit" + }, + "dwp.workplace_pensions": { + "provider_id": "dwp", + "label": "Workplace pensions" } }, "target_categories": { @@ -335,6 +339,8 @@ "dwp.uc.two_child_limit.households_affected": "dwp.universal_credit_two_child_limit", "dwp.uc.two_child_limit.households_claimant_pip": "dwp.universal_credit_two_child_limit", "dwp.uc.two_child_limit.households_disabled_child_element": "dwp.universal_credit_two_child_limit", + "dwp.workplace_pension.employee_contributions": "dwp.workplace_pensions", + "dwp.workplace_pension.employer_contributions": "dwp.workplace_pensions", "hmrc.cgt.badr_ir_qualifying_gains_by_band": "hmrc.capital_gains_tax", "hmrc.cgt.badr_ir_taxpayers_by_band": "hmrc.capital_gains_tax", "hmrc.cgt.gains_by_age_band": "hmrc.capital_gains_tax", @@ -354,6 +360,7 @@ "hmrc.itl.income_tax_by_total_income_band": "hmrc.income_tax_liabilities_statistics", "hmrc.itl.taxpayers_by_total_income_band": "hmrc.income_tax_liabilities_statistics", "hmrc.itl.total_income_by_total_income_band": "hmrc.income_tax_liabilities_statistics", + "hmrc.salary_sacrifice.amount": "hmrc.salary_sacrifice_national_insurance_relief", "hmrc.salary_sacrifice.it_relief_additional_rate": "hmrc.salary_sacrifice_income_tax_relief", "hmrc.salary_sacrifice.it_relief_basic_rate": "hmrc.salary_sacrifice_income_tax_relief", "hmrc.salary_sacrifice.it_relief_higher_rate": "hmrc.salary_sacrifice_income_tax_relief", @@ -361,7 +368,6 @@ "hmrc.salary_sacrifice.nics_relief_employer": "hmrc.salary_sacrifice_national_insurance_relief", "hmrc.salary_sacrifice.users_above_cap": "hmrc.salary_sacrifice_pension_users", "hmrc.salary_sacrifice.users_below_cap": "hmrc.salary_sacrifice_pension_users", - "hmrc.salary_sacrifice.users_total": "hmrc.salary_sacrifice_pension_users", "hmrc.spi.dividend_income.amount_by_total_income_band": "hmrc.survey_of_personal_incomes", "hmrc.spi.dividend_income.count_by_total_income_band": "hmrc.survey_of_personal_incomes", "hmrc.spi.employment_income.amount_by_total_income_band": "hmrc.survey_of_personal_incomes", @@ -660,6 +666,8 @@ "dwp.uc.two_child_limit.households_affected": "Households affected", "dwp.uc.two_child_limit.households_claimant_pip": "Households claimant Personal Independence Payment", "dwp.uc.two_child_limit.households_disabled_child_element": "Households disabled child element", + "dwp.workplace_pension.employee_contributions": "Employee workplace pension contributions (gross), Great Britain", + "dwp.workplace_pension.employer_contributions": "Employer workplace pension contributions, Great Britain", "hmrc.cgt.badr_ir_qualifying_gains_by_band": "Capital Gains Tax BADR and Investors' Relief qualifying gains by band", "hmrc.cgt.badr_ir_taxpayers_by_band": "Capital Gains Tax BADR and Investors' Relief claimants by band of qualifying gain", "hmrc.cgt.gains_by_age_band": "Capital Gains Tax gains by age band", @@ -679,6 +687,7 @@ "hmrc.itl.income_tax_by_total_income_band": "Income Tax liabilities by total income band", "hmrc.itl.taxpayers_by_total_income_band": "Income Tax payers by total income band", "hmrc.itl.total_income_by_total_income_band": "Total income by total income band", + "hmrc.salary_sacrifice.amount": "Salary-sacrificed pension contributions (from employer NICs relief)", "hmrc.salary_sacrifice.it_relief_additional_rate": "It relief additional rate", "hmrc.salary_sacrifice.it_relief_basic_rate": "It relief basic rate", "hmrc.salary_sacrifice.it_relief_higher_rate": "It relief higher rate", @@ -686,7 +695,6 @@ "hmrc.salary_sacrifice.nics_relief_employer": "National Insurance contributions relief employer", "hmrc.salary_sacrifice.users_above_cap": "Users above cap", "hmrc.salary_sacrifice.users_below_cap": "Users below cap", - "hmrc.salary_sacrifice.users_total": "Users total", "hmrc.spi.dividend_income.amount_by_total_income_band": "Amount by total income band", "hmrc.spi.dividend_income.count_by_total_income_band": "Count by total income band", "hmrc.spi.employment_income.amount_by_total_income_band": "Amount by total income band", @@ -1453,26 +1461,6 @@ "uprating_from_period": "2024", "uprating_to_period": 2025 }, - { - "name": "hmrc.salary_sacrifice.users_total", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.salary_sacrifice_pension_users", - "dimension_values": { - "salary_sacrifice_threshold_position": "all" - }, - "geography_level": "country", - "geography_id": "K02000001" - }, - "entity": "person", - "measure": "obr/salary_sacrifice_users_total", - "family": "hmrc_salary_sacrifice", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.salary_sacrifice.users_total", - "measure_kind": "prepared_column" - } - }, { "name": "hmrc.salary_sacrifice.users_below_cap", "ledger_selector": { @@ -46146,6 +46134,120 @@ }, "period_match_policy": "source_window", "value_operation": "monthly_window_average" + }, + { + "name": "dwp.workplace_pension.employer_contributions", + "ledger_selector": { + "source_name": "dwp", + "source_concept": "dwp.workplace_pension_annual_saving", + "entity_name": "person", + "dimensions": [ + "price_basis", + "saver_population", + "saving_component", + "sector" + ], + "period_type": "calendar_year", + "period_value": 2025, + "dimension_values": { + "price_basis": "2025_earnings_terms", + "saver_population": "all_savers", + "saving_component": "employer_contributions", + "sector": "all" + }, + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "person", + "measure": "dwp/workplace_pension/employer_contributions", + "family": "dwp_workplace_pensions", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.workplace_pension.employer_contributions", + "measure_kind": "prepared_column" + }, + "period_match_policy": "exact", + "value_operation": "sum" + }, + { + "name": "dwp.workplace_pension.employee_contributions", + "ledger_selector": { + "source_name": "dwp", + "source_concept": "dwp.workplace_pension_annual_saving", + "entity_name": "person", + "dimensions": [ + "price_basis", + "saver_population", + "saving_component", + "sector" + ], + "period_type": "calendar_year", + "period_value": 2025, + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "person", + "measure": "dwp/workplace_pension/employee_contributions", + "family": "dwp_workplace_pensions", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.workplace_pension.employee_contributions", + "measure_kind": "prepared_column" + }, + "period_match_policy": "exact", + "value_operation": "linear_combination", + "value_operands": [ + { + "weight": 1, + "source_concept": "dwp.workplace_pension_annual_saving", + "dimension_values": { + "price_basis": "2025_earnings_terms", + "saver_population": "all_savers", + "saving_component": "employee_contributions", + "sector": "all" + }, + "label": "employee_contributions_net_of_tax" + }, + { + "weight": 1, + "source_concept": "dwp.workplace_pension_annual_saving", + "dimension_values": { + "price_basis": "2025_earnings_terms", + "saver_population": "all_savers", + "saving_component": "tax_relief", + "sector": "all" + }, + "label": "tax_relief" + } + ] + }, + { + "name": "hmrc.salary_sacrifice.amount", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.ss_nics_relief_employer", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K02000001" + }, + "entity": "person", + "measure": "hmrc/salary_sacrifice_amount", + "family": "hmrc_salary_sacrifice", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.salary_sacrifice.amount", + "measure_kind": "prepared_column" + }, + "value_operation": "linear_combination", + "value_operands": [ + { + "weight": 7.246376811594, + "source_concept": "hmrc.ss_nics_relief_employer", + "label": "employer_nics_relief_over_13_8_percent" + } + ], + "uprating_from_period": "2024", + "uprating_to_period": 2025 } ] } 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 c9bb7b12f..8a4f5818d 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 @@ -24,8 +24,8 @@ "pinned_ref": "12a1e028afeef08d8b2d74ee03fd9de3a78b2dd3", "pinned_version": "1.56.16", "registry_rows": 652, - "mapped_rows": 626, - "excluded_rows": 26, + "mapped_rows": 625, + "excluded_rows": 27, "mapped": { "dwp/benefit_capped_households": "dwp.benefit_cap.capped_households", "dwp/esa_claimants": "dwp.esa_claimants", @@ -364,7 +364,6 @@ "obr/salary_sacrifice_employer_ni_relief": "hmrc.salary_sacrifice.nics_relief_employer", "obr/salary_sacrifice_users_above_cap": "hmrc.salary_sacrifice.users_above_cap", "obr/salary_sacrifice_users_below_cap": "hmrc.salary_sacrifice.users_below_cap", - "obr/salary_sacrifice_users_total": "hmrc.salary_sacrifice.users_total", "obr/sdlt": "obr.sdlt", "obr/statutory_maternity_pay": "obr.statutory_maternity_pay", "obr/tv_licence_fee": "obr.tv_licence_fee", @@ -680,7 +679,8 @@ "ons/tenure_england_social_rent": "England tenure counts come from an LA-grain workbook uk-data code-sums; ruled non-portable as national facts on chronicle#133 - moved to the wave-3 LA package (chronicle#134).", "ons/tenure_england_total": "England tenure counts come from an LA-grain workbook uk-data code-sums; ruled non-portable as national facts on chronicle#133 - moved to the wave-3 LA package (chronicle#134).", "obr/capital_gains_tax": "Observed FY2024-25 treatment (#875): the incumbent OBR cash forecast is retained only as diagnostic provenance. It has no same-basis liability mapping and is removed from fitting; no source value is adjusted.", - "obr/state_pension": "Resident treatment (microcosm#1069 R4): the incumbent OBR FY State Pension forecast counts Great Britain plus pensioners paid abroad and leaves out Northern Ireland. The DWP Stat-Xplore and DfC resident level is bound instead and the exact OBR FY2025-26 figure is retained only as diagnostic provenance on dwp.state_pension.amount; no source value is adjusted." + "obr/state_pension": "Resident treatment (microcosm#1069 R4): the incumbent OBR FY State Pension forecast counts Great Britain plus pensioners paid abroad and leaves out Northern Ireland. The DWP Stat-Xplore and DfC resident level is bound instead and the exact OBR FY2025-26 figure is retained only as diagnostic provenance on dwp.state_pension.amount; no source value is adjusted.", + "obr/salary_sacrifice_users_total": "R10 (microcosm#1069 c9): the salary-sacrifice users total contradicts the staged support and the two headcounts either side of £2,000 already bind it; it leaves the fit." }, "unmapped_declarations": { "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.", @@ -827,7 +827,10 @@ "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band": "Post-freeze fact family (HMRC SPI 2023-24 Table 3.8, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band": "Post-freeze fact family (HMRC SPI 2023-24 Table 3.8, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band": "Post-freeze fact family (HMRC SPI 2023-24 Table 3.8, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", - "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band": "Post-freeze fact family (HMRC SPI 2023-24 Table 3.8, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069)." + "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band": "Post-freeze fact family (HMRC SPI 2023-24 Table 3.8, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", + "dwp.workplace_pension.employer_contributions": "Post-freeze fact family (DWP workplace pension savings trends / HMRC Table 6.2, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069 c9).", + "dwp.workplace_pension.employee_contributions": "Post-freeze fact family (DWP workplace pension savings trends / HMRC Table 6.2, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069 c9).", + "hmrc.salary_sacrifice.amount": "Post-freeze fact family (DWP workplace pension savings trends / HMRC Table 6.2, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069 c9)." }, "suppressed_ancestors": { "hmrc/salary_sacrifice_it_relief_basic_rate": { @@ -894,7 +897,6 @@ "hmrc.salary_sacrifice.it_relief_additional_rate", "hmrc.salary_sacrifice.nics_relief_employee", "hmrc.salary_sacrifice.nics_relief_employer", - "hmrc.salary_sacrifice.users_total", "hmrc.salary_sacrifice.users_below_cap", "hmrc.salary_sacrifice.users_above_cap", "hmrc.spi.employment_income.amount_by_total_income_band", @@ -1198,7 +1200,10 @@ "dwp.pension_credit.benefit_units_80_84", "dwp.pension_credit.benefit_units_85_89", "dwp.pension_credit.benefit_units_90_plus", - "dfc_ni.pension_credit.benefit_units" + "dfc_ni.pension_credit.benefit_units", + "dwp.workplace_pension.employer_contributions", + "dwp.workplace_pension.employee_contributions", + "hmrc.salary_sacrifice.amount" ] }, "profile_parity": { @@ -2937,49 +2942,6 @@ "category_id": "hmrc.salary_sacrifice_national_insurance_relief", "label": "National Insurance contributions relief employer" }, - { - "target_id": "hmrc.salary_sacrifice.users_total", - "family": "hmrc_salary_sacrifice", - "geography_levels": [ - "country" - ], - "measurement": { - "entity": "person", - "map_to": "household", - "concept": "uk.person.count" - }, - "bindings": { - "policyengine": { - "metric_name": "obr/salary_sacrifice_users_total", - "filters": [ - { - "variable": "pension_contributions_via_salary_sacrifice", - "operator": ">", - "value": 0 - } - ], - "value_variable": "person_count", - "from_entity": "person", - "map_to": "household", - "threshold_price_base_year": 2023, - "notes": "The GBP 2,000 cap is defined at FRS base-year (2023) prices; deflate salary-sacrifice amounts before banding (compute/income.py:71-95)." - }, - "axiom": { - "metric_name": "obr/salary_sacrifice_users_total", - "status": "pending", - "value_rule": "uk.person.count" - } - }, - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.salary_sacrifice_pension_users", - "dimension_values": { - "salary_sacrifice_threshold_position": "all" - } - }, - "category_id": "hmrc.salary_sacrifice_pension_users", - "label": "Users total" - }, { "target_id": "hmrc.salary_sacrifice.users_below_cap", "family": "hmrc_salary_sacrifice", @@ -25852,6 +25814,206 @@ "value_operation": "monthly_window_average", "period_match_policy": "source_window" }, + { + "target_id": "dwp.workplace_pension.employer_contributions", + "family": "dwp_workplace_pensions", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "person", + "map_to": "household", + "concept": "uk.pensions.contributions.employer.amount" + }, + "bindings": { + "policyengine": { + "metric_name": "dwp/workplace_pension/employer_contributions", + "value_expression": "employer_pension_contributions + pension_contributions_via_salary_sacrifice", + "from_entity": "person", + "map_to": "household", + "household_conditions": [ + { + "variable": "region", + "entity": "household", + "reduce": "any", + "operator": "in", + "value": [ + "NORTH_EAST", + "NORTH_WEST", + "YORKSHIRE", + "EAST_MIDLANDS", + "WEST_MIDLANDS", + "EAST_OF_ENGLAND", + "LONDON", + "SOUTH_EAST", + "SOUTH_WEST", + "WALES", + "SCOTLAND" + ], + "map_to": "person" + } + ], + "notes": "DWP Workplace pension participation and savings trends 2025 (ONS ASHE, Great Britain, all savers, 2025 earnings terms; PolicyEngine/chronicle#302 via #305): employer contributions into workplace pensions in calendar 2025, against the engine's employer contributions plus salary sacrifice, which ASHE and DWP count as an employer contribution (microcosm#1069 c9, R6)." + }, + "axiom": { + "metric_name": "dwp/workplace_pension/employer_contributions", + "status": "pending", + "value_rule": "uk.pensions.contributions.employer.amount" + } + }, + "ledger_selector": { + "source_name": "dwp", + "source_concept": "dwp.workplace_pension_annual_saving", + "entity_name": "person", + "dimensions": [ + "price_basis", + "saver_population", + "saving_component", + "sector" + ], + "period_type": "calendar_year", + "period_value": 2025, + "dimension_values": { + "price_basis": "2025_earnings_terms", + "saver_population": "all_savers", + "saving_component": "employer_contributions", + "sector": "all" + } + }, + "category_id": "dwp.workplace_pensions", + "label": "Employer workplace pension contributions, Great Britain", + "period_match_policy": "exact" + }, + { + "target_id": "dwp.workplace_pension.employee_contributions", + "family": "dwp_workplace_pensions", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "person", + "map_to": "household", + "concept": "uk.pensions.contributions.employee.amount" + }, + "bindings": { + "policyengine": { + "metric_name": "dwp/workplace_pension/employee_contributions", + "value_variable": "employee_pension_contributions", + "from_entity": "person", + "map_to": "household", + "household_conditions": [ + { + "variable": "region", + "entity": "household", + "reduce": "any", + "operator": "in", + "value": [ + "NORTH_EAST", + "NORTH_WEST", + "YORKSHIRE", + "EAST_MIDLANDS", + "WEST_MIDLANDS", + "EAST_OF_ENGLAND", + "LONDON", + "SOUTH_EAST", + "SOUTH_WEST", + "WALES", + "SCOTLAND" + ], + "map_to": "person" + } + ], + "notes": "DWP Workplace pension participation and savings trends 2025 (ONS ASHE, Great Britain, all savers, 2025 earnings terms; PolicyEngine/chronicle#302 via #305): gross employee contributions, DWP's employee part (net of tax) plus its tax relief part, against the engine's employee contributions (microcosm#1069 c9, R6)." + }, + "axiom": { + "metric_name": "dwp/workplace_pension/employee_contributions", + "status": "pending", + "value_rule": "uk.pensions.contributions.employee.amount" + } + }, + "ledger_selector": { + "source_name": "dwp", + "source_concept": "dwp.workplace_pension_annual_saving", + "entity_name": "person", + "dimensions": [ + "price_basis", + "saver_population", + "saving_component", + "sector" + ], + "period_type": "calendar_year", + "period_value": 2025 + }, + "value_operation": "linear_combination", + "value_operands": [ + { + "weight": 1, + "source_concept": "dwp.workplace_pension_annual_saving", + "dimension_values": { + "price_basis": "2025_earnings_terms", + "saver_population": "all_savers", + "saving_component": "employee_contributions", + "sector": "all" + }, + "label": "employee_contributions_net_of_tax" + }, + { + "weight": 1, + "source_concept": "dwp.workplace_pension_annual_saving", + "dimension_values": { + "price_basis": "2025_earnings_terms", + "saver_population": "all_savers", + "saving_component": "tax_relief", + "sector": "all" + }, + "label": "tax_relief" + } + ], + "category_id": "dwp.workplace_pensions", + "label": "Employee workplace pension contributions (gross), Great Britain", + "period_match_policy": "exact" + }, + { + "target_id": "hmrc.salary_sacrifice.amount", + "family": "hmrc_salary_sacrifice", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "person", + "map_to": "household", + "concept": "uk.pensions.contributions.salary_sacrifice.amount" + }, + "bindings": { + "policyengine": { + "metric_name": "hmrc/salary_sacrifice_amount", + "value_variable": "pension_contributions_via_salary_sacrifice", + "from_entity": "person", + "map_to": "household", + "notes": "HMRC Private pension statistics Table 6.2, 2024-25: the employer National Insurance relief on salary-sacrificed pension contributions (£3.4bn) divided by the 13.8% employer rate, a declared conversion (about £24.6bn) binding the sacrificed amount until the relief rows bind directly through the counterfactual route (microcosm#1069 R10; c11 retires this row)." + }, + "axiom": { + "metric_name": "hmrc/salary_sacrifice_amount", + "status": "pending", + "value_rule": "uk.pensions.contributions.salary_sacrifice.amount" + } + }, + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.ss_nics_relief_employer", + "entity_name": "person" + }, + "value_operation": "linear_combination", + "value_operands": [ + { + "weight": 7.246376811594, + "source_concept": "hmrc.ss_nics_relief_employer", + "label": "employer_nics_relief_over_13_8_percent" + } + ], + "category_id": "hmrc.salary_sacrifice_national_insurance_relief", + "label": "Salary-sacrificed pension contributions (from employer NICs relief)" + }, { "target_id": "hmrc.self_employment_income.amount", "family": "hmrc", @@ -29122,6 +29284,10 @@ "dfc_ni.pension_credit": { "provider_id": "dfc_ni", "label": "Pension Credit" + }, + "dwp.workplace_pensions": { + "provider_id": "dwp", + "label": "Workplace pensions" } } } diff --git a/packages/microcosm-build/src/microcosm/build/uk_runtime/employer_pension_contributions.py b/packages/microcosm-build/src/microcosm/build/uk_runtime/employer_pension_contributions.py new file mode 100644 index 000000000..1d9293c39 --- /dev/null +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/employer_pension_contributions.py @@ -0,0 +1,301 @@ +"""Employer pension contributions from ASHE contribution-rate bands (microcosm#1069 R6). + +The FRS records whether a person belongs to an employer's pension scheme and of +what kind (``PENPROV.STEMPPEN`` 1 to 4: group personal, occupational, group +stakeholder, other or not known) but not what the employer pays. The incumbent +estimate set employer contributions to three times the employee's, which gives +nothing to members of non-contributory schemes and the same multiple to a +defined-benefit public-sector scheme as to an auto-enrolment minimum. + +This module draws each member's employer contribution rate instead, from the +ONS ASHE 2024 pension tables: the share of jobs in each employer contribution +band (as a percentage of full pay) by pension type and sector (Table P10, all +industries). An occupational scheme is defined benefit or defined contribution +with the probabilities ASHE's job counts give within the member's sector (Table +P2); the other employer types map one to one, and a scheme of unknown type uses +the all-types distribution. The rate is drawn uniformly within its band (the +open top band is read as 20% to 30%; the largest defined-benefit employer rates +sit just under 30%), and the contribution is that rate times the person's +employment income. Salary sacrifice stays its own column; ASHE and DWP count it +as an employer contribution, so the bound DWP employer total adds it back. +""" + +from __future__ import annotations + +from collections.abc import Mapping +from dataclasses import dataclass + +import numpy as np +import pandas as pd + +from microcosm.build.stochastic_assignment import stable_identity_uniforms + +ASHE_EMPLOYER_RATE_RESOURCE = "ashe_employer_pension_contribution_rates.json" +ASHE_EMPLOYER_RATE_PERIOD = "2024" +#: ASHE's employer contribution bands as fractions of full pay; the open top +#: band is closed at 30%. +ASHE_EMPLOYER_RATE_BANDS: tuple[tuple[str, float, float], ...] = ( + ("Under 4%", 0.0, 0.04), + ("4% to < 8%", 0.04, 0.08), + ("8% to < 10%", 0.08, 0.10), + ("10% to < 12%", 0.10, 0.12), + ("12% to < 15%", 0.12, 0.15), + ("15% to < 20%", 0.15, 0.20), + ("20% and over", 0.20, 0.30), +) +#: FRS PENPROV.STEMPPEN codes for employer schemes (FRS 2024-25 variable +#: listing) and the ASHE pension type each maps to; "occupational" splits into +#: defined benefit or defined contribution by sector. +FRS_EMPLOYER_SCHEME_TYPES: Mapping[int, str] = { + 1: "group_personal_pension", + 2: "occupational", + 3: "group_stakeholder_pension", + 4: "all", +} +#: A member of several employer schemes takes the first type in this order. +FRS_EMPLOYER_SCHEME_PRIORITY = (2, 1, 3, 4) +#: FRS JOB.JOBSECT codes (1 private, 2 public). +FRS_JOB_SECTORS: Mapping[int, str] = {1: "Private", 2: "Public"} +EMPLOYER_RATE_SEED = 0 +EMPLOYER_RATE_SALT = "employer_pension_contribution_rate" +EMPLOYER_TYPE_SALT = "employer_pension_occupational_type" +EMPLOYER_RATE_METHOD = ( + "ASHE 2024 Table P10 employer contribution band shares by pension type and " + "sector (full pay, all industries); occupational schemes split into defined " + "benefit and defined contribution by ASHE Table P2 job counts in the sector; " + "the rate is uniform within its band (top band 20% to 30%) and multiplies " + "employment income" +) + + +@dataclass(frozen=True) +class AsheEmployerRates: + """Band shares by (pension type, sector) and the occupational DB share.""" + + shares: Mapping[tuple[str, str], np.ndarray] + defined_benefit_share: Mapping[str, float] + + def distribution(self, pension_type: str, sector: str) -> np.ndarray: + for key in ((pension_type, sector), (pension_type, "all")): + if key in self.shares: + return self.shares[key] + raise ValueError( + f"ASHE has no employer rate distribution for {pension_type!r}." + ) + + +def ashe_employer_rates_from_rows( + rows: list[Mapping[str, object]], +) -> AsheEmployerRates: + """Build the rate model from vendored ASHE rows (P10 shares, P2 job counts).""" + + bands = [band for band, _, _ in ASHE_EMPLOYER_RATE_BANDS] + shares: dict[tuple[str, str], np.ndarray] = {} + collected: dict[tuple[str, str], dict[str, float]] = {} + jobs: dict[tuple[str, str], float] = {} + for row in rows: + dimensions = row.get("dimensions") or {} + concept = row.get("concept") + value = float(row["value"]) + if concept == "ons.workplace_pension_employer_contribution_band_share": + if dimensions.get("contribution_basis") != "full_pay": + continue + if dimensions.get("sic2007_section", "all") != "all": + continue + key = ( + str(dimensions["pension_type"]), + str(dimensions.get("sector", "all")), + ) + collected.setdefault(key, {})[ + str(dimensions["employer_contribution_rate_band"]) + ] = value + elif concept == "ons.workplace_pension_jobs_by_type": + if dimensions.get("sic2007_section", "all") != "all": + continue + if dimensions.get("weekly_earnings_band", "all") != "all": + continue + jobs[ + (str(dimensions["pension_type"]), str(dimensions.get("sector", "all"))) + ] = value + for key, values in collected.items(): + if set(values) != set(bands): + # ASHE suppresses some sector cells; those fall back to the type's + # all-sector distribution. + continue + vector = np.asarray([values[band] for band in bands], dtype=np.float64) + if vector.sum() <= 0.0: + continue + shares[key] = vector / vector.sum() + # ASHE publishes the all-industry bands by sector only: a type's all-sector + # distribution is its sector distributions mixed by the sector's jobs of + # that type (Table P2), the "all" type's by the sector's jobs of every type + # with an employer scheme. + scheme_types = { + pension_type + for (pension_type, _sector) in jobs + if pension_type not in ("no_pension_provision", "unknown_pension_provision") + } + for pension_type in {key[0] for key in shares}: + if (pension_type, "all") in shares: + continue + parts = [] + for sector in ("Public", "Private"): + if (pension_type, sector) not in shares: + continue + if pension_type == "all": + weight = sum(jobs.get((kind, sector), 0.0) for kind in scheme_types) + else: + weight = jobs.get((pension_type, sector), 0.0) + if weight > 0.0: + parts.append((weight, shares[(pension_type, sector)])) + if parts: + total = sum(weight for weight, _ in parts) + mixed = sum(weight * vector for weight, vector in parts) / total + shares[(pension_type, "all")] = mixed / mixed.sum() + defined_benefit_share: dict[str, float] = {} + for sector in ("Public", "Private"): + db = jobs.get(("defined_benefit", sector)) + dc = jobs.get(("defined_contribution", sector)) + if db is not None and dc is not None and db + dc > 0.0: + defined_benefit_share[sector] = db / (db + dc) + db_all = sum( + jobs.get(("defined_benefit", sector), 0.0) for sector in ("Public", "Private") + ) + dc_all = sum( + jobs.get(("defined_contribution", sector), 0.0) + for sector in ("Public", "Private") + ) + if db_all + dc_all > 0.0: + defined_benefit_share["all"] = db_all / (db_all + dc_all) + for required in ("defined_benefit", "defined_contribution", "all"): + if (required, "all") not in shares: + raise ValueError( + f"ASHE employer rates lack the {required!r} all-sector row." + ) + if "all" not in defined_benefit_share: + raise ValueError("ASHE job counts lack the DB and DC rows.") + return AsheEmployerRates(shares=shares, defined_benefit_share=defined_benefit_share) + + +def load_ashe_employer_rates() -> AsheEmployerRates: + """Read the vendored ASHE rows (refused if they lag the feed pin).""" + + from microcosm.build.uk_runtime.ledger_fact_vendoring import vendored_rows + + return ashe_employer_rates_from_rows( + vendored_rows( + ASHE_EMPLOYER_RATE_RESOURCE, period_value=ASHE_EMPLOYER_RATE_PERIOD + ) + ) + + +def employer_scheme_and_sector( + person_ids: np.ndarray, + penprov: pd.DataFrame, + job: pd.DataFrame, +) -> tuple[np.ndarray, np.ndarray]: + """Each person's employer scheme STEMPPEN code (0 if none) and job sector. + + ``penprov`` and ``job`` carry ``source_person_id`` (the raw sernum/person + identity) with ``stemppen`` and ``jobsect`` respectively; a person's sector + is that of their first job with a stated sector, "all" otherwise. + """ + + scheme = np.zeros(len(person_ids), dtype=np.int64) + codes = pd.to_numeric(penprov["stemppen"], errors="coerce").fillna(0).astype(int) + employer = penprov.loc[codes.isin(FRS_EMPLOYER_SCHEME_TYPES)].assign(code=codes) + rank = { + code: position for position, code in enumerate(FRS_EMPLOYER_SCHEME_PRIORITY) + } + if len(employer): + employer = employer.assign(rank=employer["code"].map(rank)) + best = employer.sort_values("rank").drop_duplicates("source_person_id") + lookup = best.set_index("source_person_id")["code"] + scheme = pd.Series(person_ids).map(lookup).fillna(0).astype(np.int64).to_numpy() + sectors = pd.to_numeric(job["jobsect"], errors="coerce") + stated = job.loc[sectors.isin(FRS_JOB_SECTORS)].assign( + sector=sectors.map(FRS_JOB_SECTORS) + ) + sector = np.full(len(person_ids), "all", dtype=object) + if len(stated): + first = stated.drop_duplicates("source_person_id").set_index("source_person_id") + sector = ( + pd.Series(person_ids) + .map(first["sector"]) + .fillna("all") + .to_numpy(dtype=object) + ) + return scheme, sector + + +def draw_employer_pension_contributions( + person_ids: np.ndarray, + *, + employment_income: np.ndarray, + scheme: np.ndarray, + sector: np.ndarray, + rates: AsheEmployerRates, +) -> tuple[np.ndarray, dict[str, object]]: + """Employer contributions for members of an employer scheme with earnings.""" + + income = np.asarray(employment_income, dtype=np.float64) + if not np.isfinite(income).all(): + raise ValueError("employment_income must be finite.") + scheme = np.asarray(scheme, dtype=np.int64) + members = (scheme > 0) & (income > 0.0) + type_draws = stable_identity_uniforms( + person_ids, seed=EMPLOYER_RATE_SEED, salt=EMPLOYER_TYPE_SALT + ) + rate_draws = stable_identity_uniforms( + person_ids, seed=EMPLOYER_RATE_SEED, salt=EMPLOYER_RATE_SALT + ) + rate = np.zeros(len(person_ids), dtype=np.float64) + ashe_type = np.full(len(person_ids), "", dtype=object) + edges = np.asarray([[low, high] for _, low, high in ASHE_EMPLOYER_RATE_BANDS]) + counts: dict[str, int] = {} + for index in np.flatnonzero(members): + mapped = FRS_EMPLOYER_SCHEME_TYPES[int(scheme[index])] + sector_label = str(sector[index]) + if mapped == "occupational": + db_share = rates.defined_benefit_share.get( + sector_label, rates.defined_benefit_share["all"] + ) + mapped = ( + "defined_benefit" + if type_draws[index] < db_share + else "defined_contribution" + ) + distribution = rates.distribution(mapped, sector_label) + cumulative = np.cumsum(distribution) + position = min( + int(np.searchsorted(cumulative, rate_draws[index], side="right")), + len(distribution) - 1, + ) + lower = cumulative[position - 1] if position else 0.0 + within = (rate_draws[index] - lower) / max(distribution[position], 1e-12) + low, high = edges[position] + rate[index] = low + min(max(within, 0.0), 1.0) * (high - low) + ashe_type[index] = mapped + counts[mapped] = counts.get(mapped, 0) + 1 + amounts = rate * np.where(members, income, 0.0) + receipt = { + "method": EMPLOYER_RATE_METHOD, + "members_with_earnings": int(members.sum()), + "members_by_ashe_type": dict(sorted(counts.items())), + "mean_rate_of_members": float(rate[members].mean()) if members.any() else None, + "unweighted_amount": float(amounts.sum()), + } + return amounts, receipt + + +__all__ = [ + "ASHE_EMPLOYER_RATE_BANDS", + "ASHE_EMPLOYER_RATE_RESOURCE", + "AsheEmployerRates", + "EMPLOYER_RATE_METHOD", + "FRS_EMPLOYER_SCHEME_TYPES", + "ashe_employer_rates_from_rows", + "draw_employer_pension_contributions", + "employer_scheme_and_sector", + "load_ashe_employer_rates", +] 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 6fcdcc9a8..1ddbc1f59 100644 --- a/packages/microcosm-build/src/microcosm/build/uk_runtime/graph.py +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/graph.py @@ -238,7 +238,8 @@ "lcfs_consumption": None, "etb_vat": None, "etb_services": None, - "frs_hmrc_spine_leaves": frozenset({("person", "employee_pension_contributions")}), + # The employer pension draw applies an ASHE rate to pay (microcosm#1069). + "frs_hmrc_spine_leaves": frozenset({("person", "employment_income")}), "spi_support_channel": None, "spi_income_band_donors": None, "hmrc_spi_income_spine": None, @@ -796,6 +797,8 @@ def _cells( ( "pension_contributions_via_salary_sacrifice", "employee_pension_contributions", + # Converted records' pay drops by the sacrificed amount (microcosm#1069). + "employment_income", ), ), "student_loans": (_Cell("person", "student_loan_plan", "string"),), diff --git a/packages/microcosm-build/src/microcosm/build/uk_runtime/hmrc_source_contract.py b/packages/microcosm-build/src/microcosm/build/uk_runtime/hmrc_source_contract.py index 0a5ac6196..0bc12ee5a 100644 --- a/packages/microcosm-build/src/microcosm/build/uk_runtime/hmrc_source_contract.py +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/hmrc_source_contract.py @@ -97,7 +97,8 @@ _EXPECTED_OPERATION_KINDS = ( "retain_adjudicated_frs_hmrc_leaves", - "derive", + # Employer pension contributions from ASHE rate bands (microcosm#1069 c9). + "draw_employer_pension_contributions_from_rate_bands", "stack_zero_weight_donors", "gate_zero_weight_strata", "allocate_zero_weight_prior_mass", diff --git a/packages/microcosm-build/src/microcosm/build/uk_runtime/salary_sacrifice.py b/packages/microcosm-build/src/microcosm/build/uk_runtime/salary_sacrifice.py index 79148671b..555e4d1bc 100644 --- a/packages/microcosm-build/src/microcosm/build/uk_runtime/salary_sacrifice.py +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/salary_sacrifice.py @@ -43,9 +43,9 @@ SALSAC_CONVERSION_SEED = 2024 SALSAC_CONVERSION_SALT = "salary_sacrifice_conversion" SALSAC_MASS_CHANGE_REASON = ( - "Salary-sacrifice support stage rewrites pension columns only; household " - "rows and typed household weights pass through and total household mass " - "is conserved." + "Salary-sacrifice support stage rewrites pension columns and converted " + "records' pay; household rows and typed household weights pass through and " + "total household mass is conserved." ) @@ -121,7 +121,7 @@ def __call__(self, frame: Frame) -> Frame: @staticmethod def output_columns() -> tuple[str, ...]: - return (SALSAC_OUTPUT, "employee_pension_contributions") + return (SALSAC_OUTPUT, "employee_pension_contributions", "employment_income") def checkpoint_metadata(self) -> dict[str, object]: if self.last_result is None: @@ -233,9 +233,19 @@ def impute_salary_sacrifice(frame: Frame) -> UKSalarySacrificeResult: converted = donor_pool & (draws < rate) moved_amount = float(employee[converted].sum()) final_ss[converted] = employee[converted] + # Sacrificed pay leaves the contract: the engine reads employment_income + # after sacrifice, so a converted record's pay drops by the amount that + # becomes salary sacrifice. Without this the converted contribution left + # taxable pay and NI unchanged while losing its net-pay relief + # (microcosm#1069 c9). + employment_income = employment_income.copy() + employment_income[converted] = np.maximum( + employment_income[converted] - employee[converted], 0.0 + ) employee[converted] = 0.0 person[SALSAC_OUTPUT] = final_ss person["employee_pension_contributions"] = employee + person["employment_income"] = employment_income post_headcount = float(person_weights[final_ss > 0.0].sum()) converted_mass = float(person_weights[converted].sum()) total = frame.weights_for("household").total @@ -326,7 +336,8 @@ def _assert_salary_sacrifice_stage_parameters( "rate_cap": SALSAC_RATE_CAP, "move": ( "full employee_pension_contributions to " - "pension_contributions_via_salary_sacrifice; source zeroed" + "pension_contributions_via_salary_sacrifice; source zeroed; " + "employment_income lowered by the amount sacrificed" ), "seed": SALSAC_CONVERSION_SEED, "salt": SALSAC_CONVERSION_SALT, diff --git a/packages/microcosm-build/src/microcosm/build/uk_runtime/spi_spine.py b/packages/microcosm-build/src/microcosm/build/uk_runtime/spi_spine.py index 0701e7a78..adb26757a 100644 --- a/packages/microcosm-build/src/microcosm/build/uk_runtime/spi_spine.py +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/spi_spine.py @@ -12,12 +12,18 @@ from microcosm.build.gates import FitWeightRecord from microcosm.build.source_manifest import SourceStageSpec +from microcosm.build.uk_runtime.employer_pension_contributions import ( + draw_employer_pension_contributions, + employer_scheme_and_sector, + load_ashe_employer_rates, +) from microcosm.build.uk_runtime.frs_hmrc_source import ( FRS_HMRC_INCPBEN_COLUMN, FRS_HMRC_PAY_COLUMN, FRS_HMRC_RETAINED_LEAF_COLUMNS, FRS_HMRC_UBISJA_COLUMN, _materialize_source_leaves, + _raw_source_person_ids, _read_raw_frs_table, ) from microcosm.build.uk_runtime.frs_take_up import uk_take_up_population_policy @@ -255,13 +261,19 @@ class UKFRSHMRCSpineLeavesResult: frame: Frame source_signal_rows: dict[str, int] structural_zero_columns: tuple[str, ...] + employer_pension_contributions: Mapping[str, object] | None = None def evidence(self) -> dict[str, object]: - return { + evidence: dict[str, object] = { "stage": UK_FRS_HMRC_SPINE_LEAVES_STAGE_NAME, "source_signal_rows": dict(self.source_signal_rows), "structural_zero_columns": list(self.structural_zero_columns), } + if self.employer_pension_contributions is not None: + evidence["employer_pension_contributions"] = dict( + self.employer_pension_contributions + ) + return evidence @dataclass(frozen=True) @@ -339,7 +351,9 @@ def __init__( def __call__(self, frame: Frame) -> Frame: validate_uk_national_frame(frame) - artifacts = _artifact_by_table(self.stage, expected=("adult", "benefits")) + artifacts = _artifact_by_table( + self.stage, expected=("adult", "benefits", "job", "penprov") + ) adult, adult_identity = _read_raw_frs_table( self.frs_raw_dir / str(artifacts["adult"]["locator"]), expected_filename="adult.tab", @@ -352,10 +366,26 @@ def __call__(self, frame: Frame) -> Frame: source_vintage=str(artifacts["benefits"].get("vintage", "unspecified")), required_columns=("sernum", "person", "benefit", "benamt", "var2"), ) + penprov, penprov_identity = _read_raw_frs_table( + self.frs_raw_dir / str(artifacts["penprov"]["locator"]), + expected_filename="penprov.tab", + source_vintage=str(artifacts["penprov"].get("vintage", "unspecified")), + required_columns=("sernum", "person", "stemppen"), + ) + job, job_identity = _read_raw_frs_table( + self.frs_raw_dir / str(artifacts["job"]["locator"]), + expected_filename="job.tab", + source_vintage=str(artifacts["job"].get("vintage", "unspecified")), + required_columns=("sernum", "person", "jobsect"), + ) _assert_identity_matches_artifact(adult_identity.evidence(), artifacts["adult"]) _assert_identity_matches_artifact( benefits_identity.evidence(), artifacts["benefits"] ) + _assert_identity_matches_artifact( + penprov_identity.evidence(), artifacts["penprov"] + ) + _assert_identity_matches_artifact(job_identity.evidence(), artifacts["job"]) source_leaves = _materialize_source_leaves(adult, benefits) person = frame.table("person").copy() missing_ids = sorted(set(source_leaves.index) - set(person["person_id"])) @@ -374,21 +404,33 @@ def __call__(self, frame: Frame) -> Frame: aligned = source_leaves.reindex(person["person_id"], fill_value=0.0) for column in FRS_HMRC_RETAINED_LEAF_COLUMNS: person[column] = aligned[column].to_numpy(dtype=float) - if "employee_pension_contributions" not in person: + # Employer contributions: each member of an employer scheme draws an + # ASHE contribution rate for their scheme type and sector, applied to + # their pay (microcosm#1069 R6), replacing the incumbent's three times + # the employee contribution. + if "employment_income" not in person: raise ValueError( - "FRS HMRC spine leaves require employee_pension_contributions " - "to derive employer pension contributions." + "FRS HMRC spine leaves require employment_income to draw employer " + "pension contributions." ) - employee = pd.to_numeric( - person["employee_pension_contributions"], errors="coerce" + pay = pd.to_numeric(person["employment_income"], errors="coerce") + if pay.isna().any(): + raise ValueError("employment_income must be finite.") + scheme, sector = employer_scheme_and_sector( + person["person_id"].to_numpy(), + penprov.assign( + source_person_id=_raw_source_person_ids(penprov, label="PENPROV") + ), + job.assign(source_person_id=_raw_source_person_ids(job, label="JOB")), ) - if employee.isna().any() or (employee < 0.0).any(): - raise ValueError( - "employee_pension_contributions must be finite and non-negative." - ) - person[EMPLOYER_PENSION_CONTRIBUTIONS_COLUMN] = 3.0 * employee.to_numpy( - dtype=float + employer_amounts, employer_receipt = draw_employer_pension_contributions( + person["person_id"].to_numpy(), + employment_income=pay.to_numpy(dtype=float), + scheme=scheme, + sector=sector, + rates=load_ashe_employer_rates(), ) + person[EMPLOYER_PENSION_CONTRIBUTIONS_COLUMN] = employer_amounts result_frame = uk_national_frame( person=person, benunit=frame.table("benunit"), @@ -409,6 +451,7 @@ def __call__(self, frame: Frame) -> Frame: structural_zero_columns=tuple( column for column, rows in source_signal_rows.items() if rows == 0 ), + employer_pension_contributions=employer_receipt, ) object.__setattr__(self, "last_result", result) return result.frame diff --git a/packages/microcosm-build/tests/engine_free/shared/test_country_spec.py b/packages/microcosm-build/tests/engine_free/shared/test_country_spec.py index 8768e2757..51f93ec48 100644 --- a/packages/microcosm-build/tests/engine_free/shared/test_country_spec.py +++ b/packages/microcosm-build/tests/engine_free/shared/test_country_spec.py @@ -943,6 +943,7 @@ def test_spi_spine_adds_no_country_package_resources(self) -> None: "dwp_uc_deduction_distributions.json", "nhs_consumption_by_age_gender.json", "ons_age_tail_band_populations.json", + "ashe_employer_pension_contribution_rates.json", "ons_single_year_age_populations.json", "lcfs_consumption_support_bounds.json", "etb_vat_support_bounds.json", @@ -1064,6 +1065,7 @@ def test_uk_package_loads(self) -> None: "dwp_uc_deduction_distributions.json", "nhs_consumption_by_age_gender.json", "ons_age_tail_band_populations.json", + "ashe_employer_pension_contribution_rates.json", "ons_single_year_age_populations.json", "lcfs_consumption_support_bounds.json", "etb_vat_support_bounds.json", @@ -1126,7 +1128,7 @@ def test_uk_target_references_accept_regenerated_contract_fields(self) -> None: references = {reference.name: reference for reference in spec.target_references} assert ( - len(references) == 1276 + len(references) == 1278 ) # PolicyEngine/chronicle#280 lane: 705 + 33 HMRC liabilities rows (Table 2.5, three # measures by eleven bands) + 26 SPI savings-interest rows (two measures by # thirteen bands) + 360 SPI Table 3.11 region-tier rows (three measures by @@ -1141,7 +1143,9 @@ def test_uk_target_references_accept_regenerated_contract_fields(self) -> None: # less the OBR State Pension line, now a diagnostic, and the signed-out # empty new State Pension £40-£60 band; 14 Pension Credit caseload rows # (Great Britain total, six type-by-partner cells, six age bands, NI); - # 52 SPI Table 3.8 contribution rows (four measures by thirteen bands) + # 52 SPI Table 3.8 contribution rows (four measures by thirteen bands); + # the DWP employer and employee contribution totals and the + # salary-sacrifice amount, less the salary-sacrifice users total assert references["obr.esa"].value_operation == "calendar_year_window" assert references["dwp.uc.households"].value_operation == ( "monthly_window_sum_average" diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_employer_pension_contributions.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_employer_pension_contributions.py new file mode 100644 index 000000000..21524e135 --- /dev/null +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_employer_pension_contributions.py @@ -0,0 +1,152 @@ +"""Employer pension contributions from ASHE rate bands (microcosm#1069 c9, R6).""" + +from __future__ import annotations + +import numpy as np +import pandas as pd +import pytest + +from microcosm.build.uk_runtime.employer_pension_contributions import ( + ASHE_EMPLOYER_RATE_BANDS, + ashe_employer_rates_from_rows, + draw_employer_pension_contributions, + employer_scheme_and_sector, + load_ashe_employer_rates, +) + +BANDS = [band for band, _, _ in ASHE_EMPLOYER_RATE_BANDS] + + +def _share_rows(pension_type: str, sector: str, shares: list[float]) -> list[dict]: + dimensions = {"contribution_basis": "full_pay", "pension_type": pension_type} + if sector != "all": + dimensions.update( + { + "sector": sector, + "sic2007_section": "all", + "sic2007_summary_category": "all", + } + ) + return [ + { + "concept": "ons.workplace_pension_employer_contribution_band_share", + "dimensions": {**dimensions, "employer_contribution_rate_band": band}, + "value": share, + } + for band, share in zip(BANDS, shares, strict=True) + ] + + +def _job_rows(sector: str, db: float, dc: float) -> list[dict]: + return [ + { + "concept": "ons.workplace_pension_jobs_by_type", + "dimensions": { + "pension_type": pension_type, + "sector": sector, + "sic2007_section": "all", + "sic2007_summary_category": "all", + "weekly_earnings_band": "all", + }, + "value": jobs, + } + for pension_type, jobs in ( + ("defined_benefit", db), + ("defined_contribution", dc), + ) + ] + + +def _rates(): + rows = [ + # Defined benefit: everything at 20% and over; defined contribution and + # the all-types row: everything under 4%. + *_share_rows("defined_benefit", "all", [0, 0, 0, 0, 0, 0, 100]), + *_share_rows("defined_contribution", "all", [100, 0, 0, 0, 0, 0, 0]), + *_share_rows("group_personal_pension", "all", [0, 100, 0, 0, 0, 0, 0]), + *_share_rows("group_stakeholder_pension", "all", [0, 0, 100, 0, 0, 0, 0]), + *_share_rows("all", "all", [100, 0, 0, 0, 0, 0, 0]), + *_job_rows("Public", 90.0, 10.0), + *_job_rows("Private", 10.0, 90.0), + *_job_rows("all", 50.0, 50.0), + ] + return ashe_employer_rates_from_rows(rows) + + +def test_rates_normalise_the_band_shares_and_split_occupational_by_sector() -> None: + rates = _rates() + + np.testing.assert_allclose(rates.distribution("defined_benefit", "Public")[-1], 1.0) + assert rates.defined_benefit_share == {"Public": 0.9, "Private": 0.1, "all": 0.5} + + +def test_each_member_draws_a_rate_inside_their_band() -> None: + rates = _rates() + count = 4_000 + ids = np.arange(1, count + 1) + scheme = np.tile([1, 2, 3, 4, 0], count // 5) + sector = np.tile(["Public", "Private"], count // 2).astype(object) + income = np.full(count, 30_000.0) + + amounts, receipt = draw_employer_pension_contributions( + ids, employment_income=income, scheme=scheme, sector=sector, rates=rates + ) + + rate = amounts / income + assert (amounts[scheme == 0] == 0.0).all() + # Group personal pensions sit in 4% to < 8%. + gpp = rate[scheme == 1] + assert ((gpp >= 0.04) & (gpp < 0.08)).all() + # Public-sector occupational members are mostly defined benefit (20% to 30%). + public_occupational = rate[(scheme == 2) & (sector == "Public")] + assert ( + (public_occupational >= 0.2) & (public_occupational <= 0.3) + ).mean() == pytest.approx(0.9, abs=0.05) + private_occupational = rate[(scheme == 2) & (sector == "Private")] + assert (private_occupational < 0.04).mean() == pytest.approx(0.9, abs=0.05) + stakeholder = rate[scheme == 3] + assert ((stakeholder >= 0.08) & (stakeholder < 0.10)).all() + assert receipt["members_with_earnings"] == int((scheme > 0).sum()) + + +def test_a_pension_type_without_any_ashe_row_is_refused() -> None: + with pytest.raises(ValueError, match="no employer rate distribution"): + _rates().distribution("group_self_invested_personal_pension", "Private") + + +def test_members_without_earnings_get_no_employer_contribution() -> None: + amounts, receipt = draw_employer_pension_contributions( + np.asarray([1, 2]), + employment_income=np.asarray([0.0, 20_000.0]), + scheme=np.asarray([2, 1]), + sector=np.asarray(["Public", "Private"], dtype=object), + rates=_rates(), + ) + assert amounts[0] == 0.0 + assert receipt["members_with_earnings"] == 1 + + +def test_scheme_priority_and_first_stated_sector() -> None: + penprov = pd.DataFrame({"source_person_id": [1, 1, 2, 3], "stemppen": [1, 2, 5, 4]}) + job = pd.DataFrame({"source_person_id": [1, 1, 3], "jobsect": [-1, 2, 1]}) + + scheme, sector = employer_scheme_and_sector(np.asarray([1, 2, 3, 4]), penprov, job) + + # Person 1 is in a group personal and an occupational scheme: occupational + # wins. Person 2 has only a personal pension (no employer scheme). + assert scheme.tolist() == [2, 0, 4, 0] + assert sector.tolist() == ["Public", "all", "Private", "all"] + + +def test_vendored_rates_load_from_the_pinned_feed() -> None: + rates = load_ashe_employer_rates() + + for pension_type in ( + "defined_benefit", + "defined_contribution", + "group_personal_pension", + ): + assert rates.distribution(pension_type, "all").sum() == pytest.approx(1.0) + assert ( + rates.defined_benefit_share["Public"] > rates.defined_benefit_share["Private"] + ) diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_national_calibration.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_national_calibration.py index 3b32ab3f6..5ebf93657 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_national_calibration.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_national_calibration.py @@ -53,7 +53,7 @@ from microcosm.calibrate.artifacts import decode_problem from microcosm.frame import EntitySchema, Frame, MassChange, WeightKind, Weights -ACTIVE_REFERENCE_COUNT = 1276 +ACTIVE_REFERENCE_COUNT = 1278 def _uc_reference(**overrides) -> LedgerTargetReference: diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_population_targets.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_population_targets.py index b56dc01df..e450cd10a 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_population_targets.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_population_targets.py @@ -188,8 +188,10 @@ def test_uk_population_targets_shape_order_and_registry_accounting() -> None: } # 26 State Pension targets since microcosm#1069 c3; the OBR State Pension # line became a diagnostic in c4; 14 Pension Credit caseload targets in c7; - # four SPI pension contribution band targets in c8. - assert len(resource["targets"]) == 389 + # four SPI pension contribution band targets in c8; c9 adds the DWP employer + # and employee contribution totals and the salary-sacrifice amount and drops + # the salary-sacrifice users total. + assert len(resource["targets"]) == 391 providers = resource["hierarchy"]["providers"] categories = resource["hierarchy"]["categories"] @@ -203,10 +205,10 @@ def test_uk_population_targets_shape_order_and_registry_accounting() -> None: 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) == 338 + assert len(registry_scope) == 340 assert len(profile_scope) == 51 - assert target_ids[:338] == registry_scope - assert target_ids[338:] == profile_scope + assert target_ids[:340] == registry_scope + assert target_ids[340:] == profile_scope parity = resource["registry_parity"] assert parity["pinned_ref"] == "12a1e028afeef08d8b2d74ee03fd9de3a78b2dd3" @@ -219,8 +221,8 @@ def test_uk_population_targets_shape_order_and_registry_accounting() -> None: assert set(mapped_target_ids).isdisjoint(unmapped_declarations) assert mapped_target_ids | set(unmapped_declarations) == set(registry_scope) assert all(reason for reason in unmapped_declarations.values()) - assert len(mapped_target_ids) == 193 - assert len(unmapped_declarations) == 145 + assert len(mapped_target_ids) == 192 + assert len(unmapped_declarations) == 148 suppressed_ancestors = parity["suppressed_ancestors"] assert len(suppressed_ancestors) == 5 assert set(suppressed_ancestors).isdisjoint(parity["mapped"]) @@ -339,7 +341,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) == 389 + assert len(target_ids) == 391 assert len(target_ids) == len(set(target_ids)) @@ -807,7 +809,7 @@ def test_uc_payment_bands_share_administrative_family_but_keep_source_window() - def test_paid_joint_diagnostics_do_not_add_active_targets() -> None: targets = _load()["targets"] - assert len(targets) == 389 + assert len(targets) == 391 assert not any( f.get("variable") == "uc_calibration_child_entitlement" for target in targets diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_salary_sacrifice.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_salary_sacrifice.py index 3dc1e4c7c..9747dbee0 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_salary_sacrifice.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_salary_sacrifice.py @@ -159,6 +159,13 @@ def test_conversion_moves_full_pension_zeros_source_and_records_cap( assert result.moved_amount == pytest.approx( person.loc[converted, SALSAC_OUTPUT].sum() ) + # Sacrificed pay leaves employment_income (microcosm#1069 c9); records the + # stage does not convert keep their reported pay. + np.testing.assert_allclose( + person.loc[converted, "employment_income"], + 30_000.0 - person.loc[converted, SALSAC_OUTPUT], + ) + assert (person.loc[~converted, "employment_income"] == 30_000.0).all() evidence = result.evidence()["headcount_receipt"] assert evidence["target"] == SALSAC_STAGE_TARGET assert evidence["converted_rows"] == result.converted_rows diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_source_stages.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_source_stages.py index 638e7599f..f3da2e590 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_source_stages.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_source_stages.py @@ -468,6 +468,7 @@ def test_e8_outputs_and_rewrites_are_backed_by_runtime_constants(self) -> None: assert stages["salary_sacrifice"].outputs == ( SALSAC_OUTPUT, "employee_pension_contributions", + "employment_income", ) assert stages["student_loans"].outputs == ("student_loan_plan",) @@ -621,7 +622,7 @@ def test_e3_operation_kinds_are_declared_in_order(self) -> None: ] assert [op.kind for op in stages["frs_hmrc_spine_leaves"].operations] == [ "retain_adjudicated_frs_hmrc_leaves", - "derive", + "draw_employer_pension_contributions_from_rate_bands", ] assert [op.kind for op in stages["spi_support_channel"].operations] == [ "stack_zero_weight_donors", diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_spi_spine.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_spi_spine.py index d31aa6005..37a152e47 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_spi_spine.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_spi_spine.py @@ -116,10 +116,18 @@ def _leaves_stage( "var2": [0, 0, 0], } ) + # Person 1001 (sernum 1) is in a public-sector occupational scheme; person + # 2001 (sernum 2) has only a personal pension, no employer scheme. + penprov = pd.DataFrame({"sernum": [1, 2], "person": [1, 1], "stemppen": [2, 5]}) + job = pd.DataFrame({"sernum": [1, 2], "person": [1, 1], "jobsect": [2, 1]}) adult_path = tmp_path / "adult.tab" benefits_path = tmp_path / "benefits.tab" + penprov_path = tmp_path / "penprov.tab" + job_path = tmp_path / "job.tab" adult.to_csv(adult_path, sep="\t", index=False) benefits.to_csv(benefits_path, sep="\t", index=False) + penprov.to_csv(penprov_path, sep="\t", index=False) + job.to_csv(job_path, sep="\t", index=False) def artifact(path: Path, table: str) -> dict[str, object]: import hashlib @@ -144,11 +152,13 @@ def artifact(path: Path, table: str) -> dict[str, object]: "artifacts": [ artifact(adult_path, "adult"), artifact(benefits_path, "benefits"), + artifact(penprov_path, "penprov"), + artifact(job_path, "job"), ], "operations": [ {"kind": "retain_adjudicated_frs_hmrc_leaves"}, { - "kind": "derive", + "kind": "draw_employer_pension_contributions_from_rate_bands", "output": EMPLOYER_PENSION_CONTRIBUTIONS_COLUMN, }, ], @@ -180,7 +190,14 @@ def test_spine_leaves_align_by_raw_person_id_not_position(tmp_path: Path) -> Non assert person["hmrc_spi_incapacity_benefit_income"].tolist() == pytest.approx( [2.0 * 365.25 / 7.0, 0.0] ) - assert person[EMPLOYER_PENSION_CONTRIBUTIONS_COLUMN].tolist() == [9.0, 6.0] + # Employer contributions come from an ASHE rate draw on pay (microcosm#1069 + # c9): person 2001 has no employer scheme; person 1001's public-sector + # occupational scheme pays between 0% and 30% of their 10 of pay. + employer = person[EMPLOYER_PENSION_CONTRIBUTIONS_COLUMN].tolist() + assert employer[0] == 0.0 + assert 0.0 <= employer[1] <= 3.0 + evidence = transform.last_result.evidence()["employer_pension_contributions"] + assert evidence["members_with_earnings"] == 1 def test_spine_leaves_fail_closed_on_unknown_raw_person(tmp_path: Path) -> None: diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_target_references.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_target_references.py index 255fce101..45a60ddeb 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_target_references.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_target_references.py @@ -64,7 +64,7 @@ _TEST_PATHS = paths_for("microcosm-build") -ACTIVE_REFERENCE_COUNT = 1276 +ACTIVE_REFERENCE_COUNT = 1278 REGION_TIER_LEVEL = {code: level for level, code in UK_REGION_TIER} UK_DATA_REPO = "policyengine-" + "uk-data" @@ -750,7 +750,7 @@ def test_uk_target_reference_membership_report_is_packaged() -> None: assert membership["target_period"] == 2025 assert membership["active_reference_count"] == ACTIVE_REFERENCE_COUNT assert membership["status_counts"] == { - "active": 1276, + "active": 1278, "no_fact_at_or_before_period": 7, "signed_excluded": 16, } 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 6331523c9..a83bcf779 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 @@ -1140,6 +1140,35 @@ "size_bytes": 14946, "table": "benefits", "vintage": "synthetic-h2" + }, + { + "format": "tab", + "kind": "licensed_microdata", + "locator": "job.tab", + "role": "frs_table", + "runtime_sha256_required": true, + "sha256": "0f787336f16448b3b9ec0b7ca46ca50da12b4fa90892161c0054fa89282189d7", + "size_bytes": 2643, + "table": "job", + "vintage": "synthetic-h2" + }, + { + "format": "tab", + "kind": "licensed_microdata", + "locator": "penprov.tab", + "role": "frs_table", + "runtime_sha256_required": true, + "sha256": "573c972543165c2f3d3780661877352ae7d4cf9520936e2edf59f19ed53ba706", + "size_bytes": 2705, + "table": "penprov", + "vintage": "synthetic-h2" + }, + { + "format": "json", + "kind": "public_aggregate_reference", + "resource": "ashe_employer_pension_contribution_rates.json", + "role": "employer_rate_bands", + "runtime_sha256_required": true } ], "grain": "person", @@ -1151,7 +1180,7 @@ "srp_regular_code5", "employer_pension_contributions" ], - "notes": "Retains adjudicated raw-FRS HMRC leaves on the raw FRS spine, where person_id equals the raw sernum*1000+person identity, then ports the incumbent employer-pension-contributions estimate.", + "notes": "Retains adjudicated raw-FRS HMRC leaves on the raw FRS spine, where person_id equals the raw sernum*1000+person identity, then draws employer pension contributions: each member of an employer scheme (PENPROV.STEMPPEN 1 to 4) with earnings takes an ASHE 2024 employer contribution rate for their scheme type and sector (Table P10 band shares, full pay, all industries; occupational schemes split into defined benefit and defined contribution by the sector's Table P2 job counts), uniform within the band (top band 20% to 30%), times pay. It replaces the incumbent's three times the employee contribution (microcosm#1069 c9, R6).", "operations": [ { "annualization": "weekly raw FRS amounts * (365.25 / 7)", @@ -1231,10 +1260,20 @@ "status": "adjudicated_partial_replay" }, { - "formula": "3 * employee_pension_contributions", - "kind": "derive", + "artifact_role": "employer_rate_bands", + "kind": "draw_employer_pension_contributions_from_rate_bands", + "occupational_split": "defined benefit or defined contribution by ASHE Table P2 job counts in the sector", "output": "employer_pension_contributions", - "source": "incumbent enhanced-FRS frs.py employer-pension contribution estimate" + "rate_basis": "full pay (employment_income)", + "resource": "ashe_employer_pension_contribution_rates.json", + "salts": [ + "employer_pension_occupational_type", + "employer_pension_contribution_rate" + ], + "scheme_source": "PENPROV.STEMPPEN 1 to 4 (employer schemes; occupational before group personal, group stakeholder, other)", + "sector_source": "JOB.JOBSECT (first job with a stated sector)", + "seed": 0, + "top_band_ceiling": 0.3 } ], "outputs": [ @@ -1717,8 +1756,8 @@ "locator": "job.tab", "role": "frs_table", "runtime_sha256_required": true, - "sha256": "c382b8db75d9a3d6d2ab2c7ccb8c45b72e6c6fc2473255530f5103c478f47985", - "size_bytes": 2365, + "sha256": "0f787336f16448b3b9ec0b7ca46ca50da12b4fa90892161c0054fa89282189d7", + "size_bytes": 2643, "table": "job", "vintage": "synthetic-h2" }, @@ -1761,8 +1800,8 @@ "locator": "penprov.tab", "role": "frs_table", "runtime_sha256_required": true, - "sha256": "6110ac0e369795baf6d3ffd221fd6ac4d6fe7731da22d535f5ad144d2b031830", - "size_bytes": 1820, + "sha256": "573c972543165c2f3d3780661877352ae7d4cf9520936e2edf59f19ed53ba706", + "size_bytes": 2705, "table": "penprov", "vintage": "synthetic-h2" }, @@ -4277,9 +4316,10 @@ "grain": "person", "nonnegative_outputs": [ "pension_contributions_via_salary_sacrifice", - "employee_pension_contributions" + "employee_pension_contributions", + "employment_income" ], - "notes": "The QRF trains only on the 2024-25 FRS asked subset. The second arm creates support toward the reviewed 5.4m staging target by moving contributors' full pension amounts.", + "notes": "The QRF trains only on the 2024-25 FRS asked subset. The second arm creates support toward the reviewed 5.4m staging target by moving contributors' full pension amounts into salary sacrifice and lowering their pay by the same amount, since the engine reads employment_income after sacrifice; before microcosm#1069 c9 the pay stayed whole and the converted record lost its net-pay relief.", "operations": [ { "cache": false, @@ -4303,9 +4343,9 @@ { "donor_pool": "employee_pension_contributions > 0 and pension_contributions_via_salary_sacrifice == 0 and employment_income > 0", "kind": "convert_donors_to_target_stock", - "move": "full employee_pension_contributions to pension_contributions_via_salary_sacrifice; source zeroed", + "move": "full employee_pension_contributions to pension_contributions_via_salary_sacrifice; source zeroed; employment_income lowered by the amount sacrificed", "rate_cap": 0.5, - "reason": "Salary-sacrifice support stage rewrites pension columns only; household rows and typed household weights pass through and total household mass is conserved.", + "reason": "Salary-sacrifice support stage rewrites pension columns and converted records' pay; household rows and typed household weights pass through and total household mass is conserved.", "receipt": "weighted_headcount", "resource": "salary_sacrifice_anchor.json", "salt": "salary_sacrifice_conversion", @@ -4315,11 +4355,13 @@ ], "outputs": [ "pension_contributions_via_salary_sacrifice", - "employee_pension_contributions" + "employee_pension_contributions", + "employment_income" ], "rewrites": [ "pension_contributions_via_salary_sacrifice", - "employee_pension_contributions" + "employee_pension_contributions", + "employment_income" ], "source": "HMRC, Salary sacrifice reform for pension contributions effective from 6 April 2029", "stage": "salary_sacrifice", diff --git a/packages/microcosm-graph/tests/fixtures/parity/uk_spine/sources/frs_raw/job.tab b/packages/microcosm-graph/tests/fixtures/parity/uk_spine/sources/frs_raw/job.tab index b99780e09..7520fc9a2 100644 --- a/packages/microcosm-graph/tests/fixtures/parity/uk_spine/sources/frs_raw/job.tab +++ b/packages/microcosm-graph/tests/fixtures/parity/uk_spine/sources/frs_raw/job.tab @@ -1,136 +1,136 @@ -SERNUM BENUNIT PERSON DEDUC1 SPNAMT SALSAC -1 1 1 2.0 3.0 1 -2 1 1 2.0 3.0 1 -3 1 1 2.0 3.0 1 -4 1 1 2.0 3.0 1 -5 1 1 2.0 3.0 1 -6 1 1 2.0 3.0 1 -7 1 1 2.0 3.0 1 -8 1 1 2.0 3.0 1 -9 1 1 2.0 3.0 1 -10 1 1 2.0 3.0 1 -11 1 1 2.0 3.0 1 -12 1 1 2.0 3.0 1 -13 1 1 2.0 3.0 1 -14 1 1 2.0 3.0 1 -15 1 1 2.0 3.0 1 -16 1 1 2.0 3.0 1 -17 1 1 2.0 3.0 1 -18 1 1 2.0 3.0 1 -19 1 1 2.0 3.0 1 -20 1 1 2.0 3.0 1 -21 1 1 2.0 3.0 1 -22 1 1 2.0 3.0 1 -23 1 1 2.0 3.0 1 -24 1 1 2.0 3.0 1 -25 1 1 2.0 3.0 1 -26 1 1 2.0 3.0 1 -27 1 1 2.0 3.0 1 -28 1 1 2.0 3.0 1 -29 1 1 2.0 3.0 1 -30 1 1 2.0 3.0 1 -31 1 1 2.0 3.0 1 -32 1 1 2.0 3.0 1 -33 1 1 2.0 3.0 1 -34 1 1 2.0 3.0 1 -35 1 1 2.0 3.0 1 -36 1 1 2.0 3.0 1 -37 1 1 2.0 3.0 1 -38 1 1 2.0 3.0 1 -39 1 1 2.0 3.0 1 -40 1 1 2.0 3.0 1 -41 1 1 2.0 3.0 1 -42 1 1 2.0 3.0 1 -43 1 1 2.0 3.0 1 -44 1 1 2.0 3.0 1 -45 1 1 2.0 3.0 1 -46 1 1 2.0 3.0 1 -47 1 1 2.0 3.0 1 -48 1 1 2.0 3.0 1 -49 1 1 2.0 3.0 1 -50 1 1 2.0 3.0 1 -51 1 1 2.0 3.0 1 -52 1 1 2.0 3.0 1 -53 1 1 2.0 3.0 1 -54 1 1 2.0 3.0 1 -55 1 1 2.0 3.0 1 -56 1 1 2.0 3.0 1 -57 1 1 2.0 3.0 1 -58 1 1 2.0 3.0 1 -59 1 1 2.0 3.0 1 -60 1 1 2.0 3.0 1 -61 1 1 2.0 3.0 1 -62 1 1 2.0 3.0 1 -63 1 1 2.0 3.0 1 -64 1 1 2.0 3.0 1 -65 1 1 2.0 3.0 1 -66 1 1 2.0 3.0 1 -67 1 1 2.0 3.0 1 -68 1 1 2.0 3.0 1 -69 1 1 2.0 3.0 1 -70 1 1 2.0 3.0 1 -71 1 1 2.0 3.0 1 -72 1 1 2.0 3.0 1 -73 1 1 2.0 3.0 1 -74 1 1 2.0 3.0 1 -75 1 1 2.0 3.0 1 -76 1 1 2.0 3.0 1 -77 1 1 2.0 3.0 1 -78 1 1 2.0 3.0 1 -79 1 1 2.0 3.0 1 -80 1 1 2.0 3.0 1 -81 1 1 2.0 3.0 1 -82 1 1 2.0 3.0 1 -83 1 1 2.0 3.0 1 -84 1 1 2.0 3.0 1 -85 1 1 2.0 3.0 1 -86 1 1 2.0 3.0 1 -87 1 1 2.0 3.0 1 -88 1 1 2.0 3.0 1 -89 1 1 2.0 3.0 1 -90 1 1 2.0 3.0 1 -91 1 1 2.0 3.0 1 -92 1 1 2.0 3.0 1 -93 1 1 2.0 3.0 1 -94 1 1 2.0 3.0 1 -95 1 1 2.0 3.0 1 -96 1 1 2.0 3.0 1 -97 1 1 2.0 3.0 1 -98 1 1 2.0 3.0 1 -99 1 1 2.0 3.0 1 -100 1 1 2.0 3.0 1 -101 1 1 2.0 3.0 1 -102 1 1 2.0 3.0 1 -103 1 1 2.0 3.0 1 -104 1 1 2.0 3.0 1 -105 1 1 2.0 3.0 1 -106 1 1 2.0 3.0 1 -107 1 1 2.0 3.0 1 -108 1 1 2.0 3.0 1 -109 1 1 2.0 3.0 1 -110 1 1 2.0 3.0 1 -111 1 1 2.0 3.0 1 -112 1 1 2.0 3.0 1 -113 1 1 2.0 3.0 1 -114 1 1 2.0 3.0 1 -115 1 1 2.0 3.0 1 -116 1 1 2.0 3.0 1 -117 1 1 2.0 3.0 1 -118 1 1 2.0 3.0 1 -119 1 1 2.0 3.0 1 -120 1 1 2.0 3.0 1 -121 1 1 2.0 3.0 1 -122 1 1 2.0 3.0 1 -123 1 1 2.0 3.0 1 -124 1 1 2.0 3.0 1 -125 1 1 2.0 3.0 1 -126 1 1 2.0 3.0 1 -127 1 1 2.0 3.0 1 -128 1 1 2.0 3.0 1 -129 1 1 2.0 3.0 1 -130 1 1 2.0 3.0 1 -131 1 1 2.0 3.0 1 -132 1 1 2.0 3.0 1 -133 1 1 2.0 3.0 1 -134 1 1 2.0 3.0 1 -135 1 1 2.0 3.0 1 +SERNUM BENUNIT PERSON DEDUC1 SPNAMT SALSAC JOBSECT +1 1 1 2.0 3.0 1 2 +2 1 1 2.0 3.0 1 1 +3 1 1 2.0 3.0 1 2 +4 1 1 2.0 3.0 1 1 +5 1 1 2.0 3.0 1 2 +6 1 1 2.0 3.0 1 1 +7 1 1 2.0 3.0 1 2 +8 1 1 2.0 3.0 1 1 +9 1 1 2.0 3.0 1 2 +10 1 1 2.0 3.0 1 1 +11 1 1 2.0 3.0 1 2 +12 1 1 2.0 3.0 1 1 +13 1 1 2.0 3.0 1 2 +14 1 1 2.0 3.0 1 1 +15 1 1 2.0 3.0 1 2 +16 1 1 2.0 3.0 1 1 +17 1 1 2.0 3.0 1 2 +18 1 1 2.0 3.0 1 1 +19 1 1 2.0 3.0 1 2 +20 1 1 2.0 3.0 1 1 +21 1 1 2.0 3.0 1 2 +22 1 1 2.0 3.0 1 1 +23 1 1 2.0 3.0 1 2 +24 1 1 2.0 3.0 1 1 +25 1 1 2.0 3.0 1 2 +26 1 1 2.0 3.0 1 1 +27 1 1 2.0 3.0 1 2 +28 1 1 2.0 3.0 1 1 +29 1 1 2.0 3.0 1 2 +30 1 1 2.0 3.0 1 1 +31 1 1 2.0 3.0 1 2 +32 1 1 2.0 3.0 1 1 +33 1 1 2.0 3.0 1 2 +34 1 1 2.0 3.0 1 1 +35 1 1 2.0 3.0 1 2 +36 1 1 2.0 3.0 1 1 +37 1 1 2.0 3.0 1 2 +38 1 1 2.0 3.0 1 1 +39 1 1 2.0 3.0 1 2 +40 1 1 2.0 3.0 1 1 +41 1 1 2.0 3.0 1 2 +42 1 1 2.0 3.0 1 1 +43 1 1 2.0 3.0 1 2 +44 1 1 2.0 3.0 1 1 +45 1 1 2.0 3.0 1 2 +46 1 1 2.0 3.0 1 1 +47 1 1 2.0 3.0 1 2 +48 1 1 2.0 3.0 1 1 +49 1 1 2.0 3.0 1 2 +50 1 1 2.0 3.0 1 1 +51 1 1 2.0 3.0 1 2 +52 1 1 2.0 3.0 1 1 +53 1 1 2.0 3.0 1 2 +54 1 1 2.0 3.0 1 1 +55 1 1 2.0 3.0 1 2 +56 1 1 2.0 3.0 1 1 +57 1 1 2.0 3.0 1 2 +58 1 1 2.0 3.0 1 1 +59 1 1 2.0 3.0 1 2 +60 1 1 2.0 3.0 1 1 +61 1 1 2.0 3.0 1 2 +62 1 1 2.0 3.0 1 1 +63 1 1 2.0 3.0 1 2 +64 1 1 2.0 3.0 1 1 +65 1 1 2.0 3.0 1 2 +66 1 1 2.0 3.0 1 1 +67 1 1 2.0 3.0 1 2 +68 1 1 2.0 3.0 1 1 +69 1 1 2.0 3.0 1 2 +70 1 1 2.0 3.0 1 1 +71 1 1 2.0 3.0 1 2 +72 1 1 2.0 3.0 1 1 +73 1 1 2.0 3.0 1 2 +74 1 1 2.0 3.0 1 1 +75 1 1 2.0 3.0 1 2 +76 1 1 2.0 3.0 1 1 +77 1 1 2.0 3.0 1 2 +78 1 1 2.0 3.0 1 1 +79 1 1 2.0 3.0 1 2 +80 1 1 2.0 3.0 1 1 +81 1 1 2.0 3.0 1 2 +82 1 1 2.0 3.0 1 1 +83 1 1 2.0 3.0 1 2 +84 1 1 2.0 3.0 1 1 +85 1 1 2.0 3.0 1 2 +86 1 1 2.0 3.0 1 1 +87 1 1 2.0 3.0 1 2 +88 1 1 2.0 3.0 1 1 +89 1 1 2.0 3.0 1 2 +90 1 1 2.0 3.0 1 1 +91 1 1 2.0 3.0 1 2 +92 1 1 2.0 3.0 1 1 +93 1 1 2.0 3.0 1 2 +94 1 1 2.0 3.0 1 1 +95 1 1 2.0 3.0 1 2 +96 1 1 2.0 3.0 1 1 +97 1 1 2.0 3.0 1 2 +98 1 1 2.0 3.0 1 1 +99 1 1 2.0 3.0 1 2 +100 1 1 2.0 3.0 1 1 +101 1 1 2.0 3.0 1 2 +102 1 1 2.0 3.0 1 1 +103 1 1 2.0 3.0 1 2 +104 1 1 2.0 3.0 1 1 +105 1 1 2.0 3.0 1 2 +106 1 1 2.0 3.0 1 1 +107 1 1 2.0 3.0 1 2 +108 1 1 2.0 3.0 1 1 +109 1 1 2.0 3.0 1 2 +110 1 1 2.0 3.0 1 1 +111 1 1 2.0 3.0 1 2 +112 1 1 2.0 3.0 1 1 +113 1 1 2.0 3.0 1 2 +114 1 1 2.0 3.0 1 1 +115 1 1 2.0 3.0 1 2 +116 1 1 2.0 3.0 1 1 +117 1 1 2.0 3.0 1 2 +118 1 1 2.0 3.0 1 1 +119 1 1 2.0 3.0 1 2 +120 1 1 2.0 3.0 1 1 +121 1 1 2.0 3.0 1 2 +122 1 1 2.0 3.0 1 1 +123 1 1 2.0 3.0 1 2 +124 1 1 2.0 3.0 1 1 +125 1 1 2.0 3.0 1 2 +126 1 1 2.0 3.0 1 1 +127 1 1 2.0 3.0 1 2 +128 1 1 2.0 3.0 1 1 +129 1 1 2.0 3.0 1 2 +130 1 1 2.0 3.0 1 1 +131 1 1 2.0 3.0 1 2 +132 1 1 2.0 3.0 1 1 +133 1 1 2.0 3.0 1 2 +134 1 1 2.0 3.0 1 1 +135 1 1 2.0 3.0 1 2 diff --git a/packages/microcosm-graph/tests/fixtures/parity/uk_spine/sources/frs_raw/penprov.tab b/packages/microcosm-graph/tests/fixtures/parity/uk_spine/sources/frs_raw/penprov.tab index fa90b8d29..2e2b7811d 100644 --- a/packages/microcosm-graph/tests/fixtures/parity/uk_spine/sources/frs_raw/penprov.tab +++ b/packages/microcosm-graph/tests/fixtures/parity/uk_spine/sources/frs_raw/penprov.tab @@ -1,136 +1,203 @@ SERNUM BENUNIT PERSON STEMPPEN PENAMT 1 1 1 5 4.0 2 1 1 5 4.0 +2 1 1 2 0.0 3 1 1 5 4.0 4 1 1 5 4.0 +4 1 1 2 0.0 5 1 1 5 4.0 6 1 1 5 4.0 +6 1 1 2 0.0 7 1 1 5 4.0 8 1 1 5 4.0 +8 1 1 2 0.0 9 1 1 5 4.0 10 1 1 5 4.0 +10 1 1 2 0.0 11 1 1 5 4.0 12 1 1 5 4.0 +12 1 1 2 0.0 13 1 1 5 4.0 14 1 1 5 4.0 +14 1 1 2 0.0 15 1 1 5 4.0 16 1 1 5 4.0 +16 1 1 2 0.0 17 1 1 5 4.0 18 1 1 5 4.0 +18 1 1 2 0.0 19 1 1 5 4.0 20 1 1 5 4.0 +20 1 1 2 0.0 21 1 1 5 4.0 22 1 1 5 4.0 +22 1 1 2 0.0 23 1 1 5 4.0 24 1 1 5 4.0 +24 1 1 2 0.0 25 1 1 5 4.0 26 1 1 5 4.0 +26 1 1 2 0.0 27 1 1 5 4.0 28 1 1 5 4.0 +28 1 1 2 0.0 29 1 1 5 4.0 30 1 1 5 4.0 +30 1 1 2 0.0 31 1 1 5 4.0 32 1 1 5 4.0 +32 1 1 2 0.0 33 1 1 5 4.0 34 1 1 5 4.0 +34 1 1 2 0.0 35 1 1 5 4.0 36 1 1 5 4.0 +36 1 1 2 0.0 37 1 1 5 4.0 38 1 1 5 4.0 +38 1 1 2 0.0 39 1 1 5 4.0 40 1 1 5 4.0 +40 1 1 2 0.0 41 1 1 5 4.0 42 1 1 5 4.0 +42 1 1 2 0.0 43 1 1 5 4.0 44 1 1 5 4.0 +44 1 1 2 0.0 45 1 1 5 4.0 46 1 1 5 4.0 +46 1 1 2 0.0 47 1 1 5 4.0 48 1 1 5 4.0 +48 1 1 2 0.0 49 1 1 5 4.0 50 1 1 5 4.0 +50 1 1 2 0.0 51 1 1 5 4.0 52 1 1 5 4.0 +52 1 1 2 0.0 53 1 1 5 4.0 54 1 1 5 4.0 +54 1 1 2 0.0 55 1 1 5 4.0 56 1 1 5 4.0 +56 1 1 2 0.0 57 1 1 5 4.0 58 1 1 5 4.0 +58 1 1 2 0.0 59 1 1 5 4.0 60 1 1 5 4.0 +60 1 1 2 0.0 61 1 1 5 4.0 62 1 1 5 4.0 +62 1 1 2 0.0 63 1 1 5 4.0 64 1 1 5 4.0 +64 1 1 2 0.0 65 1 1 5 4.0 66 1 1 5 4.0 +66 1 1 2 0.0 67 1 1 5 4.0 68 1 1 5 4.0 +68 1 1 2 0.0 69 1 1 5 4.0 70 1 1 5 4.0 +70 1 1 2 0.0 71 1 1 5 4.0 72 1 1 5 4.0 +72 1 1 2 0.0 73 1 1 5 4.0 74 1 1 5 4.0 +74 1 1 2 0.0 75 1 1 5 4.0 76 1 1 5 4.0 +76 1 1 2 0.0 77 1 1 5 4.0 78 1 1 5 4.0 +78 1 1 2 0.0 79 1 1 5 4.0 80 1 1 5 4.0 +80 1 1 2 0.0 81 1 1 5 4.0 82 1 1 5 4.0 +82 1 1 2 0.0 83 1 1 5 4.0 84 1 1 5 4.0 +84 1 1 2 0.0 85 1 1 5 4.0 86 1 1 5 4.0 +86 1 1 2 0.0 87 1 1 5 4.0 88 1 1 5 4.0 +88 1 1 2 0.0 89 1 1 5 4.0 90 1 1 5 4.0 +90 1 1 2 0.0 91 1 1 5 4.0 92 1 1 5 4.0 +92 1 1 2 0.0 93 1 1 5 4.0 94 1 1 5 4.0 +94 1 1 2 0.0 95 1 1 5 4.0 96 1 1 5 4.0 +96 1 1 2 0.0 97 1 1 5 4.0 98 1 1 5 4.0 +98 1 1 2 0.0 99 1 1 5 4.0 100 1 1 5 4.0 +100 1 1 2 0.0 101 1 1 5 4.0 102 1 1 5 4.0 +102 1 1 2 0.0 103 1 1 5 4.0 104 1 1 5 4.0 +104 1 1 2 0.0 105 1 1 5 4.0 106 1 1 5 4.0 +106 1 1 2 0.0 107 1 1 5 4.0 108 1 1 5 4.0 +108 1 1 2 0.0 109 1 1 5 4.0 110 1 1 5 4.0 +110 1 1 2 0.0 111 1 1 5 4.0 112 1 1 5 4.0 +112 1 1 2 0.0 113 1 1 5 4.0 114 1 1 5 4.0 +114 1 1 2 0.0 115 1 1 5 4.0 116 1 1 5 4.0 +116 1 1 2 0.0 117 1 1 5 4.0 118 1 1 5 4.0 +118 1 1 2 0.0 119 1 1 5 4.0 120 1 1 5 4.0 +120 1 1 2 0.0 121 1 1 5 4.0 122 1 1 5 4.0 +122 1 1 2 0.0 123 1 1 5 4.0 124 1 1 5 4.0 +124 1 1 2 0.0 125 1 1 5 4.0 126 1 1 5 4.0 +126 1 1 2 0.0 127 1 1 5 4.0 128 1 1 5 4.0 +128 1 1 2 0.0 129 1 1 5 4.0 130 1 1 5 4.0 +130 1 1 2 0.0 131 1 1 5 4.0 132 1 1 5 4.0 +132 1 1 2 0.0 133 1 1 5 4.0 134 1 1 5 4.0 +134 1 1 2 0.0 135 1 1 5 4.0 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 1f19fd28b..d1510a36d 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":[{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":"care_hours","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":"is_uc_claimant","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":"would_claim_carers_allowance","dtype":"bool","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"sample_fraction":1.0,"sample_seed":578,"stage_contract_sha256":"047d30937efb21e39259fdbed5597751e4f5a0c341ea583c7446e4c9c11eba48","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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":"care_hours","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":"is_uc_claimant","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":"would_claim_carers_allowance","dtype":"bool","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"age_tail","stage_contract_sha256":"963a34f38caede2525e3b8735f904bb70a1bbef5a272f0eefd4346343444484f","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage frs_relationships.","id":"frs_relationships","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","is_household_head"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_relationships@1","mass":"conserve","outputs":[{"column":"relationship_to_head","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"ons_family_role","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"ons_family_index","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"ons_household_type","dtype":"string","entity":"household","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_relationships","stage_contract_sha256":"30628808d06d9829ebcbcf460cd355a01261e78c7c73e6006c75bec2e3d60c33","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage frs_employment.","id":"frs_employment","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["ons_household_type","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_employment","stage_contract_sha256":"ddbefaf05b44788d794a6e4b0e8926c14318d66e50d2f11f50ca549538bbf60c","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_council_tax","stage_contract_sha256":"3381cd9f7a736514d5073c57480e07f5098890f3ca9ed3865392043594771eb9","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_disability","stage_contract_sha256":"ac500b4cb1bc04d4fb72d198592dd376d61da8c150921a6ac53914ac18be0508","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_education","stage_contract_sha256":"836cb0f5a582fee1425190e96c9cb81bdef859bd236c8b6bc27660b6e3d0c2f8","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","ons_household_type","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"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","ons_household_type","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","ons_household_type","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_education_grant_split","stage_contract_sha256":"8718f014b90498c2cc7c754289775ca4a41452d9b978d8cbc5f34b64cbdc7df2","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage frs_take_up.","id":"frs_take_up","inputs":[{"columns":["frs_benunit_capital","is_married"],"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":"would_claim_uc_childcare","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"maximum_extended_childcare_hours_usage","dtype":"float64","entity":"benunit","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_take_up","stage_contract_sha256":"067d31b7fbe733d1d182588705e9ce79df0c8e5f6e8f519314765af49b1b00d7","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_person_draws","stage_contract_sha256":"5b9b4b7ad87cdc16f96a7f2ee0794946a308011b529956d8adf8ab53d704ede2","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_household_draws","stage_contract_sha256":"c74c63b09264319c4bf0049dabba00ecd0ce660beb7b53d6dae71518434bc949","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"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","would_claim_uc_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","ons_household_type","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":["brma","region"],"entity":"household","rows":"all"},{"columns":["age","employee_pension_contributions"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_hmrc_spine_leaves","stage_contract_sha256":"2bb3d068003489b47cc8676ac26c203ce3c39a9b6e92f3ecd0a3c06acd6addc4","time_period":"2024"},"population":"frs_brma.checkpoint","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"frs_brma.checkpoint","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","would_claim_uc_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","ons_household_type","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"spi_support_channel","stage_contract_sha256":"a9c85eb66fad3587e1c1fae46fee6972b9e554097e724c9e399f4560edfed61c","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"spi_support_channel","citation":"","description":"Run structural UK stage spi_income_band_donors.","id":"spi_income_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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.spi_income_band_donors@1","mass":"free","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","household_source_id","int64"],["household","household_support_channel","string"],["household","household_support_clone_index","int64"],["household","household_is_spi_synthetic","bool"],["household","household_is_spi_income_band_donor","bool"],["household","spi_income_band_donor_lower_bound","float64"],["person","person_is_spi_income_band_carrier","bool"]],"expand_weight_entity":"household","expand_weight_kind":"importance","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"spi_income_band_donors","stage_contract_sha256":"190a40ab145b001993733553f45b3e8e5adfe999f598231481ab6706447d5f3c","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"base":null,"citation":"","description":"Own the cells materialized by spi_income_band_donors.","id":"spi_income_band_donors.owned","inputs":[],"kernel":"uk.claim@1","mass":"conserve","outputs":[{"column":"person_source_id","dtype":"int64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"person_support_channel","dtype":"string","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"person_support_clone_index","dtype":"int64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"benunit_source_id","dtype":"int64","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"benunit_support_channel","dtype":"string","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"benunit_support_clone_index","dtype":"int64","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_source_id","dtype":"int64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_support_channel","dtype":"string","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_support_clone_index","dtype":"int64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_is_spi_synthetic","dtype":"bool","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_is_spi_income_band_donor","dtype":"bool","entity":"household","ownership":"produced","rows":"all"},{"column":"spi_income_band_donor_lower_bound","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"person_is_spi_income_band_carrier","dtype":"bool","entity":"person","ownership":"produced","rows":"all"}],"params":{"materialized_expand_outputs":["household.household_is_spi_income_band_donor","household.spi_income_band_donor_lower_bound","person.person_is_spi_income_band_carrier"]},"population":"spi_income_band_donors","sources":[],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","relationship_to_head","ons_family_role","ons_family_index","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","ossben_identifiable_subset","srp_regular_code5","person_source_id","person_support_channel","person_support_clone_index","person_is_spi_income_band_carrier"],"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"},{"column":"would_claim_carers_allowance","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"hmrc_spi_income_spine","stage_contract_sha256":"834334536c1c6add6648b801272c61ca2f597a54c82553a943667200b9e6c4ce","time_period":"2024"},"population":"spi_income_band_donors","sources":["frs"],"structural":"none","weights":null},{"base":"spi_income_band_donors","citation":"","description":"Ownership boundary before spi_housing_shell rewrites.","id":"spi_housing_shell.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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage spi_housing_shell.","id":"spi_housing_shell","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["council_tax_single_adult_raw","household_support_channel","ons_household_type","region"],"entity":"household","rows":"all"},{"columns":["age","dividend_income","employment_income","is_household_head","other_investment_income","private_pension_income","property_income","savings_interest_income","self_employment_income","state_pension_reported","would_claim_carers_allowance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.spi_housing_shell@1","mass":"conserve","outputs":[{"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":"council_tax_band","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","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_reported","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"rent","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":"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":"subrent","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_rebate","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"housing_benefit_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"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"spi_housing_shell","stage_contract_sha256":"809f19fd33ff79ceda005e8cc3fa89ae40b297dceca26a7658b6259267987890","time_period":"2024"},"population":"spi_housing_shell.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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.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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"was_wealth","stage_contract_sha256":"366e019c41ee2a28bcd61bbaa62a024ed0bb4b30b3ffc4d87ab23b340b4076bf","time_period":"2024"},"population":"spi_housing_shell.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage was_lisa.","id":"was_lisa","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.was_lisa@1","mass":"conserve","outputs":[{"column":"has_lifetime_isa","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"lifetime_isa_balance","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"household_lifetime_isa_balance","dtype":"float64","entity":"household","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"was_lisa","stage_contract_sha256":"f1d0f962e84d32007821b32e4e03a8af9443acc0ed3d1836ff094dcbacb928da","time_period":"2024"},"population":"spi_housing_shell.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"spi_housing_shell.boundary","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":["household_lifetime_isa_balance","household_support_channel","region"],"entity":"household","rows":"all"},{"columns":["age"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"regional_property_uprating","stage_contract_sha256":"acb342e8ca1770556c5682a9411c5ead5d61dd1420cfe6b0305ed14a3407fb25","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage nts_bus_travel.","id":"nts_bus_travel","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.nts_bus_travel@1","mass":"conserve","outputs":[{"column":"local_bus_use_band","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"bus_in_london_trips","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"other_local_bus_trips","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"local_bus_trips","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"bus_pass_eligible","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"local_bus_single_fare_share","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"household_local_bus_trips","dtype":"float64","entity":"household","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"nts_bus_travel","stage_contract_sha256":"59767eeb246755f4636e2abbbc9ab3370a64c6142e01cda21a12cb01be95e535","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"lcfs_consumption","stage_contract_sha256":"f428215b7d66e1297688cfc8dce94e670268fb26a6681ca5f0e6e0641cfaf076","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"etb_vat","stage_contract_sha256":"5a2b777d88315bcccb72477c088a136c634131e0bc1a339b7287217ee5cfd8d3","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"etb_services","stage_contract_sha256":"991be160f2f2c28cf7eadc911b3214aca8bf5be441676fe21a87ba12888c5c25","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"regional_property_uprating.boundary","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"uc_reporter_redraw","stage_contract_sha256":"7e94e034cad29c5bae566ffb875c42cddf3a1025c15496907e783ceff1144f8b","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","is_benunit_head","is_parent","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"uc_capital_coherence","stage_contract_sha256":"059f27ee687ee15385b246d43068b17aeecbe3645ccc41fd52fcad06a006a081","time_period":"2024"},"population":"uc_capital_coherence.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"uc_capital_coherence.boundary","citation":"","description":"Ownership boundary before pension_credit_take_up rewrites.","id":"pension_credit_take_up.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","would_claim_uc_childcare","maximum_extended_childcare_hours_usage","benunit_source_id","benunit_support_channel","benunit_support_clone_index","uc_reported_capital"],"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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage pension_credit_take_up.","id":"pension_credit_take_up","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","would_claim_uc_childcare","maximum_extended_childcare_hours_usage","benunit_source_id","benunit_support_channel","benunit_support_clone_index","uc_reported_capital"],"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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.stage.pension_credit_take_up@1","mass":"conserve","outputs":[{"column":"would_claim_pc","dtype":"bool","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"pension_credit_take_up","stage_contract_sha256":"5f2f0410ec296be7119d7f58365658e72ee46b5e4397c37f97ce01e911a98960","time_period":"2024"},"population":"pension_credit_take_up.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage uc_deduction_attributes.","id":"uc_deduction_attributes","inputs":[{"columns":["frs_benunit_capital","would_claim_pc"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"uc_deduction_attributes","stage_contract_sha256":"6bc7e3ec1a5712e23ca1b7d2956e8b17f2526b94431ba3e5a9294b04658e4fe0","time_period":"2024"},"population":"pension_credit_take_up.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"pension_credit_take_up.boundary","citation":"","description":"Run structural UK stage cgt_support_split.","id":"cgt_support_split","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.cgt_support_split@1","mass":"conserve","outputs":[],"params":{"expand_cells":[["household","household_is_cgt_support_copy","bool"],["household","cgt_support_copies","int64"],["household","cgt_support_copy_index","int64"]],"expand_weight_entity":"household","expand_weight_kind":"importance","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"cgt_support_split","stage_contract_sha256":"30b37e1c4e122db18391c5f76f1a6d432aea970275bcda7a52126dacc923490b","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"base":null,"citation":"","description":"Own the cells materialized by cgt_support_split.","id":"cgt_support_split.owned","inputs":[],"kernel":"uk.claim@1","mass":"conserve","outputs":[{"column":"household_is_cgt_support_copy","dtype":"bool","entity":"household","ownership":"produced","rows":"all"},{"column":"cgt_support_copies","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"cgt_support_copy_index","dtype":"int64","entity":"household","ownership":"produced","rows":"all"}],"params":{"materialized_expand_outputs":["household.household_is_cgt_support_copy","household.cgt_support_copies","household.cgt_support_copy_index"]},"population":"cgt_support_split","sources":[],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"cgt_support_split","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","household_is_cgt_support_copy","cgt_support_copies","cgt_support_copy_index"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"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","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"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":"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","household_is_cgt_support_copy","cgt_support_copies","cgt_support_copy_index","household_is_capital_gains_clone"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","capital_gains"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":["cgt_support_copies","corporate_wealth","gross_financial_wealth","household_is_cgt_support_copy","non_residential_property_value","other_residential_property_value","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"hmrc_cgt_gains_spine","stage_contract_sha256":"ff740a36b03dcda73b889aa43bde7cff5d178de7b3da38e487320c68342bf9a3","time_period":"2024"},"population":"hmrc_cgt_gains_spine.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage hmrc_cgt_asset_type_spine.","id":"hmrc_cgt_asset_type_spine","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["corporate_wealth","gross_financial_wealth","other_residential_property_value","region","stocks_and_shares_isa"],"entity":"household","rows":"all"},{"columns":["age","capital_gains","dividend_income","property_income","self_employment_income"],"entity":"person","rows":"all"}],"kernel":"uk.stage.hmrc_cgt_asset_type_spine@1","mass":"conserve","outputs":[{"column":"capital_gains_asset_type","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"capital_gains_residential_property","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"capital_gains_badr","dtype":"float64","entity":"person","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"hmrc_cgt_asset_type_spine","stage_contract_sha256":"c918223197c706279b37d1b32d0ff3885fb1cd7b65b2e50d0308ab508ed0ed64","time_period":"2024"},"population":"hmrc_cgt_gains_spine.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"hmrc_cgt_gains_spine.boundary","citation":"","description":"Run structural UK stage cgt_incidence_anchor.","id":"cgt_incidence_anchor","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["household_is_capital_gains_clone","region"],"entity":"household","rows":"all"},{"columns":["age","capital_gains","capital_gains_badr","dividend_income","employment_income","miscellaneous_income","private_pension_income","property_income","savings_interest_income","self_employment_income","state_pension_reported"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.cgt_incidence_anchor@1","mass":"conserve","outputs":[],"params":{"expand_cells":[],"expand_weight_entity":"household","expand_weight_kind":"importance","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"cgt_incidence_anchor","stage_contract_sha256":"b79ce806015de2f1e1703fa68bf4ad871c6df54b5b32633c864632ab68919a48","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","household_is_cgt_support_copy","cgt_support_copies","cgt_support_copy_index","household_is_capital_gains_clone"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","capital_gains","capital_gains_asset_type","capital_gains_residential_property","capital_gains_badr"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"salary_sacrifice","stage_contract_sha256":"89b589d19fcb99b265cb40d08cf2b9ff7955bd41b6de0e8c9ff4dc6f35be1eb6","time_period":"2024"},"population":"cgt_incidence_anchor","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"student_loans","stage_contract_sha256":"f2936c5e22a0e9b097437e3f3aabaf06c4561d5c25a9b7c05e720a6553f73bbc","time_period":"2024"},"population":"cgt_incidence_anchor","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":[{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":"care_hours","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":"is_uc_claimant","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":"would_claim_carers_allowance","dtype":"bool","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"sample_fraction":1.0,"sample_seed":578,"stage_contract_sha256":"047d30937efb21e39259fdbed5597751e4f5a0c341ea583c7446e4c9c11eba48","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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":"care_hours","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":"is_uc_claimant","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":"would_claim_carers_allowance","dtype":"bool","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"age_tail","stage_contract_sha256":"963a34f38caede2525e3b8735f904bb70a1bbef5a272f0eefd4346343444484f","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage frs_relationships.","id":"frs_relationships","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","is_household_head"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_relationships@1","mass":"conserve","outputs":[{"column":"relationship_to_head","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"ons_family_role","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"ons_family_index","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"ons_household_type","dtype":"string","entity":"household","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_relationships","stage_contract_sha256":"30628808d06d9829ebcbcf460cd355a01261e78c7c73e6006c75bec2e3d60c33","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage frs_employment.","id":"frs_employment","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["ons_household_type","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_employment","stage_contract_sha256":"ddbefaf05b44788d794a6e4b0e8926c14318d66e50d2f11f50ca549538bbf60c","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_council_tax","stage_contract_sha256":"3381cd9f7a736514d5073c57480e07f5098890f3ca9ed3865392043594771eb9","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_disability","stage_contract_sha256":"ac500b4cb1bc04d4fb72d198592dd376d61da8c150921a6ac53914ac18be0508","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_education","stage_contract_sha256":"836cb0f5a582fee1425190e96c9cb81bdef859bd236c8b6bc27660b6e3d0c2f8","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","ons_household_type","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"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","ons_household_type","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","ons_household_type","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_education_grant_split","stage_contract_sha256":"8718f014b90498c2cc7c754289775ca4a41452d9b978d8cbc5f34b64cbdc7df2","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage frs_take_up.","id":"frs_take_up","inputs":[{"columns":["frs_benunit_capital","is_married"],"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":"would_claim_uc_childcare","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"maximum_extended_childcare_hours_usage","dtype":"float64","entity":"benunit","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_take_up","stage_contract_sha256":"067d31b7fbe733d1d182588705e9ce79df0c8e5f6e8f519314765af49b1b00d7","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_person_draws","stage_contract_sha256":"5b9b4b7ad87cdc16f96a7f2ee0794946a308011b529956d8adf8ab53d704ede2","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_household_draws","stage_contract_sha256":"c74c63b09264319c4bf0049dabba00ecd0ce660beb7b53d6dae71518434bc949","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"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","would_claim_uc_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","ons_household_type","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":["brma","region"],"entity":"household","rows":"all"},{"columns":["age","employment_income"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_hmrc_spine_leaves","stage_contract_sha256":"8cfab42bcc250fdf1161b22e4fd988fbe8a0473af78f99afea4b1017556633ae","time_period":"2024"},"population":"frs_brma.checkpoint","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"frs_brma.checkpoint","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","would_claim_uc_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","ons_household_type","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"spi_support_channel","stage_contract_sha256":"a9c85eb66fad3587e1c1fae46fee6972b9e554097e724c9e399f4560edfed61c","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"spi_support_channel","citation":"","description":"Run structural UK stage spi_income_band_donors.","id":"spi_income_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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.spi_income_band_donors@1","mass":"free","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","household_source_id","int64"],["household","household_support_channel","string"],["household","household_support_clone_index","int64"],["household","household_is_spi_synthetic","bool"],["household","household_is_spi_income_band_donor","bool"],["household","spi_income_band_donor_lower_bound","float64"],["person","person_is_spi_income_band_carrier","bool"]],"expand_weight_entity":"household","expand_weight_kind":"importance","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"spi_income_band_donors","stage_contract_sha256":"190a40ab145b001993733553f45b3e8e5adfe999f598231481ab6706447d5f3c","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"base":null,"citation":"","description":"Own the cells materialized by spi_income_band_donors.","id":"spi_income_band_donors.owned","inputs":[],"kernel":"uk.claim@1","mass":"conserve","outputs":[{"column":"person_source_id","dtype":"int64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"person_support_channel","dtype":"string","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"person_support_clone_index","dtype":"int64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"benunit_source_id","dtype":"int64","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"benunit_support_channel","dtype":"string","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"benunit_support_clone_index","dtype":"int64","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_source_id","dtype":"int64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_support_channel","dtype":"string","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_support_clone_index","dtype":"int64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_is_spi_synthetic","dtype":"bool","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_is_spi_income_band_donor","dtype":"bool","entity":"household","ownership":"produced","rows":"all"},{"column":"spi_income_band_donor_lower_bound","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"person_is_spi_income_band_carrier","dtype":"bool","entity":"person","ownership":"produced","rows":"all"}],"params":{"materialized_expand_outputs":["household.household_is_spi_income_band_donor","household.spi_income_band_donor_lower_bound","person.person_is_spi_income_band_carrier"]},"population":"spi_income_band_donors","sources":[],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","relationship_to_head","ons_family_role","ons_family_index","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","ossben_identifiable_subset","srp_regular_code5","person_source_id","person_support_channel","person_support_clone_index","person_is_spi_income_band_carrier"],"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"},{"column":"would_claim_carers_allowance","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"hmrc_spi_income_spine","stage_contract_sha256":"834334536c1c6add6648b801272c61ca2f597a54c82553a943667200b9e6c4ce","time_period":"2024"},"population":"spi_income_band_donors","sources":["frs"],"structural":"none","weights":null},{"base":"spi_income_band_donors","citation":"","description":"Ownership boundary before spi_housing_shell rewrites.","id":"spi_housing_shell.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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage spi_housing_shell.","id":"spi_housing_shell","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["council_tax_single_adult_raw","household_support_channel","ons_household_type","region"],"entity":"household","rows":"all"},{"columns":["age","dividend_income","employment_income","is_household_head","other_investment_income","private_pension_income","property_income","savings_interest_income","self_employment_income","state_pension_reported","would_claim_carers_allowance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.spi_housing_shell@1","mass":"conserve","outputs":[{"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":"council_tax_band","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","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_reported","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"rent","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":"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":"subrent","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_rebate","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"housing_benefit_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"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"spi_housing_shell","stage_contract_sha256":"809f19fd33ff79ceda005e8cc3fa89ae40b297dceca26a7658b6259267987890","time_period":"2024"},"population":"spi_housing_shell.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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.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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"was_wealth","stage_contract_sha256":"366e019c41ee2a28bcd61bbaa62a024ed0bb4b30b3ffc4d87ab23b340b4076bf","time_period":"2024"},"population":"spi_housing_shell.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage was_lisa.","id":"was_lisa","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.was_lisa@1","mass":"conserve","outputs":[{"column":"has_lifetime_isa","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"lifetime_isa_balance","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"household_lifetime_isa_balance","dtype":"float64","entity":"household","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"was_lisa","stage_contract_sha256":"f1d0f962e84d32007821b32e4e03a8af9443acc0ed3d1836ff094dcbacb928da","time_period":"2024"},"population":"spi_housing_shell.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"spi_housing_shell.boundary","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":["household_lifetime_isa_balance","household_support_channel","region"],"entity":"household","rows":"all"},{"columns":["age"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"regional_property_uprating","stage_contract_sha256":"acb342e8ca1770556c5682a9411c5ead5d61dd1420cfe6b0305ed14a3407fb25","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage nts_bus_travel.","id":"nts_bus_travel","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.nts_bus_travel@1","mass":"conserve","outputs":[{"column":"local_bus_use_band","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"bus_in_london_trips","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"other_local_bus_trips","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"local_bus_trips","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"bus_pass_eligible","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"local_bus_single_fare_share","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"household_local_bus_trips","dtype":"float64","entity":"household","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"nts_bus_travel","stage_contract_sha256":"59767eeb246755f4636e2abbbc9ab3370a64c6142e01cda21a12cb01be95e535","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"lcfs_consumption","stage_contract_sha256":"f428215b7d66e1297688cfc8dce94e670268fb26a6681ca5f0e6e0641cfaf076","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"etb_vat","stage_contract_sha256":"5a2b777d88315bcccb72477c088a136c634131e0bc1a339b7287217ee5cfd8d3","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"etb_services","stage_contract_sha256":"991be160f2f2c28cf7eadc911b3214aca8bf5be441676fe21a87ba12888c5c25","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"regional_property_uprating.boundary","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"uc_reporter_redraw","stage_contract_sha256":"7e94e034cad29c5bae566ffb875c42cddf3a1025c15496907e783ceff1144f8b","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","is_benunit_head","is_parent","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"uc_capital_coherence","stage_contract_sha256":"059f27ee687ee15385b246d43068b17aeecbe3645ccc41fd52fcad06a006a081","time_period":"2024"},"population":"uc_capital_coherence.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"uc_capital_coherence.boundary","citation":"","description":"Ownership boundary before pension_credit_take_up rewrites.","id":"pension_credit_take_up.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","would_claim_uc_childcare","maximum_extended_childcare_hours_usage","benunit_source_id","benunit_support_channel","benunit_support_clone_index","uc_reported_capital"],"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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage pension_credit_take_up.","id":"pension_credit_take_up","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","would_claim_uc_childcare","maximum_extended_childcare_hours_usage","benunit_source_id","benunit_support_channel","benunit_support_clone_index","uc_reported_capital"],"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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.stage.pension_credit_take_up@1","mass":"conserve","outputs":[{"column":"would_claim_pc","dtype":"bool","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"pension_credit_take_up","stage_contract_sha256":"5f2f0410ec296be7119d7f58365658e72ee46b5e4397c37f97ce01e911a98960","time_period":"2024"},"population":"pension_credit_take_up.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage uc_deduction_attributes.","id":"uc_deduction_attributes","inputs":[{"columns":["frs_benunit_capital","would_claim_pc"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"uc_deduction_attributes","stage_contract_sha256":"6bc7e3ec1a5712e23ca1b7d2956e8b17f2526b94431ba3e5a9294b04658e4fe0","time_period":"2024"},"population":"pension_credit_take_up.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"pension_credit_take_up.boundary","citation":"","description":"Run structural UK stage cgt_support_split.","id":"cgt_support_split","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.cgt_support_split@1","mass":"conserve","outputs":[],"params":{"expand_cells":[["household","household_is_cgt_support_copy","bool"],["household","cgt_support_copies","int64"],["household","cgt_support_copy_index","int64"]],"expand_weight_entity":"household","expand_weight_kind":"importance","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"cgt_support_split","stage_contract_sha256":"30b37e1c4e122db18391c5f76f1a6d432aea970275bcda7a52126dacc923490b","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"base":null,"citation":"","description":"Own the cells materialized by cgt_support_split.","id":"cgt_support_split.owned","inputs":[],"kernel":"uk.claim@1","mass":"conserve","outputs":[{"column":"household_is_cgt_support_copy","dtype":"bool","entity":"household","ownership":"produced","rows":"all"},{"column":"cgt_support_copies","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"cgt_support_copy_index","dtype":"int64","entity":"household","ownership":"produced","rows":"all"}],"params":{"materialized_expand_outputs":["household.household_is_cgt_support_copy","household.cgt_support_copies","household.cgt_support_copy_index"]},"population":"cgt_support_split","sources":[],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"cgt_support_split","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","household_is_cgt_support_copy","cgt_support_copies","cgt_support_copy_index"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"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","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"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":"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","household_is_cgt_support_copy","cgt_support_copies","cgt_support_copy_index","household_is_capital_gains_clone"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","capital_gains"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":["cgt_support_copies","corporate_wealth","gross_financial_wealth","household_is_cgt_support_copy","non_residential_property_value","other_residential_property_value","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"hmrc_cgt_gains_spine","stage_contract_sha256":"ff740a36b03dcda73b889aa43bde7cff5d178de7b3da38e487320c68342bf9a3","time_period":"2024"},"population":"hmrc_cgt_gains_spine.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage hmrc_cgt_asset_type_spine.","id":"hmrc_cgt_asset_type_spine","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["corporate_wealth","gross_financial_wealth","other_residential_property_value","region","stocks_and_shares_isa"],"entity":"household","rows":"all"},{"columns":["age","capital_gains","dividend_income","property_income","self_employment_income"],"entity":"person","rows":"all"}],"kernel":"uk.stage.hmrc_cgt_asset_type_spine@1","mass":"conserve","outputs":[{"column":"capital_gains_asset_type","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"capital_gains_residential_property","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"capital_gains_badr","dtype":"float64","entity":"person","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"hmrc_cgt_asset_type_spine","stage_contract_sha256":"c918223197c706279b37d1b32d0ff3885fb1cd7b65b2e50d0308ab508ed0ed64","time_period":"2024"},"population":"hmrc_cgt_gains_spine.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"hmrc_cgt_gains_spine.boundary","citation":"","description":"Run structural UK stage cgt_incidence_anchor.","id":"cgt_incidence_anchor","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["household_is_capital_gains_clone","region"],"entity":"household","rows":"all"},{"columns":["age","capital_gains","capital_gains_badr","dividend_income","employment_income","miscellaneous_income","private_pension_income","property_income","savings_interest_income","self_employment_income","state_pension_reported"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.cgt_incidence_anchor@1","mass":"conserve","outputs":[],"params":{"expand_cells":[],"expand_weight_entity":"household","expand_weight_kind":"importance","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"cgt_incidence_anchor","stage_contract_sha256":"b79ce806015de2f1e1703fa68bf4ad871c6df54b5b32633c864632ab68919a48","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","household_is_cgt_support_copy","cgt_support_copies","cgt_support_copy_index","household_is_capital_gains_clone"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","capital_gains","capital_gains_asset_type","capital_gains_residential_property","capital_gains_badr"],"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"},{"column":"employment_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"salary_sacrifice","stage_contract_sha256":"b4581ac43437c170dbe6369392630a832c1f18e99c113753984be6e57b5b18cd","time_period":"2024"},"population":"cgt_incidence_anchor","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","employment_income","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"student_loans","stage_contract_sha256":"f2936c5e22a0e9b097437e3f3aabaf06c4561d5c25a9b7c05e720a6553f73bbc","time_period":"2024"},"population":"cgt_incidence_anchor","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/graph_uk_spine_fixture.py b/tools/graph_uk_spine_fixture.py index ff631a917..87bf7966b 100644 --- a/tools/graph_uk_spine_fixture.py +++ b/tools/graph_uk_spine_fixture.py @@ -493,6 +493,7 @@ def _frs_tables() -> dict[str, pd.DataFrame]: "DEDUC1": 2.0, "SPNAMT": 3.0, "SALSAC": "1", + "JOBSECT": 1 + household_id % 2, } ) pensions.append( @@ -517,6 +518,18 @@ def _frs_tables() -> dict[str, pd.DataFrame]: "PENAMT": 4.0, } ) + if household_id % 2 == 0: + # An occupational scheme for the employer contribution draw + # (microcosm#1069 c9); the FRS spine reads only personal pensions. + penprov.append( + { + "SERNUM": household_id, + "BENUNIT": 1, + "PERSON": 1, + "STEMPPEN": 2, + "PENAMT": 0.0, + } + ) oddjobs.append( { "SERNUM": household_id, From be5c1324571d4ece0277561d766d20c52534c748 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20Juaristi?= <127882282+juaristi22@users.noreply.github.com> Date: Thu, 1 Oct 2026 18:29:42 +0100 Subject: [PATCH 13/22] Read the SPI support allocation's reason from its declared shares everywhere (#1069 c6 follow-up) c6 made the SPI support allocation separate households with a member at or over State Pension age, so its MassChangeRecord carries the stratified sentence. Two readers still used the 50% constant: - the hmrc_spi_income_spine graph kernel rebuilt the preceding record with it, so the stage evidence named the old allocation; - the release-input coverage manifest required it on the final dataset, which the release-cut uk_release_input_coverage gate would fail. Both now call spi_spine.uk_spi_support_mass_change_reason, read from the declared allocation. The coverage manifest is regenerated; a test ties the helper, the support stage's record and the committed manifest together. Co-Authored-By: Claude Opus 5.5 --- ...k-spi-support-reason-readers-1069.fixed.md | 1 + .../uk/release_input_coverage_manifest.json | 2 +- .../build/uk_runtime/graph_kernels.py | 15 ++++++++--- .../microcosm/build/uk_runtime/spi_spine.py | 23 ++++++++++++++++ ...test_uk_release_input_coverage_manifest.py | 8 ++++-- .../tests/engine_free/uk/test_uk_spi_spine.py | 27 +++++++++++++++++++ ...uild_uk_release_input_coverage_manifest.py | 7 +++-- 7 files changed, 75 insertions(+), 8 deletions(-) create mode 100644 changelog.d/uk-spi-support-reason-readers-1069.fixed.md diff --git a/changelog.d/uk-spi-support-reason-readers-1069.fixed.md b/changelog.d/uk-spi-support-reason-readers-1069.fixed.md new file mode 100644 index 000000000..1b9da4f4e --- /dev/null +++ b/changelog.d/uk-spi-support-reason-readers-1069.fixed.md @@ -0,0 +1 @@ +Read the UK SPI support allocation's mass-change reason from its declared shares everywhere (#1069). Since the allocation separates households with a member at or over State Pension age (c6), its MassChangeRecord carries the stratified sentence, but the SPI income stage's graph kernel still rebuilt the preceding record with the 50% sentence (so the stage evidence named the old allocation), and the release-input coverage manifest required the 50% sentence on the final dataset, which the release-cut coverage gate would fail. Both now take the reason from `uk_spi_support_mass_change_reason`, which reads the declared allocation. 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 11878e3f3..ebd51218b 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 @@ -660,7 +660,7 @@ "dividend_income", "other_investment_income" ], - "required_mass_change_reason": "Allocate 50% of certified UK national household prior mass to the rebuilt 2022-23 SPI support channel; total national mass is conserved.", + "required_mass_change_reason": "Allocate 0.5 of certified UK national household prior mass in households without, and 0.5 in households with, a member at or over State Pension age to the rebuilt 2022-23 SPI support channel; total national mass is conserved.", "required_predecessor_stages": [ "frs_hmrc_spine_leaves", "spi_support_channel", diff --git a/packages/microcosm-build/src/microcosm/build/uk_runtime/graph_kernels.py b/packages/microcosm-build/src/microcosm/build/uk_runtime/graph_kernels.py index 357d4a739..b8e610d55 100644 --- a/packages/microcosm-build/src/microcosm/build/uk_runtime/graph_kernels.py +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/graph_kernels.py @@ -734,9 +734,18 @@ def _minimal_frame(context: KernelContext) -> Frame: # KernelContext deliberately has no legacy Frame.mass_log channel. The # SPI income transform consumes only the immediately preceding support # allocation reason, whose exact current-spine record is reconstructible - # from the conserved household total and reviewed public reason. - from .spi_support import SPI_PRIOR_MASS_CHANGE_REASON + # from the conserved household total and reviewed public reason, the + # declared allocation's own sentence (microcosm#1069 c6). + from microcosm.build.country_spec import load_country_spec + from .spi_spine import uk_spi_support_mass_change_reason + + sources = load_country_spec("uk").sources + if sources is None: + raise ValueError("The committed UK country spec declares no sources.") + reason = uk_spi_support_mass_change_reason( + sources.stage_map()["spi_support_channel"] + ) total = context.weights["household"].total mass_log = ( MassChangeRecord( @@ -744,7 +753,7 @@ def _minimal_frame(context: KernelContext) -> Frame: old_total=total, new_total=total, declared_factor=1.0, - reason=SPI_PRIOR_MASS_CHANGE_REASON, + reason=reason, ), ) return Frame( diff --git a/packages/microcosm-build/src/microcosm/build/uk_runtime/spi_spine.py b/packages/microcosm-build/src/microcosm/build/uk_runtime/spi_spine.py index adb26757a..1e9345f1a 100644 --- a/packages/microcosm-build/src/microcosm/build/uk_runtime/spi_spine.py +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/spi_spine.py @@ -93,6 +93,9 @@ support_clone_index_column, support_source_id_column, ) +from microcosm.build.uk_runtime.spi_support import ( + _spi_prior_mass_change_reason as _support_mass_change_reason, +) from microcosm.build.uk_runtime.terminal_gates import ( UKZeroWeightStratumDeclaration, ) @@ -1036,6 +1039,25 @@ def _support_stage_parameters( ) +def uk_spi_support_mass_change_reason(stage: SourceStageSpec) -> str: + """The reason the declared SPI support allocation writes on its MassChangeRecord. + + Read from the manifest's shares, so the readers that reconstruct or require + the record (the SPI income stage's graph kernel and the release-input + coverage manifest) carry the stratified sentence once a pension-age share is + declared (microcosm#1069 c6). + """ + + allocation = _operation(stage, "allocate_zero_weight_prior_mass") + pension_age_share = allocation.parameters.get("pension_age_share") + return _support_mass_change_reason( + float(allocation.parameters["share"]), + pension_age_share=( + None if pension_age_share is None else float(pension_age_share) + ), + ) + + def _assert_income_stage_parameters( stage: SourceStageSpec, *, @@ -1238,4 +1260,5 @@ def _coerce_declarations( "UKSPIIncomeSpineResult", "UKSPIIncomeSpineStageTransform", "UKSPISupportChannelStageTransform", + "uk_spi_support_mass_change_reason", ] diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_release_input_coverage_manifest.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_release_input_coverage_manifest.py index 3491f7748..6257c7ef6 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_release_input_coverage_manifest.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_release_input_coverage_manifest.py @@ -160,9 +160,13 @@ def test_hmrc_stage_is_required_while_the_208_fact_replay_remains_fenced() -> No "spi_support_channel", "spi_income_band_donors", ] + # The declared allocation's own sentence: a pension-age share is declared + # since microcosm#1069 c6. assert family["required_mass_change_reason"] == ( - "Allocate 50% of certified UK national household prior mass to the " - "rebuilt 2022-23 SPI support channel; total national mass is conserved." + "Allocate 0.5 of certified UK national household prior mass in " + "households without, and 0.5 in households with, a member at or over " + "State Pension age to the rebuilt 2022-23 SPI support channel; total " + "national mass is conserved." ) assert family["input_weight_kind"] == "importance" assert family["output_weight_kind"] == "importance" diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_spi_spine.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_spi_spine.py index 37a152e47..c4e768a48 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_spi_spine.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_spi_spine.py @@ -801,3 +801,30 @@ def test_support_stage_parameters_refuse_gate_declaration_drift() -> None: ) with pytest.raises(ValueError, match="gate declaration drifted"): _support_stage_parameters(stage, seed=42) + + +def test_readers_of_the_support_record_take_the_declared_allocation_reason() -> None: + """microcosm#1069 c6: the stratified sentence, not the 50% constant.""" + + from microcosm.build.country_spec import load_country_spec + from microcosm.build.uk_runtime.release_input_coverage import ( + load_uk_release_input_coverage_manifest, + ) + from microcosm.build.uk_runtime.spi_spine import ( + uk_spi_support_mass_change_reason, + ) + from microcosm.build.uk_runtime.spi_support import ( + SPI_PRIOR_MASS_CHANGE_REASON, + _spi_prior_mass_change_reason, + ) + + stage = load_country_spec("uk").sources.stage_map()["spi_support_channel"] + reason = uk_spi_support_mass_change_reason(stage) + + # The record the support stage writes for the declared shares. + assert reason == _spi_prior_mass_change_reason(0.5, pension_age_share=0.5) + assert reason != SPI_PRIOR_MASS_CHANGE_REASON + # The release-cut coverage gate requires that record on the final dataset. + manifest = load_uk_release_input_coverage_manifest() + family = manifest.family_coverage["hmrc_spi_income"] + assert family["required_mass_change_reason"] == reason diff --git a/tools/build_uk_release_input_coverage_manifest.py b/tools/build_uk_release_input_coverage_manifest.py index e8fbd8e4d..e44d8dec7 100644 --- a/tools/build_uk_release_input_coverage_manifest.py +++ b/tools/build_uk_release_input_coverage_manifest.py @@ -1038,10 +1038,11 @@ def _hmrc_family_coverage_contract( *, candidate_source: dict[str, Any], ) -> dict[str, Any]: + from microcosm.build.source_manifest import SourceStageSpec from microcosm.build.uk_runtime.hmrc_source_contract import ( assert_uk_hmrc_income_source_contract_current, ) - from microcosm.build.uk_runtime.spi_support import SPI_PRIOR_MASS_CHANGE_REASON + from microcosm.build.uk_runtime.spi_spine import uk_spi_support_mass_change_reason assert_uk_hmrc_income_source_contract_current(SOURCE_STAGES_PATH) payload = _load(SOURCE_STAGES_PATH) @@ -1118,7 +1119,9 @@ def _hmrc_family_coverage_contract( ), }, "spi_prior_national_household_mass_share": float(prior["share"]), - "required_mass_change_reason": SPI_PRIOR_MASS_CHANGE_REASON, + "required_mass_change_reason": uk_spi_support_mass_change_reason( + SourceStageSpec.from_mapping(stages["spi_support_channel"]) + ), "input_weight_kind": str(classification["input_weight_kind"]), "output_weight_kind": str(classification["output_weight_kind"]), "calibration_permitted": bool(classification["calibration_permitted"]), From 13089945aa0cdac3f91708197517715a4f41592b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20Juaristi?= <127882282+juaristi22@users.noreply.github.com> Date: Thu, 1 Oct 2026 19:28:15 +0100 Subject: [PATCH 14/22] Bind the pension-age benefit caseloads: Attendance Allowance, pension-age Housing Benefit, Winter Fuel diagnostic (#1069 c10) Rows (PolicyEngine/chronicle#302 via #305, #259/#260): - Attendance Allowance cases with entitlement in England (1.60m) and in Wales (124k), calendar-2025 mean of the four quarterly Stat-Xplore points, family dwp_attendance_allowance (declares source months). Scotland is not bound: its caseload moves to Pension Age Disability Payment through 2025 (171k in February, 25k in November), which the engine does not model. - Pension-age Housing Benefit benefit units, Great Britain, all tenures (1.11m) and the social (891k) and private (217k) rented sectors, on the twelve 2025 months of the existing Housing Benefit rows; the tenure cells are Stat-Xplore detail rows (measure "claimants"); the engine reads the eldest adult's age against 66. - DWP Winter Fuel Payment recipients, winter 2025/26, England and Wales (K04000001, 11.0m), a required diagnostic beside obr.winter_fuel_allowance, pinned to its fact key: DWP pays everyone and HMRC recovers the payment above GBP 35,000, where the engine withholds it (PolicyEngine/policyengine-uk#1760). Active national references 1,278 -> 1,283; the new hierarchy category dwp.attendance_allowance moves the local references; the 2023 and 2025 parity receipts gain the ledger-only rows. Co-Authored-By: Claude Opus 5.5 --- .../uk-pension-age-benefits-1069.added.md | 3 + ...ity_incumbent_2025_signed_differences.json | 41 +- ...ty_production_2023_signed_differences.json | 41 +- .../build/uk/local_target_references.json | 4 + .../build/uk/target_reference_membership.json | 108 +++- .../microcosm/build/uk/target_references.json | 231 +++++++ .../build/uk/uk_population_targets.json | 605 +++++++++++++++++- .../build/uk_runtime/ledger_targets.py | 4 + .../build/uk_runtime/uc_source_periods.py | 6 +- .../engine_free/shared/test_country_spec.py | 5 +- .../uk/test_uk_national_calibration.py | 2 +- .../uk/test_uk_pension_age_benefit_targets.py | 131 ++++ .../uk/test_uk_pension_window_consumers.py | 6 +- .../uk/test_uk_population_targets.py | 17 +- .../uk/test_uk_target_references.py | 4 +- .../uk/test_uk_uc_source_periods.py | 24 +- 16 files changed, 1202 insertions(+), 30 deletions(-) create mode 100644 changelog.d/uk-pension-age-benefits-1069.added.md create mode 100644 packages/microcosm-build/tests/engine_free/uk/test_uk_pension_age_benefit_targets.py diff --git a/changelog.d/uk-pension-age-benefits-1069.added.md b/changelog.d/uk-pension-age-benefits-1069.added.md new file mode 100644 index 000000000..f0928ba33 --- /dev/null +++ b/changelog.d/uk-pension-age-benefits-1069.added.md @@ -0,0 +1,3 @@ +Bind the UK pension-age benefit caseloads (#1069 c10; PolicyEngine/chronicle#302 via #305, #259/#260). Attendance Allowance cases with entitlement in England (1.60m) and Wales (124k), each the mean of the four quarterly Stat-Xplore points inside calendar 2025, in a new `dwp_attendance_allowance` family that declares its source months. Scotland is not bound: its caseload moves to Social Security Scotland's Pension Age Disability Payment through 2025 (171k in February, 25k in November), which the engine does not model. Pension-age Housing Benefit benefit units in Great Britain, all tenures (1.11m) and the social (891k) and private (217k) rented sectors, on the twelve 2025 months of the existing Housing Benefit rows; the engine reads the eldest adult's age against 66. + +DWP's winter 2025/26 Winter Fuel Payment recipients in England and Wales (11.0m) sit beside the bound OBR line as a required diagnostic, never fitted: DWP pays everyone and HMRC recovers the payment above £35,000, while the engine withholds it (PolicyEngine/policyengine-uk#1760). 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 21eebbb28..3b8981b69 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": 1278, + "compiled_count": 1283, "counts_by_kind": { "calibration_drift": 553, "fixture_only": 55, - "ledger_only": 696 + "ledger_only": 701 }, - "difference_count": 1304, + "difference_count": 1309, "differences": [ { "fixture_value": 1608000.0, @@ -469,6 +469,20 @@ "period": 2025, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, + { + "kind": "ledger_only", + "ledger_value": 1597003.0, + "name": "dwp.attendance_allowance.recipients_england", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 124117.75, + "name": "dwp.attendance_allowance.recipients_wales", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, { "kind": "ledger_only", "ledger_value": 497.0, @@ -574,6 +588,27 @@ "period": 2025, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, + { + "kind": "ledger_only", + "ledger_value": 1107464.1666666667, + "name": "dwp.hb.households_pension_age", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 216778.66666666666, + "name": "dwp.hb.households_pension_age_private_rented", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 890663.5833333334, + "name": "dwp.hb.households_pension_age_social_rented", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, { "kind": "ledger_only", "ledger_value": 304422.6666666667, 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 137756a14..48a91a007 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": 966, + "compiled_count": 971, "counts_by_kind": { "calibration_drift": 120, "fixture_only": 17, - "ledger_only": 834 + "ledger_only": 839 }, - "difference_count": 971, + "difference_count": 976, "differences": [ { "fixture_value": 82000.0, @@ -189,6 +189,20 @@ "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, + { + "kind": "ledger_only", + "ledger_value": 1597003.0, + "name": "dwp.attendance_allowance.recipients_england", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 124117.75, + "name": "dwp.attendance_allowance.recipients_wales", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, { "kind": "ledger_only", "ledger_value": 1005791.5, @@ -217,6 +231,27 @@ "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, + { + "kind": "ledger_only", + "ledger_value": 1107464.1666666667, + "name": "dwp.hb.households_pension_age", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 216778.66666666666, + "name": "dwp.hb.households_pension_age_private_rented", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, + { + "kind": "ledger_only", + "ledger_value": 890663.5833333334, + "name": "dwp.hb.households_pension_age_social_rented", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, { "kind": "ledger_only", "ledger_value": 304422.6666666667, 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 e2e51d5df..3b0fa660b 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 @@ -229,6 +229,10 @@ "dwp.workplace_pensions": { "provider_id": "dwp", "label": "Workplace pensions" + }, + "dwp.attendance_allowance": { + "provider_id": "dwp", + "label": "Attendance Allowance" } }, "target_categories": { 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 a6ecbd0e7..7ea303ac6 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/target_reference_membership.json +++ b/packages/microcosm-build/src/microcosm/build/uk/target_reference_membership.json @@ -1,11 +1,11 @@ { "source_fact_feed": "chronicle-uk-825406f9-consumer-facts", "target_period": 2025, - "candidate_count": 1301, - "contract_target_count": 340, - "active_reference_count": 1278, + "candidate_count": 1306, + "contract_target_count": 345, + "active_reference_count": 1283, "status_counts": { - "active": 1278, + "active": 1283, "no_fact_at_or_before_period": 7, "signed_excluded": 16 }, @@ -4075,6 +4075,26 @@ "hmrc.salary_sacrifice.amount": { "geography_level": "country", "geography_id": "K02000001" + }, + "dwp.attendance_allowance.recipients_england": { + "geography_level": "country", + "geography_id": "E92000001" + }, + "dwp.attendance_allowance.recipients_wales": { + "geography_level": "country", + "geography_id": "W92000004" + }, + "dwp.hb.households_pension_age": { + "geography_level": "country", + "geography_id": "K03000001" + }, + "dwp.hb.households_pension_age_social_rented": { + "geography_level": "country", + "geography_id": "K03000001" + }, + "dwp.hb.households_pension_age_private_rented": { + "geography_level": "country", + "geography_id": "K03000001" } }, "genuine_sum_residue": [ @@ -30330,6 +30350,86 @@ "resolved_fact_key": "ledger_aggregate_fact_v2_026ae1169f5f0f997bb06479" } ] + }, + "dwp.attendance_allowance.recipients_england": { + "status": "active", + "candidates": [ + { + "name": "dwp.attendance_allowance.recipients_england", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 4, + "matched_fact_count_in_source_window": 4, + "resolved_period": 2025, + "resolved_value": 1597003.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_70b671884790c8bf52c7fbb6" + } + ] + }, + "dwp.attendance_allowance.recipients_wales": { + "status": "active", + "candidates": [ + { + "name": "dwp.attendance_allowance.recipients_wales", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 4, + "matched_fact_count_in_source_window": 4, + "resolved_period": 2025, + "resolved_value": 124117.75, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_22a183260c3229f9cf14a1a3" + } + ] + }, + "dwp.hb.households_pension_age": { + "status": "active", + "candidates": [ + { + "name": "dwp.hb.households_pension_age", + "status": "active", + "matched_fact_count_overall": 12, + "matched_fact_count_at_or_before_period": 12, + "matched_fact_count_in_source_window": 12, + "resolved_period": 2025, + "resolved_value": 1107464.1666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_5f65e5ab6439a1308e1ce27a" + } + ] + }, + "dwp.hb.households_pension_age_social_rented": { + "status": "active", + "candidates": [ + { + "name": "dwp.hb.households_pension_age_social_rented", + "status": "active", + "matched_fact_count_overall": 12, + "matched_fact_count_at_or_before_period": 12, + "matched_fact_count_in_source_window": 12, + "resolved_period": 2025, + "resolved_value": 890663.5833333334, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_5688aae2091cc34caf9ef695" + } + ] + }, + "dwp.hb.households_pension_age_private_rented": { + "status": "active", + "candidates": [ + { + "name": "dwp.hb.households_pension_age_private_rented", + "status": "active", + "matched_fact_count_overall": 12, + "matched_fact_count_at_or_before_period": 12, + "matched_fact_count_in_source_window": 12, + "resolved_period": 2025, + "resolved_value": 216778.66666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_f46445e7e639bfd9fea6921b" + } + ] } }, "fanout_family_outcomes": [ 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 c21543e1a..b0636310b 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/target_references.json +++ b/packages/microcosm-build/src/microcosm/build/uk/target_references.json @@ -229,6 +229,10 @@ "dwp.workplace_pensions": { "provider_id": "dwp", "label": "Workplace pensions" + }, + "dwp.attendance_allowance": { + "provider_id": "dwp", + "label": "Attendance Allowance" } }, "target_categories": { @@ -243,6 +247,8 @@ "dft.bus_fare_receipts.london": "dft.local_bus_finances", "dft.bus_net_support.england": "dft.local_bus_finances", "dft.bus_net_support.london": "dft.local_bus_finances", + "dwp.attendance_allowance.recipients_england": "dwp.attendance_allowance", + "dwp.attendance_allowance.recipients_wales": "dwp.attendance_allowance", "dwp.benefit_cap.capped_households": "dwp.benefit_cap", "dwp.benefit_cap.capped_households_1000_01_to_1100": "dwp.benefit_cap", "dwp.benefit_cap.capped_households_100_01_to_200": "dwp.benefit_cap", @@ -262,6 +268,9 @@ "dwp.esa_contrib_claimants": "dwp.legacy_benefits", "dwp.esa_income_claimants": "dwp.legacy_benefits", "dwp.hb.households": "dwp.housing_benefit", + "dwp.hb.households_pension_age": "dwp.legacy_benefits", + "dwp.hb.households_pension_age_private_rented": "dwp.legacy_benefits", + "dwp.hb.households_pension_age_social_rented": "dwp.legacy_benefits", "dwp.hb.households_private_rented": "dwp.housing_benefit", "dwp.hb.households_social_rented": "dwp.housing_benefit", "dwp.jsa_claimants": "dwp.legacy_benefits", @@ -570,6 +579,8 @@ "dft.bus_fare_receipts.london": "London", "dft.bus_net_support.england": "England", "dft.bus_net_support.london": "London", + "dwp.attendance_allowance.recipients_england": "Attendance Allowance recipients, England", + "dwp.attendance_allowance.recipients_wales": "Attendance Allowance recipients, Wales", "dwp.benefit_cap.capped_households": "Capped households", "dwp.benefit_cap.capped_households_1000_01_to_1100": "Capped households, \u00a31,000.01 to \u00a31,100 a month", "dwp.benefit_cap.capped_households_100_01_to_200": "Capped households, \u00a3100.01 to \u00a3200 a month", @@ -589,6 +600,9 @@ "dwp.esa_contrib_claimants": "Employment and Support Allowance contrib claimants", "dwp.esa_income_claimants": "Employment and Support Allowance income claimants", "dwp.hb.households": "Housing Benefit claimants, all tenures", + "dwp.hb.households_pension_age": "Housing Benefit benefit units, pension age", + "dwp.hb.households_pension_age_private_rented": "Housing Benefit benefit units, pension age, private rented sector", + "dwp.hb.households_pension_age_social_rented": "Housing Benefit benefit units, pension age, social rented sector", "dwp.hb.households_private_rented": "Housing Benefit claimants, private rented", "dwp.hb.households_social_rented": "Housing Benefit claimants, social rented", "dwp.jsa_claimants": "Jobseeker\u2019s Allowance claimants", @@ -46248,6 +46262,223 @@ ], "uprating_from_period": "2024", "uprating_to_period": 2025 + }, + { + "name": "dwp.attendance_allowance.recipients_england", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.attendance_allowance_cases_with_entitlement" + ], + "source_measure_id": "total_cases_with_entitlement", + "dimensions": [ + "aa_award_type", + "age_bands_and_single_year", + "gender" + ], + "dimension_values": { + "aa_award_type": "all", + "age_bands_and_single_year": "all", + "gender": "all" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "E92000001" + }, + "entity": "person", + "measure": "dwp/attendance_allowance/recipients_england", + "family": "dwp_attendance_allowance", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.attendance_allowance.recipients_england", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.attendance_allowance.recipients_wales", + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.attendance_allowance_cases_with_entitlement" + ], + "source_measure_id": "total_cases_with_entitlement", + "dimensions": [ + "aa_award_type", + "age_bands_and_single_year", + "gender" + ], + "dimension_values": { + "aa_award_type": "all", + "age_bands_and_single_year": "all", + "gender": "all" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ], + "geography_level": "country", + "geography_id": "W92000004" + }, + "entity": "person", + "measure": "dwp/attendance_allowance/recipients_wales", + "family": "dwp_attendance_allowance", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.attendance_allowance.recipients_wales", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-02\",\"2025-05\",\"2025-08\",\"2025-11\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.hb.households_pension_age", + "ledger_selector": { + "source_name": "dwp", + "source_concept": "dwp.housing_benefit_claimants", + "groupby_dimension": "dwp.hb_client_type", + "dimensions": [ + "client_type", + "private_or_social_rented" + ], + "dimension_values": { + "client_type": "Pension age", + "private_or_social_rented": "all" + }, + "source_measure_id": "total_claimants", + "period_type": "month", + "period_value": [ + "2025-01", + "2025-02", + "2025-03", + "2025-04", + "2025-05", + "2025-06", + "2025-07", + "2025-08", + "2025-09", + "2025-10", + "2025-11", + "2025-12" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "benunit", + "measure": "dwp/hb/households_pension_age", + "family": "dwp_housing_benefit", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.hb.households_pension_age", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-01\",\"2025-02\",\"2025-03\",\"2025-04\",\"2025-05\",\"2025-06\",\"2025-07\",\"2025-08\",\"2025-09\",\"2025-10\",\"2025-11\",\"2025-12\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.hb.households_pension_age_social_rented", + "ledger_selector": { + "source_name": "dwp", + "source_concept": "dwp.housing_benefit_claimants", + "groupby_dimension": "dwp.hb_client_type", + "dimensions": [ + "client_type", + "private_or_social_rented" + ], + "dimension_values": { + "client_type": "Pension age", + "private_or_social_rented": "Social Rented Sector" + }, + "source_measure_id": "claimants", + "period_type": "month", + "period_value": [ + "2025-01", + "2025-02", + "2025-03", + "2025-04", + "2025-05", + "2025-06", + "2025-07", + "2025-08", + "2025-09", + "2025-10", + "2025-11", + "2025-12" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "benunit", + "measure": "dwp/hb/households_pension_age_social_rented", + "family": "dwp_housing_benefit", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.hb.households_pension_age_social_rented", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-01\",\"2025-02\",\"2025-03\",\"2025-04\",\"2025-05\",\"2025-06\",\"2025-07\",\"2025-08\",\"2025-09\",\"2025-10\",\"2025-11\",\"2025-12\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" + }, + { + "name": "dwp.hb.households_pension_age_private_rented", + "ledger_selector": { + "source_name": "dwp", + "source_concept": "dwp.housing_benefit_claimants", + "groupby_dimension": "dwp.hb_client_type", + "dimensions": [ + "client_type", + "private_or_social_rented" + ], + "dimension_values": { + "client_type": "Pension age", + "private_or_social_rented": "Private Rented Sector" + }, + "source_measure_id": "claimants", + "period_type": "month", + "period_value": [ + "2025-01", + "2025-02", + "2025-03", + "2025-04", + "2025-05", + "2025-06", + "2025-07", + "2025-08", + "2025-09", + "2025-10", + "2025-11", + "2025-12" + ], + "geography_level": "country", + "geography_id": "K03000001" + }, + "entity": "benunit", + "measure": "dwp/hb/households_pension_age_private_rented", + "family": "dwp_housing_benefit", + "period": 2025, + "metadata": { + "contract_target_id": "dwp.hb.households_pension_age_private_rented", + "measure_kind": "prepared_column", + "uk_uc_expected_source_months": "[\"2025-01\",\"2025-02\",\"2025-03\",\"2025-04\",\"2025-05\",\"2025-06\",\"2025-07\",\"2025-08\",\"2025-09\",\"2025-10\",\"2025-11\",\"2025-12\"]" + }, + "period_match_policy": "source_window", + "value_operation": "monthly_window_average" } ] } 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 8a4f5818d..a5e542d48 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 @@ -830,7 +830,12 @@ "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band": "Post-freeze fact family (HMRC SPI 2023-24 Table 3.8, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", "dwp.workplace_pension.employer_contributions": "Post-freeze fact family (DWP workplace pension savings trends / HMRC Table 6.2, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069 c9).", "dwp.workplace_pension.employee_contributions": "Post-freeze fact family (DWP workplace pension savings trends / HMRC Table 6.2, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069 c9).", - "hmrc.salary_sacrifice.amount": "Post-freeze fact family (DWP workplace pension savings trends / HMRC Table 6.2, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069 c9)." + "hmrc.salary_sacrifice.amount": "Post-freeze fact family (DWP workplace pension savings trends / HMRC Table 6.2, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069 c9).", + "dwp.attendance_allowance.recipients_england": "Post-freeze fact family (DWP Stat-Xplore Attendance Allowance), no uk-data metric (microcosm#1069 c10).", + "dwp.attendance_allowance.recipients_wales": "Post-freeze fact family (DWP Stat-Xplore Attendance Allowance), no uk-data metric (microcosm#1069 c10).", + "dwp.hb.households_pension_age": "Post-freeze fact family (DWP Stat-Xplore Housing Benefit, pension age), no uk-data metric (microcosm#1069 c10).", + "dwp.hb.households_pension_age_social_rented": "Post-freeze fact family (DWP Stat-Xplore Housing Benefit, pension age), no uk-data metric (microcosm#1069 c10).", + "dwp.hb.households_pension_age_private_rented": "Post-freeze fact family (DWP Stat-Xplore Housing Benefit, pension age), no uk-data metric (microcosm#1069 c10)." }, "suppressed_ancestors": { "hmrc/salary_sacrifice_it_relief_basic_rate": { @@ -1203,7 +1208,12 @@ "dfc_ni.pension_credit.benefit_units", "dwp.workplace_pension.employer_contributions", "dwp.workplace_pension.employee_contributions", - "hmrc.salary_sacrifice.amount" + "hmrc.salary_sacrifice.amount", + "dwp.attendance_allowance.recipients_england", + "dwp.attendance_allowance.recipients_wales", + "dwp.hb.households_pension_age", + "dwp.hb.households_pension_age_social_rented", + "dwp.hb.households_pension_age_private_rented" ] }, "profile_parity": { @@ -26014,6 +26024,565 @@ "category_id": "hmrc.salary_sacrifice_national_insurance_relief", "label": "Salary-sacrificed pension contributions (from employer NICs relief)" }, + { + "target_id": "dwp.attendance_allowance.recipients_england", + "family": "dwp_attendance_allowance", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "person", + "map_to": "household", + "concept": "uk.person.count", + "filters": [ + { + "concept": "uk.benefits.attendance_allowance.amount", + "operator": ">", + "value": 0 + }, + { + "concept": "uk.geography.country", + "equals": "england" + } + ], + "source_months": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "bindings": { + "policyengine": { + "metric_name": "dwp/attendance_allowance/recipients_england", + "value_variable": "person_count", + "from_entity": "person", + "map_to": "household", + "filters": [ + { + "variable": "attendance_allowance", + "operator": ">", + "value": 0 + } + ], + "household_conditions": [ + { + "variable": "country", + "entity": "household", + "reduce": "any", + "operator": "==", + "value": "ENGLAND", + "map_to": "person" + } + ], + "notes": "DWP Stat-Xplore Attendance Allowance cases with entitlement (PolicyEngine/chronicle#302 via #305): cases with entitlement in England, every award rate, as the mean of the four quarterly points inside calendar 2025 (microcosm#1069 c10). Scotland is not bound: its Attendance Allowance caseload moves to Pension Age Disability Payment through 2025, which the engine does not model." + }, + "axiom": { + "metric_name": "dwp/attendance_allowance/recipients_england", + "status": "pending", + "value_rule": "uk.person.count" + } + }, + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.attendance_allowance_cases_with_entitlement" + ], + "source_measure_id": "total_cases_with_entitlement", + "dimensions": [ + "aa_award_type", + "age_bands_and_single_year", + "gender" + ], + "dimension_values": { + "aa_award_type": "all", + "age_bands_and_single_year": "all", + "gender": "all" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "category_id": "dwp.attendance_allowance", + "label": "Attendance Allowance recipients, England", + "value_operation": "monthly_window_average", + "period_match_policy": "source_window" + }, + { + "target_id": "dwp.attendance_allowance.recipients_wales", + "family": "dwp_attendance_allowance", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "person", + "map_to": "household", + "concept": "uk.person.count", + "filters": [ + { + "concept": "uk.benefits.attendance_allowance.amount", + "operator": ">", + "value": 0 + }, + { + "concept": "uk.geography.country", + "equals": "wales" + } + ], + "source_months": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "bindings": { + "policyengine": { + "metric_name": "dwp/attendance_allowance/recipients_wales", + "value_variable": "person_count", + "from_entity": "person", + "map_to": "household", + "filters": [ + { + "variable": "attendance_allowance", + "operator": ">", + "value": 0 + } + ], + "household_conditions": [ + { + "variable": "country", + "entity": "household", + "reduce": "any", + "operator": "==", + "value": "WALES", + "map_to": "person" + } + ], + "notes": "DWP Stat-Xplore Attendance Allowance cases with entitlement (PolicyEngine/chronicle#302 via #305): cases with entitlement in Wales, every award rate, as the mean of the four quarterly points inside calendar 2025 (microcosm#1069 c10). Scotland is not bound: its Attendance Allowance caseload moves to Pension Age Disability Payment through 2025, which the engine does not model." + }, + "axiom": { + "metric_name": "dwp/attendance_allowance/recipients_wales", + "status": "pending", + "value_rule": "uk.person.count" + } + }, + "ledger_selector": { + "source_name": "dwp", + "source_concept": [ + "dwp.attendance_allowance_cases_with_entitlement" + ], + "source_measure_id": "total_cases_with_entitlement", + "dimensions": [ + "aa_award_type", + "age_bands_and_single_year", + "gender" + ], + "dimension_values": { + "aa_award_type": "all", + "age_bands_and_single_year": "all", + "gender": "all" + }, + "entity_name": "person", + "period_type": "month", + "period_value": [ + "2025-02", + "2025-05", + "2025-08", + "2025-11" + ] + }, + "category_id": "dwp.attendance_allowance", + "label": "Attendance Allowance recipients, Wales", + "value_operation": "monthly_window_average", + "period_match_policy": "source_window" + }, + { + "target_id": "dwp.hb.households_pension_age", + "family": "dwp_housing_benefit", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "benunit", + "concept": "uk.benefit_unit.count", + "filters": [ + { + "concept": "uk.benefits.housing_benefit.amount", + "operator": ">", + "value": 0 + }, + { + "concept": "uk.demographics.age", + "operator": ">=", + "value": 66 + } + ], + "source_months": [ + "2025-01", + "2025-02", + "2025-03", + "2025-04", + "2025-05", + "2025-06", + "2025-07", + "2025-08", + "2025-09", + "2025-10", + "2025-11", + "2025-12" + ] + }, + "bindings": { + "policyengine": { + "metric_name": "dwp/hb/households_pension_age", + "value_variable": "benunit_count", + "from_entity": "benunit", + "filters": [ + { + "variable": "housing_benefit", + "operator": ">", + "value": 0 + }, + { + "variable": "eldest_adult_age", + "operator": ">=", + "value": 66 + } + ], + "household_conditions": [ + { + "variable": "region", + "entity": "household", + "reduce": "any", + "operator": "in", + "value": [ + "NORTH_EAST", + "NORTH_WEST", + "YORKSHIRE", + "EAST_MIDLANDS", + "WEST_MIDLANDS", + "EAST_OF_ENGLAND", + "LONDON", + "SOUTH_EAST", + "SOUTH_WEST", + "WALES", + "SCOTLAND" + ], + "map_to": "benunit" + } + ], + "notes": "DWP Stat-Xplore Housing Benefit caseload by client type and tenure (PolicyEngine/chronicle#259 / #260): pension-age claims , mean monthly Great Britain caseload over the twelve months of calendar 2025, the window of the existing Housing Benefit rows. DWP's pension-age client type is a claim whose claimant or partner has reached State Pension age; the engine reads the age of the benefit unit's eldest adult against 66, the State Pension age of everyone who reaches it in 2025 (microcosm#1069 c10, #867)." + }, + "axiom": { + "metric_name": "dwp/hb/households_pension_age", + "status": "pending", + "value_rule": "uk.benefit_unit.count" + } + }, + "ledger_selector": { + "source_name": "dwp", + "source_concept": "dwp.housing_benefit_claimants", + "groupby_dimension": "dwp.hb_client_type", + "dimensions": [ + "client_type", + "private_or_social_rented" + ], + "dimension_values": { + "client_type": "Pension age", + "private_or_social_rented": "all" + }, + "source_measure_id": "total_claimants", + "period_type": "month", + "period_value": [ + "2025-01", + "2025-02", + "2025-03", + "2025-04", + "2025-05", + "2025-06", + "2025-07", + "2025-08", + "2025-09", + "2025-10", + "2025-11", + "2025-12" + ] + }, + "category_id": "dwp.legacy_benefits", + "label": "Housing Benefit benefit units, pension age", + "value_operation": "monthly_window_average", + "period_match_policy": "source_window" + }, + { + "target_id": "dwp.hb.households_pension_age_social_rented", + "family": "dwp_housing_benefit", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "benunit", + "concept": "uk.benefit_unit.count", + "filters": [ + { + "concept": "uk.benefits.housing_benefit.amount", + "operator": ">", + "value": 0 + }, + { + "concept": "uk.demographics.age", + "operator": ">=", + "value": 66 + }, + { + "concept": "uk.household.tenure", + "operator": "in", + "value": [ + "rent_from_council", + "rent_from_housing_association" + ] + } + ], + "source_months": [ + "2025-01", + "2025-02", + "2025-03", + "2025-04", + "2025-05", + "2025-06", + "2025-07", + "2025-08", + "2025-09", + "2025-10", + "2025-11", + "2025-12" + ] + }, + "bindings": { + "policyengine": { + "metric_name": "dwp/hb/households_pension_age_social_rented", + "value_variable": "benunit_count", + "from_entity": "benunit", + "filters": [ + { + "variable": "housing_benefit", + "operator": ">", + "value": 0 + }, + { + "variable": "eldest_adult_age", + "operator": ">=", + "value": 66 + }, + { + "variable": "benunit_tenure_type", + "operator": "in", + "value": [ + "RENT_FROM_COUNCIL", + "RENT_FROM_HA" + ] + } + ], + "household_conditions": [ + { + "variable": "region", + "entity": "household", + "reduce": "any", + "operator": "in", + "value": [ + "NORTH_EAST", + "NORTH_WEST", + "YORKSHIRE", + "EAST_MIDLANDS", + "WEST_MIDLANDS", + "EAST_OF_ENGLAND", + "LONDON", + "SOUTH_EAST", + "SOUTH_WEST", + "WALES", + "SCOTLAND" + ], + "map_to": "benunit" + } + ], + "notes": "DWP Stat-Xplore Housing Benefit caseload by client type and tenure (PolicyEngine/chronicle#259 / #260): pension-age claims social rented sector, mean monthly Great Britain caseload over the twelve months of calendar 2025, the window of the existing Housing Benefit rows. DWP's pension-age client type is a claim whose claimant or partner has reached State Pension age; the engine reads the age of the benefit unit's eldest adult against 66, the State Pension age of everyone who reaches it in 2025 (microcosm#1069 c10, #867)." + }, + "axiom": { + "metric_name": "dwp/hb/households_pension_age_social_rented", + "status": "pending", + "value_rule": "uk.benefit_unit.count" + } + }, + "ledger_selector": { + "source_name": "dwp", + "source_concept": "dwp.housing_benefit_claimants", + "groupby_dimension": "dwp.hb_client_type", + "dimensions": [ + "client_type", + "private_or_social_rented" + ], + "dimension_values": { + "client_type": "Pension age", + "private_or_social_rented": "Social Rented Sector" + }, + "source_measure_id": "claimants", + "period_type": "month", + "period_value": [ + "2025-01", + "2025-02", + "2025-03", + "2025-04", + "2025-05", + "2025-06", + "2025-07", + "2025-08", + "2025-09", + "2025-10", + "2025-11", + "2025-12" + ] + }, + "category_id": "dwp.legacy_benefits", + "label": "Housing Benefit benefit units, pension age, social rented sector", + "value_operation": "monthly_window_average", + "period_match_policy": "source_window" + }, + { + "target_id": "dwp.hb.households_pension_age_private_rented", + "family": "dwp_housing_benefit", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "benunit", + "concept": "uk.benefit_unit.count", + "filters": [ + { + "concept": "uk.benefits.housing_benefit.amount", + "operator": ">", + "value": 0 + }, + { + "concept": "uk.demographics.age", + "operator": ">=", + "value": 66 + }, + { + "concept": "uk.household.tenure", + "operator": "in", + "value": [ + "rent_privately" + ] + } + ], + "source_months": [ + "2025-01", + "2025-02", + "2025-03", + "2025-04", + "2025-05", + "2025-06", + "2025-07", + "2025-08", + "2025-09", + "2025-10", + "2025-11", + "2025-12" + ] + }, + "bindings": { + "policyengine": { + "metric_name": "dwp/hb/households_pension_age_private_rented", + "value_variable": "benunit_count", + "from_entity": "benunit", + "filters": [ + { + "variable": "housing_benefit", + "operator": ">", + "value": 0 + }, + { + "variable": "eldest_adult_age", + "operator": ">=", + "value": 66 + }, + { + "variable": "benunit_tenure_type", + "operator": "in", + "value": [ + "RENT_PRIVATELY" + ] + } + ], + "household_conditions": [ + { + "variable": "region", + "entity": "household", + "reduce": "any", + "operator": "in", + "value": [ + "NORTH_EAST", + "NORTH_WEST", + "YORKSHIRE", + "EAST_MIDLANDS", + "WEST_MIDLANDS", + "EAST_OF_ENGLAND", + "LONDON", + "SOUTH_EAST", + "SOUTH_WEST", + "WALES", + "SCOTLAND" + ], + "map_to": "benunit" + } + ], + "notes": "DWP Stat-Xplore Housing Benefit caseload by client type and tenure (PolicyEngine/chronicle#259 / #260): pension-age claims private rented sector, mean monthly Great Britain caseload over the twelve months of calendar 2025, the window of the existing Housing Benefit rows. DWP's pension-age client type is a claim whose claimant or partner has reached State Pension age; the engine reads the age of the benefit unit's eldest adult against 66, the State Pension age of everyone who reaches it in 2025 (microcosm#1069 c10, #867)." + }, + "axiom": { + "metric_name": "dwp/hb/households_pension_age_private_rented", + "status": "pending", + "value_rule": "uk.benefit_unit.count" + } + }, + "ledger_selector": { + "source_name": "dwp", + "source_concept": "dwp.housing_benefit_claimants", + "groupby_dimension": "dwp.hb_client_type", + "dimensions": [ + "client_type", + "private_or_social_rented" + ], + "dimension_values": { + "client_type": "Pension age", + "private_or_social_rented": "Private Rented Sector" + }, + "source_measure_id": "claimants", + "period_type": "month", + "period_value": [ + "2025-01", + "2025-02", + "2025-03", + "2025-04", + "2025-05", + "2025-06", + "2025-07", + "2025-08", + "2025-09", + "2025-10", + "2025-11", + "2025-12" + ] + }, + "category_id": "dwp.legacy_benefits", + "label": "Housing Benefit benefit units, pension age, private rented sector", + "value_operation": "monthly_window_average", + "period_match_policy": "source_window" + }, { "target_id": "hmrc.self_employment_income.amount", "family": "hmrc", @@ -29059,6 +29628,34 @@ "ledger_fact_key": "ledger.aggregate_fact.v2:fc1a88f15ba47efd9dc496ef" }, "notes": "DWP benefit expenditure and caseload tables, Spring 2026, FY2025-26 (PolicyEngine/chronicle#302 via #305), retained as diagnostic provenance beside the resident level (microcosm#1069 R2): the forecast line counts Great Britain including pensioners paid outside the UK and, being a fiscal-year projection, is a different quantity from the bound calendar-2025 resident rows. Never insert it into the fitting registry." + }, + "dwp.winter_fuel_payment.recipients": { + "attach_to_target": "obr.winter_fuel_allowance", + "metadata_prefix": "dwp_winter_fuel_recipients_diagnostic", + "value_unit": "count", + "required_period_type": "fiscal_year", + "required_assertion": "observation", + "reference": { + "name": "dwp.winter_fuel_payment.recipients", + "ledger_selector": { + "source_name": "dwp", + "source_concept": "dwp.winter_fuel_payment_beneficiaries", + "entity_name": "person", + "geography_level": "country", + "geography_id": "K04000001" + }, + "entity": "person", + "measure": "dwp/winter_fuel_payment/recipients", + "family": "dwp_winter_fuel", + "period": 2025, + "metadata": { + "diagnostic_role": "payment_before_recovery_definition_differs" + }, + "assertion_policy": "observed_only", + "period_match_policy": "exact", + "ledger_fact_key": "ledger.aggregate_fact.v2:31256472aba8a0b143c30697" + }, + "notes": "DWP Winter Fuel Payment statistics, winter 2025/26 recipients in England and Wales (11.0m), retained as diagnostic provenance beside the bound OBR line (microcosm#1069 c10): DWP counts everyone paid and HMRC recovers the payment above £35,000 later, while the engine withholds the household payment above £35,000 (PolicyEngine/policyengine-uk#1760), so the count measures a different quantity until the engine separates payment from recovery. Never insert it into the fitting registry." } }, "hierarchy": { @@ -29288,6 +29885,10 @@ "dwp.workplace_pensions": { "provider_id": "dwp", "label": "Workplace pensions" + }, + "dwp.attendance_allowance": { + "provider_id": "dwp", + "label": "Attendance Allowance" } } } diff --git a/packages/microcosm-build/src/microcosm/build/uk_runtime/ledger_targets.py b/packages/microcosm-build/src/microcosm/build/uk_runtime/ledger_targets.py index f3dd74c3b..63607db9b 100644 --- a/packages/microcosm-build/src/microcosm/build/uk_runtime/ledger_targets.py +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/ledger_targets.py @@ -782,6 +782,10 @@ def _assert_region_facts_resolved_at_region( "dwp.state_pension.forecast_caseload", "dwp.state_pension.forecast_caseload_paid_abroad", ), + # microcosm#1069 c10: DWP pays Winter Fuel to everyone and HMRC recovers + # it above GBP 35,000, where the engine withholds it; the recipient count + # sits beside the bound OBR line until payment and recovery separate. + "obr.winter_fuel_allowance": ("dwp.winter_fuel_payment.recipients",), } ) _DIAGNOSTIC_PERIOD_TYPES = frozenset(("fiscal_year", "tax_year", "calendar_year")) diff --git a/packages/microcosm-build/src/microcosm/build/uk_runtime/uc_source_periods.py b/packages/microcosm-build/src/microcosm/build/uk_runtime/uc_source_periods.py index 0a1408823..5996058d4 100644 --- a/packages/microcosm-build/src/microcosm/build/uk_runtime/uc_source_periods.py +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/uc_source_periods.py @@ -29,8 +29,9 @@ # since the PolicyEngine/chronicle#280 lane the three ESA caseload rows, bound on the four # quarterly points DWP publishes inside calendar 2025 (February, May, August, # November) from the payment-type cube (chronicle#282). Since microcosm#1069 -# the State Pension and Pension Credit Stat-Xplore cubes bind on the same four -# calendar-2025 points (PolicyEngine/chronicle#302 via #305). +# the State Pension, Pension Credit and Attendance Allowance Stat-Xplore cubes +# bind on the same four calendar-2025 points (PolicyEngine/chronicle#302 via +# #305). SOURCE_MONTH_FAMILIES = frozenset( { "dwp_universal_credit", @@ -38,6 +39,7 @@ "dwp_legacy_benefits", "dwp_state_pension", "dwp_pension_credit", + "dwp_attendance_allowance", } ) #: Operations over an explicit month list; they may cross calendar years. diff --git a/packages/microcosm-build/tests/engine_free/shared/test_country_spec.py b/packages/microcosm-build/tests/engine_free/shared/test_country_spec.py index 51f93ec48..85bf26c20 100644 --- a/packages/microcosm-build/tests/engine_free/shared/test_country_spec.py +++ b/packages/microcosm-build/tests/engine_free/shared/test_country_spec.py @@ -1128,7 +1128,7 @@ def test_uk_target_references_accept_regenerated_contract_fields(self) -> None: references = {reference.name: reference for reference in spec.target_references} assert ( - len(references) == 1278 + len(references) == 1283 ) # PolicyEngine/chronicle#280 lane: 705 + 33 HMRC liabilities rows (Table 2.5, three # measures by eleven bands) + 26 SPI savings-interest rows (two measures by # thirteen bands) + 360 SPI Table 3.11 region-tier rows (three measures by @@ -1145,7 +1145,8 @@ def test_uk_target_references_accept_regenerated_contract_fields(self) -> None: # (Great Britain total, six type-by-partner cells, six age bands, NI); # 52 SPI Table 3.8 contribution rows (four measures by thirteen bands); # the DWP employer and employee contribution totals and the - # salary-sacrifice amount, less the salary-sacrifice users total + # salary-sacrifice amount, less the salary-sacrifice users total; two + # Attendance Allowance and three pension-age Housing Benefit rows assert references["obr.esa"].value_operation == "calendar_year_window" assert references["dwp.uc.households"].value_operation == ( "monthly_window_sum_average" diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_national_calibration.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_national_calibration.py index 5ebf93657..83f61a17c 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_national_calibration.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_national_calibration.py @@ -53,7 +53,7 @@ from microcosm.calibrate.artifacts import decode_problem from microcosm.frame import EntitySchema, Frame, MassChange, WeightKind, Weights -ACTIVE_REFERENCE_COUNT = 1278 +ACTIVE_REFERENCE_COUNT = 1283 def _uc_reference(**overrides) -> LedgerTargetReference: diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_pension_age_benefit_targets.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_pension_age_benefit_targets.py new file mode 100644 index 000000000..9f9957ac8 --- /dev/null +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_pension_age_benefit_targets.py @@ -0,0 +1,131 @@ +"""The pension-age benefit caseloads and the Winter Fuel diagnostic (microcosm#1069 c10).""" + +from __future__ import annotations + +import json +import os +from pathlib import Path + +import pytest + +from microcosm.build.uk_runtime.local_targets import load_uk_population_contract +from test_support.paths import paths_for + +_TEST_PATHS = paths_for("microcosm-build") +STABLE_UK_FACT_FEED_NAME = ".codex-work/consumer_facts_uk.jsonl" +QUARTERS = ["2025-02", "2025-05", "2025-08", "2025-11"] +MONTHS = [f"2025-{month:02d}" for month in range(1, 13)] + + +def _targets() -> dict[str, dict]: + contract = load_uk_population_contract() + return {target["target_id"]: target for target in contract["targets"]} + + +def test_attendance_allowance_binds_england_and_wales_only() -> None: + targets = _targets() + attendance = { + name: target + for name, target in targets.items() + if name.startswith("dwp.attendance_allowance.") + } + # Scotland's caseload moves to Pension Age Disability Payment through + # 2025, which the engine does not model, so it is not bound. + assert set(attendance) == { + "dwp.attendance_allowance.recipients_england", + "dwp.attendance_allowance.recipients_wales", + } + for country, target in ( + ("ENGLAND", attendance["dwp.attendance_allowance.recipients_england"]), + ("WALES", attendance["dwp.attendance_allowance.recipients_wales"]), + ): + assert target["family"] == "dwp_attendance_allowance" + assert target["value_operation"] == "monthly_window_average" + assert target["measurement"]["source_months"] == QUARTERS + selector = target["ledger_selector"] + assert selector["source_measure_id"] == "total_cases_with_entitlement" + assert selector["period_value"] == QUARTERS + assert set(selector["dimension_values"].values()) == {"all"} + binding = target["bindings"]["policyengine"] + assert binding["filters"] == [ + {"variable": "attendance_allowance", "operator": ">", "value": 0} + ] + (condition,) = binding["household_conditions"] + assert (condition["variable"], condition["value"]) == ("country", country) + + +def test_pension_age_housing_benefit_reads_the_detail_tenure_cells() -> None: + targets = _targets() + expected = { + "dwp.hb.households_pension_age": ("all", "total_claimants"), + "dwp.hb.households_pension_age_social_rented": ( + "Social Rented Sector", + "claimants", + ), + "dwp.hb.households_pension_age_private_rented": ( + "Private Rented Sector", + "claimants", + ), + } + for name, (tenure, measure) in expected.items(): + target = targets[name] + selector = target["ledger_selector"] + assert selector["dimension_values"] == { + "client_type": "Pension age", + "private_or_social_rented": tenure, + } + # Stat-Xplore publishes the pension-age tenure cells as detail rows; + # only the all-tenure row is a total. + assert selector["source_measure_id"] == measure + assert selector["period_value"] == MONTHS + assert target["family"] == "dwp_housing_benefit" + filters = target["bindings"]["policyengine"]["filters"] + assert {"variable": "eldest_adult_age", "operator": ">=", "value": 66} in ( + filters + ) + + +def test_winter_fuel_recipients_are_a_diagnostic_never_a_target() -> None: + contract = load_uk_population_contract() + assert "dwp.winter_fuel_payment.recipients" not in { + target["target_id"] for target in contract["targets"] + } + declaration = contract["diagnostic_references"][ + "dwp.winter_fuel_payment.recipients" + ] + assert declaration["attach_to_target"] == "obr.winter_fuel_allowance" + selector = declaration["reference"]["ledger_selector"] + # DWP publishes England and Wales; Scotland pays its own winter heating + # payment from winter 2025/26. + assert selector["geography_id"] == "K04000001" + assert declaration["reference"]["ledger_fact_key"] + + +def test_winter_fuel_diagnostic_carries_the_published_count() -> None: + """Feed-gated: the diagnostic resolves the winter 2025/26 figure.""" + + from microcosm.build.uk_runtime.ledger_targets import ( + _attached_diagnostic_metadata, + ) + + root = _TEST_PATHS.repository + configured = os.environ.get("CHRONICLE_UK_FACTS") + feed = Path(configured) if configured else root / STABLE_UK_FACT_FEED_NAME + if feed.is_dir(): + feed = feed / "consumer_facts.jsonl" + if not feed.is_file(): + pytest.skip("pinned UK Chronicle consumer feed is not present") + with feed.open(encoding="utf-8") as handle: + facts = tuple( + json.loads(line) + for line in handle + if "winter_fuel_payment_beneficiaries" in line + ) + + metadata = _attached_diagnostic_metadata(facts, "obr.winter_fuel_allowance") + + prefix = "dwp_winter_fuel_recipients_diagnostic" + assert metadata[f"{prefix}_role"] == "diagnostic_only_not_in_fit" + assert metadata[f"{prefix}_status"] == "available" + assert float(metadata[f"{prefix}_value_count"]) == 11_003_237 + assert metadata[f"{prefix}_ledger_geography_id"] == "K04000001" diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_pension_window_consumers.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_pension_window_consumers.py index cafdd03d9..6d2c4a758 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_pension_window_consumers.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_pension_window_consumers.py @@ -107,7 +107,11 @@ def test_a_window_month_after_the_calibration_year_is_refused() -> None: def test_the_pension_families_declare_their_source_months() -> None: - assert {"dwp_state_pension", "dwp_pension_credit"} <= SOURCE_MONTH_FAMILIES + assert { + "dwp_state_pension", + "dwp_pension_credit", + "dwp_attendance_allowance", + } <= SOURCE_MONTH_FAMILIES metadata = uc_source_month_metadata( list(MONTHS), value_operation=MONTHLY_WINDOW_COUNT_X_MEAN ) diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_population_targets.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_population_targets.py index e450cd10a..bd34055fa 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_population_targets.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_population_targets.py @@ -190,8 +190,9 @@ def test_uk_population_targets_shape_order_and_registry_accounting() -> None: # line became a diagnostic in c4; 14 Pension Credit caseload targets in c7; # four SPI pension contribution band targets in c8; c9 adds the DWP employer # and employee contribution totals and the salary-sacrifice amount and drops - # the salary-sacrifice users total. - assert len(resource["targets"]) == 391 + # the salary-sacrifice users total; c10 adds two Attendance Allowance and + # three pension-age Housing Benefit caseload targets. + assert len(resource["targets"]) == 396 providers = resource["hierarchy"]["providers"] categories = resource["hierarchy"]["categories"] @@ -205,10 +206,10 @@ def test_uk_population_targets_shape_order_and_registry_accounting() -> None: 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) == 340 + assert len(registry_scope) == 345 assert len(profile_scope) == 51 - assert target_ids[:340] == registry_scope - assert target_ids[340:] == profile_scope + assert target_ids[:345] == registry_scope + assert target_ids[345:] == profile_scope parity = resource["registry_parity"] assert parity["pinned_ref"] == "12a1e028afeef08d8b2d74ee03fd9de3a78b2dd3" @@ -222,7 +223,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) == 192 - assert len(unmapped_declarations) == 148 + assert len(unmapped_declarations) == 153 suppressed_ancestors = parity["suppressed_ancestors"] assert len(suppressed_ancestors) == 5 assert set(suppressed_ancestors).isdisjoint(parity["mapped"]) @@ -341,7 +342,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) == 391 + assert len(target_ids) == 396 assert len(target_ids) == len(set(target_ids)) @@ -809,7 +810,7 @@ def test_uc_payment_bands_share_administrative_family_but_keep_source_window() - def test_paid_joint_diagnostics_do_not_add_active_targets() -> None: targets = _load()["targets"] - assert len(targets) == 391 + assert len(targets) == 396 assert not any( f.get("variable") == "uc_calibration_child_entitlement" for target in targets diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_target_references.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_target_references.py index 45a60ddeb..75894ba30 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_target_references.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_target_references.py @@ -64,7 +64,7 @@ _TEST_PATHS = paths_for("microcosm-build") -ACTIVE_REFERENCE_COUNT = 1278 +ACTIVE_REFERENCE_COUNT = 1283 REGION_TIER_LEVEL = {code: level for level, code in UK_REGION_TIER} UK_DATA_REPO = "policyengine-" + "uk-data" @@ -750,7 +750,7 @@ def test_uk_target_reference_membership_report_is_packaged() -> None: assert membership["target_period"] == 2025 assert membership["active_reference_count"] == ACTIVE_REFERENCE_COUNT assert membership["status_counts"] == { - "active": 1278, + "active": 1283, "no_fact_at_or_before_period": 7, "signed_excluded": 16, } diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_uc_source_periods.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_uc_source_periods.py index 4dc8b8563..92f780019 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_uc_source_periods.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_uc_source_periods.py @@ -514,8 +514,8 @@ def test_shipped_uc_monthly_references_preserve_each_declared_window(): assert new_paid <= {reference.name for reference in monthly} assert set(element_windows) <= {reference.name for reference in monthly} # The #882 Housing Benefit caseload rows bind the Stat-Xplore client-type - # by tenure cube on the same calendar-2025 window; no other family - # declares source months. + # by tenure cube on the same calendar-2025 window, and since microcosm#1069 + # c10 so do its pension-age rows. housing_benefit = [ reference for reference in references @@ -523,6 +523,9 @@ def test_shipped_uc_monthly_references_preserve_each_declared_window(): ] assert sorted(reference.name for reference in housing_benefit) == [ "dwp.hb.households", + "dwp.hb.households_pension_age", + "dwp.hb.households_pension_age_private_rented", + "dwp.hb.households_pension_age_social_rented", "dwp.hb.households_private_rented", "dwp.hb.households_social_rented", ] @@ -578,6 +581,22 @@ def test_shipped_uc_monthly_references_preserve_each_declared_window(): assert reference.value_operation == "monthly_window_average" assert reference.period_match_policy == "source_window" assert json.loads(reference.metadata[EXPECTED_SOURCE_MONTHS]) == esa_quarters + # The Attendance Allowance rows (England, Wales) bind the same four + # quarterly points (microcosm#1069 c10). + attendance = [ + reference + for reference in references + if reference.family == "dwp_attendance_allowance" + ] + assert sorted(reference.name for reference in attendance) == [ + "dwp.attendance_allowance.recipients_england", + "dwp.attendance_allowance.recipients_wales", + ] + for reference in attendance: + assert reference.ledger_selector["period_value"] == esa_quarters + assert reference.value_operation == "monthly_window_average" + assert reference.period_match_policy == "source_window" + assert json.loads(reference.metadata[EXPECTED_SOURCE_MONTHS]) == esa_quarters assert not any( EXPECTED_SOURCE_MONTHS in reference.metadata for reference in references @@ -588,5 +607,6 @@ def test_shipped_uc_monthly_references_preserve_each_declared_window(): "dwp_legacy_benefits", "dwp_state_pension", "dwp_pension_credit", + "dwp_attendance_allowance", } ) From fcb5c46b59ddcad60d4596f05dacac0f790770f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20Juaristi?= <127882282+juaristi22@users.noreply.github.com> Date: Thu, 1 Oct 2026 20:20:38 +0100 Subject: [PATCH 15/22] Resolve counterfactual target measures through the engine and bind the salary-sacrifice relief rows (#1069 c11) Resolver route (R7): resolve_target_measures no longer refuses input_substitution_counterfactual skips. A provider exposing counterfactual_delta(binding, period) resolves the binding's delta into a slash-free measure-input column (counterfactual_delta__; the HDF writer refuses slashes), which UKFrameTargetAdapter reads before the legacy precomputed column. UKMeasureResolver builds one extra Microsimulation per (zeroed input, folded-into) pair from the same source at the calibration year: the sacrifice is zeroed and added to employment_income (uk-data's recipe), and the output's delta against the baseline comes back with a receipt. Banded measures and other periods are refused. Both resolution entry points (prepare_uk_target_frame and full_measure) go through the loop; injected columns are dropped before export. Rows (HMRC Table 6.2, 2024-25; PolicyEngine/chronicle#302 via #305): - the employee NICs relief row binds (GBP 1.0bn); - the employer NICs relief row binds, restated from the 13.8% HMRC's GBP 3.4bn was charged at to the 15% the engine charges in 2025 (pe-uk dates the rise at 1 January 2025): GBP 3.70bn through a new engine index parameter, the employer Class 1 rate (pins re-vendored from policyengine-uk 2.100.0), so the row anchors the sacrificed amount at the 2024-25 level as R10's conversion row did; - a new all-rates income-tax relief total binds (GBP 8.8bn); income_tax carries the High Income Child Benefit charge and the annual-allowance charge, so the delta includes their response; - c9's interim amount row retires; the three rate bands stay excluded, re-reasoned (the band test compares adjusted net income with after-allowance thresholds and ignores the Scottish bands). Tests: the engine-free loop and resolver routes, and a real-engine persona whose returned GBP 3,000 is taxed at 20% income tax, 8% employee and 15% employer NICs. Co-Authored-By: Claude Opus 5.5 --- .../uk-salary-sacrifice-relief-1069.added.md | 3 + .../microcosm/build/target_materialization.py | 93 +++++++++++++++- .../uk/calibration_measure_exclusions.json | 42 +++----- .../build/uk/hmrc_uprating_engine_pins.json | 10 ++ ...ity_incumbent_2025_signed_differences.json | 16 +-- ...ty_production_2023_signed_differences.json | 14 +-- .../build/uk/target_reference_membership.json | 54 ++++++---- .../microcosm/build/uk/target_references.json | 52 ++++----- .../build/uk/uk_population_targets.json | 89 ++++++++------- .../build/uk_runtime/hmrc_uprating.py | 6 +- .../build/uk_runtime/ledger_targets.py | 10 +- .../build/uk_runtime/measure_simulation.py | 91 ++++++++++++++++ ...test_uk_salary_sacrifice_counterfactual.py | 87 +++++++++++++++ .../engine_free/shared/test_country_spec.py | 3 +- .../shared/test_target_materialization.py | 82 ++++++++++++++ .../engine_free/uk/test_uk_hmrc_uprating.py | 2 +- .../uk/test_uk_measure_simulation.py | 101 +++++++++++++++++- 17 files changed, 600 insertions(+), 155 deletions(-) create mode 100644 changelog.d/uk-salary-sacrifice-relief-1069.added.md create mode 100644 packages/microcosm-build/tests/engine/uk/test_uk_salary_sacrifice_counterfactual.py diff --git a/changelog.d/uk-salary-sacrifice-relief-1069.added.md b/changelog.d/uk-salary-sacrifice-relief-1069.added.md new file mode 100644 index 000000000..4b449e24f --- /dev/null +++ b/changelog.d/uk-salary-sacrifice-relief-1069.added.md @@ -0,0 +1,3 @@ +Resolve UK counterfactual target measures through the engine and bind the salary-sacrifice relief rows (#1069 c11; PolicyEngine/chronicle#302 via #305). The measure resolution loop no longer refuses `input_substitution_counterfactual` bindings: a provider with `counterfactual_delta(binding, period)` resolves each binding's per-row delta into a slash-free measure-input column (`counterfactual_delta__`), which the frame adapter reads. `UKMeasureResolver` builds one extra engine simulation per substitution from the same source at the calibration year, zeroing the sacrifice and adding it to `employment_income` (uk-data's recipe), and returns the output's delta against its baseline. Banded counterfactual measures are refused. + +Rows (HMRC Table 6.2, 2024-25): the employee (£1.0bn) and employer National Insurance relief rows, already declared, now bind, the employer row restated from the 13.8% HMRC's £3.4bn was charged at to the 15% the engine charges in 2025 (£3.70bn, through a new engine index parameter, the employer Class 1 rate); a new all-rates income-tax relief total (£8.8bn) binds. The employer row anchors the sacrificed amount directly, so c9's interim amount row (employer relief ÷ 13.8%) retires. The three income-tax rate-band rows stay excluded until their band test reads after-allowance thresholds and the Scottish bands. `income_tax` carries the High Income Child Benefit charge and the annual-allowance charge, so the income-tax delta includes their response to the returned pay. diff --git a/packages/microcosm-build/src/microcosm/build/target_materialization.py b/packages/microcosm-build/src/microcosm/build/target_materialization.py index 342d291f3..8f11e64a0 100644 --- a/packages/microcosm-build/src/microcosm/build/target_materialization.py +++ b/packages/microcosm-build/src/microcosm/build/target_materialization.py @@ -75,6 +75,24 @@ def knows(self, entity: str, variable: str) -> bool: ... def compute(self, entity: str, variable: str) -> tuple[np.ndarray, str]: ... +#: Prefix of the measure-input column a resolved counterfactual delta lands in. +COUNTERFACTUAL_DELTA_COLUMN_PREFIX = "counterfactual_delta__" + + +def counterfactual_column(binding: Mapping[str, Any]) -> str: + """The slash-free measure-input column of a counterfactual binding's delta. + + A provider with ``counterfactual_delta(binding, period)`` resolves the + binding's per-row delta into this column; slashes in the metric name are + replaced because the prepared frame's HDF writer refuses them. + """ + + metric = str(binding.get("metric_name") or "") + if not metric: + raise ValueError("a counterfactual binding needs a metric_name") + return COUNTERFACTUAL_DELTA_COLUMN_PREFIX + re.sub(r"[^0-9A-Za-z_]", "_", metric) + + @dataclass(frozen=True) class MaterializationSkip: """One target measure the interpreter could not prepare.""" @@ -184,6 +202,7 @@ def resolve_target_measures( "provider": _measure_provider_receipt(provider), } all_skips: list[dict[str, Any]] = [] + specs_by_name = {spec.name: spec for spec in registry.specs} for round_index in range(max_rounds): probe = adapter_factory() @@ -215,11 +234,24 @@ def resolve_target_measures( for skip in skipped: reason = str(skip.reason) if "counterfactual_delta" in reason or "counterfactual delta" in reason: - _raise_measure_resolution( - "counterfactual target measure cannot be resolved", - receipt, - all_skips, + key, values, route = _resolve_counterfactual_skip( + skip, + specs_by_name=specs_by_name, + contract=contract, + provider=provider, + period=period, + provided_this_round=provided_this_round, + provided_before=provided_before, + receipt=receipt, + all_skips=all_skips, ) + if values is not None: + measure_inputs[key] = values + provided_this_round.add(key) + receipt["attached"][f"{key[0]}.{key[1]}"] = route + receipt["provider"] = _measure_provider_receipt(provider) + progressed = True + continue match = _MISSING_COLUMN.match(reason) if match is None: _raise_measure_resolution( @@ -281,6 +313,59 @@ def resolve_target_measures( ) +def _resolve_counterfactual_skip( + skip: MaterializationSkip, + *, + specs_by_name: Mapping[str, Any], + contract: Mapping[str, Mapping[str, Any]], + provider: MeasureProvider, + period: int | str, + provided_this_round: set[tuple[str, str]], + provided_before: set[tuple[str, str]], + receipt: dict[str, Any], + all_skips: list[dict[str, Any]], +) -> tuple[tuple[str, str], np.ndarray | None, str]: + """Resolve one counterfactual skip through the provider, or refuse. + + Returns the measure-input key and the delta, or ``None`` values when this + round already provided the key (several fan-out specs share one binding). + """ + + resolve = getattr(provider, "counterfactual_delta", None) + spec = specs_by_name.get(skip.name) + target = ( + None + if spec is None + else contract.get(str(spec.metadata.get("contract_target_id"))) + ) + if not callable(resolve) or target is None: + _raise_measure_resolution( + "counterfactual target measure cannot be resolved", + receipt, + all_skips, + ) + binding = target["bindings"]["policyengine"] + entity = str(binding.get("from_entity") or spec.entity) + key = (entity, counterfactual_column(binding)) + if key in provided_this_round: + return key, None, "" + if key in provided_before: + _raise_measure_resolution( + f"{entity}.{key[1]} remained unmaterializable after injection", + receipt, + all_skips, + ) + try: + values, route = resolve(binding, binding.get("measurement_period", period)) + except Exception as exc: # noqa: BLE001 - receipt preserves cause + _raise_measure_resolution( + f"provider failed computing counterfactual {entity}.{key[1]}: {exc}", + receipt, + all_skips, + ) + return key, np.asarray(values, dtype=float), str(route) + + def _measure_resolution_contract( registry: TargetRegistry, provider: MeasureProvider, diff --git a/packages/microcosm-build/src/microcosm/build/uk/calibration_measure_exclusions.json b/packages/microcosm-build/src/microcosm/build/uk/calibration_measure_exclusions.json index 21f3addce..0842fc3c4 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/calibration_measure_exclusions.json +++ b/packages/microcosm-build/src/microcosm/build/uk/calibration_measure_exclusions.json @@ -3,47 +3,29 @@ "exclusions": [ { "name": "hmrc.salary_sacrifice.it_relief_basic_rate", - "reason": "The frame adapter reads only a precomputed slash-named delta column; no artifact ships a live counterfactual route.", - "tracking": "microcosm#623", + "reason": "Deferred inside microcosm#1069 c11 (R7): the counterfactual route now resolves the salary-sacrifice relief, but the rate-band test compares adjusted net income with the after-allowance thresholds (0 / 37,700 / 125,140) and ignores the Scottish bands, so the three bands wait for a band-test fix; the all-rates total binds.", + "tracking": "microcosm#1069", "approved_by": "juaristi22", - "adjudication": "microcosm#757 (the #743-audit adjudication, issue comment 5413502559)", - "approved_on": "2026-08-25", + "adjudication": "microcosm#1069 plan R7, approved 2026-09-30: the relief rows bind through the counterfactual route, the rate bands after the band-test fix", + "approved_on": "2026-09-30", "expires_on": "2026-11-25" }, { "name": "hmrc.salary_sacrifice.it_relief_higher_rate", - "reason": "The frame adapter reads only a precomputed slash-named delta column; no artifact ships a live counterfactual route.", - "tracking": "microcosm#623", + "reason": "Deferred inside microcosm#1069 c11 (R7): the counterfactual route now resolves the salary-sacrifice relief, but the rate-band test compares adjusted net income with the after-allowance thresholds (0 / 37,700 / 125,140) and ignores the Scottish bands, so the three bands wait for a band-test fix; the all-rates total binds.", + "tracking": "microcosm#1069", "approved_by": "juaristi22", - "adjudication": "microcosm#757 (the #743-audit adjudication, issue comment 5413502559)", - "approved_on": "2026-08-25", + "adjudication": "microcosm#1069 plan R7, approved 2026-09-30: the relief rows bind through the counterfactual route, the rate bands after the band-test fix", + "approved_on": "2026-09-30", "expires_on": "2026-11-25" }, { "name": "hmrc.salary_sacrifice.it_relief_additional_rate", - "reason": "The frame adapter reads only a precomputed slash-named delta column; no artifact ships a live counterfactual route.", - "tracking": "microcosm#623", + "reason": "Deferred inside microcosm#1069 c11 (R7): the counterfactual route now resolves the salary-sacrifice relief, but the rate-band test compares adjusted net income with the after-allowance thresholds (0 / 37,700 / 125,140) and ignores the Scottish bands, so the three bands wait for a band-test fix; the all-rates total binds.", + "tracking": "microcosm#1069", "approved_by": "juaristi22", - "adjudication": "microcosm#757 (the #743-audit adjudication, issue comment 5413502559)", - "approved_on": "2026-08-25", - "expires_on": "2026-11-25" - }, - { - "name": "hmrc.salary_sacrifice.nics_relief_employee", - "reason": "The frame adapter reads only a precomputed slash-named delta column; no artifact ships a live counterfactual route.", - "tracking": "microcosm#623", - "approved_by": "juaristi22", - "adjudication": "microcosm#757 (the #743-audit adjudication, issue comment 5413502559)", - "approved_on": "2026-08-25", - "expires_on": "2026-11-25" - }, - { - "name": "hmrc.salary_sacrifice.nics_relief_employer", - "reason": "The frame adapter reads only a precomputed slash-named delta column; no artifact ships a live counterfactual route.", - "tracking": "microcosm#623", - "approved_by": "juaristi22", - "adjudication": "microcosm#757 (the #743-audit adjudication, issue comment 5413502559)", - "approved_on": "2026-08-25", + "adjudication": "microcosm#1069 plan R7, approved 2026-09-30: the relief rows bind through the counterfactual route, the rate bands after the band-test fix", + "approved_on": "2026-09-30", "expires_on": "2026-11-25" }, { diff --git a/packages/microcosm-build/src/microcosm/build/uk/hmrc_uprating_engine_pins.json b/packages/microcosm-build/src/microcosm/build/uk/hmrc_uprating_engine_pins.json index 99f52afe4..dc37bc970 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/hmrc_uprating_engine_pins.json +++ b/packages/microcosm-build/src/microcosm/build/uk/hmrc_uprating_engine_pins.json @@ -76,6 +76,16 @@ "2024-01-01": 221.2, "2025-01-01": 230.25, "2026-01-01": 241.3 + }, + "gov.hmrc.national_insurance.class_1.rates.employer": { + "2019-01-01": 0.138, + "2020-01-01": 0.138, + "2021-01-01": 0.138, + "2022-01-01": 0.138, + "2023-01-01": 0.138, + "2024-01-01": 0.138, + "2025-01-01": 0.15, + "2026-01-01": 0.15 } } } 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 3b8981b69..3bda6f93b 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 @@ -2065,13 +2065,6 @@ "period": 2025, "reason": "Coverage the incumbent lacks (PolicyEngine/chronicle#280 lane): HMRC's Income Tax liabilities Table 2.5 taxpayers, total income and tax by band as the calendar-2025 window of the 2024-25 and 2025-26 projections, and the SPI 2023-24 savings-interest rows by band uprated by the household interest index; the incumbent registry binds neither (chronicle#282)." }, - { - "kind": "ledger_only", - "ledger_value": 24637681159.419598, - "name": "hmrc.salary_sacrifice.amount", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, { "kind": "ledger_only", "ledger_value": 1800000000.0, @@ -2093,6 +2086,13 @@ "period": 2025, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, + { + "kind": "ledger_only", + "ledger_value": 8800000000.0, + "name": "hmrc.salary_sacrifice.it_relief_total", + "period": 2025, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, { "kind": "ledger_only", "ledger_value": 9960339.538711632, @@ -6238,7 +6238,7 @@ { "fixture_value": 2987000000.0, "kind": "calibration_drift", - "ledger_value": 3400000000.0, + "ledger_value": 3695652173.9130435, "name": "hmrc.salary_sacrifice.nics_relief_employer", "period": 2025, "reason": "Ledger-compiled value differs from the fixture value at this comparison period." 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 48a91a007..c4f59eeea 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 @@ -868,13 +868,6 @@ "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, - { - "kind": "ledger_only", - "ledger_value": 21014492753.6226, - "name": "hmrc.salary_sacrifice.amount", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, { "kind": "ledger_only", "ledger_value": 1200000000.0, @@ -896,6 +889,13 @@ "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, + { + "kind": "ledger_only", + "ledger_value": 7200000000.0, + "name": "hmrc.salary_sacrifice.it_relief_total", + "period": 2023, + "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." + }, { "kind": "ledger_only", "ledger_value": 1200000000.0, 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 7ea303ac6..6280a24cd 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 @@ -4072,10 +4072,6 @@ "geography_level": "country", "geography_id": "K03000001" }, - "hmrc.salary_sacrifice.amount": { - "geography_level": "country", - "geography_id": "K02000001" - }, "dwp.attendance_allowance.recipients_england": { "geography_level": "country", "geography_id": "E92000001" @@ -4095,6 +4091,10 @@ "dwp.hb.households_pension_age_private_rented": { "geography_level": "country", "geography_id": "K03000001" + }, + "hmrc.salary_sacrifice.it_relief_total": { + "geography_level": "country", + "geography_id": "K02000001" } }, "genuine_sum_residue": [ @@ -4292,7 +4292,10 @@ { "name": "hmrc.salary_sacrifice.nics_relief_employer", "from": "2024", - "to": "2025" + "to": "2025", + "index": "policyengine_uk_parameter:gov.hmrc.national_insurance.class_1.rates.employer", + "factor": "1.08695652173913", + "value_before_uprating": "3400000000.0" }, { "name": "hmrc/employment_income_income_band_100_000_to_150_000", @@ -11469,7 +11472,7 @@ "value_before_uprating": "522000000.0" }, { - "name": "hmrc.salary_sacrifice.amount", + "name": "hmrc.salary_sacrifice.it_relief_total", "from": "2024", "to": "2025" } @@ -11949,9 +11952,14 @@ "matched_fact_count_overall": 2, "matched_fact_count_at_or_before_period": 2, "resolved_period": 2025, - "resolved_value": 3400000000.0, + "resolved_value": 3695652173.9130435, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_026ae1169f5f0f997bb06479" + "resolved_fact_key": "ledger_aggregate_fact_v2_026ae1169f5f0f997bb06479", + "uprating": { + "index": "policyengine_uk_parameter:gov.hmrc.national_insurance.class_1.rates.employer", + "factor": "1.08695652173913", + "value_before_uprating": "3400000000.0" + } } ] }, @@ -30336,21 +30344,6 @@ } ] }, - "hmrc.salary_sacrifice.amount": { - "status": "active", - "candidates": [ - { - "name": "hmrc.salary_sacrifice.amount", - "status": "active", - "matched_fact_count_overall": 2, - "matched_fact_count_at_or_before_period": 2, - "resolved_period": 2025, - "resolved_value": 24637681159.419598, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_026ae1169f5f0f997bb06479" - } - ] - }, "dwp.attendance_allowance.recipients_england": { "status": "active", "candidates": [ @@ -30430,6 +30423,21 @@ "resolved_fact_key": "ledger_aggregate_fact_v2_f46445e7e639bfd9fea6921b" } ] + }, + "hmrc.salary_sacrifice.it_relief_total": { + "status": "active", + "candidates": [ + { + "name": "hmrc.salary_sacrifice.it_relief_total", + "status": "active", + "matched_fact_count_overall": 2, + "matched_fact_count_at_or_before_period": 2, + "resolved_period": 2025, + "resolved_value": 8800000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_ab19a7f36038519a7f359742" + } + ] } }, "fanout_family_outcomes": [ 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 b0636310b..4ce012cc3 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/target_references.json +++ b/packages/microcosm-build/src/microcosm/build/uk/target_references.json @@ -369,10 +369,10 @@ "hmrc.itl.income_tax_by_total_income_band": "hmrc.income_tax_liabilities_statistics", "hmrc.itl.taxpayers_by_total_income_band": "hmrc.income_tax_liabilities_statistics", "hmrc.itl.total_income_by_total_income_band": "hmrc.income_tax_liabilities_statistics", - "hmrc.salary_sacrifice.amount": "hmrc.salary_sacrifice_national_insurance_relief", "hmrc.salary_sacrifice.it_relief_additional_rate": "hmrc.salary_sacrifice_income_tax_relief", "hmrc.salary_sacrifice.it_relief_basic_rate": "hmrc.salary_sacrifice_income_tax_relief", "hmrc.salary_sacrifice.it_relief_higher_rate": "hmrc.salary_sacrifice_income_tax_relief", + "hmrc.salary_sacrifice.it_relief_total": "hmrc.salary_sacrifice_income_tax_relief", "hmrc.salary_sacrifice.nics_relief_employee": "hmrc.salary_sacrifice_national_insurance_relief", "hmrc.salary_sacrifice.nics_relief_employer": "hmrc.salary_sacrifice_national_insurance_relief", "hmrc.salary_sacrifice.users_above_cap": "hmrc.salary_sacrifice_pension_users", @@ -701,10 +701,10 @@ "hmrc.itl.income_tax_by_total_income_band": "Income Tax liabilities by total income band", "hmrc.itl.taxpayers_by_total_income_band": "Income Tax payers by total income band", "hmrc.itl.total_income_by_total_income_band": "Total income by total income band", - "hmrc.salary_sacrifice.amount": "Salary-sacrificed pension contributions (from employer NICs relief)", "hmrc.salary_sacrifice.it_relief_additional_rate": "It relief additional rate", "hmrc.salary_sacrifice.it_relief_basic_rate": "It relief basic rate", "hmrc.salary_sacrifice.it_relief_higher_rate": "It relief higher rate", + "hmrc.salary_sacrifice.it_relief_total": "Income Tax relief total", "hmrc.salary_sacrifice.nics_relief_employee": "National Insurance contributions relief employee", "hmrc.salary_sacrifice.nics_relief_employer": "National Insurance contributions relief employer", "hmrc.salary_sacrifice.users_above_cap": "Users above cap", @@ -1472,6 +1472,7 @@ "contract_target_id": "hmrc.salary_sacrifice.nics_relief_employer", "measure_kind": "prepared_column" }, + "uprating_index": "policyengine_uk_parameter:gov.hmrc.national_insurance.class_1.rates.employer", "uprating_from_period": "2024", "uprating_to_period": 2025 }, @@ -46235,34 +46236,6 @@ } ] }, - { - "name": "hmrc.salary_sacrifice.amount", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.ss_nics_relief_employer", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001" - }, - "entity": "person", - "measure": "hmrc/salary_sacrifice_amount", - "family": "hmrc_salary_sacrifice", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.salary_sacrifice.amount", - "measure_kind": "prepared_column" - }, - "value_operation": "linear_combination", - "value_operands": [ - { - "weight": 7.246376811594, - "source_concept": "hmrc.ss_nics_relief_employer", - "label": "employer_nics_relief_over_13_8_percent" - } - ], - "uprating_from_period": "2024", - "uprating_to_period": 2025 - }, { "name": "dwp.attendance_allowance.recipients_england", "ledger_selector": { @@ -46479,6 +46452,25 @@ }, "period_match_policy": "source_window", "value_operation": "monthly_window_average" + }, + { + "name": "hmrc.salary_sacrifice.it_relief_total", + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.ss_income_tax_relief_total", + "geography_level": "country", + "geography_id": "K02000001" + }, + "entity": "person", + "measure": "hmrc/salary_sacrifice_it_relief_total", + "family": "hmrc_salary_sacrifice", + "period": 2025, + "metadata": { + "contract_target_id": "hmrc.salary_sacrifice.it_relief_total", + "measure_kind": "prepared_column" + }, + "uprating_from_period": "2024", + "uprating_to_period": 2025 } ] } 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 a5e542d48..819d932e9 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 @@ -830,12 +830,12 @@ "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band": "Post-freeze fact family (HMRC SPI 2023-24 Table 3.8, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", "dwp.workplace_pension.employer_contributions": "Post-freeze fact family (DWP workplace pension savings trends / HMRC Table 6.2, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069 c9).", "dwp.workplace_pension.employee_contributions": "Post-freeze fact family (DWP workplace pension savings trends / HMRC Table 6.2, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069 c9).", - "hmrc.salary_sacrifice.amount": "Post-freeze fact family (DWP workplace pension savings trends / HMRC Table 6.2, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069 c9).", "dwp.attendance_allowance.recipients_england": "Post-freeze fact family (DWP Stat-Xplore Attendance Allowance), no uk-data metric (microcosm#1069 c10).", "dwp.attendance_allowance.recipients_wales": "Post-freeze fact family (DWP Stat-Xplore Attendance Allowance), no uk-data metric (microcosm#1069 c10).", "dwp.hb.households_pension_age": "Post-freeze fact family (DWP Stat-Xplore Housing Benefit, pension age), no uk-data metric (microcosm#1069 c10).", "dwp.hb.households_pension_age_social_rented": "Post-freeze fact family (DWP Stat-Xplore Housing Benefit, pension age), no uk-data metric (microcosm#1069 c10).", - "dwp.hb.households_pension_age_private_rented": "Post-freeze fact family (DWP Stat-Xplore Housing Benefit, pension age), no uk-data metric (microcosm#1069 c10)." + "dwp.hb.households_pension_age_private_rented": "Post-freeze fact family (DWP Stat-Xplore Housing Benefit, pension age), no uk-data metric (microcosm#1069 c10).", + "hmrc.salary_sacrifice.it_relief_total": "New declaration backed by HMRC Table 6.2 (PolicyEngine/chronicle#302 via #305): the all-rates income-tax relief on salary sacrifice, resolved by the live counterfactual route (microcosm#1069 c11)." }, "suppressed_ancestors": { "hmrc/salary_sacrifice_it_relief_basic_rate": { @@ -1208,12 +1208,12 @@ "dfc_ni.pension_credit.benefit_units", "dwp.workplace_pension.employer_contributions", "dwp.workplace_pension.employee_contributions", - "hmrc.salary_sacrifice.amount", "dwp.attendance_allowance.recipients_england", "dwp.attendance_allowance.recipients_wales", "dwp.hb.households_pension_age", "dwp.hb.households_pension_age_social_rented", - "dwp.hb.households_pension_age_private_rented" + "dwp.hb.households_pension_age_private_rented", + "hmrc.salary_sacrifice.it_relief_total" ] }, "profile_parity": { @@ -2950,7 +2950,9 @@ "source_concept": "hmrc.ss_nics_relief_employer" }, "category_id": "hmrc.salary_sacrifice_national_insurance_relief", - "label": "National Insurance contributions relief employer" + "label": "National Insurance contributions relief employer", + "uprating_index": "policyengine_uk_parameter:gov.hmrc.national_insurance.class_1.rates.employer", + "selector_note": "HMRC Table 6.2's 2024-25 employer NICs relief, charged at 13.8%, restated to the rate the engine charges in 2025 (15% from April 2025) by the pinned engine's gov.hmrc.national_insurance.class_1.rates.employer between 1 January 2024 and 1 January 2025, so the row anchors the sacrificed amount at the 2024-25 level, as R10's conversion row did (microcosm#1069 c11, R7)." }, { "target_id": "hmrc.salary_sacrifice.users_below_cap", @@ -25983,47 +25985,6 @@ "label": "Employee workplace pension contributions (gross), Great Britain", "period_match_policy": "exact" }, - { - "target_id": "hmrc.salary_sacrifice.amount", - "family": "hmrc_salary_sacrifice", - "geography_levels": [ - "country" - ], - "measurement": { - "entity": "person", - "map_to": "household", - "concept": "uk.pensions.contributions.salary_sacrifice.amount" - }, - "bindings": { - "policyengine": { - "metric_name": "hmrc/salary_sacrifice_amount", - "value_variable": "pension_contributions_via_salary_sacrifice", - "from_entity": "person", - "map_to": "household", - "notes": "HMRC Private pension statistics Table 6.2, 2024-25: the employer National Insurance relief on salary-sacrificed pension contributions (£3.4bn) divided by the 13.8% employer rate, a declared conversion (about £24.6bn) binding the sacrificed amount until the relief rows bind directly through the counterfactual route (microcosm#1069 R10; c11 retires this row)." - }, - "axiom": { - "metric_name": "hmrc/salary_sacrifice_amount", - "status": "pending", - "value_rule": "uk.pensions.contributions.salary_sacrifice.amount" - } - }, - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.ss_nics_relief_employer", - "entity_name": "person" - }, - "value_operation": "linear_combination", - "value_operands": [ - { - "weight": 7.246376811594, - "source_concept": "hmrc.ss_nics_relief_employer", - "label": "employer_nics_relief_over_13_8_percent" - } - ], - "category_id": "hmrc.salary_sacrifice_national_insurance_relief", - "label": "Salary-sacrificed pension contributions (from employer NICs relief)" - }, { "target_id": "dwp.attendance_allowance.recipients_england", "family": "dwp_attendance_allowance", @@ -26583,6 +26544,42 @@ "value_operation": "monthly_window_average", "period_match_policy": "source_window" }, + { + "target_id": "hmrc.salary_sacrifice.it_relief_total", + "family": "hmrc_salary_sacrifice", + "geography_levels": [ + "country" + ], + "measurement": { + "entity": "person", + "map_to": "household", + "concept": "uk.tax.salary_sacrifice.income_tax_relief" + }, + "bindings": { + "policyengine": { + "metric_name": "hmrc/salary_sacrifice_it_relief_total", + "kind": "input_substitution_counterfactual", + "zeroed_input": "pension_contributions_via_salary_sacrifice", + "folded_into": "employment_income", + "output_delta": "counterfactual_minus_baseline", + "output_variable": "income_tax", + "from_entity": "person", + "map_to": "household", + "notes": "HMRC Private pension statistics Table 6.2, 2024-25: income-tax relief on salary-sacrificed pension contributions, all rates, as the rise in income tax when the sacrifice is returned to pay (one counterfactual simulation from the same frame at the calibration year, uk-data's recipe; microcosm#1069 c11, R7). income_tax carries the High Income Child Benefit charge and the annual-allowance charge, so the delta includes their response to the returned pay (measured on the c11 arm). The rate-band rows wait for a band test that reads after-allowance thresholds and the Scottish bands." + }, + "axiom": { + "metric_name": "hmrc/salary_sacrifice_it_relief_total", + "status": "pending", + "value_rule": "uk.tax.salary_sacrifice.income_tax_relief" + } + }, + "ledger_selector": { + "source_name": "hmrc", + "source_concept": "hmrc.ss_income_tax_relief_total" + }, + "category_id": "hmrc.salary_sacrifice_income_tax_relief", + "label": "Income Tax relief total" + }, { "target_id": "hmrc.self_employment_income.amount", "family": "hmrc", diff --git a/packages/microcosm-build/src/microcosm/build/uk_runtime/hmrc_uprating.py b/packages/microcosm-build/src/microcosm/build/uk_runtime/hmrc_uprating.py index e31e36111..734530216 100644 --- a/packages/microcosm-build/src/microcosm/build/uk_runtime/hmrc_uprating.py +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/hmrc_uprating.py @@ -69,7 +69,10 @@ #: The parameter paths a UK reference may name behind the prefix. One per SPI #: income component the family binds, each the index the engine itself uprates #: that variable with, plus the new State Pension weekly rate for the state -#: pension rows (the engine pays the tax-year rate for the whole period). +#: pension rows (the engine pays the tax-year rate for the whole period), and +#: the employer Class 1 rate for the employer NICs relief on salary sacrifice +#: (HMRC's 2024-25 relief at 13.8% restated to the rate the engine charges in +#: the calibration year, microcosm#1069 c11). UK_ENGINE_INDEX_PARAMETERS: tuple[str, ...] = ( "gov.economic_assumptions.indices.obr.average_earnings", "gov.economic_assumptions.indices.obr.per_capita.mixed_income", @@ -77,6 +80,7 @@ "gov.economic_assumptions.indices.obr.private_pension_index", "gov.economic_assumptions.indices.ons.household_interest_income", "gov.dwp.state_pension.new_state_pension.amount", + "gov.hmrc.national_insurance.class_1.rates.employer", ) UK_ENGINE_INDEX_CONCEPTS: tuple[str, ...] = tuple( f"{UK_ENGINE_PARAMETER_INDEX_PREFIX}{path}" for path in UK_ENGINE_INDEX_PARAMETERS diff --git a/packages/microcosm-build/src/microcosm/build/uk_runtime/ledger_targets.py b/packages/microcosm-build/src/microcosm/build/uk_runtime/ledger_targets.py index 63607db9b..6aa393034 100644 --- a/packages/microcosm-build/src/microcosm/build/uk_runtime/ledger_targets.py +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/ledger_targets.py @@ -1443,10 +1443,16 @@ def counterfactual_delta( period: int | str, ) -> np.ndarray: del period + from microcosm.build.target_materialization import counterfactual_column + entity = str(binding.get("from_entity") or "person") metric_name = str(binding.get("metric_name") or "") - if metric_name and metric_name in self.tables[entity]: - return np.asarray(self.tables[entity][metric_name], dtype=float) + # The measure resolver injects a resolved delta under the slash-free + # counterfactual column (microcosm#1069 c11); a precomputed column + # under the metric name itself is the legacy route. + for name in (counterfactual_column(binding), metric_name): + if name and name in self.tables[entity]: + return np.asarray(self.tables[entity][name], dtype=float) raise ValueError( f"frame does not carry precomputed counterfactual delta {metric_name!r}" ) diff --git a/packages/microcosm-build/src/microcosm/build/uk_runtime/measure_simulation.py b/packages/microcosm-build/src/microcosm/build/uk_runtime/measure_simulation.py index fd01af9bb..58006c9dd 100644 --- a/packages/microcosm-build/src/microcosm/build/uk_runtime/measure_simulation.py +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/measure_simulation.py @@ -369,6 +369,10 @@ def __init__( if frame is None: frame, _provenance = load_uk_national_frame(source_path) self.frame = frame + self._factory = factory + self._source_path = source_path + self._counterfactuals: dict[tuple[str, str | None], Any] = {} + self._counterfactual_measures: dict[str, dict[str, Any]] = {} reserved = { str(name) for name in frame.table("person") @@ -504,8 +508,95 @@ def compute(self, entity: str, variable: str) -> tuple[np.ndarray, str]: self._uc_paid_measures_used.add(variable) return result + def counterfactual_delta( + self, binding: Mapping[str, Any], period: int | str + ) -> tuple[np.ndarray, str]: + """A binding's per-row output delta under its input substitution. + + One extra simulation per (zeroed input, folded-into) pair, from the same + source at the measurement year: the zeroed input is set to zero and its + amount added to the folded-into input (salary sacrifice returned to + pay, uk-data's recipe), and the output's delta against this resolver's + baseline comes back for the binding's entity (microcosm#1069 c11). + Banded deltas are refused: their band test compares adjusted net income + with after-allowance thresholds and ignores the Scottish bands. + """ + + self.validate_period(period) + if binding.get("band"): + raise ValueError( + "banded counterfactual measures are deferred: the band test " + "compares adjusted net income with after-allowance thresholds " + "and ignores the Scottish bands (microcosm#1069 c11)" + ) + if binding.get("kind") != "input_substitution_counterfactual": + raise ValueError(f"unsupported counterfactual kind {binding.get('kind')!r}") + zeroed = str(binding["zeroed_input"]) + folded = binding.get("folded_into") + folded = None if folded is None else str(folded) + output = str(binding["output_variable"]) + entity = str(binding.get("from_entity") or "person") + direction = str(binding.get("output_delta", "counterfactual_minus_baseline")) + if direction not in ( + "counterfactual_minus_baseline", + "baseline_minus_counterfactual", + ): + raise ValueError(f"unsupported output_delta {direction!r}") + counterfactual = self._counterfactual_simulation(zeroed, folded) + baseline_values, _ = compute_uk_measure_input( + self.frame, self.simulation, entity, output, self.year + ) + counterfactual_values, _ = compute_uk_measure_input( + self.frame, counterfactual, entity, output, self.year + ) + delta = np.asarray(counterfactual_values, dtype=float) - np.asarray( + baseline_values, dtype=float + ) + if direction == "baseline_minus_counterfactual": + delta = -delta + metric = str(binding.get("metric_name") or output) + self._counterfactual_measures[metric] = { + "entity": entity, + "zeroed_input": zeroed, + "folded_into": folded, + "output_variable": output, + "output_delta": direction, + "rows_nonzero": int(np.count_nonzero(delta)), + } + route = ( + f"policyengine-uk counterfactual: {zeroed} set to zero" + + (f" and folded into {folded}" if folded else "") + + f"; {entity}.{output} {direction}" + ) + return delta, route + + def _counterfactual_simulation(self, zeroed: str, folded: str | None) -> Any: + key = (zeroed, folded) + if key in self._counterfactuals: + return self._counterfactuals[key] + simulation = self._factory(dataset=str(self._source_path)) + amount = np.asarray(self.simulation.calculate(zeroed, self.year), dtype=float) + if not np.isfinite(amount).all(): + raise ValueError(f"{zeroed} must be finite to substitute it.") + if folded is not None: + base = np.asarray(self.simulation.calculate(folded, self.year), dtype=float) + if base.shape != amount.shape: + raise ValueError( + f"{zeroed} and {folded} must share an entity to fold one into the other." + ) + simulation.set_input(folded, self.year, base + amount) + simulation.set_input(zeroed, self.year, np.zeros_like(amount)) + self._counterfactuals[key] = simulation + return simulation + def receipt(self) -> dict[str, Any]: receipt = dict(self._receipt) + counterfactual_measures = getattr(self, "_counterfactual_measures", None) + if counterfactual_measures: + receipt["counterfactual_measures"] = { + name: dict(entry) + for name, entry in sorted(counterfactual_measures.items()) + } if self._uc_tcl_measures_used: receipt["uc_tcl_comparison_contract"] = { **uc_tcl_comparison_contract(self.year), diff --git a/packages/microcosm-build/tests/engine/uk/test_uk_salary_sacrifice_counterfactual.py b/packages/microcosm-build/tests/engine/uk/test_uk_salary_sacrifice_counterfactual.py new file mode 100644 index 000000000..8b3194d3f --- /dev/null +++ b/packages/microcosm-build/tests/engine/uk/test_uk_salary_sacrifice_counterfactual.py @@ -0,0 +1,87 @@ +"""The live counterfactual route against the real engine (microcosm#1069 c11).""" + +from __future__ import annotations + +import numpy as np +import pandas as pd + +from microcosm.build.uk_runtime.measure_simulation import UKMeasureResolver +from microcosm.build.uk_runtime.national_frame import uk_national_frame +from microcosm.frame import WeightKind + + +def _frame(): + ids = np.arange(3, dtype=np.int64) + return uk_national_frame( + person=pd.DataFrame( + { + "person_id": ids, + "person_benunit_id": ids, + "person_household_id": ids, + "age": [40, 40, 40], + "employment_income": [40_000.0, 30_000.0, 0.0], + "pension_contributions_via_salary_sacrifice": [3_000.0, 0.0, 0.0], + } + ), + benunit=pd.DataFrame({"benunit_id": ids}), + household=pd.DataFrame( + { + "household_id": ids, + "household_weight": [1.0, 1.0, 1.0], + "region": "LONDON", + "council_tax": 0.0, + "rent": 0.0, + "tenure_type": "OWNED_OUTRIGHT", + } + ), + time_period="2024", + weight_kind=WeightKind.DESIGN, + ) + + +def _relief_binding(output: str) -> dict: + return { + "metric_name": f"hmrc/salary_sacrifice_{output}_relief", + "kind": "input_substitution_counterfactual", + "zeroed_input": "pension_contributions_via_salary_sacrifice", + "folded_into": "employment_income", + "output_delta": "counterfactual_minus_baseline", + "output_variable": output, + "from_entity": "person", + } + + +def test_returned_sacrifice_is_taxed_at_the_basic_rate_and_main_nics_rates(tmp_path): + resolver = UKMeasureResolver( + simulation_source=None, frame=_frame(), scratch_dir=tmp_path, year=2025 + ) + sacrificed = np.asarray( + resolver.simulation.calculate( + "pension_contributions_via_salary_sacrifice", 2025 + ), + dtype=float, + ) + pay = np.asarray(resolver.simulation.calculate("employment_income", 2025)) + # The returned pay stays inside the 2025-26 basic-rate band and below the + # NICs upper earnings limit, so the relief is linear in the sacrifice. + assert sacrificed[0] > 0.0 and pay[0] + sacrificed[0] < 50_270.0 + + income_tax, route = resolver.counterfactual_delta( + _relief_binding("income_tax"), 2025 + ) + employee, _ = resolver.counterfactual_delta(_relief_binding("ni_employee"), 2025) + employer, _ = resolver.counterfactual_delta(_relief_binding("ni_employer"), 2025) + + # Hand-computed at the 2025-26 rates: 20% income tax, 8% employee and 15% + # employer NICs on the sacrificed pay; nobody else moves. + expected = np.array([sacrificed[0], 0.0, 0.0]) + np.testing.assert_allclose(income_tax, 0.20 * expected, atol=0.01) + np.testing.assert_allclose(employee, 0.08 * expected, atol=0.01) + np.testing.assert_allclose(employer, 0.15 * expected, atol=0.01) + assert "folded into employment_income" in route + measures = resolver.receipt()["counterfactual_measures"] + assert set(measures) == { + "hmrc/salary_sacrifice_income_tax_relief", + "hmrc/salary_sacrifice_ni_employee_relief", + "hmrc/salary_sacrifice_ni_employer_relief", + } diff --git a/packages/microcosm-build/tests/engine_free/shared/test_country_spec.py b/packages/microcosm-build/tests/engine_free/shared/test_country_spec.py index 85bf26c20..e47487acd 100644 --- a/packages/microcosm-build/tests/engine_free/shared/test_country_spec.py +++ b/packages/microcosm-build/tests/engine_free/shared/test_country_spec.py @@ -1146,7 +1146,8 @@ def test_uk_target_references_accept_regenerated_contract_fields(self) -> None: # 52 SPI Table 3.8 contribution rows (four measures by thirteen bands); # the DWP employer and employee contribution totals and the # salary-sacrifice amount, less the salary-sacrifice users total; two - # Attendance Allowance and three pension-age Housing Benefit rows + # Attendance Allowance and three pension-age Housing Benefit rows; the + # income-tax relief total on salary sacrifice in place of the amount row assert references["obr.esa"].value_operation == "calendar_year_window" assert references["dwp.uc.households"].value_operation == ( "monthly_window_sum_average" diff --git a/packages/microcosm-build/tests/engine_free/shared/test_target_materialization.py b/packages/microcosm-build/tests/engine_free/shared/test_target_materialization.py index 6aa8dbe16..2bb3d6d8a 100644 --- a/packages/microcosm-build/tests/engine_free/shared/test_target_materialization.py +++ b/packages/microcosm-build/tests/engine_free/shared/test_target_materialization.py @@ -8,6 +8,7 @@ BandEdgeCoverageError, MeasureResolutionError, assert_calibration_input_finite, + counterfactual_column, materialize_target_bindings, resolve_target_measures, ) @@ -1319,3 +1320,84 @@ def test_filter_aware_provider_without_filters_is_unchanged(): np.testing.assert_array_equal( adapter.tables["person"]["cgt_taxpayer_measure"], [0.0, 0.0, 1.0] ) + + +# microcosm#1069 c11: counterfactual measures resolve through the provider. +class CounterfactualAdapter(ResolutionAdapter): + def counterfactual_delta(self, binding, period): + column = counterfactual_column(binding) + if column in self.tables["person"]: + return np.asarray(self.tables["person"][column]) + raise ValueError( + "frame does not carry precomputed counterfactual delta " + f"{binding['metric_name']!r}" + ) + + +_RELIEF_BINDING = { + "metric_name": "hmrc/relief", + "kind": "input_substitution_counterfactual", + "zeroed_input": "salary_sacrifice", + "folded_into": "pay", + "output_variable": "tax", + "output_delta": "counterfactual_minus_baseline", + "from_entity": "person", +} + + +class CounterfactualProvider: + contract_targets = {"relief": {"bindings": {"policyengine": _RELIEF_BINDING}}} + + def __init__(self): + self.calls = [] + + def knows(self, entity, variable): + return False + + def compute(self, entity, variable): + raise AssertionError("a counterfactual measure is not a column compute") + + def counterfactual_delta(self, binding, period): + self.calls.append((binding["metric_name"], period)) + return np.array([0.0, 30.0, 60.0]), "stub counterfactual" + + +def test_counterfactual_column_is_slash_free(): + assert ( + counterfactual_column( + {"metric_name": "hmrc/salary_sacrifice_employer_nics_relief"} + ) + == "counterfactual_delta__hmrc_salary_sacrifice_employer_nics_relief" + ) + + +def test_resolve_target_measures_routes_counterfactual_deltas_through_the_provider(): + provider = CounterfactualProvider() + + resolution = resolve_target_measures( + lambda: CounterfactualAdapter(_resolution_source()), + _resolution_registry("relief"), + provider, + period=2025, + ) + + key = ("person", "counterfactual_delta__hmrc_relief") + assert set(resolution.measure_inputs) == {key} + np.testing.assert_array_equal(resolution.measure_inputs[key], [0.0, 30.0, 60.0]) + assert provider.calls == [("hmrc/relief", 2025)] + assert resolution.receipt["attached"] == { + "person.counterfactual_delta__hmrc_relief": "stub counterfactual" + } + + +def test_counterfactual_skips_refuse_without_a_provider_route(): + class NoRouteProvider(StubMeasureProvider): + contract_targets = CounterfactualProvider.contract_targets + + with pytest.raises(MeasureResolutionError, match="counterfactual target measure"): + resolve_target_measures( + lambda: CounterfactualAdapter(_resolution_source()), + _resolution_registry("relief"), + NoRouteProvider(), + period=2025, + ) diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_hmrc_uprating.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_hmrc_uprating.py index 09ac7e49e..b7bbc3769 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_hmrc_uprating.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_hmrc_uprating.py @@ -13,7 +13,7 @@ def test_every_declared_engine_index_and_the_count_index_have_an_applier() -> No "hmrc.itl_2026.total_tax_growth_by_total_income_band", } assert set(appliers) <= set(UK_UPRATING_APPLIERS) - assert len(UK_ENGINE_INDEX_PARAMETERS) == 6 + assert len(UK_ENGINE_INDEX_PARAMETERS) == 7 def test_engine_index_moves_the_amount_by_the_parameter_ratio_and_receipts_it() -> None: registry = TargetRegistry( diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_measure_simulation.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_measure_simulation.py index a9539c403..77d9f0a5f 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_measure_simulation.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_measure_simulation.py @@ -570,7 +570,10 @@ def test_exclusion_applier_warns_within_week_of_expiry(): #: a drifting count is a register change that must be re-adjudicated, #: never absorbed. _PACKAGED_EXCLUSION_CENSUS = { - "hmrc.salary_sacrifice.": 5, + # microcosm#1069 c11: the live counterfactual route binds the two NICs + # relief rows and the income-tax relief total; the three rate bands wait + # for the band-test fix. + "hmrc.salary_sacrifice.": 3, "_1_000_000_to_inf": 10, "slc.": 5, "dwp/uc_payment_dist/": 17, @@ -632,7 +635,7 @@ def test_exclusion_applier_warns_within_week_of_expiry(): def test_packaged_exclusions_load(): exclusions = load_uk_calibration_measure_exclusions() names = [entry["name"] for entry in exclusions] - assert len(names) == len(set(names)) == 62 + assert len(names) == len(set(names)) == 60 band_h_region_cells = [ entry for entry in exclusions @@ -941,3 +944,97 @@ def test_cgt_taxable_income_nets_the_allowances_the_engine_formula_nets(): # them too; an allowance above income floors at 0. [0.0, 17_430.0, 47_430.0, 7_430.0, 57_430.0, 0.0], ) + + +# microcosm#1069 c11: the live counterfactual route (salary sacrifice returned to pay). +class _TaxSimulation: + """A stub engine whose tax and NI follow the pay and salary-sacrifice inputs.""" + + created = 0 + + def __init__(self, *, dataset): + type(self).created += 1 + self.inputs = { + "employment_income": np.array([30_000.0, 50_000.0, 0.0]), + "pension_contributions_via_salary_sacrifice": np.array([3_000.0, 0.0, 0.0]), + } + names = (*self.inputs, "income_tax", "ni_employee") + self.tax_benefit_system = SimpleNamespace( + variables={ + name: SimpleNamespace( + entity=SimpleNamespace(key="person"), value_type=float + ) + for name in names + } + ) + + def set_input(self, variable, year, values): + self.inputs[variable] = np.asarray(values, dtype=float) + + def calculate(self, variable, year, map_to=None): + if variable in self.inputs: + return self.inputs[variable] + taxable = np.maximum(self.inputs["employment_income"] - 12_570.0, 0.0) + return {"income_tax": 0.2 * taxable, "ni_employee": 0.08 * taxable}[variable] + + +def _relief_binding(output, **extra): + return { + "metric_name": f"hmrc/salary_sacrifice_{output}_relief", + "kind": "input_substitution_counterfactual", + "zeroed_input": "pension_contributions_via_salary_sacrifice", + "folded_into": "employment_income", + "output_delta": "counterfactual_minus_baseline", + "output_variable": output, + "from_entity": "person", + **extra, + } + + +def test_counterfactual_delta_returns_the_sacrificed_pay_relief(monkeypatch, tmp_path): + _TaxSimulation.created = 0 + monkeypatch.setitem( + sys.modules, + "policyengine_uk", + SimpleNamespace(__version__="9.9.9", Microsimulation=_TaxSimulation), + ) + resolver = UKMeasureResolver( + simulation_source=tmp_path / "input.h5", + scratch_dir=tmp_path, + year=2025, + frame=FrameStub(), + ) + + tax, route = resolver.counterfactual_delta(_relief_binding("income_tax"), 2025) + ni, _ = resolver.counterfactual_delta(_relief_binding("ni_employee"), 2025) + + # £3,000 of sacrificed pay returned to the first person: 20% income tax and + # 8% NI on it; nobody else moves. + np.testing.assert_allclose(tax, [600.0, 0.0, 0.0]) + np.testing.assert_allclose(ni, [240.0, 0.0, 0.0]) + assert "folded into employment_income" in route + # One baseline and one counterfactual simulation serve both bindings. + assert _TaxSimulation.created == 2 + measures = resolver.receipt()["counterfactual_measures"] + assert measures["hmrc/salary_sacrifice_income_tax_relief"]["rows_nonzero"] == 1 + + +def test_counterfactual_delta_refuses_bands_and_other_periods(monkeypatch, tmp_path): + monkeypatch.setitem( + sys.modules, + "policyengine_uk", + SimpleNamespace(__version__="9.9.9", Microsimulation=_TaxSimulation), + ) + resolver = UKMeasureResolver( + simulation_source=tmp_path / "input.h5", + scratch_dir=tmp_path, + year=2025, + frame=FrameStub(), + ) + with pytest.raises(ValueError, match="banded counterfactual measures are deferred"): + resolver.counterfactual_delta( + _relief_binding("income_tax", band={"variable": "adjusted_net_income"}), + 2025, + ) + with pytest.raises(ValueError, match="does not match target period"): + resolver.counterfactual_delta(_relief_binding("income_tax"), 2024) From d9fca7bb73242507d15c625e6b885b9a4f1d5cfb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20Juaristi?= <127882282+juaristi22@users.noreply.github.com> Date: Thu, 1 Oct 2026 20:50:36 +0100 Subject: [PATCH 16/22] Take the SPI Table 3.8 rows and the DWP gross employee row out of the fit (#1069, c8/c9 follow-up) The c9 measurement arm blocked on twelve Table 3.8 rows and showed both families definitionally mismatched with the engine's columns: - Table 3.8 splits contributions by relief mechanism (net pay vs relief at source); employee_pension_contributions holds every workplace deduction and personal_pension_contributions only the FRS personal and stakeholder pensions, while workplace group personal pensions and many master trusts take relief at source. At prior weights net pay sat +67% (amount) and relief-at-source contributors -82% (about 2.0m against 10.9m), out of reach of reweighting; binding them cut ESS 5,004 -> 4,060 and roughly doubled the loss. - DWP's gross employee contributions (GBP 45.5bn plus GBP 20.7bn relief) sat -43% at prior against the engine's pay deductions and pulled against SPI's net pay (SPI net pay plus relief at source is GBP 44.1bn, near DWP's employees' own GBP 45.5bn). The four Table 3.8 targets and the DWP employee row are removed from the contract (scripts/c11b_unbind.py) pending a ruling on their re-specification. The DWP employer row (+12% at prior, fits), the employer draw, the conversion fix and the clip removal stay. Active national references 1,283 -> 1,230; the local surface, the coverage manifest and the charter-H2 fixture do not move. Co-Authored-By: Claude Opus 5.5 --- ...-contribution-rows-unbound-1069.changed.md | 1 + ...ity_incumbent_2025_signed_differences.json | 377 +- ...ty_production_2023_signed_differences.json | 370 +- .../build/uk/target_reference_membership.json | 10973 +++++++--------- .../microcosm/build/uk/target_references.json | 1362 -- .../build/uk/uk_population_targets.json | 279 - .../engine_free/shared/test_country_spec.py | 7 +- .../uk/test_uk_national_calibration.py | 2 +- .../uk/test_uk_population_targets.py | 19 +- .../uk/test_uk_target_references.py | 6 +- 10 files changed, 4886 insertions(+), 8510 deletions(-) create mode 100644 changelog.d/uk-contribution-rows-unbound-1069.changed.md diff --git a/changelog.d/uk-contribution-rows-unbound-1069.changed.md b/changelog.d/uk-contribution-rows-unbound-1069.changed.md new file mode 100644 index 000000000..7870b943d --- /dev/null +++ b/changelog.d/uk-contribution-rows-unbound-1069.changed.md @@ -0,0 +1 @@ +Take the UK SPI Table 3.8 contribution rows and the DWP gross employee contribution row out of the national fit (#1069). The c9 measurement arm showed both definitionally mismatched with the engine's columns. Table 3.8 splits contributions by relief mechanism (net pay against relief at source), while `employee_pension_contributions` holds every workplace deduction and `personal_pension_contributions` only the FRS personal and stakeholder pensions; workplace group personal pensions and many master trusts take relief at source. At prior weights net pay sat 67% above SPI and the relief-at-source contributors 82% below (about 2.0m against 10.9m), out of reach of reweighting; binding them cut the effective sample size from 5,004 to 4,060 and roughly doubled the loss. DWP's gross employee contributions (£66.2bn) pulled against SPI's net pay and the engine's pay deductions. The DWP employer row, the employer contribution draw, the salary-sacrifice conversion fix and the clip removal stay. Active national references go from 1,283 to 1,230. 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 3bda6f93b..545ffc368 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": 1283, + "compiled_count": 1230, "counts_by_kind": { "calibration_drift": 553, "fixture_only": 55, - "ledger_only": 701 + "ledger_only": 648 }, - "difference_count": 1309, + "difference_count": 1256, "differences": [ { "fixture_value": 1608000.0, @@ -1267,13 +1267,6 @@ "period": 2025, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, - { - "kind": "ledger_only", - "ledger_value": 66200000000.0, - "name": "dwp.workplace_pension.employee_contributions", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, { "kind": "ledger_only", "ledger_value": 104200000000.0, @@ -2093,370 +2086,6 @@ "period": 2025, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, - { - "kind": "ledger_only", - "ledger_value": 9960339.538711632, - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_1000000_plus", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 1748592941.2404864, - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_100000_150000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 167112363.37171736, - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_12570_15000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 785760119.1650287, - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_150000_200000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 749238874.1897527, - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_15000_20000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 418334260.6258885, - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_200000_300000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 2965967773.749686, - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_20000_30000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 150511797.47386464, - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_300000_500000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 3962001727.6208487, - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_30000_40000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 4006269903.348456, - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_40000_50000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 30987723.009325072, - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_500000_1000000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 5345382219.108575, - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_50000_70000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 2667157587.588337, - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_70000_100000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 1166.6666666666667, - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_1000000_plus", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 226463.55353075173, - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_100000_150000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 349399.1228070175, - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_12570_15000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 69948.97959183673, - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_150000_200000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 988539.7830018083, - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_15000_20000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 38327.974276527326, - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_200000_300000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 2435955.882352941, - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_20000_30000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 14372.990353697749, - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_300000_500000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 2121875.0, - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_30000_40000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 1425810.1851851852, - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_40000_50000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 4851.851851851852, - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_500000_1000000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 1460595.4465849388, - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_50000_70000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 520945.7092819615, - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_70000_100000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 84109533.88245377, - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_1000000_plus", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 2888498466.226373, - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_100000_150000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 193673268.80828172, - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_12570_15000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 1604721370.1257627, - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_150000_200000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 775799779.626317, - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_15000_20000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 1261643008.2368066, - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_200000_300000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 3120906388.796311, - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_20000_30000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 453748801.2079743, - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_300000_500000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 2833163246.566864, - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_30000_40000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 2158073566.7208533, - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_40000_50000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 184819633.66276026, - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_500000_1000000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 2899565510.1582747, - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_50000_70000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 2645023499.724533, - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_70000_100000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 8166.666666666667, - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_1000000_plus", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 332229.49886104785, - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_100000_150000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 538178.947368421, - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_12570_15000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 108420.91836734694, - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_150000_200000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 1282165.4611211573, - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_15000_20000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 74260.4501607717, - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_200000_300000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 3267990.1960784313, - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_20000_30000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 33536.977491961414, - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_300000_500000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 2211689.814814815, - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_30000_40000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 1212500.0, - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_40000_50000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 16981.48148148148, - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_500000_1000000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 1194036.7775831874, - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_50000_70000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 591541.1558669002, - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_70000_100000", - "period": 2025, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, { "kind": "ledger_only", "ledger_value": 1489138606.9960644, 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 c4f59eeea..ca5181790 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": 971, + "compiled_count": 919, "counts_by_kind": { "calibration_drift": 120, "fixture_only": 17, - "ledger_only": 839 + "ledger_only": 787 }, - "difference_count": 976, + "difference_count": 924, "differences": [ { "fixture_value": 82000.0, @@ -910,370 +910,6 @@ "period": 2023, "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." }, - { - "kind": "ledger_only", - "ledger_value": 9000000.0, - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_1000000_plus", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 1580000000.0, - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_100000_150000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 151000000.0, - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_12570_15000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 710000000.0, - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_150000_200000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 677000000.0, - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_15000_20000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 378000000.0, - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_200000_300000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 2680000000.0, - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_20000_30000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 136000000.0, - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_300000_500000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 3580000000.0, - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_30000_40000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 3620000000.0, - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_40000_50000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 28000000.0, - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_500000_1000000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 4830000000.0, - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_50000_70000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 2410000000.0, - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_70000_100000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 1000.0, - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_1000000_plus", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 182000.0, - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_100000_150000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 335000.0, - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_12570_15000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 60000.0, - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_150000_200000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 1010000.0, - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_15000_20000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 32000.0, - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_200000_300000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 2430000.0, - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_20000_30000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 12000.0, - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_300000_500000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 1890000.0, - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_30000_40000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 1270000.0, - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_40000_50000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 4000.0, - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_500000_1000000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 1200000.0, - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_50000_70000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 428000.0, - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_70000_100000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 76000000.0, - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_1000000_plus", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 2610000000.0, - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_100000_150000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 175000000.0, - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_12570_15000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 1450000000.0, - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_150000_200000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 701000000.0, - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_15000_20000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 1140000000.0, - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_200000_300000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 2820000000.0, - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_20000_30000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 410000000.0, - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_300000_500000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 2560000000.0, - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_30000_40000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 1950000000.0, - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_40000_50000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 167000000.0, - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_500000_1000000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 2620000000.0, - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_50000_70000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 2390000000.0, - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_70000_100000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 7000.0, - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_1000000_plus", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 267000.0, - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_100000_150000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 516000.0, - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_12570_15000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 93000.0, - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_150000_200000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 1310000.0, - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_15000_20000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 62000.0, - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_200000_300000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 3260000.0, - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_20000_30000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 28000.0, - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_300000_500000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 1970000.0, - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_30000_40000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 1080000.0, - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_40000_50000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 14000.0, - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_500000_1000000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 981000.0, - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_50000_70000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, - { - "kind": "ledger_only", - "ledger_value": 486000.0, - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_70000_100000", - "period": 2023, - "reason": "Ledger-compiled row has no fixture counterpart at this comparison period." - }, { "kind": "ledger_only", "ledger_value": 1260000000.0, 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 6280a24cd..a2d03b607 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/target_reference_membership.json +++ b/packages/microcosm-build/src/microcosm/build/uk/target_reference_membership.json @@ -1,11 +1,11 @@ { "source_fact_feed": "chronicle-uk-825406f9-consumer-facts", "target_period": 2025, - "candidate_count": 1306, - "contract_target_count": 345, - "active_reference_count": 1283, + "candidate_count": 1253, + "contract_target_count": 340, + "active_reference_count": 1230, "status_counts": { - "active": 1283, + "active": 1230, "no_fact_at_or_before_period": 7, "signed_excluded": 16 }, @@ -2256,22 +2256,6 @@ "geography_level": "country", "geography_id": "K02000001" }, - "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band": { - "geography_level": "country", - "geography_id": "K02000001" - }, - "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band": { - "geography_level": "country", - "geography_id": "K02000001" - }, - "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band": { - "geography_level": "country", - "geography_id": "K02000001" - }, - "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band": { - "geography_level": "country", - "geography_id": "K02000001" - }, "hmrc.spi_region.taxpayers_by_region_12570_15000": { "geography_fanout": [ { @@ -4068,10 +4052,6 @@ "geography_level": "country", "geography_id": "K03000001" }, - "dwp.workplace_pension.employee_contributions": { - "geography_level": "country", - "geography_id": "K03000001" - }, "dwp.attendance_allowance.recipients_england": { "geography_level": "country", "geography_id": "E92000001" @@ -8176,3424 +8156,3008 @@ "value_before_uprating": "1070000.0" }, { - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_100000_150000", + "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@E12000001", "from": "2023", "to": "2025", - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "1580000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.04298245614035", + "value_before_uprating": "117000.0" }, { - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_1000000_plus", + "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@E12000002", "from": "2023", "to": "2025", - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "9000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.04298245614035", + "value_before_uprating": "319000.0" }, { - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_12570_15000", + "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@E12000003", "from": "2023", "to": "2025", - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "151000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.04298245614035", + "value_before_uprating": "235000.0" }, { - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_15000_20000", + "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@E12000004", "from": "2023", "to": "2025", - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "677000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.04298245614035", + "value_before_uprating": "220000.0" }, { - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_150000_200000", + "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@E12000005", "from": "2023", "to": "2025", - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "710000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.04298245614035", + "value_before_uprating": "248000.0" }, { - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_20000_30000", + "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@E12000006", "from": "2023", "to": "2025", - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "2680000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.04298245614035", + "value_before_uprating": "262000.0" }, { - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_200000_300000", + "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@E12000007", "from": "2023", "to": "2025", - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "378000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.04298245614035", + "value_before_uprating": "326000.0" }, { - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_30000_40000", + "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@E12000008", "from": "2023", "to": "2025", - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "3580000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.04298245614035", + "value_before_uprating": "349000.0" }, { - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_300000_500000", + "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@E12000009", "from": "2023", "to": "2025", - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "136000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.04298245614035", + "value_before_uprating": "244000.0" }, { - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_40000_50000", + "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@W92000004", "from": "2023", "to": "2025", - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "3620000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.04298245614035", + "value_before_uprating": "141000.0" }, { - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_50000_70000", + "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@S92000003", "from": "2023", "to": "2025", - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "4830000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.04298245614035", + "value_before_uprating": "238000.0" }, { - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_500000_1000000", + "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@N92000002", "from": "2023", "to": "2025", - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "28000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.04298245614035", + "value_before_uprating": "75000.0" }, { - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_70000_100000", + "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@E12000001", "from": "2023", "to": "2025", - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "2410000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "0.97875226039783", + "value_before_uprating": "232000.0" }, { - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_100000_150000", + "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@E12000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.24430523917995", - "value_before_uprating": "182000.0" + "factor": "0.97875226039783", + "value_before_uprating": "637000.0" }, { - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_1000000_plus", + "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@E12000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.16666666666667", - "value_before_uprating": "1000.0" + "factor": "0.97875226039783", + "value_before_uprating": "489000.0" }, { - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_12570_15000", + "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@E12000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.04298245614035", - "value_before_uprating": "335000.0" + "factor": "0.97875226039783", + "value_before_uprating": "442000.0" }, { - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_15000_20000", + "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@E12000005", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", "factor": "0.97875226039783", - "value_before_uprating": "1010000.0" + "value_before_uprating": "501000.0" }, { - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_150000_200000", + "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@E12000006", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.16581632653061", - "value_before_uprating": "60000.0" + "factor": "0.97875226039783", + "value_before_uprating": "521000.0" }, { - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_20000_30000", + "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@E12000007", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.00245098039216", - "value_before_uprating": "2430000.0" + "factor": "0.97875226039783", + "value_before_uprating": "559000.0" }, { - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_200000_300000", + "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@E12000008", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.19774919614148", - "value_before_uprating": "32000.0" + "factor": "0.97875226039783", + "value_before_uprating": "727000.0" }, { - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_30000_40000", + "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@E12000009", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "1890000.0" + "factor": "0.97875226039783", + "value_before_uprating": "497000.0" }, { - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_300000_500000", + "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@W92000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.19774919614148", - "value_before_uprating": "12000.0" + "factor": "0.97875226039783", + "value_before_uprating": "258000.0" }, { - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_40000_50000", + "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@S92000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "1270000.0" + "factor": "0.97875226039783", + "value_before_uprating": "450000.0" }, { - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_50000_70000", + "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@N92000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "1200000.0" + "factor": "0.97875226039783", + "value_before_uprating": "150000.0" }, { - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_500000_1000000", + "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@E12000001", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21296296296296", - "value_before_uprating": "4000.0" + "factor": "1.00245098039216", + "value_before_uprating": "419000.0" }, { - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_70000_100000", + "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@E12000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "428000.0" + "factor": "1.00245098039216", + "value_before_uprating": "1180000.0" }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_100000_150000", + "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@E12000003", "from": "2023", "to": "2025", - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "2610000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.00245098039216", + "value_before_uprating": "883000.0" }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_1000000_plus", + "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@E12000004", "from": "2023", "to": "2025", - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "76000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.00245098039216", + "value_before_uprating": "797000.0" }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_12570_15000", + "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@E12000005", "from": "2023", "to": "2025", - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "175000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.00245098039216", + "value_before_uprating": "933000.0" }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_15000_20000", + "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@E12000006", "from": "2023", "to": "2025", - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "701000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.00245098039216", + "value_before_uprating": "950000.0" }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_150000_200000", + "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@E12000007", "from": "2023", "to": "2025", - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "1450000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.00245098039216", + "value_before_uprating": "1030000.0" }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_20000_30000", + "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@E12000008", "from": "2023", "to": "2025", - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "2820000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.00245098039216", + "value_before_uprating": "1350000.0" }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_200000_300000", + "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@E12000009", "from": "2023", "to": "2025", - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "1140000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.00245098039216", + "value_before_uprating": "949000.0" }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_30000_40000", + "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@W92000004", "from": "2023", "to": "2025", - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "2560000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.00245098039216", + "value_before_uprating": "507000.0" }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_300000_500000", + "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@S92000003", "from": "2023", "to": "2025", - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "410000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.00245098039216", + "value_before_uprating": "841000.0" }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_40000_50000", + "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@N92000002", "from": "2023", "to": "2025", - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "1950000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.00245098039216", + "value_before_uprating": "285000.0" }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_50000_70000", + "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@E12000001", "from": "2023", "to": "2025", - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "2620000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.12268518518519", + "value_before_uprating": "245000.0" }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_500000_1000000", + "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@E12000002", "from": "2023", "to": "2025", - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "167000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.12268518518519", + "value_before_uprating": "715000.0" }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_70000_100000", + "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@E12000003", "from": "2023", "to": "2025", - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "2390000000.0" + "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", + "factor": "1.12268518518519", + "value_before_uprating": "535000.0" }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_100000_150000", + "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@E12000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.24430523917995", - "value_before_uprating": "267000.0" + "factor": "1.12268518518519", + "value_before_uprating": "493000.0" }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_1000000_plus", + "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@E12000005", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.16666666666667", - "value_before_uprating": "7000.0" + "factor": "1.12268518518519", + "value_before_uprating": "573000.0" }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_12570_15000", + "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@E12000006", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.04298245614035", - "value_before_uprating": "516000.0" + "factor": "1.12268518518519", + "value_before_uprating": "644000.0" }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_15000_20000", + "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@E12000007", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "0.97875226039783", - "value_before_uprating": "1310000.0" + "factor": "1.12268518518519", + "value_before_uprating": "847000.0" }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_150000_200000", + "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@E12000008", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.16581632653061", - "value_before_uprating": "93000.0" + "factor": "1.12268518518519", + "value_before_uprating": "950000.0" }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_20000_30000", + "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@E12000009", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.00245098039216", - "value_before_uprating": "3260000.0" + "factor": "1.12268518518519", + "value_before_uprating": "607000.0" }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_200000_300000", + "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@W92000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.19774919614148", - "value_before_uprating": "62000.0" + "factor": "1.12268518518519", + "value_before_uprating": "306000.0" }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_30000_40000", + "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@S92000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", "factor": "1.12268518518519", - "value_before_uprating": "1970000.0" + "value_before_uprating": "573000.0" }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_300000_500000", + "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@N92000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.19774919614148", - "value_before_uprating": "28000.0" + "factor": "1.12268518518519", + "value_before_uprating": "175000.0" }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_40000_50000", + "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@E12000001", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", "factor": "1.12268518518519", - "value_before_uprating": "1080000.0" + "value_before_uprating": "140000.0" }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_50000_70000", + "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@E12000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "981000.0" + "factor": "1.12268518518519", + "value_before_uprating": "427000.0" }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_500000_1000000", + "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@E12000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21296296296296", - "value_before_uprating": "14000.0" + "factor": "1.12268518518519", + "value_before_uprating": "308000.0" }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_70000_100000", + "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@E12000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "486000.0" + "factor": "1.12268518518519", + "value_before_uprating": "293000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@E12000001", + "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@E12000005", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.04298245614035", - "value_before_uprating": "117000.0" + "factor": "1.12268518518519", + "value_before_uprating": "332000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@E12000002", + "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@E12000006", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.04298245614035", - "value_before_uprating": "319000.0" + "factor": "1.12268518518519", + "value_before_uprating": "406000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@E12000003", + "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@E12000007", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.04298245614035", - "value_before_uprating": "235000.0" + "factor": "1.12268518518519", + "value_before_uprating": "569000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@E12000004", + "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@E12000008", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.04298245614035", - "value_before_uprating": "220000.0" + "factor": "1.12268518518519", + "value_before_uprating": "635000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@E12000005", + "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@E12000009", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.04298245614035", - "value_before_uprating": "248000.0" + "factor": "1.12268518518519", + "value_before_uprating": "364000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@E12000006", + "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@W92000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.04298245614035", - "value_before_uprating": "262000.0" + "factor": "1.12268518518519", + "value_before_uprating": "175000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@E12000007", + "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@S92000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.04298245614035", - "value_before_uprating": "326000.0" + "factor": "1.12268518518519", + "value_before_uprating": "364000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@E12000008", + "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@N92000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.04298245614035", - "value_before_uprating": "349000.0" + "factor": "1.12268518518519", + "value_before_uprating": "99000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@E12000009", + "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@E12000001", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.04298245614035", - "value_before_uprating": "244000.0" + "factor": "1.21716287215412", + "value_before_uprating": "119000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@W92000004", + "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@E12000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.04298245614035", - "value_before_uprating": "141000.0" + "factor": "1.21716287215412", + "value_before_uprating": "373000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@S92000003", + "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@E12000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.04298245614035", - "value_before_uprating": "238000.0" + "factor": "1.21716287215412", + "value_before_uprating": "254000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@N92000002", + "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@E12000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.04298245614035", - "value_before_uprating": "75000.0" + "factor": "1.21716287215412", + "value_before_uprating": "252000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@E12000001", + "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@E12000005", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "0.97875226039783", - "value_before_uprating": "232000.0" + "factor": "1.21716287215412", + "value_before_uprating": "303000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@E12000002", + "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@E12000006", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "0.97875226039783", - "value_before_uprating": "637000.0" + "factor": "1.21716287215412", + "value_before_uprating": "415000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@E12000003", + "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@E12000007", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "0.97875226039783", - "value_before_uprating": "489000.0" + "factor": "1.21716287215412", + "value_before_uprating": "660000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@E12000004", + "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@E12000008", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "0.97875226039783", - "value_before_uprating": "442000.0" + "factor": "1.21716287215412", + "value_before_uprating": "657000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@E12000005", + "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@E12000009", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "0.97875226039783", - "value_before_uprating": "501000.0" + "factor": "1.21716287215412", + "value_before_uprating": "324000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@E12000006", + "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@W92000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "0.97875226039783", - "value_before_uprating": "521000.0" + "factor": "1.21716287215412", + "value_before_uprating": "150000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@E12000007", + "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@S92000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "0.97875226039783", - "value_before_uprating": "559000.0" + "factor": "1.21716287215412", + "value_before_uprating": "298000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@E12000008", + "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@N92000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "0.97875226039783", - "value_before_uprating": "727000.0" + "factor": "1.21716287215412", + "value_before_uprating": "71000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@E12000009", + "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@E12000001", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "0.97875226039783", - "value_before_uprating": "497000.0" + "factor": "1.21716287215412", + "value_before_uprating": "43000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@W92000004", + "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@E12000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "0.97875226039783", - "value_before_uprating": "258000.0" + "factor": "1.21716287215412", + "value_before_uprating": "156000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@S92000003", + "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@E12000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "0.97875226039783", - "value_before_uprating": "450000.0" + "factor": "1.21716287215412", + "value_before_uprating": "99000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_15000_20000@N92000002", + "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@E12000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "0.97875226039783", - "value_before_uprating": "150000.0" + "factor": "1.21716287215412", + "value_before_uprating": "102000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@E12000001", + "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@E12000005", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.00245098039216", - "value_before_uprating": "419000.0" + "factor": "1.21716287215412", + "value_before_uprating": "124000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@E12000002", + "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@E12000006", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.00245098039216", - "value_before_uprating": "1180000.0" + "factor": "1.21716287215412", + "value_before_uprating": "206000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@E12000003", + "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@E12000007", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.00245098039216", - "value_before_uprating": "883000.0" + "factor": "1.21716287215412", + "value_before_uprating": "386000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@E12000004", + "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@E12000008", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.00245098039216", - "value_before_uprating": "797000.0" + "factor": "1.21716287215412", + "value_before_uprating": "351000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@E12000005", + "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@E12000009", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.00245098039216", - "value_before_uprating": "933000.0" + "factor": "1.21716287215412", + "value_before_uprating": "137000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@E12000006", + "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@W92000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.00245098039216", - "value_before_uprating": "950000.0" + "factor": "1.21716287215412", + "value_before_uprating": "48000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@E12000007", + "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@S92000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.00245098039216", - "value_before_uprating": "1030000.0" + "factor": "1.21716287215412", + "value_before_uprating": "132000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@E12000008", + "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@N92000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.00245098039216", - "value_before_uprating": "1350000.0" + "factor": "1.21716287215412", + "value_before_uprating": "27000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@E12000009", + "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@E12000001", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.00245098039216", - "value_before_uprating": "949000.0" + "factor": "1.24430523917995", + "value_before_uprating": "17000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@W92000004", + "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@E12000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.00245098039216", - "value_before_uprating": "507000.0" + "factor": "1.24430523917995", + "value_before_uprating": "62000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@S92000003", + "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@E12000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.00245098039216", - "value_before_uprating": "841000.0" + "factor": "1.24430523917995", + "value_before_uprating": "42000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_20000_30000@N92000002", + "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@E12000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.00245098039216", - "value_before_uprating": "285000.0" + "factor": "1.24430523917995", + "value_before_uprating": "44000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@E12000001", + "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@E12000005", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "245000.0" + "factor": "1.24430523917995", + "value_before_uprating": "46000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@E12000002", + "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@E12000006", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "715000.0" + "factor": "1.24430523917995", + "value_before_uprating": "101000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@E12000003", + "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@E12000007", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "535000.0" + "factor": "1.24430523917995", + "value_before_uprating": "226000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@E12000004", + "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@E12000008", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "493000.0" + "factor": "1.24430523917995", + "value_before_uprating": "186000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@E12000005", + "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@E12000009", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "573000.0" + "factor": "1.24430523917995", + "value_before_uprating": "62000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@E12000006", + "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@W92000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "644000.0" + "factor": "1.24430523917995", + "value_before_uprating": "20000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@E12000007", + "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@S92000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "847000.0" + "factor": "1.24430523917995", + "value_before_uprating": "56000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@E12000008", + "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@N92000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "950000.0" + "factor": "1.24430523917995", + "value_before_uprating": "12000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@E12000009", + "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@E12000001", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "607000.0" + "factor": "1.16581632653061", + "value_before_uprating": "5000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@W92000004", + "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@E12000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "306000.0" + "factor": "1.16581632653061", + "value_before_uprating": "19000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@S92000003", + "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@E12000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "573000.0" + "factor": "1.16581632653061", + "value_before_uprating": "12000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_30000_40000@N92000002", + "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@E12000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "175000.0" + "factor": "1.16581632653061", + "value_before_uprating": "12000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@E12000001", + "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@E12000005", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "140000.0" + "factor": "1.16581632653061", + "value_before_uprating": "14000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@E12000002", + "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@E12000006", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "427000.0" + "factor": "1.16581632653061", + "value_before_uprating": "35000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@E12000003", + "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@E12000007", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "308000.0" + "factor": "1.16581632653061", + "value_before_uprating": "89000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@E12000004", + "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@E12000008", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "293000.0" + "factor": "1.16581632653061", + "value_before_uprating": "64000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@E12000005", + "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@E12000009", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "332000.0" + "factor": "1.16581632653061", + "value_before_uprating": "19000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@E12000006", + "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@W92000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "406000.0" + "factor": "1.16581632653061", + "value_before_uprating": "6000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@E12000007", + "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@S92000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "569000.0" + "factor": "1.16581632653061", + "value_before_uprating": "15000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@E12000008", + "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@N92000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "635000.0" + "factor": "1.16581632653061", + "value_before_uprating": "3000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@E12000009", + "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@E12000001", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "364000.0" + "factor": "1.19770408163265", + "value_before_uprating": "4000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@W92000004", + "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@E12000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "175000.0" + "factor": "1.19770408163265", + "value_before_uprating": "19000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@S92000003", + "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@E12000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "364000.0" + "factor": "1.19770408163265", + "value_before_uprating": "13000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_40000_50000@N92000002", + "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@E12000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "99000.0" + "factor": "1.19770408163265", + "value_before_uprating": "13000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@E12000001", + "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@E12000005", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "119000.0" + "factor": "1.19770408163265", + "value_before_uprating": "16000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@E12000002", + "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@E12000006", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "373000.0" + "factor": "1.19770408163265", + "value_before_uprating": "45000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@E12000003", + "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@E12000007", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "254000.0" + "factor": "1.19770408163265", + "value_before_uprating": "150000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@E12000004", + "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@E12000008", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "252000.0" + "factor": "1.19770408163265", + "value_before_uprating": "85000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@E12000005", + "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@E12000009", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "303000.0" + "factor": "1.19770408163265", + "value_before_uprating": "20000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@E12000006", + "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@W92000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "415000.0" + "factor": "1.19770408163265", + "value_before_uprating": "5000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@E12000007", + "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@S92000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "660000.0" + "factor": "1.19770408163265", + "value_before_uprating": "16000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@E12000008", + "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@N92000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "657000.0" + "factor": "1.19770408163265", + "value_before_uprating": "4000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@E12000009", + "name": "hmrc.spi_region.total_income_by_region_12570_15000@E12000001", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "324000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.05", + "value_before_uprating": "1600000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@W92000004", + "name": "hmrc.spi_region.total_income_by_region_12570_15000@E12000002", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "150000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.05", + "value_before_uprating": "4390000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@S92000003", + "name": "hmrc.spi_region.total_income_by_region_12570_15000@E12000003", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "298000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.05", + "value_before_uprating": "3230000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_50000_70000@N92000002", + "name": "hmrc.spi_region.total_income_by_region_12570_15000@E12000004", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "71000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.05", + "value_before_uprating": "3020000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@E12000001", + "name": "hmrc.spi_region.total_income_by_region_12570_15000@E12000005", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "43000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.05", + "value_before_uprating": "3410000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@E12000002", + "name": "hmrc.spi_region.total_income_by_region_12570_15000@E12000006", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "156000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.05", + "value_before_uprating": "3610000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@E12000003", + "name": "hmrc.spi_region.total_income_by_region_12570_15000@E12000007", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "99000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.05", + "value_before_uprating": "4430000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@E12000004", + "name": "hmrc.spi_region.total_income_by_region_12570_15000@E12000008", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "102000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.05", + "value_before_uprating": "4810000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@E12000005", + "name": "hmrc.spi_region.total_income_by_region_12570_15000@E12000009", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "124000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.05", + "value_before_uprating": "3360000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@E12000006", + "name": "hmrc.spi_region.total_income_by_region_12570_15000@W92000004", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "206000.0" - }, - { - "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@E12000007", + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.05", + "value_before_uprating": "1950000000.0" + }, + { + "name": "hmrc.spi_region.total_income_by_region_12570_15000@S92000003", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "386000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.05", + "value_before_uprating": "3290000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@E12000008", + "name": "hmrc.spi_region.total_income_by_region_12570_15000@N92000002", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "351000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.05", + "value_before_uprating": "1030000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@E12000009", + "name": "hmrc.spi_region.total_income_by_region_15000_20000@E12000001", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "137000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "0.977178423236514", + "value_before_uprating": "4050000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@W92000004", + "name": "hmrc.spi_region.total_income_by_region_15000_20000@E12000002", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "48000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "0.977178423236514", + "value_before_uprating": "11100000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@S92000003", + "name": "hmrc.spi_region.total_income_by_region_15000_20000@E12000003", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "132000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "0.977178423236514", + "value_before_uprating": "8510000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_70000_100000@N92000002", + "name": "hmrc.spi_region.total_income_by_region_15000_20000@E12000004", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "27000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "0.977178423236514", + "value_before_uprating": "7710000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@E12000001", + "name": "hmrc.spi_region.total_income_by_region_15000_20000@E12000005", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.24430523917995", - "value_before_uprating": "17000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "0.977178423236514", + "value_before_uprating": "8760000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@E12000002", + "name": "hmrc.spi_region.total_income_by_region_15000_20000@E12000006", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.24430523917995", - "value_before_uprating": "62000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "0.977178423236514", + "value_before_uprating": "9080000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@E12000003", + "name": "hmrc.spi_region.total_income_by_region_15000_20000@E12000007", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.24430523917995", - "value_before_uprating": "42000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "0.977178423236514", + "value_before_uprating": "9730000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@E12000004", + "name": "hmrc.spi_region.total_income_by_region_15000_20000@E12000008", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.24430523917995", - "value_before_uprating": "44000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "0.977178423236514", + "value_before_uprating": "12700000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@E12000005", + "name": "hmrc.spi_region.total_income_by_region_15000_20000@E12000009", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.24430523917995", - "value_before_uprating": "46000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "0.977178423236514", + "value_before_uprating": "8680000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@E12000006", + "name": "hmrc.spi_region.total_income_by_region_15000_20000@W92000004", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.24430523917995", - "value_before_uprating": "101000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "0.977178423236514", + "value_before_uprating": "4490000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@E12000007", + "name": "hmrc.spi_region.total_income_by_region_15000_20000@S92000003", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.24430523917995", - "value_before_uprating": "226000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "0.977178423236514", + "value_before_uprating": "7860000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@E12000008", + "name": "hmrc.spi_region.total_income_by_region_15000_20000@N92000002", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.24430523917995", - "value_before_uprating": "186000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "0.977178423236514", + "value_before_uprating": "2620000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@E12000009", + "name": "hmrc.spi_region.total_income_by_region_20000_30000@E12000001", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.24430523917995", - "value_before_uprating": "62000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.00296442687747", + "value_before_uprating": "10400000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@W92000004", + "name": "hmrc.spi_region.total_income_by_region_20000_30000@E12000002", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.24430523917995", - "value_before_uprating": "20000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.00296442687747", + "value_before_uprating": "29100000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@S92000003", + "name": "hmrc.spi_region.total_income_by_region_20000_30000@E12000003", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.24430523917995", - "value_before_uprating": "56000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.00296442687747", + "value_before_uprating": "21800000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_100000_150000@N92000002", + "name": "hmrc.spi_region.total_income_by_region_20000_30000@E12000004", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.24430523917995", - "value_before_uprating": "12000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.00296442687747", + "value_before_uprating": "19800000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@E12000001", + "name": "hmrc.spi_region.total_income_by_region_20000_30000@E12000005", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.16581632653061", - "value_before_uprating": "5000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.00296442687747", + "value_before_uprating": "23100000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@E12000002", + "name": "hmrc.spi_region.total_income_by_region_20000_30000@E12000006", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.16581632653061", - "value_before_uprating": "19000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.00296442687747", + "value_before_uprating": "23600000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@E12000003", + "name": "hmrc.spi_region.total_income_by_region_20000_30000@E12000007", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.16581632653061", - "value_before_uprating": "12000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.00296442687747", + "value_before_uprating": "25700000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@E12000004", + "name": "hmrc.spi_region.total_income_by_region_20000_30000@E12000008", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.16581632653061", - "value_before_uprating": "12000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.00296442687747", + "value_before_uprating": "33600000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@E12000005", + "name": "hmrc.spi_region.total_income_by_region_20000_30000@E12000009", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.16581632653061", - "value_before_uprating": "14000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.00296442687747", + "value_before_uprating": "23500000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@E12000006", + "name": "hmrc.spi_region.total_income_by_region_20000_30000@W92000004", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.16581632653061", - "value_before_uprating": "35000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.00296442687747", + "value_before_uprating": "12600000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@E12000007", + "name": "hmrc.spi_region.total_income_by_region_20000_30000@S92000003", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.16581632653061", - "value_before_uprating": "89000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.00296442687747", + "value_before_uprating": "20900000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@E12000008", + "name": "hmrc.spi_region.total_income_by_region_20000_30000@N92000002", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.16581632653061", - "value_before_uprating": "64000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.00296442687747", + "value_before_uprating": "7070000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@E12000009", + "name": "hmrc.spi_region.total_income_by_region_30000_40000@E12000001", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.16581632653061", - "value_before_uprating": "19000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.11899038461538", + "value_before_uprating": "8480000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@W92000004", + "name": "hmrc.spi_region.total_income_by_region_30000_40000@E12000002", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.16581632653061", - "value_before_uprating": "6000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.11899038461538", + "value_before_uprating": "24600000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@S92000003", + "name": "hmrc.spi_region.total_income_by_region_30000_40000@E12000003", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.16581632653061", - "value_before_uprating": "15000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.11899038461538", + "value_before_uprating": "18500000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_150000_200000@N92000002", + "name": "hmrc.spi_region.total_income_by_region_30000_40000@E12000004", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.16581632653061", - "value_before_uprating": "3000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.11899038461538", + "value_before_uprating": "17000000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@E12000001", + "name": "hmrc.spi_region.total_income_by_region_30000_40000@E12000005", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.19770408163265", - "value_before_uprating": "4000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.11899038461538", + "value_before_uprating": "19800000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@E12000002", + "name": "hmrc.spi_region.total_income_by_region_30000_40000@E12000006", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.19770408163265", - "value_before_uprating": "19000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.11899038461538", + "value_before_uprating": "22300000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@E12000003", + "name": "hmrc.spi_region.total_income_by_region_30000_40000@E12000007", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.19770408163265", - "value_before_uprating": "13000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.11899038461538", + "value_before_uprating": "29400000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@E12000004", + "name": "hmrc.spi_region.total_income_by_region_30000_40000@E12000008", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.19770408163265", - "value_before_uprating": "13000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.11899038461538", + "value_before_uprating": "32900000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@E12000005", + "name": "hmrc.spi_region.total_income_by_region_30000_40000@E12000009", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.19770408163265", - "value_before_uprating": "16000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.11899038461538", + "value_before_uprating": "20900000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@E12000006", + "name": "hmrc.spi_region.total_income_by_region_30000_40000@W92000004", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.19770408163265", - "value_before_uprating": "45000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.11899038461538", + "value_before_uprating": "10500000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@E12000007", + "name": "hmrc.spi_region.total_income_by_region_30000_40000@S92000003", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.19770408163265", - "value_before_uprating": "150000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.11899038461538", + "value_before_uprating": "19800000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@E12000008", + "name": "hmrc.spi_region.total_income_by_region_30000_40000@N92000002", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.19770408163265", - "value_before_uprating": "85000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.11899038461538", + "value_before_uprating": "6030000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@E12000009", + "name": "hmrc.spi_region.total_income_by_region_40000_50000@E12000001", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.19770408163265", - "value_before_uprating": "20000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.11899038461538", + "value_before_uprating": "6270000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@W92000004", + "name": "hmrc.spi_region.total_income_by_region_40000_50000@E12000002", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.19770408163265", - "value_before_uprating": "5000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.11899038461538", + "value_before_uprating": "19100000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@S92000003", + "name": "hmrc.spi_region.total_income_by_region_40000_50000@E12000003", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.19770408163265", - "value_before_uprating": "16000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.11899038461538", + "value_before_uprating": "13700000000.0" }, { - "name": "hmrc.spi_region.taxpayers_by_region_200000_plus@N92000002", + "name": "hmrc.spi_region.total_income_by_region_40000_50000@E12000004", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.19770408163265", - "value_before_uprating": "4000.0" + "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", + "factor": "1.11899038461538", + "value_before_uprating": "13100000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_12570_15000@E12000001", + "name": "hmrc.spi_region.total_income_by_region_40000_50000@E12000005", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.05", - "value_before_uprating": "1600000000.0" + "factor": "1.11899038461538", + "value_before_uprating": "14900000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_12570_15000@E12000002", + "name": "hmrc.spi_region.total_income_by_region_40000_50000@E12000006", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.05", - "value_before_uprating": "4390000000.0" + "factor": "1.11899038461538", + "value_before_uprating": "18200000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_12570_15000@E12000003", + "name": "hmrc.spi_region.total_income_by_region_40000_50000@E12000007", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.05", - "value_before_uprating": "3230000000.0" + "factor": "1.11899038461538", + "value_before_uprating": "25500000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_12570_15000@E12000004", + "name": "hmrc.spi_region.total_income_by_region_40000_50000@E12000008", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.05", - "value_before_uprating": "3020000000.0" + "factor": "1.11899038461538", + "value_before_uprating": "28400000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_12570_15000@E12000005", + "name": "hmrc.spi_region.total_income_by_region_40000_50000@E12000009", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.05", - "value_before_uprating": "3410000000.0" + "factor": "1.11899038461538", + "value_before_uprating": "16300000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_12570_15000@E12000006", + "name": "hmrc.spi_region.total_income_by_region_40000_50000@W92000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.05", - "value_before_uprating": "3610000000.0" + "factor": "1.11899038461538", + "value_before_uprating": "7820000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_12570_15000@E12000007", + "name": "hmrc.spi_region.total_income_by_region_40000_50000@S92000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.05", - "value_before_uprating": "4430000000.0" + "factor": "1.11899038461538", + "value_before_uprating": "16300000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_12570_15000@E12000008", + "name": "hmrc.spi_region.total_income_by_region_40000_50000@N92000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.05", - "value_before_uprating": "4810000000.0" + "factor": "1.11899038461538", + "value_before_uprating": "4410000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_12570_15000@E12000009", + "name": "hmrc.spi_region.total_income_by_region_50000_70000@E12000001", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.05", - "value_before_uprating": "3360000000.0" + "factor": "1.21466666666667", + "value_before_uprating": "6850000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_12570_15000@W92000004", + "name": "hmrc.spi_region.total_income_by_region_50000_70000@E12000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.05", - "value_before_uprating": "1950000000.0" + "factor": "1.21466666666667", + "value_before_uprating": "21500000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_12570_15000@S92000003", + "name": "hmrc.spi_region.total_income_by_region_50000_70000@E12000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.05", - "value_before_uprating": "3290000000.0" + "factor": "1.21466666666667", + "value_before_uprating": "14600000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_12570_15000@N92000002", + "name": "hmrc.spi_region.total_income_by_region_50000_70000@E12000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.05", - "value_before_uprating": "1030000000.0" + "factor": "1.21466666666667", + "value_before_uprating": "14500000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_15000_20000@E12000001", + "name": "hmrc.spi_region.total_income_by_region_50000_70000@E12000005", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "0.977178423236514", - "value_before_uprating": "4050000000.0" + "factor": "1.21466666666667", + "value_before_uprating": "17400000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_15000_20000@E12000002", + "name": "hmrc.spi_region.total_income_by_region_50000_70000@E12000006", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "0.977178423236514", - "value_before_uprating": "11100000000.0" + "factor": "1.21466666666667", + "value_before_uprating": "24000000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_15000_20000@E12000003", + "name": "hmrc.spi_region.total_income_by_region_50000_70000@E12000007", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "0.977178423236514", - "value_before_uprating": "8510000000.0" + "factor": "1.21466666666667", + "value_before_uprating": "38500000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_15000_20000@E12000004", + "name": "hmrc.spi_region.total_income_by_region_50000_70000@E12000008", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "0.977178423236514", - "value_before_uprating": "7710000000.0" + "factor": "1.21466666666667", + "value_before_uprating": "38100000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_15000_20000@E12000005", + "name": "hmrc.spi_region.total_income_by_region_50000_70000@E12000009", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "0.977178423236514", - "value_before_uprating": "8760000000.0" + "factor": "1.21466666666667", + "value_before_uprating": "18600000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_15000_20000@E12000006", + "name": "hmrc.spi_region.total_income_by_region_50000_70000@W92000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "0.977178423236514", - "value_before_uprating": "9080000000.0" + "factor": "1.21466666666667", + "value_before_uprating": "8630000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_15000_20000@E12000007", + "name": "hmrc.spi_region.total_income_by_region_50000_70000@S92000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "0.977178423236514", - "value_before_uprating": "9730000000.0" + "factor": "1.21466666666667", + "value_before_uprating": "17200000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_15000_20000@E12000008", + "name": "hmrc.spi_region.total_income_by_region_50000_70000@N92000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "0.977178423236514", - "value_before_uprating": "12700000000.0" + "factor": "1.21466666666667", + "value_before_uprating": "4080000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_15000_20000@E12000009", + "name": "hmrc.spi_region.total_income_by_region_70000_100000@E12000001", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "0.977178423236514", - "value_before_uprating": "8680000000.0" + "factor": "1.21466666666667", + "value_before_uprating": "3520000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_15000_20000@W92000004", + "name": "hmrc.spi_region.total_income_by_region_70000_100000@E12000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "0.977178423236514", - "value_before_uprating": "4490000000.0" + "factor": "1.21466666666667", + "value_before_uprating": "12700000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_15000_20000@S92000003", + "name": "hmrc.spi_region.total_income_by_region_70000_100000@E12000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "0.977178423236514", - "value_before_uprating": "7860000000.0" + "factor": "1.21466666666667", + "value_before_uprating": "8140000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_15000_20000@N92000002", + "name": "hmrc.spi_region.total_income_by_region_70000_100000@E12000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "0.977178423236514", - "value_before_uprating": "2620000000.0" + "factor": "1.21466666666667", + "value_before_uprating": "8400000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_20000_30000@E12000001", + "name": "hmrc.spi_region.total_income_by_region_70000_100000@E12000005", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.00296442687747", - "value_before_uprating": "10400000000.0" + "factor": "1.21466666666667", + "value_before_uprating": "10200000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_20000_30000@E12000002", + "name": "hmrc.spi_region.total_income_by_region_70000_100000@E12000006", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.00296442687747", - "value_before_uprating": "29100000000.0" + "factor": "1.21466666666667", + "value_before_uprating": "17000000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_20000_30000@E12000003", + "name": "hmrc.spi_region.total_income_by_region_70000_100000@E12000007", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.00296442687747", - "value_before_uprating": "21800000000.0" + "factor": "1.21466666666667", + "value_before_uprating": "32000000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_20000_30000@E12000004", + "name": "hmrc.spi_region.total_income_by_region_70000_100000@E12000008", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.00296442687747", - "value_before_uprating": "19800000000.0" + "factor": "1.21466666666667", + "value_before_uprating": "29100000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_20000_30000@E12000005", + "name": "hmrc.spi_region.total_income_by_region_70000_100000@E12000009", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.00296442687747", - "value_before_uprating": "23100000000.0" + "factor": "1.21466666666667", + "value_before_uprating": "11300000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_20000_30000@E12000006", + "name": "hmrc.spi_region.total_income_by_region_70000_100000@W92000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.00296442687747", - "value_before_uprating": "23600000000.0" + "factor": "1.21466666666667", + "value_before_uprating": "3950000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_20000_30000@E12000007", + "name": "hmrc.spi_region.total_income_by_region_70000_100000@S92000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.00296442687747", - "value_before_uprating": "25700000000.0" + "factor": "1.21466666666667", + "value_before_uprating": "10800000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_20000_30000@E12000008", + "name": "hmrc.spi_region.total_income_by_region_70000_100000@N92000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.00296442687747", - "value_before_uprating": "33600000000.0" + "factor": "1.21466666666667", + "value_before_uprating": "2230000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_20000_30000@E12000009", + "name": "hmrc.spi_region.total_income_by_region_100000_150000@E12000001", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.00296442687747", - "value_before_uprating": "23500000000.0" + "factor": "1.23571428571429", + "value_before_uprating": "2050000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_20000_30000@W92000004", + "name": "hmrc.spi_region.total_income_by_region_100000_150000@E12000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.00296442687747", - "value_before_uprating": "12600000000.0" + "factor": "1.23571428571429", + "value_before_uprating": "7330000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_20000_30000@S92000003", + "name": "hmrc.spi_region.total_income_by_region_100000_150000@E12000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.00296442687747", - "value_before_uprating": "20900000000.0" + "factor": "1.23571428571429", + "value_before_uprating": "4940000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_20000_30000@N92000002", + "name": "hmrc.spi_region.total_income_by_region_100000_150000@E12000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.00296442687747", - "value_before_uprating": "7070000000.0" + "factor": "1.23571428571429", + "value_before_uprating": "5200000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_30000_40000@E12000001", + "name": "hmrc.spi_region.total_income_by_region_100000_150000@E12000005", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "8480000000.0" + "factor": "1.23571428571429", + "value_before_uprating": "5480000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_30000_40000@E12000002", + "name": "hmrc.spi_region.total_income_by_region_100000_150000@E12000006", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "24600000000.0" + "factor": "1.23571428571429", + "value_before_uprating": "12000000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_30000_40000@E12000003", + "name": "hmrc.spi_region.total_income_by_region_100000_150000@E12000007", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "18500000000.0" + "factor": "1.23571428571429", + "value_before_uprating": "27100000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_30000_40000@E12000004", + "name": "hmrc.spi_region.total_income_by_region_100000_150000@E12000008", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "17000000000.0" + "factor": "1.23571428571429", + "value_before_uprating": "22300000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_30000_40000@E12000005", + "name": "hmrc.spi_region.total_income_by_region_100000_150000@E12000009", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "19800000000.0" + "factor": "1.23571428571429", + "value_before_uprating": "7430000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_30000_40000@E12000006", + "name": "hmrc.spi_region.total_income_by_region_100000_150000@W92000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "22300000000.0" + "factor": "1.23571428571429", + "value_before_uprating": "2400000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_30000_40000@E12000007", + "name": "hmrc.spi_region.total_income_by_region_100000_150000@S92000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "29400000000.0" + "factor": "1.23571428571429", + "value_before_uprating": "6560000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_30000_40000@E12000008", + "name": "hmrc.spi_region.total_income_by_region_100000_150000@N92000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "32900000000.0" + "factor": "1.23571428571429", + "value_before_uprating": "1360000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_30000_40000@E12000009", + "name": "hmrc.spi_region.total_income_by_region_150000_200000@E12000001", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "20900000000.0" + "factor": "1.15891089108911", + "value_before_uprating": "818000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_30000_40000@W92000004", + "name": "hmrc.spi_region.total_income_by_region_150000_200000@E12000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "10500000000.0" + "factor": "1.15891089108911", + "value_before_uprating": "3230000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_30000_40000@S92000003", + "name": "hmrc.spi_region.total_income_by_region_150000_200000@E12000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "19800000000.0" + "factor": "1.15891089108911", + "value_before_uprating": "2100000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_30000_40000@N92000002", + "name": "hmrc.spi_region.total_income_by_region_150000_200000@E12000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "6030000000.0" + "factor": "1.15891089108911", + "value_before_uprating": "2110000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_40000_50000@E12000001", + "name": "hmrc.spi_region.total_income_by_region_150000_200000@E12000005", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "6270000000.0" + "factor": "1.15891089108911", + "value_before_uprating": "2470000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_40000_50000@E12000002", + "name": "hmrc.spi_region.total_income_by_region_150000_200000@E12000006", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "19100000000.0" + "factor": "1.15891089108911", + "value_before_uprating": "5910000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_40000_50000@E12000003", + "name": "hmrc.spi_region.total_income_by_region_150000_200000@E12000007", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "13700000000.0" + "factor": "1.15891089108911", + "value_before_uprating": "15300000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_40000_50000@E12000004", + "name": "hmrc.spi_region.total_income_by_region_150000_200000@E12000008", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "13100000000.0" + "factor": "1.15891089108911", + "value_before_uprating": "11000000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_40000_50000@E12000005", + "name": "hmrc.spi_region.total_income_by_region_150000_200000@E12000009", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "14900000000.0" + "factor": "1.15891089108911", + "value_before_uprating": "3200000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_40000_50000@E12000006", + "name": "hmrc.spi_region.total_income_by_region_150000_200000@W92000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "18200000000.0" + "factor": "1.15891089108911", + "value_before_uprating": "945000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_40000_50000@E12000007", + "name": "hmrc.spi_region.total_income_by_region_150000_200000@S92000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "25500000000.0" + "factor": "1.15891089108911", + "value_before_uprating": "2650000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_40000_50000@E12000008", + "name": "hmrc.spi_region.total_income_by_region_150000_200000@N92000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "28400000000.0" + "factor": "1.15891089108911", + "value_before_uprating": "557000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_40000_50000@E12000009", + "name": "hmrc.spi_region.total_income_by_region_200000_plus@E12000001", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "16300000000.0" + "factor": "1.20880245649949", + "value_before_uprating": "1570000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_40000_50000@W92000004", + "name": "hmrc.spi_region.total_income_by_region_200000_plus@E12000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "7820000000.0" + "factor": "1.20880245649949", + "value_before_uprating": "8750000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_40000_50000@S92000003", + "name": "hmrc.spi_region.total_income_by_region_200000_plus@E12000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "16300000000.0" + "factor": "1.20880245649949", + "value_before_uprating": "5150000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_40000_50000@N92000002", + "name": "hmrc.spi_region.total_income_by_region_200000_plus@E12000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.11899038461538", - "value_before_uprating": "4410000000.0" + "factor": "1.20880245649949", + "value_before_uprating": "5420000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_50000_70000@E12000001", + "name": "hmrc.spi_region.total_income_by_region_200000_plus@E12000005", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "6850000000.0" + "factor": "1.20880245649949", + "value_before_uprating": "6530000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_50000_70000@E12000002", + "name": "hmrc.spi_region.total_income_by_region_200000_plus@E12000006", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "21500000000.0" + "factor": "1.20880245649949", + "value_before_uprating": "19400000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_50000_70000@E12000003", + "name": "hmrc.spi_region.total_income_by_region_200000_plus@E12000007", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "14600000000.0" + "factor": "1.20880245649949", + "value_before_uprating": "88100000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_50000_70000@E12000004", + "name": "hmrc.spi_region.total_income_by_region_200000_plus@E12000008", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "14500000000.0" + "factor": "1.20880245649949", + "value_before_uprating": "39800000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_50000_70000@E12000005", + "name": "hmrc.spi_region.total_income_by_region_200000_plus@E12000009", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "17400000000.0" + "factor": "1.20880245649949", + "value_before_uprating": "9030000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_50000_70000@E12000006", + "name": "hmrc.spi_region.total_income_by_region_200000_plus@W92000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "24000000000.0" + "factor": "1.20880245649949", + "value_before_uprating": "1670000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_50000_70000@E12000007", + "name": "hmrc.spi_region.total_income_by_region_200000_plus@S92000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "38500000000.0" + "factor": "1.20880245649949", + "value_before_uprating": "7120000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_50000_70000@E12000008", + "name": "hmrc.spi_region.total_income_by_region_200000_plus@N92000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "38100000000.0" + "factor": "1.20880245649949", + "value_before_uprating": "1390000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_50000_70000@E12000009", + "name": "hmrc.spi_region.income_tax_by_region_12570_15000@E12000001", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "18600000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.10296610169492", + "value_before_uprating": "24000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_50000_70000@W92000004", + "name": "hmrc.spi_region.income_tax_by_region_12570_15000@E12000002", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "8630000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.10296610169492", + "value_before_uprating": "63000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_50000_70000@S92000003", + "name": "hmrc.spi_region.income_tax_by_region_12570_15000@E12000003", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "17200000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.10296610169492", + "value_before_uprating": "46000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_50000_70000@N92000002", + "name": "hmrc.spi_region.income_tax_by_region_12570_15000@E12000004", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "4080000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.10296610169492", + "value_before_uprating": "43000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_70000_100000@E12000001", + "name": "hmrc.spi_region.income_tax_by_region_12570_15000@E12000005", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "3520000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.10296610169492", + "value_before_uprating": "50000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_70000_100000@E12000002", + "name": "hmrc.spi_region.income_tax_by_region_12570_15000@E12000006", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "12700000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.10296610169492", + "value_before_uprating": "52000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_70000_100000@E12000003", + "name": "hmrc.spi_region.income_tax_by_region_12570_15000@E12000007", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "8140000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.10296610169492", + "value_before_uprating": "70000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_70000_100000@E12000004", + "name": "hmrc.spi_region.income_tax_by_region_12570_15000@E12000008", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "8400000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.10296610169492", + "value_before_uprating": "71000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_70000_100000@E12000005", + "name": "hmrc.spi_region.income_tax_by_region_12570_15000@E12000009", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "10200000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.10296610169492", + "value_before_uprating": "49000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_70000_100000@E12000006", + "name": "hmrc.spi_region.income_tax_by_region_12570_15000@W92000004", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "17000000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.10296610169492", + "value_before_uprating": "28000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_70000_100000@E12000007", + "name": "hmrc.spi_region.income_tax_by_region_12570_15000@S92000003", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "32000000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.10296610169492", + "value_before_uprating": "47000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_70000_100000@E12000008", + "name": "hmrc.spi_region.income_tax_by_region_12570_15000@N92000002", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "29100000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.10296610169492", + "value_before_uprating": "15000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_70000_100000@E12000009", + "name": "hmrc.spi_region.income_tax_by_region_15000_20000@E12000001", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "11300000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "0.976831896551724", + "value_before_uprating": "199000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_70000_100000@W92000004", + "name": "hmrc.spi_region.income_tax_by_region_15000_20000@E12000002", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "3950000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "0.976831896551724", + "value_before_uprating": "539000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_70000_100000@S92000003", + "name": "hmrc.spi_region.income_tax_by_region_15000_20000@E12000003", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "10800000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "0.976831896551724", + "value_before_uprating": "407000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_70000_100000@N92000002", + "name": "hmrc.spi_region.income_tax_by_region_15000_20000@E12000004", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.21466666666667", - "value_before_uprating": "2230000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "0.976831896551724", + "value_before_uprating": "372000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_100000_150000@E12000001", + "name": "hmrc.spi_region.income_tax_by_region_15000_20000@E12000005", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.23571428571429", - "value_before_uprating": "2050000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "0.976831896551724", + "value_before_uprating": "423000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_100000_150000@E12000002", + "name": "hmrc.spi_region.income_tax_by_region_15000_20000@E12000006", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.23571428571429", - "value_before_uprating": "7330000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "0.976831896551724", + "value_before_uprating": "431000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_100000_150000@E12000003", + "name": "hmrc.spi_region.income_tax_by_region_15000_20000@E12000007", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.23571428571429", - "value_before_uprating": "4940000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "0.976831896551724", + "value_before_uprating": "474000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_100000_150000@E12000004", + "name": "hmrc.spi_region.income_tax_by_region_15000_20000@E12000008", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.23571428571429", - "value_before_uprating": "5200000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "0.976831896551724", + "value_before_uprating": "601000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_100000_150000@E12000005", + "name": "hmrc.spi_region.income_tax_by_region_15000_20000@E12000009", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.23571428571429", - "value_before_uprating": "5480000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "0.976831896551724", + "value_before_uprating": "412000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_100000_150000@E12000006", + "name": "hmrc.spi_region.income_tax_by_region_15000_20000@W92000004", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.23571428571429", - "value_before_uprating": "12000000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "0.976831896551724", + "value_before_uprating": "214000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_100000_150000@E12000007", + "name": "hmrc.spi_region.income_tax_by_region_15000_20000@S92000003", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.23571428571429", - "value_before_uprating": "27100000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "0.976831896551724", + "value_before_uprating": "374000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_100000_150000@E12000008", + "name": "hmrc.spi_region.income_tax_by_region_15000_20000@N92000002", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.23571428571429", - "value_before_uprating": "22300000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "0.976831896551724", + "value_before_uprating": "129000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_100000_150000@E12000009", + "name": "hmrc.spi_region.income_tax_by_region_20000_30000@E12000001", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.23571428571429", - "value_before_uprating": "7430000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.01431718061674", + "value_before_uprating": "940000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_100000_150000@W92000004", + "name": "hmrc.spi_region.income_tax_by_region_20000_30000@E12000002", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.23571428571429", - "value_before_uprating": "2400000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.01431718061674", + "value_before_uprating": "2630000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_100000_150000@S92000003", + "name": "hmrc.spi_region.income_tax_by_region_20000_30000@E12000003", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.23571428571429", - "value_before_uprating": "6560000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.01431718061674", + "value_before_uprating": "1960000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_100000_150000@N92000002", + "name": "hmrc.spi_region.income_tax_by_region_20000_30000@E12000004", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.23571428571429", - "value_before_uprating": "1360000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.01431718061674", + "value_before_uprating": "1780000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_150000_200000@E12000001", + "name": "hmrc.spi_region.income_tax_by_region_20000_30000@E12000005", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.15891089108911", - "value_before_uprating": "818000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.01431718061674", + "value_before_uprating": "2080000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_150000_200000@E12000002", + "name": "hmrc.spi_region.income_tax_by_region_20000_30000@E12000006", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.15891089108911", - "value_before_uprating": "3230000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.01431718061674", + "value_before_uprating": "2110000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_150000_200000@E12000003", + "name": "hmrc.spi_region.income_tax_by_region_20000_30000@E12000007", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.15891089108911", - "value_before_uprating": "2100000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.01431718061674", + "value_before_uprating": "2330000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_150000_200000@E12000004", + "name": "hmrc.spi_region.income_tax_by_region_20000_30000@E12000008", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.15891089108911", - "value_before_uprating": "2110000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.01431718061674", + "value_before_uprating": "3010000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_150000_200000@E12000005", + "name": "hmrc.spi_region.income_tax_by_region_20000_30000@E12000009", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.15891089108911", - "value_before_uprating": "2470000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.01431718061674", + "value_before_uprating": "2100000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_150000_200000@E12000006", + "name": "hmrc.spi_region.income_tax_by_region_20000_30000@W92000004", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.15891089108911", - "value_before_uprating": "5910000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.01431718061674", + "value_before_uprating": "1120000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_150000_200000@E12000007", + "name": "hmrc.spi_region.income_tax_by_region_20000_30000@S92000003", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.15891089108911", - "value_before_uprating": "15300000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.01431718061674", + "value_before_uprating": "1880000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_150000_200000@E12000008", + "name": "hmrc.spi_region.income_tax_by_region_20000_30000@N92000002", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.15891089108911", - "value_before_uprating": "11000000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.01431718061674", + "value_before_uprating": "637000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_150000_200000@E12000009", + "name": "hmrc.spi_region.income_tax_by_region_30000_40000@E12000001", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.15891089108911", - "value_before_uprating": "3200000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.13134765625", + "value_before_uprating": "998000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_150000_200000@W92000004", + "name": "hmrc.spi_region.income_tax_by_region_30000_40000@E12000002", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.15891089108911", - "value_before_uprating": "945000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.13134765625", + "value_before_uprating": "2890000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_150000_200000@S92000003", + "name": "hmrc.spi_region.income_tax_by_region_30000_40000@E12000003", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.15891089108911", - "value_before_uprating": "2650000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.13134765625", + "value_before_uprating": "2160000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_150000_200000@N92000002", + "name": "hmrc.spi_region.income_tax_by_region_30000_40000@E12000004", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.15891089108911", - "value_before_uprating": "557000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.13134765625", + "value_before_uprating": "1990000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_200000_plus@E12000001", + "name": "hmrc.spi_region.income_tax_by_region_30000_40000@E12000005", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.20880245649949", - "value_before_uprating": "1570000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.13134765625", + "value_before_uprating": "2310000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_200000_plus@E12000002", + "name": "hmrc.spi_region.income_tax_by_region_30000_40000@E12000006", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.20880245649949", - "value_before_uprating": "8750000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.13134765625", + "value_before_uprating": "2610000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_200000_plus@E12000003", + "name": "hmrc.spi_region.income_tax_by_region_30000_40000@E12000007", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.20880245649949", - "value_before_uprating": "5150000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.13134765625", + "value_before_uprating": "3460000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_200000_plus@E12000004", + "name": "hmrc.spi_region.income_tax_by_region_30000_40000@E12000008", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.20880245649949", - "value_before_uprating": "5420000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.13134765625", + "value_before_uprating": "3830000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_200000_plus@E12000005", + "name": "hmrc.spi_region.income_tax_by_region_30000_40000@E12000009", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.20880245649949", - "value_before_uprating": "6530000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.13134765625", + "value_before_uprating": "2440000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_200000_plus@E12000006", + "name": "hmrc.spi_region.income_tax_by_region_30000_40000@W92000004", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.20880245649949", - "value_before_uprating": "19400000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.13134765625", + "value_before_uprating": "1230000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_200000_plus@E12000007", + "name": "hmrc.spi_region.income_tax_by_region_30000_40000@S92000003", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.20880245649949", - "value_before_uprating": "88100000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.13134765625", + "value_before_uprating": "2360000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_200000_plus@E12000008", + "name": "hmrc.spi_region.income_tax_by_region_30000_40000@N92000002", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.20880245649949", - "value_before_uprating": "39800000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.13134765625", + "value_before_uprating": "707000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_200000_plus@E12000009", + "name": "hmrc.spi_region.income_tax_by_region_40000_50000@E12000001", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.20880245649949", - "value_before_uprating": "9030000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.13134765625", + "value_before_uprating": "820000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_200000_plus@W92000004", + "name": "hmrc.spi_region.income_tax_by_region_40000_50000@E12000002", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.20880245649949", - "value_before_uprating": "1670000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.13134765625", + "value_before_uprating": "2480000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_200000_plus@S92000003", + "name": "hmrc.spi_region.income_tax_by_region_40000_50000@E12000003", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.20880245649949", - "value_before_uprating": "7120000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.13134765625", + "value_before_uprating": "1780000000.0" }, { - "name": "hmrc.spi_region.total_income_by_region_200000_plus@N92000002", + "name": "hmrc.spi_region.income_tax_by_region_40000_50000@E12000004", "from": "2023", "to": "2025", - "index": "hmrc.itl_2026.total_income_growth_by_total_income_band", - "factor": "1.20880245649949", - "value_before_uprating": "1390000000.0" + "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", + "factor": "1.13134765625", + "value_before_uprating": "1710000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_12570_15000@E12000001", + "name": "hmrc.spi_region.income_tax_by_region_40000_50000@E12000005", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.10296610169492", - "value_before_uprating": "24000000.0" + "factor": "1.13134765625", + "value_before_uprating": "1940000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_12570_15000@E12000002", + "name": "hmrc.spi_region.income_tax_by_region_40000_50000@E12000006", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.10296610169492", - "value_before_uprating": "63000000.0" + "factor": "1.13134765625", + "value_before_uprating": "2350000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_12570_15000@E12000003", + "name": "hmrc.spi_region.income_tax_by_region_40000_50000@E12000007", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.10296610169492", - "value_before_uprating": "46000000.0" + "factor": "1.13134765625", + "value_before_uprating": "3330000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_12570_15000@E12000004", + "name": "hmrc.spi_region.income_tax_by_region_40000_50000@E12000008", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.10296610169492", - "value_before_uprating": "43000000.0" + "factor": "1.13134765625", + "value_before_uprating": "3670000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_12570_15000@E12000005", + "name": "hmrc.spi_region.income_tax_by_region_40000_50000@E12000009", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.10296610169492", - "value_before_uprating": "50000000.0" + "factor": "1.13134765625", + "value_before_uprating": "2100000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_12570_15000@E12000006", + "name": "hmrc.spi_region.income_tax_by_region_40000_50000@W92000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.10296610169492", - "value_before_uprating": "52000000.0" + "factor": "1.13134765625", + "value_before_uprating": "1020000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_12570_15000@E12000007", + "name": "hmrc.spi_region.income_tax_by_region_40000_50000@S92000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.10296610169492", - "value_before_uprating": "70000000.0" + "factor": "1.13134765625", + "value_before_uprating": "2240000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_12570_15000@E12000008", + "name": "hmrc.spi_region.income_tax_by_region_40000_50000@N92000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.10296610169492", - "value_before_uprating": "71000000.0" + "factor": "1.13134765625", + "value_before_uprating": "569000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_12570_15000@E12000009", + "name": "hmrc.spi_region.income_tax_by_region_50000_70000@E12000001", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.10296610169492", - "value_before_uprating": "49000000.0" + "factor": "1.21504237288136", + "value_before_uprating": "1100000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_12570_15000@W92000004", + "name": "hmrc.spi_region.income_tax_by_region_50000_70000@E12000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.10296610169492", - "value_before_uprating": "28000000.0" + "factor": "1.21504237288136", + "value_before_uprating": "3450000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_12570_15000@S92000003", + "name": "hmrc.spi_region.income_tax_by_region_50000_70000@E12000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.10296610169492", - "value_before_uprating": "47000000.0" + "factor": "1.21504237288136", + "value_before_uprating": "2340000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_12570_15000@N92000002", + "name": "hmrc.spi_region.income_tax_by_region_50000_70000@E12000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.10296610169492", - "value_before_uprating": "15000000.0" + "factor": "1.21504237288136", + "value_before_uprating": "2330000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_15000_20000@E12000001", + "name": "hmrc.spi_region.income_tax_by_region_50000_70000@E12000005", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "0.976831896551724", - "value_before_uprating": "199000000.0" + "factor": "1.21504237288136", + "value_before_uprating": "2790000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_15000_20000@E12000002", + "name": "hmrc.spi_region.income_tax_by_region_50000_70000@E12000006", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "0.976831896551724", - "value_before_uprating": "539000000.0" + "factor": "1.21504237288136", + "value_before_uprating": "3880000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_15000_20000@E12000003", + "name": "hmrc.spi_region.income_tax_by_region_50000_70000@E12000007", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "0.976831896551724", - "value_before_uprating": "407000000.0" + "factor": "1.21504237288136", + "value_before_uprating": "6290000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_15000_20000@E12000004", + "name": "hmrc.spi_region.income_tax_by_region_50000_70000@E12000008", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "0.976831896551724", - "value_before_uprating": "372000000.0" + "factor": "1.21504237288136", + "value_before_uprating": "6150000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_15000_20000@E12000005", + "name": "hmrc.spi_region.income_tax_by_region_50000_70000@E12000009", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "0.976831896551724", - "value_before_uprating": "423000000.0" + "factor": "1.21504237288136", + "value_before_uprating": "2970000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_15000_20000@E12000006", + "name": "hmrc.spi_region.income_tax_by_region_50000_70000@W92000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "0.976831896551724", - "value_before_uprating": "431000000.0" + "factor": "1.21504237288136", + "value_before_uprating": "1380000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_15000_20000@E12000007", + "name": "hmrc.spi_region.income_tax_by_region_50000_70000@S92000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "0.976831896551724", - "value_before_uprating": "474000000.0" + "factor": "1.21504237288136", + "value_before_uprating": "3210000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_15000_20000@E12000008", + "name": "hmrc.spi_region.income_tax_by_region_50000_70000@N92000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "0.976831896551724", - "value_before_uprating": "601000000.0" + "factor": "1.21504237288136", + "value_before_uprating": "636000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_15000_20000@E12000009", + "name": "hmrc.spi_region.income_tax_by_region_70000_100000@E12000001", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "0.976831896551724", - "value_before_uprating": "412000000.0" + "factor": "1.21504237288136", + "value_before_uprating": "792000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_15000_20000@W92000004", + "name": "hmrc.spi_region.income_tax_by_region_70000_100000@E12000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "0.976831896551724", - "value_before_uprating": "214000000.0" + "factor": "1.21504237288136", + "value_before_uprating": "2830000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_15000_20000@S92000003", + "name": "hmrc.spi_region.income_tax_by_region_70000_100000@E12000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "0.976831896551724", - "value_before_uprating": "374000000.0" + "factor": "1.21504237288136", + "value_before_uprating": "1810000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_15000_20000@N92000002", + "name": "hmrc.spi_region.income_tax_by_region_70000_100000@E12000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "0.976831896551724", - "value_before_uprating": "129000000.0" + "factor": "1.21504237288136", + "value_before_uprating": "1880000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_20000_30000@E12000001", + "name": "hmrc.spi_region.income_tax_by_region_70000_100000@E12000005", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.01431718061674", - "value_before_uprating": "940000000.0" + "factor": "1.21504237288136", + "value_before_uprating": "2290000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_20000_30000@E12000002", + "name": "hmrc.spi_region.income_tax_by_region_70000_100000@E12000006", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.01431718061674", - "value_before_uprating": "2630000000.0" + "factor": "1.21504237288136", + "value_before_uprating": "3840000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_20000_30000@E12000003", + "name": "hmrc.spi_region.income_tax_by_region_70000_100000@E12000007", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.01431718061674", - "value_before_uprating": "1960000000.0" + "factor": "1.21504237288136", + "value_before_uprating": "7290000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_20000_30000@E12000004", + "name": "hmrc.spi_region.income_tax_by_region_70000_100000@E12000008", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.01431718061674", - "value_before_uprating": "1780000000.0" + "factor": "1.21504237288136", + "value_before_uprating": "6610000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_20000_30000@E12000005", + "name": "hmrc.spi_region.income_tax_by_region_70000_100000@E12000009", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.01431718061674", - "value_before_uprating": "2080000000.0" + "factor": "1.21504237288136", + "value_before_uprating": "2530000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_20000_30000@E12000006", + "name": "hmrc.spi_region.income_tax_by_region_70000_100000@W92000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.01431718061674", - "value_before_uprating": "2110000000.0" + "factor": "1.21504237288136", + "value_before_uprating": "870000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_20000_30000@E12000007", + "name": "hmrc.spi_region.income_tax_by_region_70000_100000@S92000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.01431718061674", - "value_before_uprating": "2330000000.0" + "factor": "1.21504237288136", + "value_before_uprating": "2690000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_20000_30000@E12000008", + "name": "hmrc.spi_region.income_tax_by_region_70000_100000@N92000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.01431718061674", - "value_before_uprating": "3010000000.0" + "factor": "1.21504237288136", + "value_before_uprating": "485000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_20000_30000@E12000009", + "name": "hmrc.spi_region.income_tax_by_region_100000_150000@E12000001", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.01431718061674", - "value_before_uprating": "2100000000.0" + "factor": "1.24183006535948", + "value_before_uprating": "580000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_20000_30000@W92000004", + "name": "hmrc.spi_region.income_tax_by_region_100000_150000@E12000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.01431718061674", - "value_before_uprating": "1120000000.0" + "factor": "1.24183006535948", + "value_before_uprating": "2100000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_20000_30000@S92000003", + "name": "hmrc.spi_region.income_tax_by_region_100000_150000@E12000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.01431718061674", - "value_before_uprating": "1880000000.0" + "factor": "1.24183006535948", + "value_before_uprating": "1410000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_20000_30000@N92000002", + "name": "hmrc.spi_region.income_tax_by_region_100000_150000@E12000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.01431718061674", - "value_before_uprating": "637000000.0" + "factor": "1.24183006535948", + "value_before_uprating": "1500000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_30000_40000@E12000001", + "name": "hmrc.spi_region.income_tax_by_region_100000_150000@E12000005", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "998000000.0" + "factor": "1.24183006535948", + "value_before_uprating": "1570000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_30000_40000@E12000002", + "name": "hmrc.spi_region.income_tax_by_region_100000_150000@E12000006", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "2890000000.0" + "factor": "1.24183006535948", + "value_before_uprating": "3500000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_30000_40000@E12000003", + "name": "hmrc.spi_region.income_tax_by_region_100000_150000@E12000007", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "2160000000.0" + "factor": "1.24183006535948", + "value_before_uprating": "8050000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_30000_40000@E12000004", + "name": "hmrc.spi_region.income_tax_by_region_100000_150000@E12000008", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "1990000000.0" + "factor": "1.24183006535948", + "value_before_uprating": "6540000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_30000_40000@E12000005", + "name": "hmrc.spi_region.income_tax_by_region_100000_150000@E12000009", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "2310000000.0" + "factor": "1.24183006535948", + "value_before_uprating": "2120000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_30000_40000@E12000006", + "name": "hmrc.spi_region.income_tax_by_region_100000_150000@W92000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "2610000000.0" + "factor": "1.24183006535948", + "value_before_uprating": "679000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_30000_40000@E12000007", + "name": "hmrc.spi_region.income_tax_by_region_100000_150000@S92000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "3460000000.0" + "factor": "1.24183006535948", + "value_before_uprating": "2010000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_30000_40000@E12000008", + "name": "hmrc.spi_region.income_tax_by_region_100000_150000@N92000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "3830000000.0" + "factor": "1.24183006535948", + "value_before_uprating": "367000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_30000_40000@E12000009", + "name": "hmrc.spi_region.income_tax_by_region_150000_200000@E12000001", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "2440000000.0" + "factor": "1.16279069767442", + "value_before_uprating": "269000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_30000_40000@W92000004", + "name": "hmrc.spi_region.income_tax_by_region_150000_200000@E12000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "1230000000.0" + "factor": "1.16279069767442", + "value_before_uprating": "1080000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_30000_40000@S92000003", + "name": "hmrc.spi_region.income_tax_by_region_150000_200000@E12000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "2360000000.0" + "factor": "1.16279069767442", + "value_before_uprating": "693000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_30000_40000@N92000002", + "name": "hmrc.spi_region.income_tax_by_region_150000_200000@E12000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "707000000.0" + "factor": "1.16279069767442", + "value_before_uprating": "712000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_40000_50000@E12000001", + "name": "hmrc.spi_region.income_tax_by_region_150000_200000@E12000005", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "820000000.0" + "factor": "1.16279069767442", + "value_before_uprating": "832000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_40000_50000@E12000002", + "name": "hmrc.spi_region.income_tax_by_region_150000_200000@E12000006", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "2480000000.0" + "factor": "1.16279069767442", + "value_before_uprating": "2010000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_40000_50000@E12000003", + "name": "hmrc.spi_region.income_tax_by_region_150000_200000@E12000007", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "1780000000.0" + "factor": "1.16279069767442", + "value_before_uprating": "5260000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_40000_50000@E12000004", + "name": "hmrc.spi_region.income_tax_by_region_150000_200000@E12000008", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "1710000000.0" + "factor": "1.16279069767442", + "value_before_uprating": "3760000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_40000_50000@E12000005", + "name": "hmrc.spi_region.income_tax_by_region_150000_200000@E12000009", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "1940000000.0" + "factor": "1.16279069767442", + "value_before_uprating": "1070000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_40000_50000@E12000006", + "name": "hmrc.spi_region.income_tax_by_region_150000_200000@W92000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "2350000000.0" + "factor": "1.16279069767442", + "value_before_uprating": "313000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_40000_50000@E12000007", + "name": "hmrc.spi_region.income_tax_by_region_150000_200000@S92000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "3330000000.0" + "factor": "1.16279069767442", + "value_before_uprating": "916000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_40000_50000@E12000008", + "name": "hmrc.spi_region.income_tax_by_region_150000_200000@N92000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "3670000000.0" + "factor": "1.16279069767442", + "value_before_uprating": "179000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_40000_50000@E12000009", + "name": "hmrc.spi_region.income_tax_by_region_200000_plus@E12000001", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "2100000000.0" + "factor": "1.21312442637997", + "value_before_uprating": "600000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_40000_50000@W92000004", + "name": "hmrc.spi_region.income_tax_by_region_200000_plus@E12000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "1020000000.0" + "factor": "1.21312442637997", + "value_before_uprating": "3420000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_40000_50000@S92000003", + "name": "hmrc.spi_region.income_tax_by_region_200000_plus@E12000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "2240000000.0" + "factor": "1.21312442637997", + "value_before_uprating": "2000000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_40000_50000@N92000002", + "name": "hmrc.spi_region.income_tax_by_region_200000_plus@E12000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.13134765625", - "value_before_uprating": "569000000.0" + "factor": "1.21312442637997", + "value_before_uprating": "2090000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_50000_70000@E12000001", + "name": "hmrc.spi_region.income_tax_by_region_200000_plus@E12000005", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "1100000000.0" + "factor": "1.21312442637997", + "value_before_uprating": "2510000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_50000_70000@E12000002", + "name": "hmrc.spi_region.income_tax_by_region_200000_plus@E12000006", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "3450000000.0" - }, - { - "name": "hmrc.spi_region.income_tax_by_region_50000_70000@E12000003", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "2340000000.0" - }, - { - "name": "hmrc.spi_region.income_tax_by_region_50000_70000@E12000004", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "2330000000.0" - }, - { - "name": "hmrc.spi_region.income_tax_by_region_50000_70000@E12000005", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "2790000000.0" - }, - { - "name": "hmrc.spi_region.income_tax_by_region_50000_70000@E12000006", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "3880000000.0" - }, - { - "name": "hmrc.spi_region.income_tax_by_region_50000_70000@E12000007", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "6290000000.0" - }, - { - "name": "hmrc.spi_region.income_tax_by_region_50000_70000@E12000008", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "6150000000.0" + "factor": "1.21312442637997", + "value_before_uprating": "7580000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_50000_70000@E12000009", + "name": "hmrc.spi_region.income_tax_by_region_200000_plus@E12000007", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "2970000000.0" + "factor": "1.21312442637997", + "value_before_uprating": "34500000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_50000_70000@W92000004", + "name": "hmrc.spi_region.income_tax_by_region_200000_plus@E12000008", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "1380000000.0" + "factor": "1.21312442637997", + "value_before_uprating": "15500000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_50000_70000@S92000003", + "name": "hmrc.spi_region.income_tax_by_region_200000_plus@E12000009", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "3210000000.0" + "factor": "1.21312442637997", + "value_before_uprating": "3490000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_50000_70000@N92000002", + "name": "hmrc.spi_region.income_tax_by_region_200000_plus@W92000004", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", + "factor": "1.21312442637997", "value_before_uprating": "636000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_70000_100000@E12000001", + "name": "hmrc.spi_region.income_tax_by_region_200000_plus@S92000003", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "792000000.0" + "factor": "1.21312442637997", + "value_before_uprating": "2800000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_70000_100000@E12000002", + "name": "hmrc.spi_region.income_tax_by_region_200000_plus@N92000002", "from": "2023", "to": "2025", "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "2830000000.0" + "factor": "1.21312442637997", + "value_before_uprating": "522000000.0" }, { - "name": "hmrc.spi_region.income_tax_by_region_70000_100000@E12000003", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "1810000000.0" + "name": "hmrc.salary_sacrifice.it_relief_total", + "from": "2024", + "to": "2025" + } + ], + "targets": { + "obr.income_tax": { + "status": "active", + "candidates": [ + { + "name": "obr.income_tax", + "status": "active", + "matched_fact_count_overall": 7, + "matched_fact_count_at_or_before_period": 2, + "resolved_period": 2025, + "resolved_value": 325054437305.83215, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_d928e7da0fbfe088ca1a30d7" + } + ] }, - { - "name": "hmrc.spi_region.income_tax_by_region_70000_100000@E12000004", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "1880000000.0" + "obr.ni": { + "status": "active", + "candidates": [ + { + "name": "obr.ni", + "status": "active", + "matched_fact_count_overall": 7, + "matched_fact_count_at_or_before_period": 2, + "resolved_period": 2025, + "resolved_value": 193190546312.03436, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_eccab3ee763d68bb782276a7" + } + ] }, - { - "name": "hmrc.spi_region.income_tax_by_region_70000_100000@E12000005", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "2290000000.0" + "obr.ni_employee": { + "status": "active", + "candidates": [ + { + "name": "obr.ni_employee", + "status": "active", + "matched_fact_count_overall": 7, + "matched_fact_count_at_or_before_period": 2, + "resolved_period": 2025, + "resolved_value": 49002029830.141045, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_7e3e3e637a9134760a0a530a" + } + ] }, - { - "name": "hmrc.spi_region.income_tax_by_region_70000_100000@E12000006", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "3840000000.0" + "obr.ni_employer": { + "status": "active", + "candidates": [ + { + "name": "obr.ni_employer", + "status": "active", + "matched_fact_count_overall": 7, + "matched_fact_count_at_or_before_period": 2, + "resolved_period": 2025, + "resolved_value": 137854706939.8949, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_c8719021c501d9757e0e0814" + } + ] }, - { - "name": "hmrc.spi_region.income_tax_by_region_70000_100000@E12000007", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "7290000000.0" + "obr.ni_self_employed": { + "status": "active", + "candidates": [ + { + "name": "obr.ni_self_employed", + "status": "active", + "matched_fact_count_overall": 7, + "matched_fact_count_at_or_before_period": 2, + "resolved_period": 2025, + "resolved_value": 2876506585.4950743, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_b94b7d74d7df7ff5f9309f3b" + } + ] }, - { - "name": "hmrc.spi_region.income_tax_by_region_70000_100000@E12000008", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "6610000000.0" + "obr.vat": { + "status": "active", + "candidates": [ + { + "name": "obr.vat", + "status": "active", + "matched_fact_count_overall": 7, + "matched_fact_count_at_or_before_period": 2, + "resolved_period": 2025, + "resolved_value": 177875204014.06345, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_3c534c3e6313150f8081b777" + } + ] }, - { - "name": "hmrc.spi_region.income_tax_by_region_70000_100000@E12000009", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "2530000000.0" + "obr.fuel_duties": { + "status": "signed_excluded", + "candidates": [ + { + "name": "obr.fuel_duties", + "status": "signed_excluded", + "matched_fact_count_overall": 7, + "matched_fact_count_at_or_before_period": 2, + "signed_rationale": "The OBR fuel duties fact is all-road-users receipts (freight, vans, business mileage) against a household frame; obr.fuel_duties_cars binds the cars receipts from the OBR vehicle-type release instead (ruling 2026-09-10). The all-road-users row is retained in the contract for registry parity and signed out here rather than carried as a calibration measure exclusion." + } + ] }, - { - "name": "hmrc.spi_region.income_tax_by_region_70000_100000@W92000004", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "870000000.0" - }, - { - "name": "hmrc.spi_region.income_tax_by_region_70000_100000@S92000003", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "2690000000.0" - }, - { - "name": "hmrc.spi_region.income_tax_by_region_70000_100000@N92000002", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21504237288136", - "value_before_uprating": "485000000.0" - }, - { - "name": "hmrc.spi_region.income_tax_by_region_100000_150000@E12000001", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.24183006535948", - "value_before_uprating": "580000000.0" - }, - { - "name": "hmrc.spi_region.income_tax_by_region_100000_150000@E12000002", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.24183006535948", - "value_before_uprating": "2100000000.0" - }, - { - "name": "hmrc.spi_region.income_tax_by_region_100000_150000@E12000003", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.24183006535948", - "value_before_uprating": "1410000000.0" - }, - { - "name": "hmrc.spi_region.income_tax_by_region_100000_150000@E12000004", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.24183006535948", - "value_before_uprating": "1500000000.0" - }, - { - "name": "hmrc.spi_region.income_tax_by_region_100000_150000@E12000005", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.24183006535948", - "value_before_uprating": "1570000000.0" - }, - { - "name": "hmrc.spi_region.income_tax_by_region_100000_150000@E12000006", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.24183006535948", - "value_before_uprating": "3500000000.0" - }, - { - "name": "hmrc.spi_region.income_tax_by_region_100000_150000@E12000007", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.24183006535948", - "value_before_uprating": "8050000000.0" - }, - { - "name": "hmrc.spi_region.income_tax_by_region_100000_150000@E12000008", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.24183006535948", - "value_before_uprating": "6540000000.0" - }, - { - "name": "hmrc.spi_region.income_tax_by_region_100000_150000@E12000009", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.24183006535948", - "value_before_uprating": "2120000000.0" - }, - { - "name": "hmrc.spi_region.income_tax_by_region_100000_150000@W92000004", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.24183006535948", - "value_before_uprating": "679000000.0" - }, - { - "name": "hmrc.spi_region.income_tax_by_region_100000_150000@S92000003", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.24183006535948", - "value_before_uprating": "2010000000.0" - }, - { - "name": "hmrc.spi_region.income_tax_by_region_100000_150000@N92000002", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.24183006535948", - "value_before_uprating": "367000000.0" - }, - { - "name": "hmrc.spi_region.income_tax_by_region_150000_200000@E12000001", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.16279069767442", - "value_before_uprating": "269000000.0" - }, - { - "name": "hmrc.spi_region.income_tax_by_region_150000_200000@E12000002", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.16279069767442", - "value_before_uprating": "1080000000.0" - }, - { - "name": "hmrc.spi_region.income_tax_by_region_150000_200000@E12000003", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.16279069767442", - "value_before_uprating": "693000000.0" - }, - { - "name": "hmrc.spi_region.income_tax_by_region_150000_200000@E12000004", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.16279069767442", - "value_before_uprating": "712000000.0" - }, - { - "name": "hmrc.spi_region.income_tax_by_region_150000_200000@E12000005", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.16279069767442", - "value_before_uprating": "832000000.0" - }, - { - "name": "hmrc.spi_region.income_tax_by_region_150000_200000@E12000006", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.16279069767442", - "value_before_uprating": "2010000000.0" - }, - { - "name": "hmrc.spi_region.income_tax_by_region_150000_200000@E12000007", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.16279069767442", - "value_before_uprating": "5260000000.0" - }, - { - "name": "hmrc.spi_region.income_tax_by_region_150000_200000@E12000008", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.16279069767442", - "value_before_uprating": "3760000000.0" - }, - { - "name": "hmrc.spi_region.income_tax_by_region_150000_200000@E12000009", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.16279069767442", - "value_before_uprating": "1070000000.0" - }, - { - "name": "hmrc.spi_region.income_tax_by_region_150000_200000@W92000004", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.16279069767442", - "value_before_uprating": "313000000.0" - }, - { - "name": "hmrc.spi_region.income_tax_by_region_150000_200000@S92000003", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.16279069767442", - "value_before_uprating": "916000000.0" - }, - { - "name": "hmrc.spi_region.income_tax_by_region_150000_200000@N92000002", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.16279069767442", - "value_before_uprating": "179000000.0" - }, - { - "name": "hmrc.spi_region.income_tax_by_region_200000_plus@E12000001", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21312442637997", - "value_before_uprating": "600000000.0" - }, - { - "name": "hmrc.spi_region.income_tax_by_region_200000_plus@E12000002", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21312442637997", - "value_before_uprating": "3420000000.0" - }, - { - "name": "hmrc.spi_region.income_tax_by_region_200000_plus@E12000003", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21312442637997", - "value_before_uprating": "2000000000.0" - }, - { - "name": "hmrc.spi_region.income_tax_by_region_200000_plus@E12000004", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21312442637997", - "value_before_uprating": "2090000000.0" - }, - { - "name": "hmrc.spi_region.income_tax_by_region_200000_plus@E12000005", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21312442637997", - "value_before_uprating": "2510000000.0" - }, - { - "name": "hmrc.spi_region.income_tax_by_region_200000_plus@E12000006", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21312442637997", - "value_before_uprating": "7580000000.0" - }, - { - "name": "hmrc.spi_region.income_tax_by_region_200000_plus@E12000007", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21312442637997", - "value_before_uprating": "34500000000.0" - }, - { - "name": "hmrc.spi_region.income_tax_by_region_200000_plus@E12000008", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21312442637997", - "value_before_uprating": "15500000000.0" - }, - { - "name": "hmrc.spi_region.income_tax_by_region_200000_plus@E12000009", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21312442637997", - "value_before_uprating": "3490000000.0" - }, - { - "name": "hmrc.spi_region.income_tax_by_region_200000_plus@W92000004", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21312442637997", - "value_before_uprating": "636000000.0" - }, - { - "name": "hmrc.spi_region.income_tax_by_region_200000_plus@S92000003", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21312442637997", - "value_before_uprating": "2800000000.0" - }, - { - "name": "hmrc.spi_region.income_tax_by_region_200000_plus@N92000002", - "from": "2023", - "to": "2025", - "index": "hmrc.itl_2026.total_tax_growth_by_total_income_band", - "factor": "1.21312442637997", - "value_before_uprating": "522000000.0" - }, - { - "name": "hmrc.salary_sacrifice.it_relief_total", - "from": "2024", - "to": "2025" - } - ], - "targets": { - "obr.income_tax": { - "status": "active", - "candidates": [ - { - "name": "obr.income_tax", - "status": "active", - "matched_fact_count_overall": 7, - "matched_fact_count_at_or_before_period": 2, - "resolved_period": 2025, - "resolved_value": 325054437305.83215, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_d928e7da0fbfe088ca1a30d7" - } - ] - }, - "obr.ni": { - "status": "active", - "candidates": [ - { - "name": "obr.ni", - "status": "active", - "matched_fact_count_overall": 7, - "matched_fact_count_at_or_before_period": 2, - "resolved_period": 2025, - "resolved_value": 193190546312.03436, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_eccab3ee763d68bb782276a7" - } - ] - }, - "obr.ni_employee": { - "status": "active", - "candidates": [ - { - "name": "obr.ni_employee", - "status": "active", - "matched_fact_count_overall": 7, - "matched_fact_count_at_or_before_period": 2, - "resolved_period": 2025, - "resolved_value": 49002029830.141045, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_7e3e3e637a9134760a0a530a" - } - ] - }, - "obr.ni_employer": { - "status": "active", - "candidates": [ - { - "name": "obr.ni_employer", - "status": "active", - "matched_fact_count_overall": 7, - "matched_fact_count_at_or_before_period": 2, - "resolved_period": 2025, - "resolved_value": 137854706939.8949, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_c8719021c501d9757e0e0814" - } - ] - }, - "obr.ni_self_employed": { - "status": "active", - "candidates": [ - { - "name": "obr.ni_self_employed", - "status": "active", - "matched_fact_count_overall": 7, - "matched_fact_count_at_or_before_period": 2, - "resolved_period": 2025, - "resolved_value": 2876506585.4950743, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_b94b7d74d7df7ff5f9309f3b" - } - ] - }, - "obr.vat": { - "status": "active", - "candidates": [ - { - "name": "obr.vat", - "status": "active", - "matched_fact_count_overall": 7, - "matched_fact_count_at_or_before_period": 2, - "resolved_period": 2025, - "resolved_value": 177875204014.06345, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_3c534c3e6313150f8081b777" - } - ] - }, - "obr.fuel_duties": { - "status": "signed_excluded", - "candidates": [ - { - "name": "obr.fuel_duties", - "status": "signed_excluded", - "matched_fact_count_overall": 7, - "matched_fact_count_at_or_before_period": 2, - "signed_rationale": "The OBR fuel duties fact is all-road-users receipts (freight, vans, business mileage) against a household frame; obr.fuel_duties_cars binds the cars receipts from the OBR vehicle-type release instead (ruling 2026-09-10). The all-road-users row is retained in the contract for registry parity and signed out here rather than carried as a calibration measure exclusion." - } - ] - }, - "hmrc.cgt.liability_total": { - "status": "active", - "candidates": [ - { - "name": "hmrc.cgt.liability_total", - "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, - "resolved_period": 2025, - "resolved_value": 22503000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_222c397017de7bff0a6583a7" - } - ] + "hmrc.cgt.liability_total": { + "status": "active", + "candidates": [ + { + "name": "hmrc.cgt.liability_total", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 22503000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_222c397017de7bff0a6583a7" + } + ] }, "obr.sdlt": { "status": "active", @@ -15055,7931 +14619,7131 @@ "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": 9, - "matched_fact_count_at_or_before_period": 9, - "resolved_period": 2025, - "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": 9, - "matched_fact_count_at_or_before_period": 9, - "resolved_period": 2025, - "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": 9, - "matched_fact_count_at_or_before_period": 9, - "resolved_period": 2025, - "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": 9, - "matched_fact_count_at_or_before_period": 9, - "resolved_period": 2025, - "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": 9, - "matched_fact_count_at_or_before_period": 9, - "resolved_period": 2025, - "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": 9, - "matched_fact_count_at_or_before_period": 9, - "resolved_period": 2025, - "resolved_value": 2761.4444444444443, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_f19a927835e2aa12a94f6279" - }, - { - "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_2_400_to_3_600", - "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, - "resolved_period": 2025, - "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": 9, - "matched_fact_count_at_or_before_period": 9, - "resolved_period": 2025, - "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": 9, - "matched_fact_count_at_or_before_period": 9, - "resolved_period": 2025, - "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": 9, - "matched_fact_count_at_or_before_period": 9, - "resolved_period": 2025, - "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": 9, - "matched_fact_count_at_or_before_period": 9, - "resolved_period": 2025, - "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": 9, - "matched_fact_count_at_or_before_period": 9, - "resolved_period": 2025, - "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": 9, - "matched_fact_count_at_or_before_period": 9, - "resolved_period": 2025, - "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": 9, - "matched_fact_count_at_or_before_period": 9, - "resolved_period": 2025, - "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": 9, - "matched_fact_count_at_or_before_period": 9, - "resolved_period": 2025, - "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": 9, - "matched_fact_count_at_or_before_period": 9, - "resolved_period": 2025, - "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": 9, - "matched_fact_count_at_or_before_period": 9, - "resolved_period": 2025, - "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": 9, - "matched_fact_count_at_or_before_period": 9, - "resolved_period": 2025, - "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": 9, - "matched_fact_count_at_or_before_period": 9, - "resolved_period": 2025, - "resolved_value": 13313.333333333334, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_6697a9dc6c88a1a0b0472a1e" - } - ] - }, - "dwp.uc.payment_distribution_couple_with_children": { - "status": "active", - "candidates": [ - { - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_0_to_1_200", - "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, - "resolved_period": 2025, - "resolved_value": 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": 9, - "matched_fact_count_at_or_before_period": 9, - "resolved_period": 2025, - "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": 9, - "matched_fact_count_at_or_before_period": 9, - "resolved_period": 2025, - "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": 9, - "matched_fact_count_at_or_before_period": 9, - "resolved_period": 2025, - "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": 9, - "matched_fact_count_at_or_before_period": 9, - "resolved_period": 2025, - "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": 9, - "matched_fact_count_at_or_before_period": 9, - "resolved_period": 2025, - "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", + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_16_800_to_18_000", "status": "active", "matched_fact_count_overall": 9, "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 37177.77777777778, + "resolved_value": 13441.111111111111, "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_c50c761ddfaab3cbfba62bfd" + "resolved_fact_key": "ledger_aggregate_fact_v2_7ccb1420b8ca3e26048291b9" }, { - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_18_000_to_19_200", + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_18_000_to_19_200", "status": "active", "matched_fact_count_overall": 9, "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 37164.555555555555, + "resolved_value": 10728.555555555555, "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_74d32efc9f1984f60cbd9397" + "resolved_fact_key": "ledger_aggregate_fact_v2_a7057ddde3cd2ffaed246687" }, { - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_19_200_to_20_400", + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_19_200_to_20_400", "status": "active", "matched_fact_count_overall": 9, "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 33309.555555555555, + "resolved_value": 9653.222222222223, "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_90b7e15c6554b1c74e7055f3" + "resolved_fact_key": "ledger_aggregate_fact_v2_3e228ab480713f15af6e847c" }, { - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_20_400_to_21_600", + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_20_400_to_21_600", "status": "active", "matched_fact_count_overall": 9, "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 29102.555555555555, + "resolved_value": 6486.888888888889, "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_96f9b06f2d2afb65af9a224a" + "resolved_fact_key": "ledger_aggregate_fact_v2_ecfd0dfe25ebc098ade1e902" }, { - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_21_600_to_22_800", + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_21_600_to_22_800", "status": "active", "matched_fact_count_overall": 9, "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 27534.666666666668, + "resolved_value": 3981.8888888888887, "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_e65a50de282324e8c188863a" + "resolved_fact_key": "ledger_aggregate_fact_v2_2bbf9ab64d9fde9025452375" }, { - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_22_800_to_24_000", + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_22_800_to_24_000", "status": "active", "matched_fact_count_overall": 9, "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 25584.777777777777, + "resolved_value": 2761.4444444444443, "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_16f48d435925ffa44f4d6871" + "resolved_fact_key": "ledger_aggregate_fact_v2_f19a927835e2aa12a94f6279" }, { - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_2_400_to_3_600", + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_2_400_to_3_600", "status": "active", "matched_fact_count_overall": 9, "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 26502.666666666668, + "resolved_value": 12256.0, "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_93fd0534df01d1dade53397e" + "resolved_fact_key": "ledger_aggregate_fact_v2_46ba331006269a96f7aee844" }, { - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_24_000_to_25_200", + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_24_000_to_25_200", "status": "active", "matched_fact_count_overall": 9, "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 22927.777777777777, + "resolved_value": 2131.222222222222, "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_ffb787487a36c86f94d25a25" + "resolved_fact_key": "ledger_aggregate_fact_v2_dd2ddbef54fc0ec48f61d7b0" }, { - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_25_200_to_26_400", + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_25_200_to_26_400", "status": "active", "matched_fact_count_overall": 9, "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 20334.666666666668, + "resolved_value": 1475.3333333333333, "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_2f4d504be6f184b7834f2687" + "resolved_fact_key": "ledger_aggregate_fact_v2_3ea2b4312343be8d41a37265" }, { - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_26_400_to_27_600", + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_26_400_to_27_600", "status": "active", "matched_fact_count_overall": 9, "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 17535.0, + "resolved_value": 1073.7777777777778, "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_719022eef2836c069c4b02d0" + "resolved_fact_key": "ledger_aggregate_fact_v2_55cf1a8742443b096e81b33e" }, { - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_27_600_to_28_800", + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_27_600_to_28_800", "status": "active", "matched_fact_count_overall": 9, "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 15399.888888888889, + "resolved_value": 746.3333333333334, "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_3b1d8f6516b32e39ecad3873" + "resolved_fact_key": "ledger_aggregate_fact_v2_6cd7a2f97a5e43ba25481719" }, { - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_28_800_to_30_000", + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_28_800_to_30_000", "status": "active", "matched_fact_count_overall": 9, "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 12836.222222222223, + "resolved_value": 605.7777777777778, "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_115a9ea1e35d76db13756149" + "resolved_fact_key": "ledger_aggregate_fact_v2_3f50c2d6d58a3a45681f0c5d" }, { - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_3_600_to_4_800", + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_3_600_to_4_800", "status": "active", "matched_fact_count_overall": 9, "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 29027.0, + "resolved_value": 10945.444444444445, "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_255e8c862df5351282c29809" + "resolved_fact_key": "ledger_aggregate_fact_v2_0ead4e96f4e609a16cf1e53e" }, { - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_4_800_to_6_000", + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_4_800_to_6_000", "status": "active", "matched_fact_count_overall": 9, "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 32427.0, + "resolved_value": 12492.444444444445, "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_32261034f242507c0a7337b3" + "resolved_fact_key": "ledger_aggregate_fact_v2_6823b2987ba44d1b85428d2b" }, { - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_6_000_to_7_200", + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_6_000_to_7_200", "status": "active", "matched_fact_count_overall": 9, "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 34956.88888888889, + "resolved_value": 12979.666666666666, "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_6f40664df124c4dca50524b8" + "resolved_fact_key": "ledger_aggregate_fact_v2_3a3fc258bd18da8c60177380" }, { - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_7_200_to_8_400", + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_7_200_to_8_400", "status": "active", "matched_fact_count_overall": 9, "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 37410.77777777778, + "resolved_value": 16484.444444444445, "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_27b091b1a00bc33ab68139f8" + "resolved_fact_key": "ledger_aggregate_fact_v2_b75ef335d484f8dd9ae13a70" }, { - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_8_400_to_9_600", + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_8_400_to_9_600", "status": "active", "matched_fact_count_overall": 9, "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 39910.333333333336, + "resolved_value": 15272.444444444445, "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_22b16b470c0b51499fb2f042" + "resolved_fact_key": "ledger_aggregate_fact_v2_fcd000da1af753b61c9ac5df" }, { - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_9_600_to_10_800", + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_9_600_to_10_800", "status": "active", "matched_fact_count_overall": 9, "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 39368.0, + "resolved_value": 19142.333333333332, "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_7dbca9e2f8508f1066399b73" + "resolved_fact_key": "ledger_aggregate_fact_v2_3d38fa50aa9bf0e85549ec9a" }, { - "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_10_800_to_12_000", + "name": "dwp/uc_payment_dist/COUPLE_NO_CHILDREN_annual_payment_10_800_to_12_000", "status": "active", "matched_fact_count_overall": 9, "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 40805.444444444445, + "resolved_value": 13313.333333333334, "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_23cf62e7e58211e783c52d2e" + "resolved_fact_key": "ledger_aggregate_fact_v2_6697a9dc6c88a1a0b0472a1e" } ] }, - "dwp.uc.scotland_households_child_under_1": { + "dwp.uc.payment_distribution_couple_with_children": { "status": "active", "candidates": [ { - "name": "dwp.uc.scotland_households_child_under_1", + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_0_to_1_200", "status": "active", "matched_fact_count_overall": 9, "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 14333.222222222223, + "resolved_value": 19073.555555555555, "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_e88b27e010e08ac8d36d0d30" - } - ] - }, - "dwp.uc.two_child_limit.households_affected": { - "status": "active", - "candidates": [ + "resolved_fact_key": "ledger_aggregate_fact_v2_8c1548028e499fa8399d1246" + }, { - "name": "dwp.uc.two_child_limit.households_affected", + "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": 469780.0, - "resolved_fact_period": "2025-04", - "resolved_fact_key": "ledger_aggregate_fact_v2_860a48172c62298ceb00c20b" - } - ] - }, - "dwp.uc.two_child_limit.children_affected": { - "status": "active", - "candidates": [ + "resolved_value": 22775.777777777777, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_ff2fef9bd96e583203e111d6" + }, { - "name": "dwp.uc.two_child_limit.children_affected", + "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": 597920.0, - "resolved_fact_period": "2025-04", - "resolved_fact_key": "ledger_aggregate_fact_v2_4378e45ac129e036b4a6ca03" - } - ] - }, - "dwp.uc.two_child_limit.children_in_affected_households": { - "status": "active", - "candidates": [ + "resolved_value": 40009.555555555555, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_fee1fd2227a87871edfe2bfa" + }, { - "name": "dwp.uc.two_child_limit.children_in_affected_households", + "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": 1665540.0, - "resolved_fact_period": "2025-04", - "resolved_fact_key": "ledger_aggregate_fact_v2_05774e34488c474df7f84742" - } - ] - }, - "dwp.uc.two_child_limit.households_3_children": { - "status": "active", - "candidates": [ + "resolved_value": 39972.555555555555, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_3b0427c86dc3df13761ab5b0" + }, { - "name": "dwp.uc.two_child_limit.households_3_children", + "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": 297310.0, - "resolved_fact_period": "2025-04", - "resolved_fact_key": "ledger_aggregate_fact_v2_dca7734c17910c213e397741" - } - ] - }, - "dwp.uc.two_child_limit.children_in_3_children_households": { - "status": "active", - "candidates": [ + "resolved_value": 40518.77777777778, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_bfd9a57597b46f356ef9cfc9" + }, { - "name": "dwp.uc.two_child_limit.children_in_3_children_households", + "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": 891930.0, - "resolved_fact_period": "2025-04", - "resolved_fact_key": "ledger_aggregate_fact_v2_515b2aeb394a9a9a1fd2d195" - } - ] - }, - "dwp.uc.two_child_limit.households_4_children": { - "status": "active", - "candidates": [ + "resolved_value": 37118.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_328ed88b561971d4ee47d852" + }, { - "name": "dwp.uc.two_child_limit.households_4_children", + "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": 117190.0, - "resolved_fact_period": "2025-04", - "resolved_fact_key": "ledger_aggregate_fact_v2_a78a141d4018bdd92678b497" - } - ] - }, - "dwp.uc.two_child_limit.children_in_4_children_households": { - "status": "active", - "candidates": [ + "resolved_value": 37177.77777777778, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_c50c761ddfaab3cbfba62bfd" + }, { - "name": "dwp.uc.two_child_limit.children_in_4_children_households", + "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": 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": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 468760.0, - "resolved_fact_period": "2025-04", - "resolved_fact_key": "ledger_aggregate_fact_v2_adef094060710c5b354e7ac4" - } - ] - }, - "dwp.uc.two_child_limit.households_5_children": { - "status": "active", - "candidates": [ + "resolved_value": 33309.555555555555, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_90b7e15c6554b1c74e7055f3" + }, { - "name": "dwp.uc.two_child_limit.households_5_children", + "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": 37020.0, - "resolved_fact_period": "2025-04", - "resolved_fact_key": "ledger_aggregate_fact_v2_2c9cfcd7cc862c9c1dd57e4d" - } - ] - }, - "dwp.uc.two_child_limit.children_in_5_children_households": { - "status": "active", - "candidates": [ + "resolved_value": 29102.555555555555, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_96f9b06f2d2afb65af9a224a" + }, { - "name": "dwp.uc.two_child_limit.children_in_5_children_households", + "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": 185120.0, - "resolved_fact_period": "2025-04", - "resolved_fact_key": "ledger_aggregate_fact_v2_2134e60314c98faf54df2498" - } - ] - }, - "dwp.uc.two_child_limit.households_6_plus_children": { - "status": "active", - "candidates": [ + "resolved_value": 27534.666666666668, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_e65a50de282324e8c188863a" + }, { - "name": "dwp.uc.two_child_limit.households_6_plus_children", + "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": 18260.0, - "resolved_fact_period": "2025-04", - "resolved_fact_key": "ledger_aggregate_fact_v2_e6302f9f933c14e97fc2fcae" - } - ] - }, - "dwp.uc.two_child_limit.children_in_6_plus_children_households": { - "status": "active", - "candidates": [ + "resolved_value": 25584.777777777777, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_16f48d435925ffa44f4d6871" + }, { - "name": "dwp.uc.two_child_limit.children_in_6_plus_children_households", + "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": 119720.0, - "resolved_fact_period": "2025-04", - "resolved_fact_key": "ledger_aggregate_fact_v2_235cb4e779dd669dad2cd421" - } - ] - }, - "dwp.uc.two_child_limit.households_claimant_pip": { - "status": "active", - "candidates": [ + "resolved_value": 26502.666666666668, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_93fd0534df01d1dade53397e" + }, { - "name": "dwp.uc.two_child_limit.households_claimant_pip", + "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": 65280.0, - "resolved_fact_period": "2025-04", - "resolved_fact_key": "ledger_aggregate_fact_v2_55dd86462d71be247206b5a2" - } - ] - }, - "dwp.uc.two_child_limit.children_claimant_pip": { - "status": "active", - "candidates": [ + "resolved_value": 22927.777777777777, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_ffb787487a36c86f94d25a25" + }, { - "name": "dwp.uc.two_child_limit.children_claimant_pip", + "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": 235270.0, - "resolved_fact_period": "2025-04", - "resolved_fact_key": "ledger_aggregate_fact_v2_fe554fcdcb22a77d71c01537" - } - ] - }, - "dwp.uc.two_child_limit.households_disabled_child_element": { - "status": "active", - "candidates": [ + "resolved_value": 20334.666666666668, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_2f4d504be6f184b7834f2687" + }, { - "name": "dwp.uc.two_child_limit.households_disabled_child_element", + "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": 129630.0, - "resolved_fact_period": "2025-04", - "resolved_fact_key": "ledger_aggregate_fact_v2_535ef3b4afd474ea14d16d27" - } - ] - }, - "dwp.uc.two_child_limit.children_disabled_child_element": { - "status": "active", - "candidates": [ + "resolved_value": 17535.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_719022eef2836c069c4b02d0" + }, { - "name": "dwp.uc.two_child_limit.children_disabled_child_element", + "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": 479460.0, - "resolved_fact_period": "2025-04", - "resolved_fact_key": "ledger_aggregate_fact_v2_ac642b7002518167b56e1537" - } - ] - }, - "ons.population.uk_total": { - "status": "active", - "candidates": [ + "resolved_value": 15399.888888888889, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_3b1d8f6516b32e39ecad3873" + }, { - "name": "ons.population.uk_total", + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_28_800_to_30_000", "status": "active", - "matched_fact_count_overall": 2, - "matched_fact_count_at_or_before_period": 2, + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 69281437.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_6c212695ea75be0d2a635e9b" - } - ] - }, - "ons.population.age_0_9_by_region": { - "status": "active", - "candidates": [ + "resolved_value": 12836.222222222223, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_115a9ea1e35d76db13756149" + }, { - "name": "ons.population.age_0_9_by_region@E12000001", + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_3_600_to_4_800", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "region", - "geography_id": "E12000001", + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 285165.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_c796672d4d88aa11ab15a31a" + "resolved_value": 29027.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_255e8c862df5351282c29809" }, { - "name": "ons.population.age_0_9_by_region@E12000002", + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_4_800_to_6_000", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "region", - "geography_id": "E12000002", + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 865892.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_de0fc360f660f7a387628062" + "resolved_value": 32427.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_32261034f242507c0a7337b3" }, { - "name": "ons.population.age_0_9_by_region@E12000003", + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_6_000_to_7_200", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "region", - "geography_id": "E12000003", + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 626938.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_cbc8ee6d7552af4ba61edcb1" + "resolved_value": 34956.88888888889, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_6f40664df124c4dca50524b8" }, { - "name": "ons.population.age_0_9_by_region@E12000004", + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_7_200_to_8_400", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "region", - "geography_id": "E12000004", + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 543004.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f858f629484e7989a9dc1f0b" + "resolved_value": 37410.77777777778, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_27b091b1a00bc33ab68139f8" }, { - "name": "ons.population.age_0_9_by_region@E12000005", + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_8_400_to_9_600", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "region", - "geography_id": "E12000005", + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 718837.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_de2d9b45547f640fbc7ebb5a" + "resolved_value": 39910.333333333336, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_22b16b470c0b51499fb2f042" }, { - "name": "ons.population.age_0_9_by_region@E12000006", + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_9_600_to_10_800", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "region", - "geography_id": "E12000006", + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 744698.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_fec32a4b3417958969f5f2d9" + "resolved_value": 39368.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_7dbca9e2f8508f1066399b73" }, { - "name": "ons.population.age_0_9_by_region@E12000007", + "name": "dwp/uc_payment_dist/COUPLE_WITH_CHILDREN_annual_payment_10_800_to_12_000", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "region", - "geography_id": "E12000007", + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 1054493.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_cdd134faa924b905bd8a36ad" - }, + "resolved_value": 40805.444444444445, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_23cf62e7e58211e783c52d2e" + } + ] + }, + "dwp.uc.scotland_households_child_under_1": { + "status": "active", + "candidates": [ { - "name": "ons.population.age_0_9_by_region@E12000008", + "name": "dwp.uc.scotland_households_child_under_1", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "region", - "geography_id": "E12000008", + "matched_fact_count_overall": 9, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 1059434.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f0ef951a6bad79d44726fe11" - }, + "resolved_value": 14333.222222222223, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_e88b27e010e08ac8d36d0d30" + } + ] + }, + "dwp.uc.two_child_limit.households_affected": { + "status": "active", + "candidates": [ { - "name": "ons.population.age_0_9_by_region@E12000009", + "name": "dwp.uc.two_child_limit.households_affected", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "region", - "geography_id": "E12000009", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 575506.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_d6a250010241c987a217b54f" - }, + "resolved_value": 469780.0, + "resolved_fact_period": "2025-04", + "resolved_fact_key": "ledger_aggregate_fact_v2_860a48172c62298ceb00c20b" + } + ] + }, + "dwp.uc.two_child_limit.children_affected": { + "status": "active", + "candidates": [ { - "name": "ons.population.age_0_9_by_region@W92000004", + "name": "dwp.uc.two_child_limit.children_affected", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "country", - "geography_id": "W92000004", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 321552.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_eef268031d128fde4eec5d91" - }, + "resolved_value": 597920.0, + "resolved_fact_period": "2025-04", + "resolved_fact_key": "ledger_aggregate_fact_v2_4378e45ac129e036b4a6ca03" + } + ] + }, + "dwp.uc.two_child_limit.children_in_affected_households": { + "status": "active", + "candidates": [ { - "name": "ons.population.age_0_9_by_region@S92000003", + "name": "dwp.uc.two_child_limit.children_in_affected_households", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "country", - "geography_id": "S92000003", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 527989.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f9862176e9cdec891820dfa2" - }, + "resolved_value": 1665540.0, + "resolved_fact_period": "2025-04", + "resolved_fact_key": "ledger_aggregate_fact_v2_05774e34488c474df7f84742" + } + ] + }, + "dwp.uc.two_child_limit.households_3_children": { + "status": "active", + "candidates": [ { - "name": "ons.population.age_0_9_by_region@N92000002", + "name": "dwp.uc.two_child_limit.households_3_children", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "country", - "geography_id": "N92000002", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 229505.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_eb8519582dac5a21a72f8360" + "resolved_value": 297310.0, + "resolved_fact_period": "2025-04", + "resolved_fact_key": "ledger_aggregate_fact_v2_dca7734c17910c213e397741" } ] }, - "ons.population.age_10_19_by_region": { + "dwp.uc.two_child_limit.children_in_3_children_households": { "status": "active", "candidates": [ { - "name": "ons.population.age_10_19_by_region@E12000001", + "name": "dwp.uc.two_child_limit.children_in_3_children_households", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "region", - "geography_id": "E12000001", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 326306.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ce36092d33f50f712f620485" - }, + "resolved_value": 891930.0, + "resolved_fact_period": "2025-04", + "resolved_fact_key": "ledger_aggregate_fact_v2_515b2aeb394a9a9a1fd2d195" + } + ] + }, + "dwp.uc.two_child_limit.households_4_children": { + "status": "active", + "candidates": [ { - "name": "ons.population.age_10_19_by_region@E12000002", + "name": "dwp.uc.two_child_limit.households_4_children", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "region", - "geography_id": "E12000002", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 952864.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f6fc45432de26717dc50151d" - }, + "resolved_value": 117190.0, + "resolved_fact_period": "2025-04", + "resolved_fact_key": "ledger_aggregate_fact_v2_a78a141d4018bdd92678b497" + } + ] + }, + "dwp.uc.two_child_limit.children_in_4_children_households": { + "status": "active", + "candidates": [ { - "name": "ons.population.age_10_19_by_region@E12000003", + "name": "dwp.uc.two_child_limit.children_in_4_children_households", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "region", - "geography_id": "E12000003", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 696780.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f1942c03893e2aeccb514e34" - }, + "resolved_value": 468760.0, + "resolved_fact_period": "2025-04", + "resolved_fact_key": "ledger_aggregate_fact_v2_adef094060710c5b354e7ac4" + } + ] + }, + "dwp.uc.two_child_limit.households_5_children": { + "status": "active", + "candidates": [ { - "name": "ons.population.age_10_19_by_region@E12000004", + "name": "dwp.uc.two_child_limit.households_5_children", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "region", - "geography_id": "E12000004", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 615630.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_d96b0e1445c879a8267ef553" - }, + "resolved_value": 37020.0, + "resolved_fact_period": "2025-04", + "resolved_fact_key": "ledger_aggregate_fact_v2_2c9cfcd7cc862c9c1dd57e4d" + } + ] + }, + "dwp.uc.two_child_limit.children_in_5_children_households": { + "status": "active", + "candidates": [ { - "name": "ons.population.age_10_19_by_region@E12000005", + "name": "dwp.uc.two_child_limit.children_in_5_children_households", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "region", - "geography_id": "E12000005", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 785062.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ff921d8727a6c1ea11548896" - }, + "resolved_value": 185120.0, + "resolved_fact_period": "2025-04", + "resolved_fact_key": "ledger_aggregate_fact_v2_2134e60314c98faf54df2498" + } + ] + }, + "dwp.uc.two_child_limit.households_6_plus_children": { + "status": "active", + "candidates": [ { - "name": "ons.population.age_10_19_by_region@E12000006", + "name": "dwp.uc.two_child_limit.households_6_plus_children", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "region", - "geography_id": "E12000006", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 785091.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_d66fd1b48bc1e9ae4d38f778" - }, + "resolved_value": 18260.0, + "resolved_fact_period": "2025-04", + "resolved_fact_key": "ledger_aggregate_fact_v2_e6302f9f933c14e97fc2fcae" + } + ] + }, + "dwp.uc.two_child_limit.children_in_6_plus_children_households": { + "status": "active", + "candidates": [ { - "name": "ons.population.age_10_19_by_region@E12000007", + "name": "dwp.uc.two_child_limit.children_in_6_plus_children_households", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "region", - "geography_id": "E12000007", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 1068691.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f8b79fef8b80acc1deb297b7" - }, + "resolved_value": 119720.0, + "resolved_fact_period": "2025-04", + "resolved_fact_key": "ledger_aggregate_fact_v2_235cb4e779dd669dad2cd421" + } + ] + }, + "dwp.uc.two_child_limit.households_claimant_pip": { + "status": "active", + "candidates": [ { - "name": "ons.population.age_10_19_by_region@E12000008", + "name": "dwp.uc.two_child_limit.households_claimant_pip", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "region", - "geography_id": "E12000008", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 1183235.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ba4c8f8e6cb789626f191523" - }, + "resolved_value": 65280.0, + "resolved_fact_period": "2025-04", + "resolved_fact_key": "ledger_aggregate_fact_v2_55dd86462d71be247206b5a2" + } + ] + }, + "dwp.uc.two_child_limit.children_claimant_pip": { + "status": "active", + "candidates": [ { - "name": "ons.population.age_10_19_by_region@E12000009", + "name": "dwp.uc.two_child_limit.children_claimant_pip", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "region", - "geography_id": "E12000009", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 677228.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f8ea04bba18d65ed2ac0dd74" - }, + "resolved_value": 235270.0, + "resolved_fact_period": "2025-04", + "resolved_fact_key": "ledger_aggregate_fact_v2_fe554fcdcb22a77d71c01537" + } + ] + }, + "dwp.uc.two_child_limit.households_disabled_child_element": { + "status": "active", + "candidates": [ { - "name": "ons.population.age_10_19_by_region@W92000004", + "name": "dwp.uc.two_child_limit.households_disabled_child_element", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "country", - "geography_id": "W92000004", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 374851.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f040814c3de37f315671a60d" - }, + "resolved_value": 129630.0, + "resolved_fact_period": "2025-04", + "resolved_fact_key": "ledger_aggregate_fact_v2_535ef3b4afd474ea14d16d27" + } + ] + }, + "dwp.uc.two_child_limit.children_disabled_child_element": { + "status": "active", + "candidates": [ { - "name": "ons.population.age_10_19_by_region@S92000003", + "name": "dwp.uc.two_child_limit.children_disabled_child_element", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "country", - "geography_id": "S92000003", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 612935.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_d8cb95f3b8a4eb5725ec1e0d" - }, + "resolved_value": 479460.0, + "resolved_fact_period": "2025-04", + "resolved_fact_key": "ledger_aggregate_fact_v2_ac642b7002518167b56e1537" + } + ] + }, + "ons.population.uk_total": { + "status": "active", + "candidates": [ { - "name": "ons.population.age_10_19_by_region@N92000002", + "name": "ons.population.uk_total", "status": "active", - "matched_fact_count_overall": 20, - "matched_fact_count_at_or_before_period": 20, - "geography_level": "country", - "geography_id": "N92000002", + "matched_fact_count_overall": 2, + "matched_fact_count_at_or_before_period": 2, "resolved_period": 2025, - "resolved_value": 252764.0, + "resolved_value": 69281437.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ef301c6ab42b35eb692e20b0" + "resolved_fact_key": "ledger_aggregate_fact_v2_6c212695ea75be0d2a635e9b" } ] }, - "ons.population.age_20_29_by_region": { + "ons.population.age_0_9_by_region": { "status": "active", "candidates": [ { - "name": "ons.population.age_20_29_by_region@E12000001", + "name": "ons.population.age_0_9_by_region@E12000001", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 343015.0, + "resolved_value": 285165.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ebe0b2ced4987cd701db581a" + "resolved_fact_key": "ledger_aggregate_fact_v2_c796672d4d88aa11ab15a31a" }, { - "name": "ons.population.age_20_29_by_region@E12000002", + "name": "ons.population.age_0_9_by_region@E12000002", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 986590.0, + "resolved_value": 865892.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_fe94b1572d6db93b57407bcd" + "resolved_fact_key": "ledger_aggregate_fact_v2_de0fc360f660f7a387628062" }, { - "name": "ons.population.age_20_29_by_region@E12000003", + "name": "ons.population.age_0_9_by_region@E12000003", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 717479.0, + "resolved_value": 626938.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_cb721748c503839a9229a404" + "resolved_fact_key": "ledger_aggregate_fact_v2_cbc8ee6d7552af4ba61edcb1" }, { - "name": "ons.population.age_20_29_by_region@E12000004", + "name": "ons.population.age_0_9_by_region@E12000004", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 612108.0, + "resolved_value": 543004.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f7be7895d4f680a502caeb4b" + "resolved_fact_key": "ledger_aggregate_fact_v2_f858f629484e7989a9dc1f0b" }, { - "name": "ons.population.age_20_29_by_region@E12000005", + "name": "ons.population.age_0_9_by_region@E12000005", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 766058.0, + "resolved_value": 718837.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f539e665a5478f92346bb4d4" + "resolved_fact_key": "ledger_aggregate_fact_v2_de2d9b45547f640fbc7ebb5a" }, { - "name": "ons.population.age_20_29_by_region@E12000006", + "name": "ons.population.age_0_9_by_region@E12000006", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 727218.0, + "resolved_value": 744698.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ff31c89cfa957bdd279c9947" + "resolved_fact_key": "ledger_aggregate_fact_v2_fec32a4b3417958969f5f2d9" }, { - "name": "ons.population.age_20_29_by_region@E12000007", + "name": "ons.population.age_0_9_by_region@E12000007", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 1508607.0, + "resolved_value": 1054493.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f0ffc4e5795625b9238d6dde" + "resolved_fact_key": "ledger_aggregate_fact_v2_cdd134faa924b905bd8a36ad" }, { - "name": "ons.population.age_20_29_by_region@E12000008", + "name": "ons.population.age_0_9_by_region@E12000008", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 1066121.0, + "resolved_value": 1059434.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f3a720e9d1d4664e83307a9a" + "resolved_fact_key": "ledger_aggregate_fact_v2_f0ef951a6bad79d44726fe11" }, { - "name": "ons.population.age_20_29_by_region@E12000009", + "name": "ons.population.age_0_9_by_region@E12000009", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 684393.0, + "resolved_value": 575506.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_fe520978b4f4105aa292a3f5" + "resolved_fact_key": "ledger_aggregate_fact_v2_d6a250010241c987a217b54f" }, { - "name": "ons.population.age_20_29_by_region@W92000004", + "name": "ons.population.age_0_9_by_region@W92000004", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "country", "geography_id": "W92000004", "resolved_period": 2025, - "resolved_value": 380557.0, + "resolved_value": 321552.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_fe44434fdb2e33179826ee35" + "resolved_fact_key": "ledger_aggregate_fact_v2_eef268031d128fde4eec5d91" }, { - "name": "ons.population.age_20_29_by_region@S92000003", + "name": "ons.population.age_0_9_by_region@S92000003", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "country", "geography_id": "S92000003", "resolved_period": 2025, - "resolved_value": 703554.0, + "resolved_value": 527989.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_dadba40aea2eb5dcdb2e5d6e" + "resolved_fact_key": "ledger_aggregate_fact_v2_f9862176e9cdec891820dfa2" }, { - "name": "ons.population.age_20_29_by_region@N92000002", + "name": "ons.population.age_0_9_by_region@N92000002", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "country", "geography_id": "N92000002", "resolved_period": 2025, - "resolved_value": 219525.0, + "resolved_value": 229505.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_afe826389a344a01c4be2862" + "resolved_fact_key": "ledger_aggregate_fact_v2_eb8519582dac5a21a72f8360" } ] }, - "ons.population.age_30_39_by_region": { + "ons.population.age_10_19_by_region": { "status": "active", "candidates": [ { - "name": "ons.population.age_30_39_by_region@E12000001", + "name": "ons.population.age_10_19_by_region@E12000001", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 363357.0, + "resolved_value": 326306.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ceb94ab430de1f0bc8c19ce4" + "resolved_fact_key": "ledger_aggregate_fact_v2_ce36092d33f50f712f620485" }, { - "name": "ons.population.age_30_39_by_region@E12000002", + "name": "ons.population.age_10_19_by_region@E12000002", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 1064968.0, + "resolved_value": 952864.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_eeb6e6194f0405a4b7010913" + "resolved_fact_key": "ledger_aggregate_fact_v2_f6fc45432de26717dc50151d" }, { - "name": "ons.population.age_30_39_by_region@E12000003", + "name": "ons.population.age_10_19_by_region@E12000003", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 770809.0, + "resolved_value": 696780.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ebc2a149da9287a3a2b28d45" + "resolved_fact_key": "ledger_aggregate_fact_v2_f1942c03893e2aeccb514e34" }, { - "name": "ons.population.age_30_39_by_region@E12000004", + "name": "ons.population.age_10_19_by_region@E12000004", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 676709.0, + "resolved_value": 615630.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_fefffb16e9e1a25fd0da3435" + "resolved_fact_key": "ledger_aggregate_fact_v2_d96b0e1445c879a8267ef553" }, { - "name": "ons.population.age_30_39_by_region@E12000005", + "name": "ons.population.age_10_19_by_region@E12000005", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 839114.0, + "resolved_value": 785062.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_eaee3d4e99154692dbad24b9" + "resolved_fact_key": "ledger_aggregate_fact_v2_ff921d8727a6c1ea11548896" }, { - "name": "ons.population.age_30_39_by_region@E12000006", + "name": "ons.population.age_10_19_by_region@E12000006", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 895639.0, + "resolved_value": 785091.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_fbb89267af1b9a1a349f3274" + "resolved_fact_key": "ledger_aggregate_fact_v2_d66fd1b48bc1e9ae4d38f778" }, { - "name": "ons.population.age_30_39_by_region@E12000007", + "name": "ons.population.age_10_19_by_region@E12000007", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 1537372.0, + "resolved_value": 1068691.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_c7d5874566b099143ddbac28" + "resolved_fact_key": "ledger_aggregate_fact_v2_f8b79fef8b80acc1deb297b7" }, { - "name": "ons.population.age_30_39_by_region@E12000008", + "name": "ons.population.age_10_19_by_region@E12000008", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 1284552.0, + "resolved_value": 1183235.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ff4aa5baed49b53887253b70" + "resolved_fact_key": "ledger_aggregate_fact_v2_ba4c8f8e6cb789626f191523" }, { - "name": "ons.population.age_30_39_by_region@E12000009", + "name": "ons.population.age_10_19_by_region@E12000009", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 742082.0, + "resolved_value": 677228.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f8c6ce01a5aa83ce392ccf3a" + "resolved_fact_key": "ledger_aggregate_fact_v2_f8ea04bba18d65ed2ac0dd74" }, { - "name": "ons.population.age_30_39_by_region@W92000004", + "name": "ons.population.age_10_19_by_region@W92000004", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "country", "geography_id": "W92000004", "resolved_period": 2025, - "resolved_value": 410248.0, + "resolved_value": 374851.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_fa74c4da871af17e8af431d6" + "resolved_fact_key": "ledger_aggregate_fact_v2_f040814c3de37f315671a60d" }, { - "name": "ons.population.age_30_39_by_region@S92000003", + "name": "ons.population.age_10_19_by_region@S92000003", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "country", "geography_id": "S92000003", "resolved_period": 2025, - "resolved_value": 733480.0, + "resolved_value": 612935.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f045b554aebb8f1b21df5a5c" + "resolved_fact_key": "ledger_aggregate_fact_v2_d8cb95f3b8a4eb5725ec1e0d" }, { - "name": "ons.population.age_30_39_by_region@N92000002", + "name": "ons.population.age_10_19_by_region@N92000002", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "country", "geography_id": "N92000002", "resolved_period": 2025, - "resolved_value": 254067.0, + "resolved_value": 252764.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_eb383d007487ef1df14f4946" + "resolved_fact_key": "ledger_aggregate_fact_v2_ef301c6ab42b35eb692e20b0" } ] }, - "ons.population.age_40_49_by_region": { + "ons.population.age_20_29_by_region": { "status": "active", "candidates": [ { - "name": "ons.population.age_40_49_by_region@E12000001", + "name": "ons.population.age_20_29_by_region@E12000001", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 320860.0, + "resolved_value": 343015.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f081bcb6c2e794e8ec3b0161" + "resolved_fact_key": "ledger_aggregate_fact_v2_ebe0b2ced4987cd701db581a" }, { - "name": "ons.population.age_40_49_by_region@E12000002", + "name": "ons.population.age_20_29_by_region@E12000002", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 930967.0, + "resolved_value": 986590.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f7744877e123c00b96511818" + "resolved_fact_key": "ledger_aggregate_fact_v2_fe94b1572d6db93b57407bcd" }, { - "name": "ons.population.age_40_49_by_region@E12000003", + "name": "ons.population.age_20_29_by_region@E12000003", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 674349.0, + "resolved_value": 717479.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_d6e708c298712163b552e6c7" + "resolved_fact_key": "ledger_aggregate_fact_v2_cb721748c503839a9229a404" }, { - "name": "ons.population.age_40_49_by_region@E12000004", + "name": "ons.population.age_20_29_by_region@E12000004", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 610611.0, + "resolved_value": 612108.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_e861cd162b6b06a1107ca177" + "resolved_fact_key": "ledger_aggregate_fact_v2_f7be7895d4f680a502caeb4b" }, { - "name": "ons.population.age_40_49_by_region@E12000005", + "name": "ons.population.age_20_29_by_region@E12000005", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 746341.0, + "resolved_value": 766058.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_fa28a64a0b8ec87502b44a9f" + "resolved_fact_key": "ledger_aggregate_fact_v2_f539e665a5478f92346bb4d4" }, { - "name": "ons.population.age_40_49_by_region@E12000006", + "name": "ons.population.age_20_29_by_region@E12000006", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 838578.0, + "resolved_value": 727218.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f94400c214a5c3c3847cc562" + "resolved_fact_key": "ledger_aggregate_fact_v2_ff31c89cfa957bdd279c9947" }, { - "name": "ons.population.age_40_49_by_region@E12000007", + "name": "ons.population.age_20_29_by_region@E12000007", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 1268973.0, + "resolved_value": 1508607.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_fb8228a78efb8cdb3dd46764" + "resolved_fact_key": "ledger_aggregate_fact_v2_f0ffc4e5795625b9238d6dde" }, { - "name": "ons.population.age_40_49_by_region@E12000008", + "name": "ons.population.age_20_29_by_region@E12000008", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 1255951.0, + "resolved_value": 1066121.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_edac715ea904f29dbd3332f9" + "resolved_fact_key": "ledger_aggregate_fact_v2_f3a720e9d1d4664e83307a9a" }, { - "name": "ons.population.age_40_49_by_region@E12000009", + "name": "ons.population.age_20_29_by_region@E12000009", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 688417.0, + "resolved_value": 684393.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f6ecf5ebd09a5d638cf6dd15" + "resolved_fact_key": "ledger_aggregate_fact_v2_fe520978b4f4105aa292a3f5" }, { - "name": "ons.population.age_40_49_by_region@W92000004", + "name": "ons.population.age_20_29_by_region@W92000004", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "country", "geography_id": "W92000004", "resolved_period": 2025, - "resolved_value": 365951.0, + "resolved_value": 380557.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f6496b4ebd88792d288206a1" + "resolved_fact_key": "ledger_aggregate_fact_v2_fe44434fdb2e33179826ee35" }, { - "name": "ons.population.age_40_49_by_region@S92000003", + "name": "ons.population.age_20_29_by_region@S92000003", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "country", "geography_id": "S92000003", "resolved_period": 2025, - "resolved_value": 675368.0, + "resolved_value": 703554.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_e159eb5144ceae58dccb4dc0" + "resolved_fact_key": "ledger_aggregate_fact_v2_dadba40aea2eb5dcdb2e5d6e" }, { - "name": "ons.population.age_40_49_by_region@N92000002", + "name": "ons.population.age_20_29_by_region@N92000002", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "country", "geography_id": "N92000002", "resolved_period": 2025, - "resolved_value": 246140.0, + "resolved_value": 219525.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_b71979cb27997e512ea68888" + "resolved_fact_key": "ledger_aggregate_fact_v2_afe826389a344a01c4be2862" } ] }, - "ons.population.age_50_59_by_region": { + "ons.population.age_30_39_by_region": { "status": "active", "candidates": [ { - "name": "ons.population.age_50_59_by_region@E12000001", + "name": "ons.population.age_30_39_by_region@E12000001", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 360074.0, + "resolved_value": 363357.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f8febade5d1aa4eff5515f79" + "resolved_fact_key": "ledger_aggregate_fact_v2_ceb94ab430de1f0bc8c19ce4" }, { - "name": "ons.population.age_50_59_by_region@E12000002", + "name": "ons.population.age_30_39_by_region@E12000002", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 995810.0, + "resolved_value": 1064968.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ce316c567d2d3919bad74247" + "resolved_fact_key": "ledger_aggregate_fact_v2_eeb6e6194f0405a4b7010913" }, { - "name": "ons.population.age_50_59_by_region@E12000003", + "name": "ons.population.age_30_39_by_region@E12000003", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 736903.0, + "resolved_value": 770809.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f07e470e70895701083be7b4" + "resolved_fact_key": "ledger_aggregate_fact_v2_ebc2a149da9287a3a2b28d45" }, { - "name": "ons.population.age_50_59_by_region@E12000004", + "name": "ons.population.age_30_39_by_region@E12000004", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 676307.0, + "resolved_value": 676709.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_fc3b848c0d546908542f7522" + "resolved_fact_key": "ledger_aggregate_fact_v2_fefffb16e9e1a25fd0da3435" }, { - "name": "ons.population.age_50_59_by_region@E12000005", + "name": "ons.population.age_30_39_by_region@E12000005", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 794143.0, + "resolved_value": 839114.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_eced9fed4ca113ee655134b7" + "resolved_fact_key": "ledger_aggregate_fact_v2_eaee3d4e99154692dbad24b9" }, { - "name": "ons.population.age_50_59_by_region@E12000006", + "name": "ons.population.age_30_39_by_region@E12000006", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 866946.0, + "resolved_value": 895639.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f8011436193a375ac63a33af" + "resolved_fact_key": "ledger_aggregate_fact_v2_fbb89267af1b9a1a349f3274" }, { - "name": "ons.population.age_50_59_by_region@E12000007", + "name": "ons.population.age_30_39_by_region@E12000007", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 1087518.0, + "resolved_value": 1537372.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_c0999183e74a6f6978377427" + "resolved_fact_key": "ledger_aggregate_fact_v2_c7d5874566b099143ddbac28" }, { - "name": "ons.population.age_50_59_by_region@E12000008", + "name": "ons.population.age_30_39_by_region@E12000008", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 1287719.0, + "resolved_value": 1284552.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f5b6740db34f7f702bb230fb" + "resolved_fact_key": "ledger_aggregate_fact_v2_ff4aa5baed49b53887253b70" }, { - "name": "ons.population.age_50_59_by_region@E12000009", + "name": "ons.population.age_30_39_by_region@E12000009", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 784718.0, + "resolved_value": 742082.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_cf32f90895454cdb82d3a611" + "resolved_fact_key": "ledger_aggregate_fact_v2_f8c6ce01a5aa83ce392ccf3a" }, { - "name": "ons.population.age_50_59_by_region@W92000004", + "name": "ons.population.age_30_39_by_region@W92000004", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "country", "geography_id": "W92000004", "resolved_period": 2025, - "resolved_value": 424694.0, + "resolved_value": 410248.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ed905faab304a40013587ffd" + "resolved_fact_key": "ledger_aggregate_fact_v2_fa74c4da871af17e8af431d6" }, { - "name": "ons.population.age_50_59_by_region@S92000003", + "name": "ons.population.age_30_39_by_region@S92000003", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "country", "geography_id": "S92000003", "resolved_period": 2025, - "resolved_value": 766715.0, + "resolved_value": 733480.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f332e28940d1c94b1e2dec31" + "resolved_fact_key": "ledger_aggregate_fact_v2_f045b554aebb8f1b21df5a5c" }, { - "name": "ons.population.age_50_59_by_region@N92000002", + "name": "ons.population.age_30_39_by_region@N92000002", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "country", "geography_id": "N92000002", "resolved_period": 2025, - "resolved_value": 255269.0, + "resolved_value": 254067.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f786aada1891e9f309902c1c" + "resolved_fact_key": "ledger_aggregate_fact_v2_eb383d007487ef1df14f4946" } ] }, - "ons.population.age_60_69_by_region": { + "ons.population.age_40_49_by_region": { "status": "active", "candidates": [ { - "name": "ons.population.age_60_69_by_region@E12000001", + "name": "ons.population.age_40_49_by_region@E12000001", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 349719.0, + "resolved_value": 320860.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ff4466f1cb6fb29ce9b132b0" + "resolved_fact_key": "ledger_aggregate_fact_v2_f081bcb6c2e794e8ec3b0161" }, { - "name": "ons.population.age_60_69_by_region@E12000002", + "name": "ons.population.age_40_49_by_region@E12000002", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 884043.0, + "resolved_value": 930967.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f861d328dbb8a01929eb1e91" + "resolved_fact_key": "ledger_aggregate_fact_v2_f7744877e123c00b96511818" }, { - "name": "ons.population.age_60_69_by_region@E12000003", + "name": "ons.population.age_40_49_by_region@E12000003", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 652931.0, + "resolved_value": 674349.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f9ab6846d67db88fda81fa30" + "resolved_fact_key": "ledger_aggregate_fact_v2_d6e708c298712163b552e6c7" }, { - "name": "ons.population.age_60_69_by_region@E12000004", + "name": "ons.population.age_40_49_by_region@E12000004", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 591429.0, + "resolved_value": 610611.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_e884ef403c95938c7ebf961b" + "resolved_fact_key": "ledger_aggregate_fact_v2_e861cd162b6b06a1107ca177" }, { - "name": "ons.population.age_60_69_by_region@E12000005", + "name": "ons.population.age_40_49_by_region@E12000005", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 677922.0, + "resolved_value": 746341.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_fd4d62d07376896553d9fb66" + "resolved_fact_key": "ledger_aggregate_fact_v2_fa28a64a0b8ec87502b44a9f" }, { - "name": "ons.population.age_60_69_by_region@E12000006", + "name": "ons.population.age_40_49_by_region@E12000006", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 744651.0, + "resolved_value": 838578.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f77f96051d8340645148d138" + "resolved_fact_key": "ledger_aggregate_fact_v2_f94400c214a5c3c3847cc562" }, { - "name": "ons.population.age_60_69_by_region@E12000007", + "name": "ons.population.age_40_49_by_region@E12000007", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 787666.0, + "resolved_value": 1268973.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_e9f63f0939b77a41ec815de0" + "resolved_fact_key": "ledger_aggregate_fact_v2_fb8228a78efb8cdb3dd46764" }, { - "name": "ons.population.age_60_69_by_region@E12000008", + "name": "ons.population.age_40_49_by_region@E12000008", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 1089421.0, + "resolved_value": 1255951.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f8667b0358441f18c2f8e548" + "resolved_fact_key": "ledger_aggregate_fact_v2_edac715ea904f29dbd3332f9" }, { - "name": "ons.population.age_60_69_by_region@E12000009", + "name": "ons.population.age_40_49_by_region@E12000009", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 736639.0, + "resolved_value": 688417.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f923cb193de625676c40b5c4" + "resolved_fact_key": "ledger_aggregate_fact_v2_f6ecf5ebd09a5d638cf6dd15" }, { - "name": "ons.population.age_60_69_by_region@W92000004", + "name": "ons.population.age_40_49_by_region@W92000004", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "country", "geography_id": "W92000004", "resolved_period": 2025, - "resolved_value": 401775.0, + "resolved_value": 365951.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f518ad65099be8a424a62142" + "resolved_fact_key": "ledger_aggregate_fact_v2_f6496b4ebd88792d288206a1" }, { - "name": "ons.population.age_60_69_by_region@S92000003", + "name": "ons.population.age_40_49_by_region@S92000003", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "country", "geography_id": "S92000003", "resolved_period": 2025, - "resolved_value": 721727.0, + "resolved_value": 675368.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_e893656e104d3c1c375fa5e7" + "resolved_fact_key": "ledger_aggregate_fact_v2_e159eb5144ceae58dccb4dc0" }, { - "name": "ons.population.age_60_69_by_region@N92000002", + "name": "ons.population.age_40_49_by_region@N92000002", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "country", "geography_id": "N92000002", "resolved_period": 2025, - "resolved_value": 223111.0, + "resolved_value": 246140.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f9f6e8f32b460fefc304aeee" + "resolved_fact_key": "ledger_aggregate_fact_v2_b71979cb27997e512ea68888" } ] }, - "ons.population.age_70_79_by_region": { + "ons.population.age_50_59_by_region": { "status": "active", "candidates": [ { - "name": "ons.population.age_70_79_by_region@E12000001", + "name": "ons.population.age_50_59_by_region@E12000001", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 265573.0, + "resolved_value": 360074.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f135bc83bf0e2495ccab922b" + "resolved_fact_key": "ledger_aggregate_fact_v2_f8febade5d1aa4eff5515f79" }, { - "name": "ons.population.age_70_79_by_region@E12000002", + "name": "ons.population.age_50_59_by_region@E12000002", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 669277.0, + "resolved_value": 995810.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f18853f5a9046c59334188d3" + "resolved_fact_key": "ledger_aggregate_fact_v2_ce316c567d2d3919bad74247" }, { - "name": "ons.population.age_70_79_by_region@E12000003", + "name": "ons.population.age_50_59_by_region@E12000003", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 504131.0, + "resolved_value": 736903.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f71c0090e322cc6b02a80193" + "resolved_fact_key": "ledger_aggregate_fact_v2_f07e470e70895701083be7b4" }, { - "name": "ons.population.age_70_79_by_region@E12000004", + "name": "ons.population.age_50_59_by_region@E12000004", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 466530.0, + "resolved_value": 676307.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f1eaa2a27d34d75f4fcaf147" + "resolved_fact_key": "ledger_aggregate_fact_v2_fc3b848c0d546908542f7522" }, { - "name": "ons.population.age_70_79_by_region@E12000005", + "name": "ons.population.age_50_59_by_region@E12000005", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 528207.0, + "resolved_value": 794143.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f6ed607ecc20a6bd1c0c8bef" + "resolved_fact_key": "ledger_aggregate_fact_v2_eced9fed4ca113ee655134b7" }, { - "name": "ons.population.age_70_79_by_region@E12000006", + "name": "ons.population.age_50_59_by_region@E12000006", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 599882.0, + "resolved_value": 866946.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ef2c110c9bb5462379338b17" + "resolved_fact_key": "ledger_aggregate_fact_v2_f8011436193a375ac63a33af" }, { - "name": "ons.population.age_70_79_by_region@E12000007", + "name": "ons.population.age_50_59_by_region@E12000007", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 485057.0, + "resolved_value": 1087518.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_d9b7f415855dd808a1aee77c" + "resolved_fact_key": "ledger_aggregate_fact_v2_c0999183e74a6f6978377427" }, { - "name": "ons.population.age_70_79_by_region@E12000008", + "name": "ons.population.age_50_59_by_region@E12000008", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 865392.0, + "resolved_value": 1287719.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_dea0c6655095781f862cf7ac" + "resolved_fact_key": "ledger_aggregate_fact_v2_f5b6740db34f7f702bb230fb" }, { - "name": "ons.population.age_70_79_by_region@E12000009", + "name": "ons.population.age_50_59_by_region@E12000009", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 618254.0, + "resolved_value": 784718.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_e8898137aad748593321b2fb" + "resolved_fact_key": "ledger_aggregate_fact_v2_cf32f90895454cdb82d3a611" }, { - "name": "ons.population.age_70_79_by_region@W92000004", + "name": "ons.population.age_50_59_by_region@W92000004", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "country", "geography_id": "W92000004", "resolved_period": 2025, - "resolved_value": 321668.0, + "resolved_value": 424694.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f1de159eac6f90c69f7aef22" + "resolved_fact_key": "ledger_aggregate_fact_v2_ed905faab304a40013587ffd" }, { - "name": "ons.population.age_70_79_by_region@S92000003", + "name": "ons.population.age_50_59_by_region@S92000003", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "country", "geography_id": "S92000003", "resolved_period": 2025, - "resolved_value": 519252.0, + "resolved_value": 766715.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f506930ca553f609fe076c9c" + "resolved_fact_key": "ledger_aggregate_fact_v2_f332e28940d1c94b1e2dec31" }, { - "name": "ons.population.age_70_79_by_region@N92000002", + "name": "ons.population.age_50_59_by_region@N92000002", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "country", "geography_id": "N92000002", "resolved_period": 2025, - "resolved_value": 155382.0, + "resolved_value": 255269.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ec559b1c9b44b3acc8de9073" + "resolved_fact_key": "ledger_aggregate_fact_v2_f786aada1891e9f309902c1c" } ] }, - "ons.population.age_80_89_by_region": { + "ons.population.age_60_69_by_region": { "status": "active", "candidates": [ { - "name": "ons.population.age_80_89_by_region@E12000001", + "name": "ons.population.age_60_69_by_region@E12000001", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 122118.0, + "resolved_value": 349719.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_eec7f31aac48f686e0d9a343" + "resolved_fact_key": "ledger_aggregate_fact_v2_ff4466f1cb6fb29ce9b132b0" }, { - "name": "ons.population.age_80_89_by_region@E12000002", + "name": "ons.population.age_60_69_by_region@E12000002", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 324141.0, + "resolved_value": 884043.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f5dcf6bfa6186fc6200bb9cd" + "resolved_fact_key": "ledger_aggregate_fact_v2_f861d328dbb8a01929eb1e91" }, { - "name": "ons.population.age_80_89_by_region@E12000003", + "name": "ons.population.age_60_69_by_region@E12000003", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 243274.0, + "resolved_value": 652931.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ed30948324557f6bd25a0064" + "resolved_fact_key": "ledger_aggregate_fact_v2_f9ab6846d67db88fda81fa30" }, { - "name": "ons.population.age_80_89_by_region@E12000004", + "name": "ons.population.age_60_69_by_region@E12000004", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 225626.0, + "resolved_value": 591429.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f32be81803e3b527361467e0" + "resolved_fact_key": "ledger_aggregate_fact_v2_e884ef403c95938c7ebf961b" }, { - "name": "ons.population.age_80_89_by_region@E12000005", + "name": "ons.population.age_60_69_by_region@E12000005", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 275030.0, + "resolved_value": 677922.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f252d1b20801bc91a40a9a12" + "resolved_fact_key": "ledger_aggregate_fact_v2_fd4d62d07376896553d9fb66" }, { - "name": "ons.population.age_80_89_by_region@E12000006", + "name": "ons.population.age_60_69_by_region@E12000006", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 305691.0, + "resolved_value": 744651.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_d387c1edf10113b2b8602fc3" + "resolved_fact_key": "ledger_aggregate_fact_v2_f77f96051d8340645148d138" }, { - "name": "ons.population.age_80_89_by_region@E12000007", + "name": "ons.population.age_60_69_by_region@E12000007", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 237061.0, + "resolved_value": 787666.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_fa7d5971f83d3ece501a33c7" + "resolved_fact_key": "ledger_aggregate_fact_v2_e9f63f0939b77a41ec815de0" }, { - "name": "ons.population.age_80_89_by_region@E12000008", + "name": "ons.population.age_60_69_by_region@E12000008", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 447958.0, + "resolved_value": 1089421.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_bb61f66f5159481b73615674" + "resolved_fact_key": "ledger_aggregate_fact_v2_f8667b0358441f18c2f8e548" }, { - "name": "ons.population.age_80_89_by_region@E12000009", + "name": "ons.population.age_60_69_by_region@E12000009", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "region", "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 313605.0, + "resolved_value": 736639.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ea5f3461bbda1967761f0d48" + "resolved_fact_key": "ledger_aggregate_fact_v2_f923cb193de625676c40b5c4" }, { - "name": "ons.population.age_80_89_by_region@W92000004", + "name": "ons.population.age_60_69_by_region@W92000004", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "country", "geography_id": "W92000004", "resolved_period": 2025, - "resolved_value": 154319.0, + "resolved_value": 401775.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_d766d2003f1fd56635d53589" + "resolved_fact_key": "ledger_aggregate_fact_v2_f518ad65099be8a424a62142" }, { - "name": "ons.population.age_80_89_by_region@S92000003", + "name": "ons.population.age_60_69_by_region@S92000003", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "country", "geography_id": "S92000003", "resolved_period": 2025, - "resolved_value": 238904.0, + "resolved_value": 721727.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f206015a88100a72b83bbe9f" + "resolved_fact_key": "ledger_aggregate_fact_v2_e893656e104d3c1c375fa5e7" }, { - "name": "ons.population.age_80_89_by_region@N92000002", + "name": "ons.population.age_60_69_by_region@N92000002", "status": "active", "matched_fact_count_overall": 20, "matched_fact_count_at_or_before_period": 20, "geography_level": "country", "geography_id": "N92000002", "resolved_period": 2025, - "resolved_value": 77441.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_fb5795d1ea12a7a7005a9ee9" - } - ] - }, - "ons.population.female_0_4": { - "status": "active", - "candidates": [ - { - "name": "ons.population.female_0_4", - "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, - "resolved_period": 2025, - "resolved_value": 1744355.0, + "resolved_value": 223111.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_fb55d5f20f74ee39a1e8fcb4" + "resolved_fact_key": "ledger_aggregate_fact_v2_f9f6e8f32b460fefc304aeee" } ] }, - "ons.population.female_10_14": { + "ons.population.age_70_79_by_region": { "status": "active", "candidates": [ { - "name": "ons.population.female_10_14", + "name": "ons.population.age_70_79_by_region@E12000001", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 2052052.0, + "resolved_value": 265573.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f9a457edc9491e5810c39f5f" - } - ] - }, - "ons.population.female_15_19": { - "status": "active", - "candidates": [ + "resolved_fact_key": "ledger_aggregate_fact_v2_f135bc83bf0e2495ccab922b" + }, { - "name": "ons.population.female_15_19", + "name": "ons.population.age_70_79_by_region@E12000002", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 2002835.0, + "resolved_value": 669277.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f0e2139b52c615925c9075dd" - } - ] - }, - "ons.population.female_20_24": { - "status": "active", - "candidates": [ + "resolved_fact_key": "ledger_aggregate_fact_v2_f18853f5a9046c59334188d3" + }, { - "name": "ons.population.female_20_24", + "name": "ons.population.age_70_79_by_region@E12000003", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 2034609.0, + "resolved_value": 504131.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_b4e36c0dc0a924667be47bbc" - } - ] - }, - "ons.population.female_25_29": { - "status": "active", - "candidates": [ + "resolved_fact_key": "ledger_aggregate_fact_v2_f71c0090e322cc6b02a80193" + }, { - "name": "ons.population.female_25_29", + "name": "ons.population.age_70_79_by_region@E12000004", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 2291610.0, + "resolved_value": 466530.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_d9d6a711d0cbc4919a8643c0" - } - ] - }, - "ons.population.female_30_34": { - "status": "active", - "candidates": [ + "resolved_fact_key": "ledger_aggregate_fact_v2_f1eaa2a27d34d75f4fcaf147" + }, { - "name": "ons.population.female_30_34", + "name": "ons.population.age_70_79_by_region@E12000005", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 2463301.0, + "resolved_value": 528207.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f5b1d6c400b912b05c79c477" - } - ] - }, - "ons.population.female_35_39": { - "status": "active", - "candidates": [ + "resolved_fact_key": "ledger_aggregate_fact_v2_f6ed607ecc20a6bd1c0c8bef" + }, { - "name": "ons.population.female_35_39", + "name": "ons.population.age_70_79_by_region@E12000006", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, - "resolved_period": 2025, - "resolved_value": 2472291.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f927cc9b3eab0494caf1479f" - } - ] - }, - "ons.population.female_40_44": { - "status": "active", - "candidates": [ + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000006", + "resolved_period": 2025, + "resolved_value": 599882.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_ef2c110c9bb5462379338b17" + }, { - "name": "ons.population.female_40_44", + "name": "ons.population.age_70_79_by_region@E12000007", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 2333109.0, + "resolved_value": 485057.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_d9cdf746ffe5df2fd3d85279" - } - ] - }, - "ons.population.female_45_49": { - "status": "active", - "candidates": [ + "resolved_fact_key": "ledger_aggregate_fact_v2_d9b7f415855dd808a1aee77c" + }, { - "name": "ons.population.female_45_49", + "name": "ons.population.age_70_79_by_region@E12000008", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 2088285.0, + "resolved_value": 865392.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_b679e4770750b86af6b1756b" - } - ] - }, - "ons.population.female_50_54": { - "status": "active", - "candidates": [ + "resolved_fact_key": "ledger_aggregate_fact_v2_dea0c6655095781f862cf7ac" + }, { - "name": "ons.population.female_50_54", + "name": "ons.population.age_70_79_by_region@E12000009", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 2255231.0, + "resolved_value": 618254.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_65b8a4cc92c4565b00007877" - } - ] - }, - "ons.population.female_55_59": { - "status": "active", - "candidates": [ + "resolved_fact_key": "ledger_aggregate_fact_v2_e8898137aad748593321b2fb" + }, { - "name": "ons.population.female_55_59", + "name": "ons.population.age_70_79_by_region@W92000004", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "country", + "geography_id": "W92000004", "resolved_period": 2025, - "resolved_value": 2360202.0, + "resolved_value": 321668.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ba87a7d66cb9f8694b952159" - } - ] - }, - "ons.population.female_5_9": { - "status": "active", - "candidates": [ + "resolved_fact_key": "ledger_aggregate_fact_v2_f1de159eac6f90c69f7aef22" + }, { - "name": "ons.population.female_5_9", + "name": "ons.population.age_70_79_by_region@S92000003", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "country", + "geography_id": "S92000003", "resolved_period": 2025, - "resolved_value": 1941658.0, + "resolved_value": 519252.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_bca9c38347810a944bbd08b3" - } - ] - }, - "ons.population.female_60_64": { - "status": "active", - "candidates": [ + "resolved_fact_key": "ledger_aggregate_fact_v2_f506930ca553f609fe076c9c" + }, { - "name": "ons.population.female_60_64", + "name": "ons.population.age_70_79_by_region@N92000002", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "country", + "geography_id": "N92000002", "resolved_period": 2025, - "resolved_value": 2193915.0, + "resolved_value": 155382.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f3b1f78e4b752640465521f0" + "resolved_fact_key": "ledger_aggregate_fact_v2_ec559b1c9b44b3acc8de9073" } ] }, - "ons.population.female_65_69": { + "ons.population.age_80_89_by_region": { "status": "active", "candidates": [ { - "name": "ons.population.female_65_69", + "name": "ons.population.age_80_89_by_region@E12000001", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 1838574.0, + "resolved_value": 122118.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_dbeb583b16bcb530ee1296e1" - } - ] - }, - "ons.population.female_70_74": { - "status": "active", - "candidates": [ + "resolved_fact_key": "ledger_aggregate_fact_v2_eec7f31aac48f686e0d9a343" + }, { - "name": "ons.population.female_70_74", + "name": "ons.population.age_80_89_by_region@E12000002", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 1622996.0, + "resolved_value": 324141.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_b962c8b6d3d68808831aad6a" - } - ] - }, - "ons.population.female_75_79": { - "status": "active", - "candidates": [ + "resolved_fact_key": "ledger_aggregate_fact_v2_f5dcf6bfa6186fc6200bb9cd" + }, { - "name": "ons.population.female_75_79", + "name": "ons.population.age_80_89_by_region@E12000003", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 1551183.0, + "resolved_value": 243274.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_aa0a8a7ab2d3894db7a7d7aa" - } - ] - }, - "ons.population.female_80_84": { - "status": "active", - "candidates": [ + "resolved_fact_key": "ledger_aggregate_fact_v2_ed30948324557f6bd25a0064" + }, { - "name": "ons.population.female_80_84", + "name": "ons.population.age_80_89_by_region@E12000004", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 1024480.0, + "resolved_value": 225626.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_fcdc2e2f119de0b65769ef90" - } - ] - }, - "ons.population.female_85_89": { - "status": "active", - "candidates": [ + "resolved_fact_key": "ledger_aggregate_fact_v2_f32be81803e3b527361467e0" + }, { - "name": "ons.population.female_85_89", + "name": "ons.population.age_80_89_by_region@E12000005", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 665267.0, + "resolved_value": 275030.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_c76df00751abbf64b5ab056b" - } - ] - }, - "ons.population.female_90_plus": { - "status": "active", - "candidates": [ + "resolved_fact_key": "ledger_aggregate_fact_v2_f252d1b20801bc91a40a9a12" + }, { - "name": "ons.population.female_90_plus", + "name": "ons.population.age_80_89_by_region@E12000006", "status": "active", - "matched_fact_count_overall": 2, - "matched_fact_count_at_or_before_period": 2, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 414716.0, + "resolved_value": 305691.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_009d5dd487f317483e9d7b3d" - } - ] - }, - "ons.population.male_0_4": { - "status": "active", - "candidates": [ + "resolved_fact_key": "ledger_aggregate_fact_v2_d387c1edf10113b2b8602fc3" + }, { - "name": "ons.population.male_0_4", + "name": "ons.population.age_80_89_by_region@E12000007", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 1829801.0, + "resolved_value": 237061.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ccdfe5dde7b46840510e21d2" - } - ] - }, - "ons.population.male_10_14": { - "status": "active", - "candidates": [ + "resolved_fact_key": "ledger_aggregate_fact_v2_fa7d5971f83d3ece501a33c7" + }, { - "name": "ons.population.male_10_14", + "name": "ons.population.age_80_89_by_region@E12000008", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 2152800.0, + "resolved_value": 447958.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_86d603b352e77fd0c03ddaa8" - } - ] - }, - "ons.population.male_15_19": { - "status": "active", - "candidates": [ + "resolved_fact_key": "ledger_aggregate_fact_v2_bb61f66f5159481b73615674" + }, { - "name": "ons.population.male_15_19", + "name": "ons.population.age_80_89_by_region@E12000009", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "region", + "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 2123750.0, + "resolved_value": 313605.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ecf390d4b25b71d12aae6bc7" - } - ] - }, - "ons.population.male_20_24": { - "status": "active", - "candidates": [ + "resolved_fact_key": "ledger_aggregate_fact_v2_ea5f3461bbda1967761f0d48" + }, { - "name": "ons.population.male_20_24", + "name": "ons.population.age_80_89_by_region@W92000004", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "country", + "geography_id": "W92000004", "resolved_period": 2025, - "resolved_value": 2131646.0, + "resolved_value": 154319.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_edb961b3528b22769eece352" - } - ] - }, - "ons.population.male_25_29": { - "status": "active", - "candidates": [ + "resolved_fact_key": "ledger_aggregate_fact_v2_d766d2003f1fd56635d53589" + }, { - "name": "ons.population.male_25_29", + "name": "ons.population.age_80_89_by_region@S92000003", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "country", + "geography_id": "S92000003", "resolved_period": 2025, - "resolved_value": 2257360.0, + "resolved_value": 238904.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_fd52338de8e1557cdd024c36" - } - ] - }, - "ons.population.male_30_34": { - "status": "active", - "candidates": [ + "resolved_fact_key": "ledger_aggregate_fact_v2_f206015a88100a72b83bbe9f" + }, { - "name": "ons.population.male_30_34", + "name": "ons.population.age_80_89_by_region@N92000002", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 20, + "matched_fact_count_at_or_before_period": 20, + "geography_level": "country", + "geography_id": "N92000002", "resolved_period": 2025, - "resolved_value": 2333326.0, + "resolved_value": 77441.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_b81f56fab808ad1d38d70f3d" + "resolved_fact_key": "ledger_aggregate_fact_v2_fb5795d1ea12a7a7005a9ee9" } ] }, - "ons.population.male_35_39": { + "ons.population.female_0_4": { "status": "active", "candidates": [ { - "name": "ons.population.male_35_39", + "name": "ons.population.female_0_4", "status": "active", "matched_fact_count_overall": 10, "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 2303479.0, + "resolved_value": 1744355.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_be9bedc792e0d419ebaf5316" + "resolved_fact_key": "ledger_aggregate_fact_v2_fb55d5f20f74ee39a1e8fcb4" } ] }, - "ons.population.male_40_44": { + "ons.population.female_10_14": { "status": "active", "candidates": [ { - "name": "ons.population.male_40_44", + "name": "ons.population.female_10_14", "status": "active", "matched_fact_count_overall": 10, "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 2196013.0, + "resolved_value": 2052052.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_d41ff91bfe885debcc12d759" + "resolved_fact_key": "ledger_aggregate_fact_v2_f9a457edc9491e5810c39f5f" } ] }, - "ons.population.male_45_49": { + "ons.population.female_15_19": { "status": "active", "candidates": [ { - "name": "ons.population.male_45_49", + "name": "ons.population.female_15_19", "status": "active", "matched_fact_count_overall": 10, "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 2005099.0, + "resolved_value": 2002835.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_fafcbae6e55f9ae20bc0050d" + "resolved_fact_key": "ledger_aggregate_fact_v2_f0e2139b52c615925c9075dd" } ] }, - "ons.population.male_50_54": { + "ons.population.female_20_24": { "status": "active", "candidates": [ { - "name": "ons.population.male_50_54", + "name": "ons.population.female_20_24", "status": "active", "matched_fact_count_overall": 10, "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 2164862.0, + "resolved_value": 2034609.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_b8fe92cfb43b9a95f8a9f7ef" + "resolved_fact_key": "ledger_aggregate_fact_v2_b4e36c0dc0a924667be47bbc" } ] }, - "ons.population.male_55_59": { + "ons.population.female_25_29": { "status": "active", "candidates": [ { - "name": "ons.population.male_55_59", + "name": "ons.population.female_25_29", "status": "active", "matched_fact_count_overall": 10, "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 2256521.0, + "resolved_value": 2291610.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_86b57e4ed1e5186f23dc4021" + "resolved_fact_key": "ledger_aggregate_fact_v2_d9d6a711d0cbc4919a8643c0" } ] }, - "ons.population.male_5_9": { + "ons.population.female_30_34": { "status": "active", "candidates": [ { - "name": "ons.population.male_5_9", + "name": "ons.population.female_30_34", "status": "active", "matched_fact_count_overall": 10, "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 2037199.0, + "resolved_value": 2463301.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_e272f955c58535b8b9304759" + "resolved_fact_key": "ledger_aggregate_fact_v2_f5b1d6c400b912b05c79c477" } ] }, - "ons.population.male_60_64": { + "ons.population.female_35_39": { "status": "active", "candidates": [ { - "name": "ons.population.male_60_64", + "name": "ons.population.female_35_39", "status": "active", "matched_fact_count_overall": 10, "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 2094462.0, + "resolved_value": 2472291.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_e60d33e33dcbc1ba2292edf5" + "resolved_fact_key": "ledger_aggregate_fact_v2_f927cc9b3eab0494caf1479f" } ] }, - "ons.population.male_65_69": { + "ons.population.female_40_44": { "status": "active", "candidates": [ { - "name": "ons.population.male_65_69", + "name": "ons.population.female_40_44", "status": "active", "matched_fact_count_overall": 10, "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 1734083.0, + "resolved_value": 2333109.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_a4878efd0023575bded6b67a" + "resolved_fact_key": "ledger_aggregate_fact_v2_d9cdf746ffe5df2fd3d85279" } ] }, - "ons.population.male_70_74": { + "ons.population.female_45_49": { "status": "active", "candidates": [ { - "name": "ons.population.male_70_74", + "name": "ons.population.female_45_49", "status": "active", "matched_fact_count_overall": 10, "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 1473758.0, + "resolved_value": 2088285.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_d34aca91f9d1621ea96e72bc" + "resolved_fact_key": "ledger_aggregate_fact_v2_b679e4770750b86af6b1756b" } ] }, - "ons.population.male_75_79": { + "ons.population.female_50_54": { "status": "active", "candidates": [ { - "name": "ons.population.male_75_79", + "name": "ons.population.female_50_54", "status": "active", "matched_fact_count_overall": 10, "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 1350668.0, + "resolved_value": 2255231.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f74158203e735d37a67c5409" + "resolved_fact_key": "ledger_aggregate_fact_v2_65b8a4cc92c4565b00007877" } ] }, - "ons.population.male_80_84": { + "ons.population.female_55_59": { "status": "active", "candidates": [ { - "name": "ons.population.male_80_84", + "name": "ons.population.female_55_59", "status": "active", "matched_fact_count_overall": 10, "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 815910.0, + "resolved_value": 2360202.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_60aa57af44ada9286df3d649" + "resolved_fact_key": "ledger_aggregate_fact_v2_ba87a7d66cb9f8694b952159" } ] }, - "ons.population.male_85_89": { + "ons.population.female_5_9": { "status": "active", "candidates": [ { - "name": "ons.population.male_85_89", + "name": "ons.population.female_5_9", "status": "active", "matched_fact_count_overall": 10, "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 459511.0, + "resolved_value": 1941658.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_bbfd4e781a7d1151855e4edb" + "resolved_fact_key": "ledger_aggregate_fact_v2_bca9c38347810a944bbd08b3" } ] }, - "ons.population.male_90_plus": { + "ons.population.female_60_64": { "status": "active", "candidates": [ { - "name": "ons.population.male_90_plus", + "name": "ons.population.female_60_64", "status": "active", - "matched_fact_count_overall": 2, - "matched_fact_count_at_or_before_period": 2, + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 210520.0, + "resolved_value": 2193915.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_8ec6d2d034546c9693c4f6ed" + "resolved_fact_key": "ledger_aggregate_fact_v2_f3b1f78e4b752640465521f0" } ] }, - "ons.population.scotland_children_under_16": { + "ons.population.female_65_69": { "status": "active", "candidates": [ { - "name": "ons.population.scotland_children_under_16", + "name": "ons.population.female_65_69", "status": "active", - "matched_fact_count_overall": 32, - "matched_fact_count_at_or_before_period": 32, + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 896833.0, + "resolved_value": 1838574.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f9862176e9cdec891820dfa2" + "resolved_fact_key": "ledger_aggregate_fact_v2_dbeb583b16bcb530ee1296e1" } ] }, - "ons.population.scotland_babies_under_1": { + "ons.population.female_70_74": { "status": "active", "candidates": [ { - "name": "ons.population.scotland_babies_under_1", + "name": "ons.population.female_70_74", "status": "active", - "matched_fact_count_overall": 2, - "matched_fact_count_at_or_before_period": 2, + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 46776.0, + "resolved_value": 1622996.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_edd043df0081e63ad0876932" - } - ] - }, - "ons.population.scotland_households_3plus_children": { - "status": "signed_excluded", - "candidates": [ - { - "name": "ons.population.scotland_households_3plus_children", - "status": "signed_excluded", - "matched_fact_count_overall": 552, - "matched_fact_count_at_or_before_period": 552, - "signed_rationale": "Signed out pending a Scotland household-composition fact: the current selector reaches person-level ONS mid-year population age rows, not households with three or more children. microcosm#736 tracks the missing declaration." - } - ] - }, - "ons.household_composition.lone_households_under_65": { - "status": "active", - "candidates": [ - { - "name": "ons.household_composition.lone_households_under_65", - "status": "active", - "matched_fact_count_overall": 8, - "matched_fact_count_at_or_before_period": 8, - "resolved_period": 2025, - "resolved_value": 4316000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_b2ee6bff131571b7dcd4c33c" - } - ] - }, - "ons.household_composition.lone_households_over_65": { - "status": "active", - "candidates": [ - { - "name": "ons.household_composition.lone_households_over_65", - "status": "active", - "matched_fact_count_overall": 8, - "matched_fact_count_at_or_before_period": 8, - "resolved_period": 2025, - "resolved_value": 4254000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_4178a72ada0e0b5b53fd62b3" + "resolved_fact_key": "ledger_aggregate_fact_v2_b962c8b6d3d68808831aad6a" } ] }, - "ons.household_composition.unrelated_adult_households": { + "ons.population.female_75_79": { "status": "active", "candidates": [ { - "name": "ons.household_composition.unrelated_adult_households", + "name": "ons.population.female_75_79", "status": "active", - "matched_fact_count_overall": 8, - "matched_fact_count_at_or_before_period": 8, + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 813000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_191e954854307c61fca2d539" + "resolved_value": 1551183.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_aa0a8a7ab2d3894db7a7d7aa" } ] }, - "ons.household_composition.couple_no_children_households": { + "ons.population.female_80_84": { "status": "active", "candidates": [ { - "name": "ons.household_composition.couple_no_children_households", + "name": "ons.population.female_80_84", "status": "active", - "matched_fact_count_overall": 8, - "matched_fact_count_at_or_before_period": 8, + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 8119000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_861314257d00193080069624" + "resolved_value": 1024480.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_fcdc2e2f119de0b65769ef90" } ] }, - "ons.household_composition.couple_under_3_children_households": { + "ons.population.female_85_89": { "status": "active", "candidates": [ { - "name": "ons.household_composition.couple_under_3_children_households", + "name": "ons.population.female_85_89", "status": "active", - "matched_fact_count_overall": 8, - "matched_fact_count_at_or_before_period": 8, + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 5439000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_04ac3660df720d6f8effbdb2" + "resolved_value": 665267.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_c76df00751abbf64b5ab056b" } ] }, - "ons.household_composition.couple_3_plus_children_households": { + "ons.population.female_90_plus": { "status": "active", "candidates": [ { - "name": "ons.household_composition.couple_3_plus_children_households", + "name": "ons.population.female_90_plus", "status": "active", - "matched_fact_count_overall": 8, - "matched_fact_count_at_or_before_period": 8, + "matched_fact_count_overall": 2, + "matched_fact_count_at_or_before_period": 2, "resolved_period": 2025, - "resolved_value": 931000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_3432d322cadb6a40f0c3ebc8" + "resolved_value": 414716.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_009d5dd487f317483e9d7b3d" } ] }, - "ons.household_composition.couple_non_dependent_children_only_households": { + "ons.population.male_0_4": { "status": "active", "candidates": [ { - "name": "ons.household_composition.couple_non_dependent_children_only_households", + "name": "ons.population.male_0_4", "status": "active", - "matched_fact_count_overall": 8, - "matched_fact_count_at_or_before_period": 8, + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 1848000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_4d36f952f4dd650bcab7ba7f" + "resolved_value": 1829801.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_ccdfe5dde7b46840510e21d2" } ] }, - "ons.household_composition.lone_parent_dependent_children_households": { + "ons.population.male_10_14": { "status": "active", "candidates": [ { - "name": "ons.household_composition.lone_parent_dependent_children_households", + "name": "ons.population.male_10_14", "status": "active", - "matched_fact_count_overall": 8, - "matched_fact_count_at_or_before_period": 8, + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 1835000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_e9746f29548db6f6047842cb" + "resolved_value": 2152800.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_86d603b352e77fd0c03ddaa8" } ] }, - "ons.household_composition.lone_parent_non_dependent_children_households": { + "ons.population.male_15_19": { "status": "active", "candidates": [ { - "name": "ons.household_composition.lone_parent_non_dependent_children_households", + "name": "ons.population.male_15_19", "status": "active", - "matched_fact_count_overall": 8, - "matched_fact_count_at_or_before_period": 8, + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 1204000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_9c7f117f90bc24f073f4e14f" + "resolved_value": 2123750.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_ecf390d4b25b71d12aae6bc7" } ] }, - "ons.household_composition.multi_family_households": { + "ons.population.male_20_24": { "status": "active", "candidates": [ { - "name": "ons.household_composition.multi_family_households", + "name": "ons.population.male_20_24", "status": "active", - "matched_fact_count_overall": 8, - "matched_fact_count_at_or_before_period": 8, + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 244000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_a0cd8874e5334242ce7b8ce0" + "resolved_value": 2131646.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_edb961b3528b22769eece352" } ] }, - "mhclg.council_tax_stock.band_a": { + "ons.population.male_25_29": { "status": "active", "candidates": [ { - "name": "mhclg.council_tax_stock.band_a@E12000001", - "status": "active", - "matched_fact_count_overall": 4776, - "matched_fact_count_at_or_before_period": 4728, - "geography_level": "region", - "geography_id": "E12000001", - "resolved_period": 2025, - "resolved_value": 621096.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_d0152c2791236d6ec749fb4b" - }, - { - "name": "mhclg.council_tax_stock.band_a@E12000002", - "status": "active", - "matched_fact_count_overall": 13930, - "matched_fact_count_at_or_before_period": 13790, - "geography_level": "region", - "geography_id": "E12000002", - "resolved_period": 2025, - "resolved_value": 1285713.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fa7c76228b4383e695be0c57" - }, - { - "name": "mhclg.council_tax_stock.band_a@E12000003", - "status": "active", - "matched_fact_count_overall": 5970, - "matched_fact_count_at_or_before_period": 5910, - "geography_level": "region", - "geography_id": "E12000003", - "resolved_period": 2025, - "resolved_value": 988548.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_eb94428708527c6adbce48c3" - }, - { - "name": "mhclg.council_tax_stock.band_a@E12000004", - "status": "active", - "matched_fact_count_overall": 13930, - "matched_fact_count_at_or_before_period": 13790, - "geography_level": "region", - "geography_id": "E12000004", - "resolved_period": 2025, - "resolved_value": 739971.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f17101c03f5970d639ddb6d7" - }, - { - "name": "mhclg.council_tax_stock.band_a@E12000005", - "status": "active", - "matched_fact_count_overall": 11940, - "matched_fact_count_at_or_before_period": 11820, - "geography_level": "region", - "geography_id": "E12000005", - "resolved_period": 2025, - "resolved_value": 728493.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_ef49e263051486267b93c7cd" - }, - { - "name": "mhclg.council_tax_stock.band_a@E12000006", - "status": "active", - "matched_fact_count_overall": 17910, - "matched_fact_count_at_or_before_period": 17730, - "geography_level": "region", - "geography_id": "E12000006", - "resolved_period": 2025, - "resolved_value": 364482.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f9ada16eb0c916b22d2397bb" - }, - { - "name": "mhclg.council_tax_stock.band_a@E12000007", - "status": "active", - "matched_fact_count_overall": 13134, - "matched_fact_count_at_or_before_period": 13002, - "geography_level": "region", - "geography_id": "E12000007", - "resolved_period": 2025, - "resolved_value": 118732.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f7d8d56243116fa2f1419fe1" - }, - { - "name": "mhclg.council_tax_stock.band_a@E12000008", - "status": "active", - "matched_fact_count_overall": 25472, - "matched_fact_count_at_or_before_period": 25216, - "geography_level": "region", - "geography_id": "E12000008", - "resolved_period": 2025, - "resolved_value": 320025.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fcc7bbe5d78c199fc6d856ca" - }, - { - "name": "mhclg.council_tax_stock.band_a@E12000009", + "name": "ons.population.male_25_29", "status": "active", - "matched_fact_count_overall": 10746, - "matched_fact_count_at_or_before_period": 10638, - "geography_level": "region", - "geography_id": "E12000009", + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 422969.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f23d41b29d6952c18d44dc26" + "resolved_value": 2257360.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_fd52338de8e1557cdd024c36" } ] }, - "mhclg.council_tax_stock.band_b": { + "ons.population.male_30_34": { "status": "active", "candidates": [ { - "name": "mhclg.council_tax_stock.band_b@E12000001", - "status": "active", - "matched_fact_count_overall": 4776, - "matched_fact_count_at_or_before_period": 4728, - "geography_level": "region", - "geography_id": "E12000001", - "resolved_period": 2025, - "resolved_value": 193309.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f84be54967344adf03fab807" - }, - { - "name": "mhclg.council_tax_stock.band_b@E12000002", + "name": "ons.population.male_30_34", "status": "active", - "matched_fact_count_overall": 13930, - "matched_fact_count_at_or_before_period": 13790, - "geography_level": "region", - "geography_id": "E12000002", + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 666970.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fac49fea11fd3b1110a941c5" - }, + "resolved_value": 2333326.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_b81f56fab808ad1d38d70f3d" + } + ] + }, + "ons.population.male_35_39": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.band_b@E12000003", + "name": "ons.population.male_35_39", "status": "active", - "matched_fact_count_overall": 5970, - "matched_fact_count_at_or_before_period": 5910, - "geography_level": "region", - "geography_id": "E12000003", + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 482052.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f8ef63f3e9b07a934c3f2df8" - }, + "resolved_value": 2303479.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_be9bedc792e0d419ebaf5316" + } + ] + }, + "ons.population.male_40_44": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.band_b@E12000004", + "name": "ons.population.male_40_44", "status": "active", - "matched_fact_count_overall": 13930, - "matched_fact_count_at_or_before_period": 13790, - "geography_level": "region", - "geography_id": "E12000004", + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 478320.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f48dde558979080156b8c99f" - }, + "resolved_value": 2196013.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_d41ff91bfe885debcc12d759" + } + ] + }, + "ons.population.male_45_49": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.band_b@E12000005", + "name": "ons.population.male_45_49", "status": "active", - "matched_fact_count_overall": 11940, - "matched_fact_count_at_or_before_period": 11820, - "geography_level": "region", - "geography_id": "E12000005", + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 625673.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fc4a526b4ee56ed620ab4c14" - }, + "resolved_value": 2005099.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_fafcbae6e55f9ae20bc0050d" + } + ] + }, + "ons.population.male_50_54": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.band_b@E12000006", + "name": "ons.population.male_50_54", "status": "active", - "matched_fact_count_overall": 17910, - "matched_fact_count_at_or_before_period": 17730, - "geography_level": "region", - "geography_id": "E12000006", + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 568914.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fe310977523bcaadf025f7f6" - }, + "resolved_value": 2164862.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_b8fe92cfb43b9a95f8a9f7ef" + } + ] + }, + "ons.population.male_55_59": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.band_b@E12000007", + "name": "ons.population.male_55_59", "status": "active", - "matched_fact_count_overall": 13134, - "matched_fact_count_at_or_before_period": 13002, - "geography_level": "region", - "geography_id": "E12000007", + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 463447.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_ffadb386ab954d99278ba891" - }, + "resolved_value": 2256521.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_86b57e4ed1e5186f23dc4021" + } + ] + }, + "ons.population.male_5_9": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.band_b@E12000008", + "name": "ons.population.male_5_9", "status": "active", - "matched_fact_count_overall": 25472, - "matched_fact_count_at_or_before_period": 25216, - "geography_level": "region", - "geography_id": "E12000008", + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 649092.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fb23fbffbee284d17da76489" - }, + "resolved_value": 2037199.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_e272f955c58535b8b9304759" + } + ] + }, + "ons.population.male_60_64": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.band_b@E12000009", + "name": "ons.population.male_60_64", "status": "active", - "matched_fact_count_overall": 10746, - "matched_fact_count_at_or_before_period": 10638, - "geography_level": "region", - "geography_id": "E12000009", + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 609286.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f84a549115340205a9ae8951" + "resolved_value": 2094462.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_e60d33e33dcbc1ba2292edf5" } ] }, - "mhclg.council_tax_stock.band_c": { + "ons.population.male_65_69": { "status": "active", "candidates": [ { - "name": "mhclg.council_tax_stock.band_c@E12000001", + "name": "ons.population.male_65_69", "status": "active", - "matched_fact_count_overall": 4776, - "matched_fact_count_at_or_before_period": 4728, - "geography_level": "region", - "geography_id": "E12000001", + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 186703.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_e5eaf3e7f4def06c8d938e5f" - }, + "resolved_value": 1734083.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_a4878efd0023575bded6b67a" + } + ] + }, + "ons.population.male_70_74": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.band_c@E12000002", + "name": "ons.population.male_70_74", "status": "active", - "matched_fact_count_overall": 13930, - "matched_fact_count_at_or_before_period": 13790, - "geography_level": "region", - "geography_id": "E12000002", + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 585587.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fc2f9b5b1813a71f580f85a4" - }, + "resolved_value": 1473758.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_d34aca91f9d1621ea96e72bc" + } + ] + }, + "ons.population.male_75_79": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.band_c@E12000003", + "name": "ons.population.male_75_79", "status": "active", - "matched_fact_count_overall": 5970, - "matched_fact_count_at_or_before_period": 5910, - "geography_level": "region", - "geography_id": "E12000003", + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 408440.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fe416e96e8e324e0e1647008" - }, + "resolved_value": 1350668.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f74158203e735d37a67c5409" + } + ] + }, + "ons.population.male_80_84": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.band_c@E12000004", + "name": "ons.population.male_80_84", "status": "active", - "matched_fact_count_overall": 13930, - "matched_fact_count_at_or_before_period": 13790, - "geography_level": "region", - "geography_id": "E12000004", + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 384470.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fa1e7c770b7403c2a2663980" - }, + "resolved_value": 815910.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_60aa57af44ada9286df3d649" + } + ] + }, + "ons.population.male_85_89": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.band_c@E12000005", + "name": "ons.population.male_85_89", "status": "active", - "matched_fact_count_overall": 11940, - "matched_fact_count_at_or_before_period": 11820, - "geography_level": "region", - "geography_id": "E12000005", + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 503657.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_ffab2e562cd756fa9f44ac4c" - }, + "resolved_value": 459511.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_bbfd4e781a7d1151855e4edb" + } + ] + }, + "ons.population.male_90_plus": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.band_c@E12000006", - "status": "active", - "matched_fact_count_overall": 17910, - "matched_fact_count_at_or_before_period": 17730, - "geography_level": "region", - "geography_id": "E12000006", + "name": "ons.population.male_90_plus", + "status": "active", + "matched_fact_count_overall": 2, + "matched_fact_count_at_or_before_period": 2, "resolved_period": 2025, - "resolved_value": 708146.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_ff565a1885420d902566f5be" - }, + "resolved_value": 210520.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_8ec6d2d034546c9693c4f6ed" + } + ] + }, + "ons.population.scotland_children_under_16": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.band_c@E12000007", + "name": "ons.population.scotland_children_under_16", "status": "active", - "matched_fact_count_overall": 13134, - "matched_fact_count_at_or_before_period": 13002, - "geography_level": "region", - "geography_id": "E12000007", + "matched_fact_count_overall": 32, + "matched_fact_count_at_or_before_period": 32, "resolved_period": 2025, - "resolved_value": 991205.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_eb754d4d8153e7497df94fa9" - }, + "resolved_value": 896833.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f9862176e9cdec891820dfa2" + } + ] + }, + "ons.population.scotland_babies_under_1": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.band_c@E12000008", + "name": "ons.population.scotland_babies_under_1", "status": "active", - "matched_fact_count_overall": 25472, - "matched_fact_count_at_or_before_period": 25216, - "geography_level": "region", - "geography_id": "E12000008", + "matched_fact_count_overall": 2, + "matched_fact_count_at_or_before_period": 2, "resolved_period": 2025, - "resolved_value": 1024169.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_feb50a6c4dfa72419ef9e591" - }, + "resolved_value": 46776.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_edd043df0081e63ad0876932" + } + ] + }, + "ons.population.scotland_households_3plus_children": { + "status": "signed_excluded", + "candidates": [ { - "name": "mhclg.council_tax_stock.band_c@E12000009", + "name": "ons.population.scotland_households_3plus_children", + "status": "signed_excluded", + "matched_fact_count_overall": 552, + "matched_fact_count_at_or_before_period": 552, + "signed_rationale": "Signed out pending a Scotland household-composition fact: the current selector reaches person-level ONS mid-year population age rows, not households with three or more children. microcosm#736 tracks the missing declaration." + } + ] + }, + "ons.household_composition.lone_households_under_65": { + "status": "active", + "candidates": [ + { + "name": "ons.household_composition.lone_households_under_65", "status": "active", - "matched_fact_count_overall": 10746, - "matched_fact_count_at_or_before_period": 10638, - "geography_level": "region", - "geography_id": "E12000009", + "matched_fact_count_overall": 8, + "matched_fact_count_at_or_before_period": 8, "resolved_period": 2025, - "resolved_value": 587214.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fff7d7ced3067ef09f8e6d12" + "resolved_value": 4316000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_b2ee6bff131571b7dcd4c33c" } ] }, - "mhclg.council_tax_stock.band_d": { + "ons.household_composition.lone_households_over_65": { "status": "active", "candidates": [ { - "name": "mhclg.council_tax_stock.band_d@E12000001", + "name": "ons.household_composition.lone_households_over_65", "status": "active", - "matched_fact_count_overall": 4776, - "matched_fact_count_at_or_before_period": 4728, - "geography_level": "region", - "geography_id": "E12000001", + "matched_fact_count_overall": 8, + "matched_fact_count_at_or_before_period": 8, "resolved_period": 2025, - "resolved_value": 108432.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fb2d7a086ad6d3c95a074ab0" - }, + "resolved_value": 4254000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_4178a72ada0e0b5b53fd62b3" + } + ] + }, + "ons.household_composition.unrelated_adult_households": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.band_d@E12000002", + "name": "ons.household_composition.unrelated_adult_households", "status": "active", - "matched_fact_count_overall": 13930, - "matched_fact_count_at_or_before_period": 13790, - "geography_level": "region", - "geography_id": "E12000002", + "matched_fact_count_overall": 8, + "matched_fact_count_at_or_before_period": 8, "resolved_period": 2025, - "resolved_value": 346489.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_ff0d7ad8c7d5d0d2f02702f0" - }, + "resolved_value": 813000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_191e954854307c61fca2d539" + } + ] + }, + "ons.household_composition.couple_no_children_households": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.band_d@E12000003", + "name": "ons.household_composition.couple_no_children_households", "status": "active", - "matched_fact_count_overall": 5970, - "matched_fact_count_at_or_before_period": 5910, - "geography_level": "region", - "geography_id": "E12000003", + "matched_fact_count_overall": 8, + "matched_fact_count_at_or_before_period": 8, "resolved_period": 2025, - "resolved_value": 237496.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f7c0b8b92776a6109a114a92" - }, + "resolved_value": 8119000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_861314257d00193080069624" + } + ] + }, + "ons.household_composition.couple_under_3_children_households": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.band_d@E12000004", + "name": "ons.household_composition.couple_under_3_children_households", "status": "active", - "matched_fact_count_overall": 13930, - "matched_fact_count_at_or_before_period": 13790, - "geography_level": "region", - "geography_id": "E12000004", + "matched_fact_count_overall": 8, + "matched_fact_count_at_or_before_period": 8, "resolved_period": 2025, - "resolved_value": 238335.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fa621220d1e5d193343634ca" - }, + "resolved_value": 5439000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_04ac3660df720d6f8effbdb2" + } + ] + }, + "ons.household_composition.couple_3_plus_children_households": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.band_d@E12000005", + "name": "ons.household_composition.couple_3_plus_children_households", "status": "active", - "matched_fact_count_overall": 11940, - "matched_fact_count_at_or_before_period": 11820, - "geography_level": "region", - "geography_id": "E12000005", + "matched_fact_count_overall": 8, + "matched_fact_count_at_or_before_period": 8, "resolved_period": 2025, - "resolved_value": 288790.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_ff6f72e91c98eb23dfe9d09c" - }, + "resolved_value": 931000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_3432d322cadb6a40f0c3ebc8" + } + ] + }, + "ons.household_composition.couple_non_dependent_children_only_households": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.band_d@E12000006", + "name": "ons.household_composition.couple_non_dependent_children_only_households", "status": "active", - "matched_fact_count_overall": 17910, - "matched_fact_count_at_or_before_period": 17730, - "geography_level": "region", - "geography_id": "E12000006", + "matched_fact_count_overall": 8, + "matched_fact_count_at_or_before_period": 8, "resolved_period": 2025, - "resolved_value": 485975.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fd87126e89fd8a33383640f1" - }, + "resolved_value": 1848000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_4d36f952f4dd650bcab7ba7f" + } + ] + }, + "ons.household_composition.lone_parent_dependent_children_households": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.band_d@E12000007", + "name": "ons.household_composition.lone_parent_dependent_children_households", "status": "active", - "matched_fact_count_overall": 13134, - "matched_fact_count_at_or_before_period": 13002, - "geography_level": "region", - "geography_id": "E12000007", + "matched_fact_count_overall": 8, + "matched_fact_count_at_or_before_period": 8, "resolved_period": 2025, - "resolved_value": 929941.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f7dfce8ada24dca8651cdc12" - }, + "resolved_value": 1835000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_e9746f29548db6f6047842cb" + } + ] + }, + "ons.household_composition.lone_parent_non_dependent_children_households": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.band_d@E12000008", + "name": "ons.household_composition.lone_parent_non_dependent_children_households", "status": "active", - "matched_fact_count_overall": 25472, - "matched_fact_count_at_or_before_period": 25216, - "geography_level": "region", - "geography_id": "E12000008", + "matched_fact_count_overall": 8, + "matched_fact_count_at_or_before_period": 8, "resolved_period": 2025, - "resolved_value": 807114.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f8129a3bae48724ddc91e4ca" - }, + "resolved_value": 1204000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_9c7f117f90bc24f073f4e14f" + } + ] + }, + "ons.household_composition.multi_family_households": { + "status": "active", + "candidates": [ { - "name": "mhclg.council_tax_stock.band_d@E12000009", + "name": "ons.household_composition.multi_family_households", "status": "active", - "matched_fact_count_overall": 10746, - "matched_fact_count_at_or_before_period": 10638, - "geography_level": "region", - "geography_id": "E12000009", + "matched_fact_count_overall": 8, + "matched_fact_count_at_or_before_period": 8, "resolved_period": 2025, - "resolved_value": 404568.0, - "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f9f3dcc56f346a75bfa16137" + "resolved_value": 244000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_a0cd8874e5334242ce7b8ce0" } ] }, - "mhclg.council_tax_stock.band_e": { + "mhclg.council_tax_stock.band_a": { "status": "active", "candidates": [ { - "name": "mhclg.council_tax_stock.band_e@E12000001", + "name": "mhclg.council_tax_stock.band_a@E12000001", "status": "active", "matched_fact_count_overall": 4776, "matched_fact_count_at_or_before_period": 4728, "geography_level": "region", "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 58932.0, + "resolved_value": 621096.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_e767a90e1f4f3985379189f5" + "resolved_fact_key": "ledger_aggregate_fact_v2_d0152c2791236d6ec749fb4b" }, { - "name": "mhclg.council_tax_stock.band_e@E12000002", + "name": "mhclg.council_tax_stock.band_a@E12000002", "status": "active", "matched_fact_count_overall": 13930, "matched_fact_count_at_or_before_period": 13790, "geography_level": "region", "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 207825.0, + "resolved_value": 1285713.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f9b8ef4202908453655767f0" + "resolved_fact_key": "ledger_aggregate_fact_v2_fa7c76228b4383e695be0c57" }, { - "name": "mhclg.council_tax_stock.band_e@E12000003", + "name": "mhclg.council_tax_stock.band_a@E12000003", "status": "active", "matched_fact_count_overall": 5970, "matched_fact_count_at_or_before_period": 5910, "geography_level": "region", "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 152517.0, + "resolved_value": 988548.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fbb09c3c4f80ba784375aa37" + "resolved_fact_key": "ledger_aggregate_fact_v2_eb94428708527c6adbce48c3" }, { - "name": "mhclg.council_tax_stock.band_e@E12000004", + "name": "mhclg.council_tax_stock.band_a@E12000004", "status": "active", "matched_fact_count_overall": 13930, "matched_fact_count_at_or_before_period": 13790, "geography_level": "region", "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 149931.0, + "resolved_value": 739971.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fec984442b918005ccc92238" + "resolved_fact_key": "ledger_aggregate_fact_v2_f17101c03f5970d639ddb6d7" }, { - "name": "mhclg.council_tax_stock.band_e@E12000005", + "name": "mhclg.council_tax_stock.band_a@E12000005", "status": "active", "matched_fact_count_overall": 11940, "matched_fact_count_at_or_before_period": 11820, "geography_level": "region", "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 185672.0, + "resolved_value": 728493.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_d83f9067bfa886482b6a5be7" + "resolved_fact_key": "ledger_aggregate_fact_v2_ef49e263051486267b93c7cd" }, { - "name": "mhclg.council_tax_stock.band_e@E12000006", + "name": "mhclg.council_tax_stock.band_a@E12000006", "status": "active", "matched_fact_count_overall": 17910, "matched_fact_count_at_or_before_period": 17730, "geography_level": "region", "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 301723.0, + "resolved_value": 364482.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fb2e48afaa19a026d3d2dbf9" + "resolved_fact_key": "ledger_aggregate_fact_v2_f9ada16eb0c916b22d2397bb" }, { - "name": "mhclg.council_tax_stock.band_e@E12000007", + "name": "mhclg.council_tax_stock.band_a@E12000007", "status": "active", "matched_fact_count_overall": 13134, "matched_fact_count_at_or_before_period": 13002, "geography_level": "region", "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 551952.0, + "resolved_value": 118732.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fe53b4ade27bba47669221bb" + "resolved_fact_key": "ledger_aggregate_fact_v2_f7d8d56243116fa2f1419fe1" }, { - "name": "mhclg.council_tax_stock.band_e@E12000008", + "name": "mhclg.council_tax_stock.band_a@E12000008", "status": "active", "matched_fact_count_overall": 25472, "matched_fact_count_at_or_before_period": 25216, "geography_level": "region", "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 529137.0, + "resolved_value": 320025.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_ff8b7b878381855ff02392c8" + "resolved_fact_key": "ledger_aggregate_fact_v2_fcc7bbe5d78c199fc6d856ca" }, { - "name": "mhclg.council_tax_stock.band_e@E12000009", + "name": "mhclg.council_tax_stock.band_a@E12000009", "status": "active", "matched_fact_count_overall": 10746, "matched_fact_count_at_or_before_period": 10638, "geography_level": "region", "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 274120.0, + "resolved_value": 422969.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fd8affa54b589a8f8dfa76e1" + "resolved_fact_key": "ledger_aggregate_fact_v2_f23d41b29d6952c18d44dc26" } ] }, - "mhclg.council_tax_stock.band_f": { + "mhclg.council_tax_stock.band_b": { "status": "active", "candidates": [ { - "name": "mhclg.council_tax_stock.band_f@E12000001", + "name": "mhclg.council_tax_stock.band_b@E12000001", "status": "active", "matched_fact_count_overall": 4776, "matched_fact_count_at_or_before_period": 4728, "geography_level": "region", "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 25729.0, + "resolved_value": 193309.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f1a656e56ed4ec922ab1be8a" + "resolved_fact_key": "ledger_aggregate_fact_v2_f84be54967344adf03fab807" }, { - "name": "mhclg.council_tax_stock.band_f@E12000002", + "name": "mhclg.council_tax_stock.band_b@E12000002", "status": "active", "matched_fact_count_overall": 13930, "matched_fact_count_at_or_before_period": 13790, "geography_level": "region", "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 100117.0, + "resolved_value": 666970.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f934ec4447a2decb7d93153c" + "resolved_fact_key": "ledger_aggregate_fact_v2_fac49fea11fd3b1110a941c5" }, { - "name": "mhclg.council_tax_stock.band_f@E12000003", + "name": "mhclg.council_tax_stock.band_b@E12000003", "status": "active", "matched_fact_count_overall": 5970, "matched_fact_count_at_or_before_period": 5910, "geography_level": "region", "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 73172.0, + "resolved_value": 482052.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fed1e74402841596ec02537f" + "resolved_fact_key": "ledger_aggregate_fact_v2_f8ef63f3e9b07a934c3f2df8" }, { - "name": "mhclg.council_tax_stock.band_f@E12000004", + "name": "mhclg.council_tax_stock.band_b@E12000004", "status": "active", "matched_fact_count_overall": 13930, "matched_fact_count_at_or_before_period": 13790, "geography_level": "region", "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 71418.0, + "resolved_value": 478320.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f992d8c87d194b0dfb07b0fa" + "resolved_fact_key": "ledger_aggregate_fact_v2_f48dde558979080156b8c99f" }, { - "name": "mhclg.council_tax_stock.band_f@E12000005", + "name": "mhclg.council_tax_stock.band_b@E12000005", "status": "active", "matched_fact_count_overall": 11940, "matched_fact_count_at_or_before_period": 11820, "geography_level": "region", "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 102077.0, + "resolved_value": 625673.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f9f49f0636d79cb28dcc85e1" + "resolved_fact_key": "ledger_aggregate_fact_v2_fc4a526b4ee56ed620ab4c14" }, { - "name": "mhclg.council_tax_stock.band_f@E12000006", + "name": "mhclg.council_tax_stock.band_b@E12000006", "status": "active", "matched_fact_count_overall": 17910, "matched_fact_count_at_or_before_period": 17730, "geography_level": "region", "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 166744.0, + "resolved_value": 568914.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_e672d9b03691ddd1faac694d" + "resolved_fact_key": "ledger_aggregate_fact_v2_fe310977523bcaadf025f7f6" }, { - "name": "mhclg.council_tax_stock.band_f@E12000007", + "name": "mhclg.council_tax_stock.band_b@E12000007", "status": "active", "matched_fact_count_overall": 13134, "matched_fact_count_at_or_before_period": 13002, "geography_level": "region", "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 279261.0, + "resolved_value": 463447.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_ef478a0ef6ff0cb78a65dcaa" + "resolved_fact_key": "ledger_aggregate_fact_v2_ffadb386ab954d99278ba891" }, { - "name": "mhclg.council_tax_stock.band_f@E12000008", + "name": "mhclg.council_tax_stock.band_b@E12000008", "status": "active", "matched_fact_count_overall": 25472, "matched_fact_count_at_or_before_period": 25216, "geography_level": "region", "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 325815.0, + "resolved_value": 649092.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fb02357269b3d262a700cf5f" + "resolved_fact_key": "ledger_aggregate_fact_v2_fb23fbffbee284d17da76489" }, { - "name": "mhclg.council_tax_stock.band_f@E12000009", + "name": "mhclg.council_tax_stock.band_b@E12000009", "status": "active", "matched_fact_count_overall": 10746, "matched_fact_count_at_or_before_period": 10638, "geography_level": "region", "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 139412.0, + "resolved_value": 609286.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fb77e2f50e126802cff79f21" + "resolved_fact_key": "ledger_aggregate_fact_v2_f84a549115340205a9ae8951" } ] }, - "mhclg.council_tax_stock.band_g": { + "mhclg.council_tax_stock.band_c": { "status": "active", "candidates": [ { - "name": "mhclg.council_tax_stock.band_g@E12000001", + "name": "mhclg.council_tax_stock.band_c@E12000001", "status": "active", "matched_fact_count_overall": 4776, "matched_fact_count_at_or_before_period": 4728, "geography_level": "region", "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 14062.0, + "resolved_value": 186703.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f80042add7dbd445217cde1a" + "resolved_fact_key": "ledger_aggregate_fact_v2_e5eaf3e7f4def06c8d938e5f" }, { - "name": "mhclg.council_tax_stock.band_g@E12000002", + "name": "mhclg.council_tax_stock.band_c@E12000002", "status": "active", "matched_fact_count_overall": 13930, "matched_fact_count_at_or_before_period": 13790, "geography_level": "region", "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 62587.0, + "resolved_value": 585587.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_ffc555374f59e3667468b086" + "resolved_fact_key": "ledger_aggregate_fact_v2_fc2f9b5b1813a71f580f85a4" }, { - "name": "mhclg.council_tax_stock.band_g@E12000003", + "name": "mhclg.council_tax_stock.band_c@E12000003", "status": "active", "matched_fact_count_overall": 5970, "matched_fact_count_at_or_before_period": 5910, "geography_level": "region", "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 40487.0, + "resolved_value": 408440.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f290bf6f13fa468c2acf0be2" + "resolved_fact_key": "ledger_aggregate_fact_v2_fe416e96e8e324e0e1647008" }, { - "name": "mhclg.council_tax_stock.band_g@E12000004", + "name": "mhclg.council_tax_stock.band_c@E12000004", "status": "active", "matched_fact_count_overall": 13930, "matched_fact_count_at_or_before_period": 13790, "geography_level": "region", "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 37892.0, + "resolved_value": 384470.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f69d9fecd8d273243af03685" + "resolved_fact_key": "ledger_aggregate_fact_v2_fa1e7c770b7403c2a2663980" }, { - "name": "mhclg.council_tax_stock.band_g@E12000005", + "name": "mhclg.council_tax_stock.band_c@E12000005", "status": "active", "matched_fact_count_overall": 11940, "matched_fact_count_at_or_before_period": 11820, "geography_level": "region", "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 60209.0, + "resolved_value": 503657.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_ec75efe3a83bc6d9c25d7ae1" + "resolved_fact_key": "ledger_aggregate_fact_v2_ffab2e562cd756fa9f44ac4c" }, { - "name": "mhclg.council_tax_stock.band_g@E12000006", + "name": "mhclg.council_tax_stock.band_c@E12000006", "status": "active", "matched_fact_count_overall": 17910, "matched_fact_count_at_or_before_period": 17730, "geography_level": "region", "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 108700.0, + "resolved_value": 708146.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fd2a0529ed0a7cf9532ef8ea" + "resolved_fact_key": "ledger_aggregate_fact_v2_ff565a1885420d902566f5be" }, { - "name": "mhclg.council_tax_stock.band_g@E12000007", + "name": "mhclg.council_tax_stock.band_c@E12000007", "status": "active", "matched_fact_count_overall": 13134, "matched_fact_count_at_or_before_period": 13002, "geography_level": "region", "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 207056.0, + "resolved_value": 991205.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f7d99e8a41825169a450a9ed" + "resolved_fact_key": "ledger_aggregate_fact_v2_eb754d4d8153e7497df94fa9" }, { - "name": "mhclg.council_tax_stock.band_g@E12000008", + "name": "mhclg.council_tax_stock.band_c@E12000008", "status": "active", "matched_fact_count_overall": 25472, "matched_fact_count_at_or_before_period": 25216, "geography_level": "region", "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 255206.0, + "resolved_value": 1024169.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fda73631af17107d741fed93" + "resolved_fact_key": "ledger_aggregate_fact_v2_feb50a6c4dfa72419ef9e591" }, { - "name": "mhclg.council_tax_stock.band_g@E12000009", + "name": "mhclg.council_tax_stock.band_c@E12000009", "status": "active", "matched_fact_count_overall": 10746, "matched_fact_count_at_or_before_period": 10638, "geography_level": "region", "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 75533.0, + "resolved_value": 587214.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_ddffd3467540ebe8f71dc050" + "resolved_fact_key": "ledger_aggregate_fact_v2_fff7d7ced3067ef09f8e6d12" } ] }, - "mhclg.council_tax_stock.band_h": { + "mhclg.council_tax_stock.band_d": { "status": "active", "candidates": [ { - "name": "mhclg.council_tax_stock.band_h@E12000001", + "name": "mhclg.council_tax_stock.band_d@E12000001", "status": "active", "matched_fact_count_overall": 4776, "matched_fact_count_at_or_before_period": 4728, "geography_level": "region", "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 1151.0, + "resolved_value": 108432.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_ff4150e637c1d82a68bb2a28" + "resolved_fact_key": "ledger_aggregate_fact_v2_fb2d7a086ad6d3c95a074ab0" }, { - "name": "mhclg.council_tax_stock.band_h@E12000002", + "name": "mhclg.council_tax_stock.band_d@E12000002", "status": "active", "matched_fact_count_overall": 13930, "matched_fact_count_at_or_before_period": 13790, "geography_level": "region", "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 6230.0, + "resolved_value": 346489.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f742ed87e05f38e0a20ba028" + "resolved_fact_key": "ledger_aggregate_fact_v2_ff0d7ad8c7d5d0d2f02702f0" }, { - "name": "mhclg.council_tax_stock.band_h@E12000003", + "name": "mhclg.council_tax_stock.band_d@E12000003", "status": "active", "matched_fact_count_overall": 5970, "matched_fact_count_at_or_before_period": 5910, "geography_level": "region", "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 3022.0, + "resolved_value": 237496.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fd393adec42be55cfefb3400" + "resolved_fact_key": "ledger_aggregate_fact_v2_f7c0b8b92776a6109a114a92" }, { - "name": "mhclg.council_tax_stock.band_h@E12000004", + "name": "mhclg.council_tax_stock.band_d@E12000004", "status": "active", "matched_fact_count_overall": 13930, "matched_fact_count_at_or_before_period": 13790, "geography_level": "region", "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 2779.0, + "resolved_value": 238335.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fe1b32af9c019b0fa366ea83" + "resolved_fact_key": "ledger_aggregate_fact_v2_fa621220d1e5d193343634ca" }, { - "name": "mhclg.council_tax_stock.band_h@E12000005", + "name": "mhclg.council_tax_stock.band_d@E12000005", "status": "active", "matched_fact_count_overall": 11940, "matched_fact_count_at_or_before_period": 11820, "geography_level": "region", "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 5285.0, + "resolved_value": 288790.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f086bebb12518f66fdd27be8" + "resolved_fact_key": "ledger_aggregate_fact_v2_ff6f72e91c98eb23dfe9d09c" }, { - "name": "mhclg.council_tax_stock.band_h@E12000006", + "name": "mhclg.council_tax_stock.band_d@E12000006", "status": "active", "matched_fact_count_overall": 17910, "matched_fact_count_at_or_before_period": 17730, "geography_level": "region", "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 13447.0, + "resolved_value": 485975.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fb031812869aaf579b6d5b62" + "resolved_fact_key": "ledger_aggregate_fact_v2_fd87126e89fd8a33383640f1" }, { - "name": "mhclg.council_tax_stock.band_h@E12000007", + "name": "mhclg.council_tax_stock.band_d@E12000007", "status": "active", "matched_fact_count_overall": 13134, "matched_fact_count_at_or_before_period": 13002, "geography_level": "region", "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 59569.0, + "resolved_value": 929941.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fb5c13d22ffe09151cf3b4f8" + "resolved_fact_key": "ledger_aggregate_fact_v2_f7dfce8ada24dca8651cdc12" }, { - "name": "mhclg.council_tax_stock.band_h@E12000008", + "name": "mhclg.council_tax_stock.band_d@E12000008", "status": "active", "matched_fact_count_overall": 25472, "matched_fact_count_at_or_before_period": 25216, "geography_level": "region", "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 36978.0, + "resolved_value": 807114.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fd99e21ba622e4f2a978332a" + "resolved_fact_key": "ledger_aggregate_fact_v2_f8129a3bae48724ddc91e4ca" }, { - "name": "mhclg.council_tax_stock.band_h@E12000009", + "name": "mhclg.council_tax_stock.band_d@E12000009", "status": "active", "matched_fact_count_overall": 10746, "matched_fact_count_at_or_before_period": 10638, "geography_level": "region", "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 6697.0, + "resolved_value": 404568.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f90a5f109dfd934a167bf0e0" + "resolved_fact_key": "ledger_aggregate_fact_v2_f9f3dcc56f346a75bfa16137" } ] }, - "mhclg.council_tax_stock.total": { + "mhclg.council_tax_stock.band_e": { "status": "active", "candidates": [ { - "name": "mhclg.council_tax_stock.total@E12000001", + "name": "mhclg.council_tax_stock.band_e@E12000001", "status": "active", "matched_fact_count_overall": 4776, "matched_fact_count_at_or_before_period": 4728, "geography_level": "region", "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 1209414.0, + "resolved_value": 58932.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_d0495e6e8e02785ad2236142" + "resolved_fact_key": "ledger_aggregate_fact_v2_e767a90e1f4f3985379189f5" }, { - "name": "mhclg.council_tax_stock.total@E12000002", + "name": "mhclg.council_tax_stock.band_e@E12000002", "status": "active", "matched_fact_count_overall": 13930, "matched_fact_count_at_or_before_period": 13790, "geography_level": "region", "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 3261518.0, + "resolved_value": 207825.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fc1af92610b38c4757aea9cd" + "resolved_fact_key": "ledger_aggregate_fact_v2_f9b8ef4202908453655767f0" }, { - "name": "mhclg.council_tax_stock.total@E12000003", + "name": "mhclg.council_tax_stock.band_e@E12000003", "status": "active", "matched_fact_count_overall": 5970, "matched_fact_count_at_or_before_period": 5910, "geography_level": "region", "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 2385734.0, + "resolved_value": 152517.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_d97752a94900433af3ad7e6f" + "resolved_fact_key": "ledger_aggregate_fact_v2_fbb09c3c4f80ba784375aa37" }, { - "name": "mhclg.council_tax_stock.total@E12000004", + "name": "mhclg.council_tax_stock.band_e@E12000004", "status": "active", "matched_fact_count_overall": 13930, "matched_fact_count_at_or_before_period": 13790, "geography_level": "region", "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 2103116.0, + "resolved_value": 149931.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_ef350c9b94fb54787fbca592" + "resolved_fact_key": "ledger_aggregate_fact_v2_fec984442b918005ccc92238" }, { - "name": "mhclg.council_tax_stock.total@E12000005", + "name": "mhclg.council_tax_stock.band_e@E12000005", "status": "active", "matched_fact_count_overall": 11940, "matched_fact_count_at_or_before_period": 11820, "geography_level": "region", "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 2499856.0, + "resolved_value": 185672.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f649a1ce99478b505d03ab91" + "resolved_fact_key": "ledger_aggregate_fact_v2_d83f9067bfa886482b6a5be7" }, { - "name": "mhclg.council_tax_stock.total@E12000006", + "name": "mhclg.council_tax_stock.band_e@E12000006", "status": "active", "matched_fact_count_overall": 17910, "matched_fact_count_at_or_before_period": 17730, "geography_level": "region", "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 2718131.0, + "resolved_value": 301723.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f27b18e8ecc0114a5b9e88e4" + "resolved_fact_key": "ledger_aggregate_fact_v2_fb2e48afaa19a026d3d2dbf9" }, { - "name": "mhclg.council_tax_stock.total@E12000007", + "name": "mhclg.council_tax_stock.band_e@E12000007", "status": "active", "matched_fact_count_overall": 13134, "matched_fact_count_at_or_before_period": 13002, "geography_level": "region", "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 3601163.0, + "resolved_value": 551952.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f56db6353a3459ee98059504" + "resolved_fact_key": "ledger_aggregate_fact_v2_fe53b4ade27bba47669221bb" }, { - "name": "mhclg.council_tax_stock.total@E12000008", + "name": "mhclg.council_tax_stock.band_e@E12000008", "status": "active", "matched_fact_count_overall": 25472, "matched_fact_count_at_or_before_period": 25216, "geography_level": "region", "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 3947536.0, + "resolved_value": 529137.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_fd4beff6e5a58b2ca5ff0b3a" + "resolved_fact_key": "ledger_aggregate_fact_v2_ff8b7b878381855ff02392c8" }, { - "name": "mhclg.council_tax_stock.total@E12000009", + "name": "mhclg.council_tax_stock.band_e@E12000009", "status": "active", "matched_fact_count_overall": 10746, "matched_fact_count_at_or_before_period": 10638, "geography_level": "region", "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 2519799.0, + "resolved_value": 274120.0, "resolved_fact_period": "2025-10", - "resolved_fact_key": "ledger_aggregate_fact_v2_f7339b440103ee7084920ea3" - } - ] - }, - "welshgov.council_tax_stock.band_a": { - "status": "active", - "candidates": [ - { - "name": "welshgov.council_tax_stock.band_a", - "status": "active", - "matched_fact_count_overall": 436, - "matched_fact_count_at_or_before_period": 339, - "resolved_period": 2025, - "resolved_value": 194973.29, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_21e317eb3f397169fa2dc933" - } - ] - }, - "welshgov.council_tax_stock.band_b": { - "status": "active", - "candidates": [ - { - "name": "welshgov.council_tax_stock.band_b", - "status": "active", - "matched_fact_count_overall": 436, - "matched_fact_count_at_or_before_period": 339, - "resolved_period": 2025, - "resolved_value": 285787.52, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_1db23c3de870c2f9704b9822" - } - ] - }, - "welshgov.council_tax_stock.band_c": { - "status": "active", - "candidates": [ - { - "name": "welshgov.council_tax_stock.band_c", - "status": "active", - "matched_fact_count_overall": 436, - "matched_fact_count_at_or_before_period": 339, - "resolved_period": 2025, - "resolved_value": 301699.86, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_c8c0495e5862c06f0f268414" - } - ] - }, - "welshgov.council_tax_stock.band_d": { - "status": "active", - "candidates": [ - { - "name": "welshgov.council_tax_stock.band_d", - "status": "active", - "matched_fact_count_overall": 436, - "matched_fact_count_at_or_before_period": 339, - "resolved_period": 2025, - "resolved_value": 225179.88, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_04e498c0e2dad39004885ea3" - } - ] - }, - "welshgov.council_tax_stock.band_e": { - "status": "active", - "candidates": [ - { - "name": "welshgov.council_tax_stock.band_e", - "status": "active", - "matched_fact_count_overall": 436, - "matched_fact_count_at_or_before_period": 339, - "resolved_period": 2025, - "resolved_value": 185447.46, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_e8ca0bef4217724c1b6eafbb" - } - ] - }, - "welshgov.council_tax_stock.band_f": { - "status": "active", - "candidates": [ - { - "name": "welshgov.council_tax_stock.band_f", - "status": "active", - "matched_fact_count_overall": 436, - "matched_fact_count_at_or_before_period": 339, - "resolved_period": 2025, - "resolved_value": 114672.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_f9e314273b8264de7d24a7b6" - } - ] - }, - "welshgov.council_tax_stock.band_g": { - "status": "active", - "candidates": [ - { - "name": "welshgov.council_tax_stock.band_g", - "status": "active", - "matched_fact_count_overall": 436, - "matched_fact_count_at_or_before_period": 339, - "resolved_period": 2025, - "resolved_value": 52211.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_1ffc03853a7f22dbfdfd30ee" - } - ] - }, - "welshgov.council_tax_stock.band_h": { - "status": "active", - "candidates": [ - { - "name": "welshgov.council_tax_stock.band_h", - "status": "active", - "matched_fact_count_overall": 436, - "matched_fact_count_at_or_before_period": 339, - "resolved_period": 2025, - "resolved_value": 12357.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_38b37ca6c167d44f1ee2b517" - } - ] - }, - "welshgov.council_tax_stock.band_i": { - "status": "active", - "candidates": [ - { - "name": "welshgov.council_tax_stock.band_i", - "status": "active", - "matched_fact_count_overall": 436, - "matched_fact_count_at_or_before_period": 339, - "resolved_period": 2025, - "resolved_value": 5305.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_f94d0825d8f1f21a02667aeb" + "resolved_fact_key": "ledger_aggregate_fact_v2_fd8affa54b589a8f8dfa76e1" } ] }, - "welshgov.council_tax_stock.total": { + "mhclg.council_tax_stock.band_f": { "status": "active", "candidates": [ { - "name": "welshgov.council_tax_stock.total", + "name": "mhclg.council_tax_stock.band_f@E12000001", "status": "active", - "matched_fact_count_overall": 436, - "matched_fact_count_at_or_before_period": 339, + "matched_fact_count_overall": 4776, + "matched_fact_count_at_or_before_period": 4728, + "geography_level": "region", + "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 1377633.03, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_69899dbf797a73ce0c05f13d" - } - ] - }, - "scotgov.council_tax_stock.band_a": { - "status": "active", - "candidates": [ + "resolved_value": 25729.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_f1a656e56ed4ec922ab1be8a" + }, { - "name": "scotgov.council_tax_stock.band_a", + "name": "mhclg.council_tax_stock.band_f@E12000002", "status": "active", - "matched_fact_count_overall": 3, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 13930, + "matched_fact_count_at_or_before_period": 13790, + "geography_level": "region", + "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 498707.0, - "resolved_fact_period": "2025-09", - "resolved_fact_key": "ledger_aggregate_fact_v2_d16c53fe6a1c8f4f5886b7e5" - } - ] - }, - "scotgov.council_tax_stock.band_b": { - "status": "active", - "candidates": [ + "resolved_value": 100117.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_f934ec4447a2decb7d93153c" + }, { - "name": "scotgov.council_tax_stock.band_b", + "name": "mhclg.council_tax_stock.band_f@E12000003", "status": "active", - "matched_fact_count_overall": 3, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 5970, + "matched_fact_count_at_or_before_period": 5910, + "geography_level": "region", + "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 583705.0, - "resolved_fact_period": "2025-09", - "resolved_fact_key": "ledger_aggregate_fact_v2_2f95ec98ae61f9898bd47ed9" - } - ] - }, - "scotgov.council_tax_stock.band_c": { - "status": "active", - "candidates": [ + "resolved_value": 73172.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_fed1e74402841596ec02537f" + }, { - "name": "scotgov.council_tax_stock.band_c", + "name": "mhclg.council_tax_stock.band_f@E12000004", "status": "active", - "matched_fact_count_overall": 3, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 13930, + "matched_fact_count_at_or_before_period": 13790, + "geography_level": "region", + "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 426388.0, - "resolved_fact_period": "2025-09", - "resolved_fact_key": "ledger_aggregate_fact_v2_c9781708df55dc5d197e6623" - } - ] - }, - "scotgov.council_tax_stock.band_d": { - "status": "active", - "candidates": [ + "resolved_value": 71418.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_f992d8c87d194b0dfb07b0fa" + }, { - "name": "scotgov.council_tax_stock.band_d", + "name": "mhclg.council_tax_stock.band_f@E12000005", "status": "active", - "matched_fact_count_overall": 3, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 11940, + "matched_fact_count_at_or_before_period": 11820, + "geography_level": "region", + "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 369621.0, - "resolved_fact_period": "2025-09", - "resolved_fact_key": "ledger_aggregate_fact_v2_ae1fe03809a505b820479598" - } - ] - }, - "scotgov.council_tax_stock.band_e": { - "status": "active", - "candidates": [ + "resolved_value": 102077.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_f9f49f0636d79cb28dcc85e1" + }, { - "name": "scotgov.council_tax_stock.band_e", + "name": "mhclg.council_tax_stock.band_f@E12000006", "status": "active", - "matched_fact_count_overall": 3, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 17910, + "matched_fact_count_at_or_before_period": 17730, + "geography_level": "region", + "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 366881.0, - "resolved_fact_period": "2025-09", - "resolved_fact_key": "ledger_aggregate_fact_v2_e83153e0de40fb74471c805f" - } - ] - }, - "scotgov.council_tax_stock.band_f": { - "status": "active", - "candidates": [ + "resolved_value": 166744.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_e672d9b03691ddd1faac694d" + }, { - "name": "scotgov.council_tax_stock.band_f", + "name": "mhclg.council_tax_stock.band_f@E12000007", "status": "active", - "matched_fact_count_overall": 3, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 13134, + "matched_fact_count_at_or_before_period": 13002, + "geography_level": "region", + "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 221282.0, - "resolved_fact_period": "2025-09", - "resolved_fact_key": "ledger_aggregate_fact_v2_b24b6409c1473600c03999ec" - } - ] - }, - "scotgov.council_tax_stock.band_g": { - "status": "active", - "candidates": [ + "resolved_value": 279261.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_ef478a0ef6ff0cb78a65dcaa" + }, { - "name": "scotgov.council_tax_stock.band_g", + "name": "mhclg.council_tax_stock.band_f@E12000008", "status": "active", - "matched_fact_count_overall": 3, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 25472, + "matched_fact_count_at_or_before_period": 25216, + "geography_level": "region", + "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 142084.0, - "resolved_fact_period": "2025-09", - "resolved_fact_key": "ledger_aggregate_fact_v2_c86494a855b00998122989d6" - } - ] - }, - "scotgov.council_tax_stock.band_h": { - "status": "active", - "candidates": [ + "resolved_value": 325815.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_fb02357269b3d262a700cf5f" + }, { - "name": "scotgov.council_tax_stock.band_h", + "name": "mhclg.council_tax_stock.band_f@E12000009", "status": "active", - "matched_fact_count_overall": 3, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 10746, + "matched_fact_count_at_or_before_period": 10638, + "geography_level": "region", + "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 14481.0, - "resolved_fact_period": "2025-09", - "resolved_fact_key": "ledger_aggregate_fact_v2_60d9ae638eff29fc1c88907e" + "resolved_value": 139412.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_fb77e2f50e126802cff79f21" } ] }, - "scotgov.council_tax_stock.total": { + "mhclg.council_tax_stock.band_g": { "status": "active", "candidates": [ { - "name": "scotgov.council_tax_stock.total", + "name": "mhclg.council_tax_stock.band_g@E12000001", "status": "active", - "matched_fact_count_overall": 3, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 4776, + "matched_fact_count_at_or_before_period": 4728, + "geography_level": "region", + "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 2623149.0, - "resolved_fact_period": "2025-09", - "resolved_fact_key": "ledger_aggregate_fact_v2_ca77a0f0a777ccba05e4bef9" - } - ] - }, - "scotgov.scottish_child_payment_spending": { - "status": "active", - "candidates": [ + "resolved_value": 14062.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_f80042add7dbd445217cde1a" + }, { - "name": "scotgov.scottish_child_payment_spending", + "name": "mhclg.council_tax_stock.band_g@E12000002", "status": "active", - "matched_fact_count_overall": 3, - "matched_fact_count_at_or_before_period": 2, + "matched_fact_count_overall": 13930, + "matched_fact_count_at_or_before_period": 13790, + "geography_level": "region", + "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 471000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_20b43b0f8f61e448f28895cf" - } - ] - }, - "ons.savings_interest_income": { - "status": "active", - "candidates": [ + "resolved_value": 62587.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_ffc555374f59e3667468b086" + }, { - "name": "ons.savings_interest_income", + "name": "mhclg.council_tax_stock.band_g@E12000003", "status": "active", - "matched_fact_count_overall": 8, - "matched_fact_count_at_or_before_period": 8, + "matched_fact_count_overall": 5970, + "matched_fact_count_at_or_before_period": 5910, + "geography_level": "region", + "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 95503000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_8de1806d1330bcb80a1f4988" - } - ] - }, - "ons.public_sector_employment": { - "status": "active", - "candidates": [ + "resolved_value": 40487.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_f290bf6f13fa468c2acf0be2" + }, { - "name": "ons.public_sector_employment", + "name": "mhclg.council_tax_stock.band_g@E12000004", "status": "active", - "matched_fact_count_overall": 2, - "matched_fact_count_at_or_before_period": 2, + "matched_fact_count_overall": 13930, + "matched_fact_count_at_or_before_period": 13790, + "geography_level": "region", + "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 6146000.0, - "resolved_fact_period": "2024-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_ff79b4e2301f564ec4203235" - } - ] - }, - "ons.land.land_value": { - "status": "active", - "candidates": [ + "resolved_value": 37892.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_f69d9fecd8d273243af03685" + }, { - "name": "ons.land.land_value", + "name": "mhclg.council_tax_stock.band_g@E12000005", "status": "active", - "matched_fact_count_overall": 30, - "matched_fact_count_at_or_before_period": 30, + "matched_fact_count_overall": 11940, + "matched_fact_count_at_or_before_period": 11820, + "geography_level": "region", + "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 7117771000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_4daf8d1b8830f72bba924d56" - } - ] - }, - "ons.land.household_land_value": { - "status": "active", - "candidates": [ + "resolved_value": 60209.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_ec75efe3a83bc6d9c25d7ae1" + }, { - "name": "ons.land.household_land_value", + "name": "mhclg.council_tax_stock.band_g@E12000006", "status": "active", - "matched_fact_count_overall": 30, - "matched_fact_count_at_or_before_period": 30, + "matched_fact_count_overall": 17910, + "matched_fact_count_at_or_before_period": 17730, + "geography_level": "region", + "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 4559831000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_0e5f9867ab377dffd8a8941f" - } - ] - }, - "ons.land.corporate_land_value": { - "status": "active", - "candidates": [ + "resolved_value": 108700.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_fd2a0529ed0a7cf9532ef8ea" + }, { - "name": "ons.land.corporate_land_value", + "name": "mhclg.council_tax_stock.band_g@E12000007", "status": "active", - "matched_fact_count_overall": 30, - "matched_fact_count_at_or_before_period": 30, + "matched_fact_count_overall": 13134, + "matched_fact_count_at_or_before_period": 13002, + "geography_level": "region", + "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 2103053000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ab561a17be0af52de30cca88" - } - ] - }, - "slc.repayments.devolved_total": { - "status": "no_fact_at_or_before_period", - "candidates": [ + "resolved_value": 207056.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_f7d99e8a41825169a450a9ed" + }, + { + "name": "mhclg.council_tax_stock.band_g@E12000008", + "status": "active", + "matched_fact_count_overall": 25472, + "matched_fact_count_at_or_before_period": 25216, + "geography_level": "region", + "geography_id": "E12000008", + "resolved_period": 2025, + "resolved_value": 255206.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_fda73631af17107d741fed93" + }, { - "name": "slc.repayments.devolved_total", - "status": "no_fact_at_or_before_period", - "matched_fact_count_overall": 0, - "matched_fact_count_at_or_before_period": 0, - "error": "ledger_reference_compile_status_no_fact_at_or_before_period" + "name": "mhclg.council_tax_stock.band_g@E12000009", + "status": "active", + "matched_fact_count_overall": 10746, + "matched_fact_count_at_or_before_period": 10638, + "geography_level": "region", + "geography_id": "E12000009", + "resolved_period": 2025, + "resolved_value": 75533.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_ddffd3467540ebe8f71dc050" } ] }, - "slc.repayments.england_total_higher_education": { + "mhclg.council_tax_stock.band_h": { "status": "active", "candidates": [ { - "name": "slc.repayments.england_total_higher_education", + "name": "mhclg.council_tax_stock.band_h@E12000001", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4776, + "matched_fact_count_at_or_before_period": 4728, + "geography_level": "region", + "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 5018231834.949999, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_b947d1f3c3659d252194c102" - } - ] - }, - "slc.repayments.england_plan_1": { - "status": "active", - "candidates": [ + "resolved_value": 1151.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_ff4150e637c1d82a68bb2a28" + }, { - "name": "slc.repayments.england_plan_1", + "name": "mhclg.council_tax_stock.band_h@E12000002", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 13930, + "matched_fact_count_at_or_before_period": 13790, + "geography_level": "region", + "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 1852699178.55, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_1d9680e6eaf243227fed5ef2" - } - ] - }, - "slc.repayments.england_plan_2": { - "status": "active", - "candidates": [ + "resolved_value": 6230.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_f742ed87e05f38e0a20ba028" + }, { - "name": "slc.repayments.england_plan_2", + "name": "mhclg.council_tax_stock.band_h@E12000003", "status": "active", - "matched_fact_count_overall": 2, - "matched_fact_count_at_or_before_period": 2, + "matched_fact_count_overall": 5970, + "matched_fact_count_at_or_before_period": 5910, + "geography_level": "region", + "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 2778253361.64, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_882329821c90dc683aa778d8" - } - ] - }, - "slc.repayments.england_postgraduate": { - "status": "active", - "candidates": [ + "resolved_value": 3022.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_fd393adec42be55cfefb3400" + }, { - "name": "slc.repayments.england_postgraduate", + "name": "mhclg.council_tax_stock.band_h@E12000004", "status": "active", - "matched_fact_count_overall": 2, - "matched_fact_count_at_or_before_period": 2, + "matched_fact_count_overall": 13930, + "matched_fact_count_at_or_before_period": 13790, + "geography_level": "region", + "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 346409713.95000005, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ac1b07c69f1e1baa2a0fb787" - } - ] - }, - "slc.repayments.england_plan_5": { - "status": "active", - "candidates": [ + "resolved_value": 2779.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_fe1b32af9c019b0fa366ea83" + }, { - "name": "slc.repayments.england_plan_5", + "name": "mhclg.council_tax_stock.band_h@E12000005", "status": "active", - "matched_fact_count_overall": 2, - "matched_fact_count_at_or_before_period": 2, + "matched_fact_count_overall": 11940, + "matched_fact_count_at_or_before_period": 11820, + "geography_level": "region", + "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 40869580.81, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_496af6b8fe31c71c43f1d292" - } - ] - }, - "slc.borrowers.plan_2_above_threshold": { - "status": "active", - "candidates": [ + "resolved_value": 5285.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_f086bebb12518f66fdd27be8" + }, { - "name": "slc.borrowers.plan_2_above_threshold", + "name": "mhclg.council_tax_stock.band_h@E12000006", "status": "active", - "matched_fact_count_overall": 6, - "matched_fact_count_at_or_before_period": 2, + "matched_fact_count_overall": 17910, + "matched_fact_count_at_or_before_period": 17730, + "geography_level": "region", + "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 4460000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_02288c19caeae900fdaf1e0d" - } - ] - }, - "slc.borrowers.plan_2_liable": { - "status": "active", - "candidates": [ + "resolved_value": 13447.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_fb031812869aaf579b6d5b62" + }, { - "name": "slc.borrowers.plan_2_liable", + "name": "mhclg.council_tax_stock.band_h@E12000007", "status": "active", - "matched_fact_count_overall": 6, - "matched_fact_count_at_or_before_period": 2, + "matched_fact_count_overall": 13134, + "matched_fact_count_at_or_before_period": 13002, + "geography_level": "region", + "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 9710000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_37387933e73bcc8c1e04cf78" - } - ] - }, - "slc.borrowers.plan_5_above_threshold": { - "status": "active", - "candidates": [ + "resolved_value": 59569.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_fb5c13d22ffe09151cf3b4f8" + }, { - "name": "slc.borrowers.plan_5_above_threshold", + "name": "mhclg.council_tax_stock.band_h@E12000008", "status": "active", - "matched_fact_count_overall": 6, - "matched_fact_count_at_or_before_period": 2, + "matched_fact_count_overall": 25472, + "matched_fact_count_at_or_before_period": 25216, + "geography_level": "region", + "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 35000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_dd16b085f81ef7708a00511e" - } - ] - }, - "slc.borrowers.plan_5_liable": { - "status": "active", - "candidates": [ + "resolved_value": 36978.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_fd99e21ba622e4f2a978332a" + }, { - "name": "slc.borrowers.plan_5_liable", + "name": "mhclg.council_tax_stock.band_h@E12000009", "status": "active", - "matched_fact_count_overall": 6, - "matched_fact_count_at_or_before_period": 2, + "matched_fact_count_overall": 10746, + "matched_fact_count_at_or_before_period": 10638, + "geography_level": "region", + "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 230000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_73ff136d820950ea404ddb6b" + "resolved_value": 6697.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_f90a5f109dfd934a167bf0e0" } ] }, - "slc.support.maintenance_loan_recipients": { + "mhclg.council_tax_stock.total": { "status": "active", "candidates": [ { - "name": "slc.support.maintenance_loan_recipients", + "name": "mhclg.council_tax_stock.total@E12000001", "status": "active", - "matched_fact_count_overall": 12, - "matched_fact_count_at_or_before_period": 12, + "matched_fact_count_overall": 4776, + "matched_fact_count_at_or_before_period": 4728, + "geography_level": "region", + "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 1159761.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f03bd7a10d0eee9917a3a199" - } - ] - }, - "slc.support.maintenance_loan_spend": { - "status": "active", - "candidates": [ + "resolved_value": 1209414.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_d0495e6e8e02785ad2236142" + }, { - "name": "slc.support.maintenance_loan_spend", + "name": "mhclg.council_tax_stock.total@E12000002", "status": "active", - "matched_fact_count_overall": 12, - "matched_fact_count_at_or_before_period": 12, + "matched_fact_count_overall": 13930, + "matched_fact_count_at_or_before_period": 13790, + "geography_level": "region", + "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 8591659718.080004, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_2900e25d7ee90f79fb3b87b9" - } - ] - }, - "slc.support.parents_learning_allowance_recipients": { - "status": "active", - "candidates": [ + "resolved_value": 3261518.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_fc1af92610b38c4757aea9cd" + }, + { + "name": "mhclg.council_tax_stock.total@E12000003", + "status": "active", + "matched_fact_count_overall": 5970, + "matched_fact_count_at_or_before_period": 5910, + "geography_level": "region", + "geography_id": "E12000003", + "resolved_period": 2025, + "resolved_value": 2385734.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_d97752a94900433af3ad7e6f" + }, { - "name": "slc.support.parents_learning_allowance_recipients", + "name": "mhclg.council_tax_stock.total@E12000004", "status": "active", - "matched_fact_count_overall": 12, - "matched_fact_count_at_or_before_period": 12, + "matched_fact_count_overall": 13930, + "matched_fact_count_at_or_before_period": 13790, + "geography_level": "region", + "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 99645.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_d5df1c69846ab2fd3d0e50e1" - } - ] - }, - "slc.support.parents_learning_allowance_spend": { - "status": "active", - "candidates": [ + "resolved_value": 2103116.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_ef350c9b94fb54787fbca592" + }, { - "name": "slc.support.parents_learning_allowance_spend", + "name": "mhclg.council_tax_stock.total@E12000005", "status": "active", - "matched_fact_count_overall": 12, - "matched_fact_count_at_or_before_period": 12, + "matched_fact_count_overall": 11940, + "matched_fact_count_at_or_before_period": 11820, + "geography_level": "region", + "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 181421659.32, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_72028ce00b9569deec79d6e6" - } - ] - }, - "slc.support.adult_dependants_grant_recipients": { - "status": "active", - "candidates": [ + "resolved_value": 2499856.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_f649a1ce99478b505d03ab91" + }, { - "name": "slc.support.adult_dependants_grant_recipients", + "name": "mhclg.council_tax_stock.total@E12000006", "status": "active", - "matched_fact_count_overall": 12, - "matched_fact_count_at_or_before_period": 12, + "matched_fact_count_overall": 17910, + "matched_fact_count_at_or_before_period": 17730, + "geography_level": "region", + "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 18611.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_adc83b5d137ecb48fed77064" - } - ] - }, - "slc.support.adult_dependants_grant_spend": { - "status": "active", - "candidates": [ + "resolved_value": 2718131.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_f27b18e8ecc0114a5b9e88e4" + }, { - "name": "slc.support.adult_dependants_grant_spend", + "name": "mhclg.council_tax_stock.total@E12000007", "status": "active", - "matched_fact_count_overall": 12, - "matched_fact_count_at_or_before_period": 12, + "matched_fact_count_overall": 13134, + "matched_fact_count_at_or_before_period": 13002, + "geography_level": "region", + "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 55364916.81, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_5d42660596c9088248e41e90" - } - ] - }, - "dwp.uc.households": { - "status": "active", - "candidates": [ + "resolved_value": 3601163.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_f56db6353a3459ee98059504" + }, { - "name": "dwp.uc.households", + "name": "mhclg.council_tax_stock.total@E12000008", "status": "active", - "matched_fact_count_overall": 120, - "matched_fact_count_at_or_before_period": 120, - "matched_fact_count_in_source_window": 120, + "matched_fact_count_overall": 25472, + "matched_fact_count_at_or_before_period": 25216, + "geography_level": "region", + "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 6197311.0, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_71c060f3f2a732e2f836a5d8" - } - ] - }, - "hmrc.tfc.government_top_up": { - "status": "active", - "candidates": [ + "resolved_value": 3947536.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_fd4beff6e5a58b2ca5ff0b3a" + }, { - "name": "hmrc.tfc.government_top_up", + "name": "mhclg.council_tax_stock.total@E12000009", "status": "active", - "matched_fact_count_overall": 9, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 10746, + "matched_fact_count_at_or_before_period": 10638, + "geography_level": "region", + "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 599800000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_988715985f9e98bbb332e83d" + "resolved_value": 2519799.0, + "resolved_fact_period": "2025-10", + "resolved_fact_key": "ledger_aggregate_fact_v2_f7339b440103ee7084920ea3" } ] }, - "hmrc.tfc.children_with_used_accounts": { + "welshgov.council_tax_stock.band_a": { "status": "active", "candidates": [ { - "name": "hmrc.tfc.children_with_used_accounts", + "name": "welshgov.council_tax_stock.band_a", "status": "active", - "matched_fact_count_overall": 2, - "matched_fact_count_at_or_before_period": 2, + "matched_fact_count_overall": 436, + "matched_fact_count_at_or_before_period": 339, "resolved_period": 2025, - "resolved_value": 1151515.0, + "resolved_value": 194973.29, "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_7aa1c663447037b35ea1c999" + "resolved_fact_key": "ledger_aggregate_fact_v2_21e317eb3f397169fa2dc933" } ] }, - "dfe.funded_childcare.working_parent_children_2_to_4": { + "welshgov.council_tax_stock.band_b": { "status": "active", "candidates": [ { - "name": "dfe.funded_childcare.working_parent_children_2_to_4", + "name": "welshgov.council_tax_stock.band_b", "status": "active", - "matched_fact_count_overall": 11, - "matched_fact_count_at_or_before_period": 9, + "matched_fact_count_overall": 436, + "matched_fact_count_at_or_before_period": 339, "resolved_period": 2025, - "resolved_value": 621482.0, - "resolved_fact_period": "2025-01", - "resolved_fact_key": "ledger_aggregate_fact_v2_a57a0c03ac43b62dde04fabd" + "resolved_value": 285787.52, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_1db23c3de870c2f9704b9822" } ] }, - "dfe.funded_childcare.early_learning_2_year_olds": { + "welshgov.council_tax_stock.band_c": { "status": "active", "candidates": [ { - "name": "dfe.funded_childcare.early_learning_2_year_olds", + "name": "welshgov.council_tax_stock.band_c", "status": "active", - "matched_fact_count_overall": 12, - "matched_fact_count_at_or_before_period": 11, + "matched_fact_count_overall": 436, + "matched_fact_count_at_or_before_period": 339, "resolved_period": 2025, - "resolved_value": 95031.0, - "resolved_fact_period": "2025-01", - "resolved_fact_key": "ledger_aggregate_fact_v2_a2b30af28303935159ba0edc" + "resolved_value": 301699.86, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_c8c0495e5862c06f0f268414" } ] }, - "dfe.funded_childcare.universal_only_children": { + "welshgov.council_tax_stock.band_d": { "status": "active", "candidates": [ { - "name": "dfe.funded_childcare.universal_only_children", + "name": "welshgov.council_tax_stock.band_d", "status": "active", - "matched_fact_count_overall": 770, - "matched_fact_count_at_or_before_period": 686, + "matched_fact_count_overall": 436, + "matched_fact_count_at_or_before_period": 339, "resolved_period": 2025, - "resolved_value": 396965.0, - "resolved_fact_period": "2025-01", - "resolved_fact_key": "ledger_aggregate_fact_v2_471573def13ebdc67ff1f40a" + "resolved_value": 225179.88, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_04e498c0e2dad39004885ea3" } ] }, - "dft.bus_fare_receipts.england": { + "welshgov.council_tax_stock.band_e": { "status": "active", "candidates": [ { - "name": "dft.bus_fare_receipts.england", + "name": "welshgov.council_tax_stock.band_e", "status": "active", - "matched_fact_count_overall": 3, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 436, + "matched_fact_count_at_or_before_period": 339, "resolved_period": 2025, - "resolved_value": 3612036036.2194014, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_2ece7c3d283b6de43b30389f", - "uprating": { - "index": "dft.local_bus_fares_index", - "factor": "1.05695792880259", - "value_before_uprating": "3417388656.43538" - } + "resolved_value": 185447.46, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_e8ca0bef4217724c1b6eafbb" } ] }, - "dft.bus_net_support.england": { + "welshgov.council_tax_stock.band_f": { "status": "active", "candidates": [ { - "name": "dft.bus_net_support.england", + "name": "welshgov.council_tax_stock.band_f", "status": "active", - "matched_fact_count_overall": 3, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 436, + "matched_fact_count_at_or_before_period": 339, "resolved_period": 2025, - "resolved_value": 3024904320.8399997, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_a12dfcdc0662c8a5e48bf003" + "resolved_value": 114672.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_f9e314273b8264de7d24a7b6" } ] }, - "dft.bus_fare_receipts.london": { + "welshgov.council_tax_stock.band_g": { "status": "active", "candidates": [ { - "name": "dft.bus_fare_receipts.london", + "name": "welshgov.council_tax_stock.band_g", "status": "active", - "matched_fact_count_overall": 3, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 436, + "matched_fact_count_at_or_before_period": 339, "resolved_period": 2025, - "resolved_value": 1347434943.01459, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_33611c64d2048fe660501802", - "uprating": { - "index": "dft.local_bus_fares_index", - "factor": "1", - "value_before_uprating": "1347434943.01459" - } + "resolved_value": 52211.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_1ffc03853a7f22dbfdfd30ee" } ] }, - "dft.bus_net_support.london": { + "welshgov.council_tax_stock.band_h": { "status": "active", "candidates": [ { - "name": "dft.bus_net_support.london", + "name": "welshgov.council_tax_stock.band_h", "status": "active", - "matched_fact_count_overall": 3, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 436, + "matched_fact_count_at_or_before_period": 339, "resolved_period": 2025, - "resolved_value": 1130214000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_d8e40cee2fc723b719ff4680" - } - ] - }, - "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": "England outside London is England minus London: the England row and the London row (pinned at region E12000007) are both bound, so this publisher partition member is derived rather than pinned; Chronicle stamps it at statistical_scope and test_uk_bus_targets asserts the partition reconciles to England within GBP 1,000." + "resolved_value": 12357.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_38b37ca6c167d44f1ee2b517" } ] }, - "dft.bus_net_support.england_outside_london": { - "status": "signed_excluded", + "welshgov.council_tax_stock.band_i": { + "status": "active", "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": "England outside London is England minus London: the England row and the London row (pinned at region E12000007) are both bound, so this publisher partition member is derived rather than pinned; Chronicle stamps it at statistical_scope and test_uk_bus_targets asserts the partition reconciles to England within GBP 1,000." + "name": "welshgov.council_tax_stock.band_i", + "status": "active", + "matched_fact_count_overall": 436, + "matched_fact_count_at_or_before_period": 339, + "resolved_period": 2025, + "resolved_value": 5305.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_f94d0825d8f1f21a02667aeb" } ] }, - "dft.bus_fare_receipts.uk": { - "status": "signed_excluded", + "welshgov.council_tax_stock.total": { + "status": "active", "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." + "name": "welshgov.council_tax_stock.total", + "status": "active", + "matched_fact_count_overall": 436, + "matched_fact_count_at_or_before_period": 339, + "resolved_period": 2025, + "resolved_value": 1377633.03, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_69899dbf797a73ce0c05f13d" } ] }, - "dft.bus_net_support.uk": { - "status": "signed_excluded", + "scotgov.council_tax_stock.band_a": { + "status": "active", "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 no England-to-UK uplift is declared. Net support binds instead as four country legs whose scopes differ: DfT BUS05bi net support (England, operators' view), Scottish Transport Statistics all government support (Scotland), StatsWales revenue outturn gross expenditure on concessionary fares and support to operators through local authorities only (Wales: no operator-side series and no Welsh Government grants outside the outturn), and the NITHC accounts' Public Service Obligation plus concessionary compensation as one bus-plus-rail cell excluding GBP 53.2m of other revenue funding (Northern Ireland). The legs are bound on their own terms; they are not a UK total under another name." + "name": "scotgov.council_tax_stock.band_a", + "status": "active", + "matched_fact_count_overall": 3, + "matched_fact_count_at_or_before_period": 3, + "resolved_period": 2025, + "resolved_value": 498707.0, + "resolved_fact_period": "2025-09", + "resolved_fact_key": "ledger_aggregate_fact_v2_d16c53fe6a1c8f4f5886b7e5" } ] }, - "obr.fuel_duties_cars": { + "scotgov.council_tax_stock.band_b": { "status": "active", "candidates": [ { - "name": "obr.fuel_duties_cars", + "name": "scotgov.council_tax_stock.band_b", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 3, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 14400000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_de6554fe8ab7b481035a432a" + "resolved_value": 583705.0, + "resolved_fact_period": "2025-09", + "resolved_fact_key": "ledger_aggregate_fact_v2_2f95ec98ae61f9898bd47ed9" } ] }, - "orr.rail_government_support": { + "scotgov.council_tax_stock.band_c": { "status": "active", "candidates": [ { - "name": "orr.rail_government_support", + "name": "scotgov.council_tax_stock.band_c", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_overall": 3, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 21621100549.34064, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_b16b9b3f2329455f907f9ccc" + "resolved_value": 426388.0, + "resolved_fact_period": "2025-09", + "resolved_fact_key": "ledger_aggregate_fact_v2_c9781708df55dc5d197e6623" } ] }, - "ons.household_energy_expenditure": { - "status": "signed_excluded", + "scotgov.council_tax_stock.band_d": { + "status": "active", "candidates": [ { - "name": "ons.household_energy_expenditure", - "status": "signed_excluded", - "matched_fact_count_overall": 6, - "matched_fact_count_at_or_before_period": 6, - "signed_rationale": "ONS Consumer Trends COICOP 04.5 (electricity, gas and other fuels) carries liquid and solid fuels the frame does not model; chronicle #271 (chronicle#270) published the 04.5.1 electricity and 04.5.2 gas sub-classes, which ons.household_electricity_expenditure and ons.household_gas_expenditure bind per fuel on the frame's own columns. The total row is retained in the contract for registry parity and signed out here (microcosm#890 F1)." + "name": "scotgov.council_tax_stock.band_d", + "status": "active", + "matched_fact_count_overall": 3, + "matched_fact_count_at_or_before_period": 3, + "resolved_period": 2025, + "resolved_value": 369621.0, + "resolved_fact_period": "2025-09", + "resolved_fact_key": "ledger_aggregate_fact_v2_ae1fe03809a505b820479598" } ] }, - "ons.household_electricity_expenditure": { + "scotgov.council_tax_stock.band_e": { "status": "active", "candidates": [ { - "name": "ons.household_electricity_expenditure", + "name": "scotgov.council_tax_stock.band_e", "status": "active", - "matched_fact_count_overall": 6, - "matched_fact_count_at_or_before_period": 6, + "matched_fact_count_overall": 3, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 26522000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_69cd660b943ae8f21761f76a" + "resolved_value": 366881.0, + "resolved_fact_period": "2025-09", + "resolved_fact_key": "ledger_aggregate_fact_v2_e83153e0de40fb74471c805f" } ] }, - "ons.household_gas_expenditure": { + "scotgov.council_tax_stock.band_f": { "status": "active", "candidates": [ { - "name": "ons.household_gas_expenditure", + "name": "scotgov.council_tax_stock.band_f", "status": "active", - "matched_fact_count_overall": 6, - "matched_fact_count_at_or_before_period": 6, + "matched_fact_count_overall": 3, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 15339000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_b56be49c552300f6c02fc559" + "resolved_value": 221282.0, + "resolved_fact_period": "2025-09", + "resolved_fact_key": "ledger_aggregate_fact_v2_b24b6409c1473600c03999ec" } ] }, - "scotgov.bus.passenger_revenue": { + "scotgov.council_tax_stock.band_g": { "status": "active", "candidates": [ { - "name": "scotgov.bus.passenger_revenue", + "name": "scotgov.council_tax_stock.band_g", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 3, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 391000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_c4269bb83534f1e46f5801c1" + "resolved_value": 142084.0, + "resolved_fact_period": "2025-09", + "resolved_fact_key": "ledger_aggregate_fact_v2_c86494a855b00998122989d6" } ] }, - "scotgov.bus.government_support": { + "scotgov.council_tax_stock.band_h": { "status": "active", "candidates": [ { - "name": "scotgov.bus.government_support", + "name": "scotgov.council_tax_stock.band_h", "status": "active", - "matched_fact_count_overall": 2, - "matched_fact_count_at_or_before_period": 2, + "matched_fact_count_overall": 3, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 499000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ceb60fd41d0f5587be94c234" + "resolved_value": 14481.0, + "resolved_fact_period": "2025-09", + "resolved_fact_key": "ledger_aggregate_fact_v2_60d9ae638eff29fc1c88907e" } ] }, - "welshgov.bus.public_support": { + "scotgov.council_tax_stock.total": { "status": "active", "candidates": [ { - "name": "welshgov.bus.public_support", + "name": "scotgov.council_tax_stock.total", "status": "active", - "matched_fact_count_overall": 6, - "matched_fact_count_at_or_before_period": 6, + "matched_fact_count_overall": 3, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 131489970.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_a10fcfec7cb458fa0c8c7f10" + "resolved_value": 2623149.0, + "resolved_fact_period": "2025-09", + "resolved_fact_key": "ledger_aggregate_fact_v2_ca77a0f0a777ccba05e4bef9" } ] }, - "dfi_ni.bus.passenger_receipts": { + "scotgov.scottish_child_payment_spending": { "status": "active", "candidates": [ { - "name": "dfi_ni.bus.passenger_receipts", + "name": "scotgov.scottish_child_payment_spending", "status": "active", - "matched_fact_count_overall": 12, - "matched_fact_count_at_or_before_period": 12, + "matched_fact_count_overall": 3, + "matched_fact_count_at_or_before_period": 2, "resolved_period": 2025, - "resolved_value": 150082817.48999995, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_96f72989614e0c5faaeeabbb" + "resolved_value": 471000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_20b43b0f8f61e448f28895cf" } ] }, - "nithc.public_transport_support": { + "ons.savings_interest_income": { "status": "active", "candidates": [ { - "name": "nithc.public_transport_support", + "name": "ons.savings_interest_income", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 4, + "matched_fact_count_overall": 8, + "matched_fact_count_at_or_before_period": 8, "resolved_period": 2025, - "resolved_value": 111700000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_be8eb7011b6f65fa65d52fcb" + "resolved_value": 95503000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_8de1806d1330bcb80a1f4988" } ] }, - "dwp.uc.households_lcwra_element": { + "ons.public_sector_employment": { "status": "active", "candidates": [ { - "name": "dwp.uc.households_lcwra_element", + "name": "ons.public_sector_employment", "status": "active", - "matched_fact_count_overall": 12, - "matched_fact_count_at_or_before_period": 12, - "matched_fact_count_in_source_window": 12, + "matched_fact_count_overall": 2, + "matched_fact_count_at_or_before_period": 2, "resolved_period": 2025, - "resolved_value": 2272425.1666666665, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_f59149c4c514e1acffb728a8" + "resolved_value": 6146000.0, + "resolved_fact_period": "2024-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_ff79b4e2301f564ec4203235" } ] }, - "dwp.uc.households_carer_element": { + "ons.land.land_value": { "status": "active", "candidates": [ { - "name": "dwp.uc.households_carer_element", + "name": "ons.land.land_value", "status": "active", - "matched_fact_count_overall": 12, - "matched_fact_count_at_or_before_period": 12, - "matched_fact_count_in_source_window": 12, + "matched_fact_count_overall": 30, + "matched_fact_count_at_or_before_period": 30, "resolved_period": 2025, - "resolved_value": 1078514.5, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_d56ddfa58d7ebb3ff0178b0a" + "resolved_value": 7117771000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_4daf8d1b8830f72bba924d56" } ] }, - "dwp.uc.households_housing_element": { + "ons.land.household_land_value": { "status": "active", "candidates": [ { - "name": "dwp.uc.households_housing_element", + "name": "ons.land.household_land_value", "status": "active", - "matched_fact_count_overall": 12, - "matched_fact_count_at_or_before_period": 12, - "matched_fact_count_in_source_window": 12, + "matched_fact_count_overall": 30, + "matched_fact_count_at_or_before_period": 30, "resolved_period": 2025, - "resolved_value": 4037650.3333333335, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_04b7ec6d195e6682f0421672" + "resolved_value": 4559831000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_0e5f9867ab377dffd8a8941f" } ] }, - "dwp.uc.households_housing_element_social_rented": { + "ons.land.corporate_land_value": { "status": "active", "candidates": [ { - "name": "dwp.uc.households_housing_element_social_rented", + "name": "ons.land.corporate_land_value", "status": "active", - "matched_fact_count_overall": 12, - "matched_fact_count_at_or_before_period": 12, - "matched_fact_count_in_source_window": 12, + "matched_fact_count_overall": 30, + "matched_fact_count_at_or_before_period": 30, "resolved_period": 2025, - "resolved_value": 2354587.5833333335, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_109598f6aaa42fe1387d30d1" + "resolved_value": 2103053000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_ab561a17be0af52de30cca88" + } + ] + }, + "slc.repayments.devolved_total": { + "status": "no_fact_at_or_before_period", + "candidates": [ + { + "name": "slc.repayments.devolved_total", + "status": "no_fact_at_or_before_period", + "matched_fact_count_overall": 0, + "matched_fact_count_at_or_before_period": 0, + "error": "ledger_reference_compile_status_no_fact_at_or_before_period" } ] }, - "dwp.uc.households_housing_element_private_rented": { + "slc.repayments.england_total_higher_education": { "status": "active", "candidates": [ { - "name": "dwp.uc.households_housing_element_private_rented", + "name": "slc.repayments.england_total_higher_education", "status": "active", - "matched_fact_count_overall": 12, - "matched_fact_count_at_or_before_period": 12, - "matched_fact_count_in_source_window": 12, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 1570545.4166666667, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_7a31b88dfcd4b3d0c758a1c3" + "resolved_value": 5018231834.949999, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_b947d1f3c3659d252194c102" } ] }, - "dwp.uc.households_childcare_element": { + "slc.repayments.england_plan_1": { "status": "active", "candidates": [ { - "name": "dwp.uc.households_childcare_element", + "name": "slc.repayments.england_plan_1", "status": "active", - "matched_fact_count_overall": 12, - "matched_fact_count_at_or_before_period": 12, - "matched_fact_count_in_source_window": 12, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 178666.66666666666, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_0c1aa0cc56d86c50d6b2560a" + "resolved_value": 1852699178.55, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_1d9680e6eaf243227fed5ef2" } ] }, - "dwp.uc.households_with_deduction": { + "slc.repayments.england_plan_2": { "status": "active", "candidates": [ { - "name": "dwp.uc.households_with_deduction", + "name": "slc.repayments.england_plan_2", "status": "active", - "matched_fact_count_overall": 10, - "matched_fact_count_at_or_before_period": 10, - "matched_fact_count_in_source_window": 10, + "matched_fact_count_overall": 2, + "matched_fact_count_at_or_before_period": 2, "resolved_period": 2025, - "resolved_value": 3130000.0, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_f7bfdb41a462c417535602d2" + "resolved_value": 2778253361.64, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_882329821c90dc683aa778d8" } ] }, - "obr.universal_credit": { + "slc.repayments.england_postgraduate": { "status": "active", "candidates": [ { - "name": "obr.universal_credit", + "name": "slc.repayments.england_postgraduate", "status": "active", - "matched_fact_count_overall": 14, - "matched_fact_count_at_or_before_period": 4, + "matched_fact_count_overall": 2, + "matched_fact_count_at_or_before_period": 2, "resolved_period": 2025, - "resolved_value": 76054754387.77309, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_4c927d7b33d1eee2455bdbd0" + "resolved_value": 346409713.95000005, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_ac1b07c69f1e1baa2a0fb787" } ] }, - "dwp.hb.households": { + "slc.repayments.england_plan_5": { "status": "active", "candidates": [ { - "name": "dwp.hb.households", + "name": "slc.repayments.england_plan_5", "status": "active", - "matched_fact_count_overall": 12, - "matched_fact_count_at_or_before_period": 12, - "matched_fact_count_in_source_window": 12, + "matched_fact_count_overall": 2, + "matched_fact_count_at_or_before_period": 2, "resolved_period": 2025, - "resolved_value": 1685702.9166666667, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_f2ecf4d38ef4dfc796336538" + "resolved_value": 40869580.81, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_496af6b8fe31c71c43f1d292" } ] }, - "dwp.hb.households_social_rented": { + "slc.borrowers.plan_2_above_threshold": { "status": "active", "candidates": [ { - "name": "dwp.hb.households_social_rented", + "name": "slc.borrowers.plan_2_above_threshold", "status": "active", - "matched_fact_count_overall": 12, - "matched_fact_count_at_or_before_period": 12, - "matched_fact_count_in_source_window": 12, + "matched_fact_count_overall": 6, + "matched_fact_count_at_or_before_period": 2, "resolved_period": 2025, - "resolved_value": 1381089.75, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_40b45c74a40b8d085a8c28e2" + "resolved_value": 4460000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_02288c19caeae900fdaf1e0d" } ] }, - "dwp.hb.households_private_rented": { + "slc.borrowers.plan_2_liable": { "status": "active", "candidates": [ { - "name": "dwp.hb.households_private_rented", + "name": "slc.borrowers.plan_2_liable", "status": "active", - "matched_fact_count_overall": 12, - "matched_fact_count_at_or_before_period": 12, - "matched_fact_count_in_source_window": 12, + "matched_fact_count_overall": 6, + "matched_fact_count_at_or_before_period": 2, "resolved_period": 2025, - "resolved_value": 304422.6666666667, - "resolved_fact_period": "2025-12", - "resolved_fact_key": "ledger_aggregate_fact_v2_02281858b7b0d71477e429f3" + "resolved_value": 9710000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_37387933e73bcc8c1e04cf78" } ] }, - "dwp.benefit_cap.capped_households_up_to_100": { + "slc.borrowers.plan_5_above_threshold": { "status": "active", "candidates": [ { - "name": "dwp.benefit_cap.capped_households_up_to_100", + "name": "slc.borrowers.plan_5_above_threshold", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 6, + "matched_fact_count_at_or_before_period": 2, "resolved_period": 2025, - "resolved_value": 38402.0, - "resolved_fact_period": "2025-11", - "resolved_fact_key": "ledger_aggregate_fact_v2_220b82ab05bec494e6dc9fe9" + "resolved_value": 35000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_dd16b085f81ef7708a00511e" } ] }, - "dwp.benefit_cap.capped_households_100_01_to_200": { + "slc.borrowers.plan_5_liable": { "status": "active", "candidates": [ { - "name": "dwp.benefit_cap.capped_households_100_01_to_200", + "name": "slc.borrowers.plan_5_liable", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 6, + "matched_fact_count_at_or_before_period": 2, "resolved_period": 2025, - "resolved_value": 24274.0, - "resolved_fact_period": "2025-11", - "resolved_fact_key": "ledger_aggregate_fact_v2_4a9e2cc181aee62e1eccd188" + "resolved_value": 230000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_73ff136d820950ea404ddb6b" } ] }, - "dwp.benefit_cap.capped_households_200_01_to_300": { + "slc.support.maintenance_loan_recipients": { "status": "active", "candidates": [ { - "name": "dwp.benefit_cap.capped_households_200_01_to_300", + "name": "slc.support.maintenance_loan_recipients", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 12, + "matched_fact_count_at_or_before_period": 12, "resolved_period": 2025, - "resolved_value": 16240.0, - "resolved_fact_period": "2025-11", - "resolved_fact_key": "ledger_aggregate_fact_v2_5ae8289242eabcffab23f32f" + "resolved_value": 1159761.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f03bd7a10d0eee9917a3a199" } ] }, - "dwp.benefit_cap.capped_households_300_01_to_400": { + "slc.support.maintenance_loan_spend": { "status": "active", "candidates": [ { - "name": "dwp.benefit_cap.capped_households_300_01_to_400", + "name": "slc.support.maintenance_loan_spend", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 12, + "matched_fact_count_at_or_before_period": 12, "resolved_period": 2025, - "resolved_value": 10562.0, - "resolved_fact_period": "2025-11", - "resolved_fact_key": "ledger_aggregate_fact_v2_a503d4e938aaf386720b96c4" + "resolved_value": 8591659718.080004, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_2900e25d7ee90f79fb3b87b9" } ] }, - "dwp.benefit_cap.capped_households_400_01_to_500": { + "slc.support.parents_learning_allowance_recipients": { "status": "active", "candidates": [ { - "name": "dwp.benefit_cap.capped_households_400_01_to_500", + "name": "slc.support.parents_learning_allowance_recipients", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 12, + "matched_fact_count_at_or_before_period": 12, "resolved_period": 2025, - "resolved_value": 7813.0, - "resolved_fact_period": "2025-11", - "resolved_fact_key": "ledger_aggregate_fact_v2_df764409769b2078c69ff113" + "resolved_value": 99645.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_d5df1c69846ab2fd3d0e50e1" } ] }, - "dwp.benefit_cap.capped_households_500_01_to_600": { + "slc.support.parents_learning_allowance_spend": { "status": "active", "candidates": [ { - "name": "dwp.benefit_cap.capped_households_500_01_to_600", + "name": "slc.support.parents_learning_allowance_spend", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 12, + "matched_fact_count_at_or_before_period": 12, "resolved_period": 2025, - "resolved_value": 4431.0, - "resolved_fact_period": "2025-11", - "resolved_fact_key": "ledger_aggregate_fact_v2_3d0e936b240ba62209777ee3" + "resolved_value": 181421659.32, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_72028ce00b9569deec79d6e6" } ] }, - "dwp.benefit_cap.capped_households_600_01_to_700": { + "slc.support.adult_dependants_grant_recipients": { "status": "active", "candidates": [ { - "name": "dwp.benefit_cap.capped_households_600_01_to_700", + "name": "slc.support.adult_dependants_grant_recipients", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 12, + "matched_fact_count_at_or_before_period": 12, "resolved_period": 2025, - "resolved_value": 3116.0, - "resolved_fact_period": "2025-11", - "resolved_fact_key": "ledger_aggregate_fact_v2_1d68398dd88958a8700dcfac" + "resolved_value": 18611.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_adc83b5d137ecb48fed77064" } ] }, - "dwp.benefit_cap.capped_households_700_01_to_800": { + "slc.support.adult_dependants_grant_spend": { "status": "active", "candidates": [ { - "name": "dwp.benefit_cap.capped_households_700_01_to_800", + "name": "slc.support.adult_dependants_grant_spend", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 12, + "matched_fact_count_at_or_before_period": 12, "resolved_period": 2025, - "resolved_value": 1902.0, - "resolved_fact_period": "2025-11", - "resolved_fact_key": "ledger_aggregate_fact_v2_999288b0fa67d7f657810a11" + "resolved_value": 55364916.81, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_5d42660596c9088248e41e90" } ] }, - "dwp.benefit_cap.capped_households_800_01_to_900": { + "dwp.uc.households": { "status": "active", "candidates": [ { - "name": "dwp.benefit_cap.capped_households_800_01_to_900", + "name": "dwp.uc.households", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 120, + "matched_fact_count_at_or_before_period": 120, + "matched_fact_count_in_source_window": 120, "resolved_period": 2025, - "resolved_value": 1328.0, - "resolved_fact_period": "2025-11", - "resolved_fact_key": "ledger_aggregate_fact_v2_b7a2d0cec131abfd0cb81ba0" + "resolved_value": 6197311.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_71c060f3f2a732e2f836a5d8" } ] }, - "dwp.benefit_cap.capped_households_900_01_to_1000": { + "hmrc.tfc.government_top_up": { "status": "active", "candidates": [ { - "name": "dwp.benefit_cap.capped_households_900_01_to_1000", + "name": "hmrc.tfc.government_top_up", "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": 824.0, - "resolved_fact_period": "2025-11", - "resolved_fact_key": "ledger_aggregate_fact_v2_80c8fa82f3e07357e677ae93" + "resolved_value": 599800000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_988715985f9e98bbb332e83d" } ] }, - "dwp.benefit_cap.capped_households_1000_01_to_1100": { + "hmrc.tfc.children_with_used_accounts": { "status": "active", "candidates": [ { - "name": "dwp.benefit_cap.capped_households_1000_01_to_1100", + "name": "hmrc.tfc.children_with_used_accounts", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 2, + "matched_fact_count_at_or_before_period": 2, "resolved_period": 2025, - "resolved_value": 497.0, - "resolved_fact_period": "2025-11", - "resolved_fact_key": "ledger_aggregate_fact_v2_cf55cee33404d2283800b2b5" + "resolved_value": 1151515.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_7aa1c663447037b35ea1c999" } ] }, - "dwp.benefit_cap.capped_households_1100_01_to_1200": { + "dfe.funded_childcare.working_parent_children_2_to_4": { "status": "active", "candidates": [ { - "name": "dwp.benefit_cap.capped_households_1100_01_to_1200", + "name": "dfe.funded_childcare.working_parent_children_2_to_4", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 11, + "matched_fact_count_at_or_before_period": 9, "resolved_period": 2025, - "resolved_value": 380.0, - "resolved_fact_period": "2025-11", - "resolved_fact_key": "ledger_aggregate_fact_v2_6f836a33391f4352151bd27f" + "resolved_value": 621482.0, + "resolved_fact_period": "2025-01", + "resolved_fact_key": "ledger_aggregate_fact_v2_a57a0c03ac43b62dde04fabd" } ] }, - "dwp.benefit_cap.capped_households_1200_01_to_1300": { + "dfe.funded_childcare.early_learning_2_year_olds": { "status": "active", "candidates": [ { - "name": "dwp.benefit_cap.capped_households_1200_01_to_1300", + "name": "dfe.funded_childcare.early_learning_2_year_olds", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 12, + "matched_fact_count_at_or_before_period": 11, "resolved_period": 2025, - "resolved_value": 239.0, - "resolved_fact_period": "2025-11", - "resolved_fact_key": "ledger_aggregate_fact_v2_ad08714cf39be9ccf0450cf2" + "resolved_value": 95031.0, + "resolved_fact_period": "2025-01", + "resolved_fact_key": "ledger_aggregate_fact_v2_a2b30af28303935159ba0edc" } ] }, - "dwp.benefit_cap.capped_households_1300_01_and_above": { + "dfe.funded_childcare.universal_only_children": { "status": "active", "candidates": [ { - "name": "dwp.benefit_cap.capped_households_1300_01_and_above", + "name": "dfe.funded_childcare.universal_only_children", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 770, + "matched_fact_count_at_or_before_period": 686, "resolved_period": 2025, - "resolved_value": 627.0, - "resolved_fact_period": "2025-11", - "resolved_fact_key": "ledger_aggregate_fact_v2_a3fee6cdec1b46a15a3b1434" + "resolved_value": 396965.0, + "resolved_fact_period": "2025-01", + "resolved_fact_key": "ledger_aggregate_fact_v2_471573def13ebdc67ff1f40a" } ] }, - "hmrc.cgt.taxpayers_by_age_band": { + "dft.bus_fare_receipts.england": { "status": "active", "candidates": [ { - "name": "hmrc.cgt.taxpayers_by_age_band.age_0_to_15", - "status": "signed_excluded", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, - "signed_row": { - "dimension": "age_band", - "value": "age_0_to_15" - }, - "signed_rationale": "HMRC Table 6's 15-and-below row (1,000 taxpayers, GBP 54m of gains, GBP 9m of tax in 2024-25) has no support: the CGT incidence clone and the size-band donors place gains on the oldest adult of a household, so the frame carries no gainer under 16 and the row would always measure zero. Signed out of the age-band fan-out; the eight adult bands stay bound." - }, - { - "name": "hmrc.cgt.taxpayers_by_age_band.age_16_to_24", - "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, - "resolved_period": 2025, - "resolved_value": 4000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_8c3d294de4cbdbe292815164" - }, - { - "name": "hmrc.cgt.taxpayers_by_age_band.age_25_to_34", - "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, - "resolved_period": 2025, - "resolved_value": 27000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_cc8ef619f52f7f44a885ce52" - }, - { - "name": "hmrc.cgt.taxpayers_by_age_band.age_35_to_44", - "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, - "resolved_period": 2025, - "resolved_value": 65000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_8554e7f842699a5f49816a0d" - }, - { - "name": "hmrc.cgt.taxpayers_by_age_band.age_45_to_54", - "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, - "resolved_period": 2025, - "resolved_value": 98000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_794376b60fba0684412fdff8" - }, - { - "name": "hmrc.cgt.taxpayers_by_age_band.age_55_to_64", - "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, - "resolved_period": 2025, - "resolved_value": 144000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_0d6b6c36290ab598f74f6669" - }, - { - "name": "hmrc.cgt.taxpayers_by_age_band.age_65_to_74", - "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, - "resolved_period": 2025, - "resolved_value": 125000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_a725972fe4ee87a3bddee1cf" - }, - { - "name": "hmrc.cgt.taxpayers_by_age_band.age_75_to_84", - "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, - "resolved_period": 2025, - "resolved_value": 68000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_1e4899d950c2b2be8ae21459" - }, - { - "name": "hmrc.cgt.taxpayers_by_age_band.age_85_plus", + "name": "dft.bus_fare_receipts.england", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 3, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 19000.0, + "resolved_value": 3612036036.2194014, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_7c419e2a82d25fae0127fd1d" + "resolved_fact_key": "ledger_aggregate_fact_v2_2ece7c3d283b6de43b30389f", + "uprating": { + "index": "dft.local_bus_fares_index", + "factor": "1.05695792880259", + "value_before_uprating": "3417388656.43538" + } } ] }, - "hmrc.cgt.gains_by_age_band": { + "dft.bus_net_support.england": { "status": "active", "candidates": [ { - "name": "hmrc.cgt.gains_by_age_band.age_0_to_15", - "status": "signed_excluded", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, - "signed_row": { - "dimension": "age_band", - "value": "age_0_to_15" - }, - "signed_rationale": "HMRC Table 6's 15-and-below row (1,000 taxpayers, GBP 54m of gains, GBP 9m of tax in 2024-25) has no support: the CGT incidence clone and the size-band donors place gains on the oldest adult of a household, so the frame carries no gainer under 16 and the row would always measure zero. Signed out of the age-band fan-out; the eight adult bands stay bound." - }, - { - "name": "hmrc.cgt.gains_by_age_band.age_16_to_24", + "name": "dft.bus_net_support.england", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 3, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 319000000.0, + "resolved_value": 3024904320.8399997, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_af584dedce4184d834502e56" - }, + "resolved_fact_key": "ledger_aggregate_fact_v2_a12dfcdc0662c8a5e48bf003" + } + ] + }, + "dft.bus_fare_receipts.london": { + "status": "active", + "candidates": [ { - "name": "hmrc.cgt.gains_by_age_band.age_25_to_34", + "name": "dft.bus_fare_receipts.london", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 3, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 2499000000.0, + "resolved_value": 1347434943.01459, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_40c8b42d3904c8eb44297559" - }, + "resolved_fact_key": "ledger_aggregate_fact_v2_33611c64d2048fe660501802", + "uprating": { + "index": "dft.local_bus_fares_index", + "factor": "1", + "value_before_uprating": "1347434943.01459" + } + } + ] + }, + "dft.bus_net_support.london": { + "status": "active", + "candidates": [ { - "name": "hmrc.cgt.gains_by_age_band.age_35_to_44", + "name": "dft.bus_net_support.london", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 3, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 11775000000.0, + "resolved_value": 1130214000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_375b4cb880dcb4caacc5f003" - }, + "resolved_fact_key": "ledger_aggregate_fact_v2_d8e40cee2fc723b719ff4680" + } + ] + }, + "dft.bus_fare_receipts.england_outside_london": { + "status": "signed_excluded", + "candidates": [ { - "name": "hmrc.cgt.gains_by_age_band.age_45_to_54", - "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, - "resolved_period": 2025, - "resolved_value": 28422000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_567f8babf11f6356f72398de" - }, + "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": "England outside London is England minus London: the England row and the London row (pinned at region E12000007) are both bound, so this publisher partition member is derived rather than pinned; Chronicle stamps it at statistical_scope and test_uk_bus_targets asserts the partition reconciles to England within GBP 1,000." + } + ] + }, + "dft.bus_net_support.england_outside_london": { + "status": "signed_excluded", + "candidates": [ { - "name": "hmrc.cgt.gains_by_age_band.age_55_to_64", - "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, - "resolved_period": 2025, - "resolved_value": 38118000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_38da5aa08efc20c32951a860" - }, + "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": "England outside London is England minus London: the England row and the London row (pinned at region E12000007) are both bound, so this publisher partition member is derived rather than pinned; Chronicle stamps it at statistical_scope and test_uk_bus_targets asserts the partition reconciles to England within GBP 1,000." + } + ] + }, + "dft.bus_fare_receipts.uk": { + "status": "signed_excluded", + "candidates": [ { - "name": "hmrc.cgt.gains_by_age_band.age_65_to_74", - "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, - "resolved_period": 2025, - "resolved_value": 24260000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_69e2dec98e4cdbe34c3a0572" - }, + "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": "hmrc.cgt.gains_by_age_band.age_75_to_84", + "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 no England-to-UK uplift is declared. Net support binds instead as four country legs whose scopes differ: DfT BUS05bi net support (England, operators' view), Scottish Transport Statistics all government support (Scotland), StatsWales revenue outturn gross expenditure on concessionary fares and support to operators through local authorities only (Wales: no operator-side series and no Welsh Government grants outside the outturn), and the NITHC accounts' Public Service Obligation plus concessionary compensation as one bus-plus-rail cell excluding GBP 53.2m of other revenue funding (Northern Ireland). The legs are bound on their own terms; they are not a UK total under another name." + } + ] + }, + "obr.fuel_duties_cars": { + "status": "active", + "candidates": [ + { + "name": "obr.fuel_duties_cars", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 11736000000.0, + "resolved_value": 14400000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_9d0fb4e1a0c63f6d06b73e61" - }, + "resolved_fact_key": "ledger_aggregate_fact_v2_de6554fe8ab7b481035a432a" + } + ] + }, + "orr.rail_government_support": { + "status": "active", + "candidates": [ { - "name": "hmrc.cgt.gains_by_age_band.age_85_plus", + "name": "orr.rail_government_support", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, "resolved_period": 2025, - "resolved_value": 2076000000.0, + "resolved_value": 21621100549.34064, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ca2b09a93c8a40ea4766b341" + "resolved_fact_key": "ledger_aggregate_fact_v2_b16b9b3f2329455f907f9ccc" } ] }, - "hmrc.cgt.tax_by_age_band": { - "status": "active", + "ons.household_energy_expenditure": { + "status": "signed_excluded", "candidates": [ { - "name": "hmrc.cgt.tax_by_age_band.age_0_to_15", + "name": "ons.household_energy_expenditure", "status": "signed_excluded", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, - "signed_row": { - "dimension": "age_band", - "value": "age_0_to_15" - }, - "signed_rationale": "HMRC Table 6's 15-and-below row (1,000 taxpayers, GBP 54m of gains, GBP 9m of tax in 2024-25) has no support: the CGT incidence clone and the size-band donors place gains on the oldest adult of a household, so the frame carries no gainer under 16 and the row would always measure zero. Signed out of the age-band fan-out; the eight adult bands stay bound." - }, + "matched_fact_count_overall": 6, + "matched_fact_count_at_or_before_period": 6, + "signed_rationale": "ONS Consumer Trends COICOP 04.5 (electricity, gas and other fuels) carries liquid and solid fuels the frame does not model; chronicle #271 (chronicle#270) published the 04.5.1 electricity and 04.5.2 gas sub-classes, which ons.household_electricity_expenditure and ons.household_gas_expenditure bind per fuel on the frame's own columns. The total row is retained in the contract for registry parity and signed out here (microcosm#890 F1)." + } + ] + }, + "ons.household_electricity_expenditure": { + "status": "active", + "candidates": [ { - "name": "hmrc.cgt.tax_by_age_band.age_16_to_24", + "name": "ons.household_electricity_expenditure", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 6, + "matched_fact_count_at_or_before_period": 6, "resolved_period": 2025, - "resolved_value": 59000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_5e45e49cdf5771a4f3dbc0c6" - }, + "resolved_value": 26522000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_69cd660b943ae8f21761f76a" + } + ] + }, + "ons.household_gas_expenditure": { + "status": "active", + "candidates": [ { - "name": "hmrc.cgt.tax_by_age_band.age_25_to_34", + "name": "ons.household_gas_expenditure", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 6, + "matched_fact_count_at_or_before_period": 6, "resolved_period": 2025, - "resolved_value": 456000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_4f0a20f8646020c518ec1a6c" - }, + "resolved_value": 15339000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_b56be49c552300f6c02fc559" + } + ] + }, + "scotgov.bus.passenger_revenue": { + "status": "active", + "candidates": [ { - "name": "hmrc.cgt.tax_by_age_band.age_35_to_44", + "name": "scotgov.bus.passenger_revenue", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 2246000000.0, + "resolved_value": 391000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_041101c10e8ee3a674596ab2" - }, + "resolved_fact_key": "ledger_aggregate_fact_v2_c4269bb83534f1e46f5801c1" + } + ] + }, + "scotgov.bus.government_support": { + "status": "active", + "candidates": [ { - "name": "hmrc.cgt.tax_by_age_band.age_45_to_54", + "name": "scotgov.bus.government_support", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 2, + "matched_fact_count_at_or_before_period": 2, "resolved_period": 2025, - "resolved_value": 5522000000.0, + "resolved_value": 499000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_c678a6f27d3dc149131419ee" - }, + "resolved_fact_key": "ledger_aggregate_fact_v2_ceb60fd41d0f5587be94c234" + } + ] + }, + "welshgov.bus.public_support": { + "status": "active", + "candidates": [ { - "name": "hmrc.cgt.tax_by_age_band.age_55_to_64", + "name": "welshgov.bus.public_support", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 6, + "matched_fact_count_at_or_before_period": 6, "resolved_period": 2025, - "resolved_value": 7152000000.0, + "resolved_value": 131489970.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_76990ed6855fce16817d5289" - }, + "resolved_fact_key": "ledger_aggregate_fact_v2_a10fcfec7cb458fa0c8c7f10" + } + ] + }, + "dfi_ni.bus.passenger_receipts": { + "status": "active", + "candidates": [ { - "name": "hmrc.cgt.tax_by_age_band.age_65_to_74", + "name": "dfi_ni.bus.passenger_receipts", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 12, + "matched_fact_count_at_or_before_period": 12, "resolved_period": 2025, - "resolved_value": 4409000000.0, + "resolved_value": 150082817.48999995, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_3d4b0b5873bbe5bce9c14381" - }, + "resolved_fact_key": "ledger_aggregate_fact_v2_96f72989614e0c5faaeeabbb" + } + ] + }, + "nithc.public_transport_support": { + "status": "active", + "candidates": [ { - "name": "hmrc.cgt.tax_by_age_band.age_75_to_84", + "name": "nithc.public_transport_support", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 4, "resolved_period": 2025, - "resolved_value": 2260000000.0, + "resolved_value": 111700000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_9c1150dfbd7f4f3b6235050b" - }, + "resolved_fact_key": "ledger_aggregate_fact_v2_be8eb7011b6f65fa65d52fcb" + } + ] + }, + "dwp.uc.households_lcwra_element": { + "status": "active", + "candidates": [ { - "name": "hmrc.cgt.tax_by_age_band.age_85_plus", + "name": "dwp.uc.households_lcwra_element", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 12, + "matched_fact_count_at_or_before_period": 12, + "matched_fact_count_in_source_window": 12, "resolved_period": 2025, - "resolved_value": 390000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_e60df0c2438533341e2f4b08" + "resolved_value": 2272425.1666666665, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_f59149c4c514e1acffb728a8" } ] }, - "hmrc.cgt.taxpayers_by_region": { + "dwp.uc.households_carer_element": { "status": "active", "candidates": [ { - "name": "hmrc.cgt.taxpayers_by_region@E12000001", + "name": "dwp.uc.households_carer_element", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, - "geography_level": "region", - "geography_id": "E12000001", + "matched_fact_count_overall": 12, + "matched_fact_count_at_or_before_period": 12, + "matched_fact_count_in_source_window": 12, "resolved_period": 2025, - "resolved_value": 11321.91780821918, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_06f4adc777a4a3036026872f" - }, + "resolved_value": 1078514.5, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_d56ddfa58d7ebb3ff0178b0a" + } + ] + }, + "dwp.uc.households_housing_element": { + "status": "active", + "candidates": [ { - "name": "hmrc.cgt.taxpayers_by_region@E12000002", + "name": "dwp.uc.households_housing_element", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, - "geography_level": "region", - "geography_id": "E12000002", + "matched_fact_count_overall": 12, + "matched_fact_count_at_or_before_period": 12, + "matched_fact_count_in_source_window": 12, "resolved_period": 2025, - "resolved_value": 41513.69863013699, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_9c0d0cc201d3d0f86df9f485" - }, + "resolved_value": 4037650.3333333335, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_04b7ec6d195e6682f0421672" + } + ] + }, + "dwp.uc.households_housing_element_social_rented": { + "status": "active", + "candidates": [ { - "name": "hmrc.cgt.taxpayers_by_region@E12000003", + "name": "dwp.uc.households_housing_element_social_rented", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, - "geography_level": "region", - "geography_id": "E12000003", + "matched_fact_count_overall": 12, + "matched_fact_count_at_or_before_period": 12, + "matched_fact_count_in_source_window": 12, "resolved_period": 2025, - "resolved_value": 32078.767123287675, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_abfee7a635221f3a6573857f" - }, + "resolved_value": 2354587.5833333335, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_109598f6aaa42fe1387d30d1" + } + ] + }, + "dwp.uc.households_housing_element_private_rented": { + "status": "active", + "candidates": [ { - "name": "hmrc.cgt.taxpayers_by_region@E12000004", + "name": "dwp.uc.households_housing_element_private_rented", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, - "geography_level": "region", - "geography_id": "E12000004", + "matched_fact_count_overall": 12, + "matched_fact_count_at_or_before_period": 12, + "matched_fact_count_in_source_window": 12, "resolved_period": 2025, - "resolved_value": 31135.273972602743, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_d8b059af35df8fc34df0ebfa" - }, + "resolved_value": 1570545.4166666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_7a31b88dfcd4b3d0c758a1c3" + } + ] + }, + "dwp.uc.households_childcare_element": { + "status": "active", + "candidates": [ { - "name": "hmrc.cgt.taxpayers_by_region@E12000005", + "name": "dwp.uc.households_childcare_element", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, - "geography_level": "region", - "geography_id": "E12000005", + "matched_fact_count_overall": 12, + "matched_fact_count_at_or_before_period": 12, + "matched_fact_count_in_source_window": 12, "resolved_period": 2025, - "resolved_value": 33022.260273972606, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_d003284169d6847765c66221" - }, + "resolved_value": 178666.66666666666, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_0c1aa0cc56d86c50d6b2560a" + } + ] + }, + "dwp.uc.households_with_deduction": { + "status": "active", + "candidates": [ { - "name": "hmrc.cgt.taxpayers_by_region@E12000006", + "name": "dwp.uc.households_with_deduction", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, - "geography_level": "region", - "geography_id": "E12000006", + "matched_fact_count_overall": 10, + "matched_fact_count_at_or_before_period": 10, + "matched_fact_count_in_source_window": 10, "resolved_period": 2025, - "resolved_value": 58496.57534246576, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_a48acd5e86822a82360de3c3" - }, + "resolved_value": 3130000.0, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_f7bfdb41a462c417535602d2" + } + ] + }, + "obr.universal_credit": { + "status": "active", + "candidates": [ { - "name": "hmrc.cgt.taxpayers_by_region@E12000007", + "name": "obr.universal_credit", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, - "geography_level": "region", - "geography_id": "E12000007", + "matched_fact_count_overall": 14, + "matched_fact_count_at_or_before_period": 4, "resolved_period": 2025, - "resolved_value": 106614.72602739726, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_7bde136c5103f6b31dc478ef" - }, + "resolved_value": 76054754387.77309, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_4c927d7b33d1eee2455bdbd0" + } + ] + }, + "dwp.hb.households": { + "status": "active", + "candidates": [ { - "name": "hmrc.cgt.taxpayers_by_region@E12000008", + "name": "dwp.hb.households", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, - "geography_level": "region", - "geography_id": "E12000008", + "matched_fact_count_overall": 12, + "matched_fact_count_at_or_before_period": 12, + "matched_fact_count_in_source_window": 12, "resolved_period": 2025, - "resolved_value": 114162.67123287672, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_228fb212eb226981e6213fb1" - }, + "resolved_value": 1685702.9166666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_f2ecf4d38ef4dfc796336538" + } + ] + }, + "dwp.hb.households_social_rented": { + "status": "active", + "candidates": [ { - "name": "hmrc.cgt.taxpayers_by_region@E12000009", + "name": "dwp.hb.households_social_rented", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, - "geography_level": "region", - "geography_id": "E12000009", + "matched_fact_count_overall": 12, + "matched_fact_count_at_or_before_period": 12, + "matched_fact_count_in_source_window": 12, "resolved_period": 2025, - "resolved_value": 60383.56164383562, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_af8dd206a47ffbc3651ece3b" - }, + "resolved_value": 1381089.75, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_40b45c74a40b8d085a8c28e2" + } + ] + }, + "dwp.hb.households_private_rented": { + "status": "active", + "candidates": [ { - "name": "hmrc.cgt.taxpayers_by_region@W92000004", + "name": "dwp.hb.households_private_rented", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, - "geography_level": "country", - "geography_id": "W92000004", + "matched_fact_count_overall": 12, + "matched_fact_count_at_or_before_period": 12, + "matched_fact_count_in_source_window": 12, "resolved_period": 2025, - "resolved_value": 16982.87671232877, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_c3fb868cb38397d0420cd136" - }, + "resolved_value": 304422.6666666667, + "resolved_fact_period": "2025-12", + "resolved_fact_key": "ledger_aggregate_fact_v2_02281858b7b0d71477e429f3" + } + ] + }, + "dwp.benefit_cap.capped_households_up_to_100": { + "status": "active", + "candidates": [ { - "name": "hmrc.cgt.taxpayers_by_region@S92000003", + "name": "dwp.benefit_cap.capped_households_up_to_100", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, - "geography_level": "country", - "geography_id": "S92000003", "resolved_period": 2025, - "resolved_value": 34909.24657534247, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_e3b5a134b920d7bcf071dc5c" - }, + "resolved_value": 38402.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_220b82ab05bec494e6dc9fe9" + } + ] + }, + "dwp.benefit_cap.capped_households_100_01_to_200": { + "status": "active", + "candidates": [ { - "name": "hmrc.cgt.taxpayers_by_region@N92000002", + "name": "dwp.benefit_cap.capped_households_100_01_to_200", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, - "geography_level": "country", - "geography_id": "N92000002", "resolved_period": 2025, - "resolved_value": 9434.931506849316, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_2779d0ba66235d3ec59280b8" + "resolved_value": 24274.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_4a9e2cc181aee62e1eccd188" } ] }, - "hmrc.cgt.gains_by_region": { + "dwp.benefit_cap.capped_households_200_01_to_300": { "status": "active", "candidates": [ { - "name": "hmrc.cgt.gains_by_region@E12000001", + "name": "dwp.benefit_cap.capped_households_200_01_to_300", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, - "geography_level": "region", - "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 1497797150.3974364, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_c56796163e95a924ef066aeb" - }, + "resolved_value": 16240.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_5ae8289242eabcffab23f32f" + } + ] + }, + "dwp.benefit_cap.capped_households_300_01_to_400": { + "status": "active", + "candidates": [ { - "name": "hmrc.cgt.gains_by_region@E12000002", + "name": "dwp.benefit_cap.capped_households_300_01_to_400", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, - "geography_level": "region", - "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 8790074083.38308, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_07d5a851c664d71dad2233c6" - }, + "resolved_value": 10562.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_a503d4e938aaf386720b96c4" + } + ] + }, + "dwp.benefit_cap.capped_households_400_01_to_500": { + "status": "active", + "candidates": [ { - "name": "hmrc.cgt.gains_by_region@E12000003", + "name": "dwp.benefit_cap.capped_households_400_01_to_500", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, - "geography_level": "region", - "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 6970985861.949795, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_6b4137649b34773c10d9731d" - }, + "resolved_value": 7813.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_df764409769b2078c69ff113" + } + ] + }, + "dwp.benefit_cap.capped_households_500_01_to_600": { + "status": "active", + "candidates": [ { - "name": "hmrc.cgt.gains_by_region@E12000004", + "name": "dwp.benefit_cap.capped_households_500_01_to_600", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, - "geography_level": "region", - "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 6299365751.358824, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_61b52be8ce7d4fc692817ba9" - }, + "resolved_value": 4431.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_3d0e936b240ba62209777ee3" + } + ] + }, + "dwp.benefit_cap.capped_households_600_01_to_700": { + "status": "active", + "candidates": [ { - "name": "hmrc.cgt.gains_by_region@E12000005", + "name": "dwp.benefit_cap.capped_households_600_01_to_700", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, - "geography_level": "region", - "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 5890960774.765152, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_34a10615174b9297afe221b7" - }, + "resolved_value": 3116.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_1d68398dd88958a8700dcfac" + } + ] + }, + "dwp.benefit_cap.capped_households_700_01_to_800": { + "status": "active", + "candidates": [ { - "name": "hmrc.cgt.gains_by_region@E12000006", + "name": "dwp.benefit_cap.capped_households_700_01_to_800", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, - "geography_level": "region", - "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 11545870966.728456, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f15225d0bcd17c6de4da7274" - }, + "resolved_value": 1902.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_999288b0fa67d7f657810a11" + } + ] + }, + "dwp.benefit_cap.capped_households_800_01_to_900": { + "status": "active", + "candidates": [ { - "name": "hmrc.cgt.gains_by_region@E12000007", + "name": "dwp.benefit_cap.capped_households_800_01_to_900", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, - "geography_level": "region", - "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 32519714615.602127, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_1c9e621227b5e9e0de086a29" - }, + "resolved_value": 1328.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_b7a2d0cec131abfd0cb81ba0" + } + ] + }, + "dwp.benefit_cap.capped_households_900_01_to_1000": { + "status": "active", + "candidates": [ { - "name": "hmrc.cgt.gains_by_region@E12000008", + "name": "dwp.benefit_cap.capped_households_900_01_to_1000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, - "geography_level": "region", - "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 25606804690.69088, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_e292074b43a3aaf4dbd7700e" - }, + "resolved_value": 824.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_80c8fa82f3e07357e677ae93" + } + ] + }, + "dwp.benefit_cap.capped_households_1000_01_to_1100": { + "status": "active", + "candidates": [ { - "name": "hmrc.cgt.gains_by_region@E12000009", + "name": "dwp.benefit_cap.capped_households_1000_01_to_1100", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, - "geography_level": "region", - "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 10341263627.509504, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_c7cfe6f18b190daed3153cfc" - }, + "resolved_value": 497.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_cf55cee33404d2283800b2b5" + } + ] + }, + "dwp.benefit_cap.capped_households_1100_01_to_1200": { + "status": "active", + "candidates": [ { - "name": "hmrc.cgt.gains_by_region@W92000004", + "name": "dwp.benefit_cap.capped_households_1100_01_to_1200", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, - "geography_level": "country", - "geography_id": "W92000004", "resolved_period": 2025, - "resolved_value": 2358632410.6946497, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_6cf6ec1d6cf7a4545c25ccb3" - }, + "resolved_value": 380.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_6f836a33391f4352151bd27f" + } + ] + }, + "dwp.benefit_cap.capped_households_1200_01_to_1300": { + "status": "active", + "candidates": [ { - "name": "hmrc.cgt.gains_by_region@S92000003", + "name": "dwp.benefit_cap.capped_households_1200_01_to_1300", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, - "geography_level": "country", - "geography_id": "S92000003", "resolved_period": 2025, - "resolved_value": 5680201325.83493, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_4af3f233994240b66f222933" - }, + "resolved_value": 239.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_ad08714cf39be9ccf0450cf2" + } + ] + }, + "dwp.benefit_cap.capped_households_1300_01_and_above": { + "status": "active", + "candidates": [ { - "name": "hmrc.cgt.gains_by_region@N92000002", + "name": "dwp.benefit_cap.capped_households_1300_01_and_above", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, - "geography_level": "country", - "geography_id": "N92000002", "resolved_period": 2025, - "resolved_value": 1757265449.747086, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_8b23977ac0a2db5257dc6bfe" + "resolved_value": 627.0, + "resolved_fact_period": "2025-11", + "resolved_fact_key": "ledger_aggregate_fact_v2_a3fee6cdec1b46a15a3b1434" } ] }, - "hmrc.cgt.taxpayers_by_gain_band": { + "hmrc.cgt.taxpayers_by_age_band": { "status": "active", "candidates": [ { - "name": "hmrc/cgt_taxpayers_band_0", + "name": "hmrc.cgt.taxpayers_by_age_band.age_0_to_15", "status": "signed_excluded", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "signed_row": { - "dimension": "cgt_gain_band", - "value": "gain_0_to_2999" + "dimension": "age_band", + "value": "age_0_to_15" }, - "signed_rationale": "HMRC Table 2.1a's 0-2,999 row (3,000 taxpayers with a liability on gains at or below the 2024-25 annual exempt amount of GBP 3,000, from attributed gains and prior-year adjustments) lies below the AEA gate the taxpayer proxy measures, so the model cannot place anyone in it. Signed out; the twelve bands from 3,000 stay bound." + "signed_rationale": "HMRC Table 6's 15-and-below row (1,000 taxpayers, GBP 54m of gains, GBP 9m of tax in 2024-25) has no support: the CGT incidence clone and the size-band donors place gains on the oldest adult of a household, so the frame carries no gainer under 16 and the row would always measure zero. Signed out of the age-band fan-out; the eight adult bands stay bound." }, { - "name": "hmrc/cgt_taxpayers_band_1000000", + "name": "hmrc.cgt.taxpayers_by_age_band.age_16_to_24", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 9000.0, + "resolved_value": 4000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_6a760ffb56140426b69a5269" + "resolved_fact_key": "ledger_aggregate_fact_v2_8c3d294de4cbdbe292815164" }, { - "name": "hmrc/cgt_taxpayers_band_100000", + "name": "hmrc.cgt.taxpayers_by_age_band.age_25_to_34", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 61000.0, + "resolved_value": 27000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_9abad7ce7e36bcbf61e93db0" + "resolved_fact_key": "ledger_aggregate_fact_v2_cc8ef619f52f7f44a885ce52" }, { - "name": "hmrc/cgt_taxpayers_band_10000", + "name": "hmrc.cgt.taxpayers_by_age_band.age_35_to_44", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 26000.0, + "resolved_value": 65000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_2393740ba1c11b1a31e54e75" + "resolved_fact_key": "ledger_aggregate_fact_v2_8554e7f842699a5f49816a0d" }, { - "name": "hmrc/cgt_taxpayers_band_12300", + "name": "hmrc.cgt.taxpayers_by_age_band.age_45_to_54", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 97000.0, + "resolved_value": 98000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_c5a351873a7b2c4cc4150711" + "resolved_fact_key": "ledger_aggregate_fact_v2_794376b60fba0684412fdff8" }, { - "name": "hmrc/cgt_taxpayers_band_2000000", + "name": "hmrc.cgt.taxpayers_by_age_band.age_55_to_64", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 5000.0, + "resolved_value": 144000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_7a32f131c687a8bed9ec747a" + "resolved_fact_key": "ledger_aggregate_fact_v2_0d6b6c36290ab598f74f6669" }, { - "name": "hmrc/cgt_taxpayers_band_250000", + "name": "hmrc.cgt.taxpayers_by_age_band.age_65_to_74", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 25000.0, + "resolved_value": 125000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_9df6b0435f02114bbff8b83e" + "resolved_fact_key": "ledger_aggregate_fact_v2_a725972fe4ee87a3bddee1cf" }, { - "name": "hmrc/cgt_taxpayers_band_25000", + "name": "hmrc.cgt.taxpayers_by_age_band.age_75_to_84", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 98000.0, + "resolved_value": 68000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_dbb814e164ce932da9f110e3" + "resolved_fact_key": "ledger_aggregate_fact_v2_1e4899d950c2b2be8ae21459" }, { - "name": "hmrc/cgt_taxpayers_band_3000", + "name": "hmrc.cgt.taxpayers_by_age_band.age_85_plus", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 73000.0, + "resolved_value": 19000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_445cdec889b5a04a38bfc529" - }, + "resolved_fact_key": "ledger_aggregate_fact_v2_7c419e2a82d25fae0127fd1d" + } + ] + }, + "hmrc.cgt.gains_by_age_band": { + "status": "active", + "candidates": [ { - "name": "hmrc/cgt_taxpayers_band_5000000", - "status": "active", + "name": "hmrc.cgt.gains_by_age_band.age_0_to_15", + "status": "signed_excluded", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, - "resolved_period": 2025, - "resolved_value": 3000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_185d64390d180e168f174c93" + "signed_row": { + "dimension": "age_band", + "value": "age_0_to_15" + }, + "signed_rationale": "HMRC Table 6's 15-and-below row (1,000 taxpayers, GBP 54m of gains, GBP 9m of tax in 2024-25) has no support: the CGT incidence clone and the size-band donors place gains on the oldest adult of a household, so the frame carries no gainer under 16 and the row would always measure zero. Signed out of the age-band fan-out; the eight adult bands stay bound." }, { - "name": "hmrc/cgt_taxpayers_band_500000", + "name": "hmrc.cgt.gains_by_age_band.age_16_to_24", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 16000.0, + "resolved_value": 319000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ff1311e347cb11ab13a55da8" + "resolved_fact_key": "ledger_aggregate_fact_v2_af584dedce4184d834502e56" }, { - "name": "hmrc/cgt_taxpayers_band_50000", + "name": "hmrc.cgt.gains_by_age_band.age_25_to_34", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 78000.0, + "resolved_value": 2499000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_16303d73f7eadbadac68edc5" + "resolved_fact_key": "ledger_aggregate_fact_v2_40c8b42d3904c8eb44297559" }, { - "name": "hmrc/cgt_taxpayers_band_6000", - "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, - "resolved_period": 2025, - "resolved_value": 57000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_2f1e03f344a1e1de11bf0fe3" - } - ] - }, - "hmrc.cgt.gains_by_gain_band": { - "status": "active", - "candidates": [ - { - "name": "hmrc/capital_gains_band_0", - "status": "signed_excluded", + "name": "hmrc.cgt.gains_by_age_band.age_35_to_44", + "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, - "signed_row": { - "dimension": "cgt_gain_band", - "value": "gain_0_to_2999" - }, - "signed_rationale": "HMRC Table 2.1a's 0-2,999 row (3,000 taxpayers with a liability on gains at or below the 2024-25 annual exempt amount of GBP 3,000, from attributed gains and prior-year adjustments) lies below the AEA gate the taxpayer proxy measures, so the model cannot place anyone in it. Signed out; the twelve bands from 3,000 stay bound." + "resolved_period": 2025, + "resolved_value": 11775000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_375b4cb880dcb4caacc5f003" }, { - "name": "hmrc/capital_gains_band_1000000", + "name": "hmrc.cgt.gains_by_age_band.age_45_to_54", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 12806000000.0, + "resolved_value": 28422000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_d4ad617897f228660a6a6be3" + "resolved_fact_key": "ledger_aggregate_fact_v2_567f8babf11f6356f72398de" }, { - "name": "hmrc/capital_gains_band_100000", + "name": "hmrc.cgt.gains_by_age_band.age_55_to_64", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 9487000000.0, + "resolved_value": 38118000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ed181e27011def0336c6cd99" + "resolved_fact_key": "ledger_aggregate_fact_v2_38da5aa08efc20c32951a860" }, { - "name": "hmrc/capital_gains_band_10000", + "name": "hmrc.cgt.gains_by_age_band.age_65_to_74", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 289000000.0, + "resolved_value": 24260000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_0ce43b4d53bb602f1b9fb49a" + "resolved_fact_key": "ledger_aggregate_fact_v2_69e2dec98e4cdbe34c3a0572" }, { - "name": "hmrc/capital_gains_band_12300", + "name": "hmrc.cgt.gains_by_age_band.age_75_to_84", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 1747000000.0, + "resolved_value": 11736000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_52d8b43cd07113d29860cd06" + "resolved_fact_key": "ledger_aggregate_fact_v2_9d0fb4e1a0c63f6d06b73e61" }, { - "name": "hmrc/capital_gains_band_2000000", + "name": "hmrc.cgt.gains_by_age_band.age_85_plus", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 16477000000.0, + "resolved_value": 2076000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_36a58e75b04a937aa837b211" + "resolved_fact_key": "ledger_aggregate_fact_v2_ca2b09a93c8a40ea4766b341" + } + ] + }, + "hmrc.cgt.tax_by_age_band": { + "status": "active", + "candidates": [ + { + "name": "hmrc.cgt.tax_by_age_band.age_0_to_15", + "status": "signed_excluded", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "signed_row": { + "dimension": "age_band", + "value": "age_0_to_15" + }, + "signed_rationale": "HMRC Table 6's 15-and-below row (1,000 taxpayers, GBP 54m of gains, GBP 9m of tax in 2024-25) has no support: the CGT incidence clone and the size-band donors place gains on the oldest adult of a household, so the frame carries no gainer under 16 and the row would always measure zero. Signed out of the age-band fan-out; the eight adult bands stay bound." }, { - "name": "hmrc/capital_gains_band_250000", + "name": "hmrc.cgt.tax_by_age_band.age_16_to_24", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 8820000000.0, + "resolved_value": 59000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_e79c0dd87ea41c5469aa88af" + "resolved_fact_key": "ledger_aggregate_fact_v2_5e45e49cdf5771a4f3dbc0c6" }, { - "name": "hmrc/capital_gains_band_25000", + "name": "hmrc.cgt.tax_by_age_band.age_25_to_34", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 3516000000.0, + "resolved_value": 456000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_12a05bb18f0245343b24c882" + "resolved_fact_key": "ledger_aggregate_fact_v2_4f0a20f8646020c518ec1a6c" }, { - "name": "hmrc/capital_gains_band_3000", + "name": "hmrc.cgt.tax_by_age_band.age_35_to_44", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 311000000.0, + "resolved_value": 2246000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_68d13fca859e018be0915149" + "resolved_fact_key": "ledger_aggregate_fact_v2_041101c10e8ee3a674596ab2" }, { - "name": "hmrc/capital_gains_band_5000000", + "name": "hmrc.cgt.tax_by_age_band.age_45_to_54", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 48474000000.0, + "resolved_value": 5522000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_e86658beb663c322dfe3f311" + "resolved_fact_key": "ledger_aggregate_fact_v2_c678a6f27d3dc149131419ee" }, { - "name": "hmrc/capital_gains_band_500000", + "name": "hmrc.cgt.tax_by_age_band.age_55_to_64", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 11372000000.0, + "resolved_value": 7152000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_bcee60127caf8ba271530f73" + "resolved_fact_key": "ledger_aggregate_fact_v2_76990ed6855fce16817d5289" }, { - "name": "hmrc/capital_gains_band_50000", + "name": "hmrc.cgt.tax_by_age_band.age_65_to_74", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 5510000000.0, + "resolved_value": 4409000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_6854e6a3ad1abc041042f35d" + "resolved_fact_key": "ledger_aggregate_fact_v2_3d4b0b5873bbe5bce9c14381" }, { - "name": "hmrc/capital_gains_band_6000", + "name": "hmrc.cgt.tax_by_age_band.age_75_to_84", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 448000000.0, + "resolved_value": 2260000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f808792afed121cadff6f396" - } - ] - }, - "hmrc.cgt.residential_property_taxpayers": { - "status": "active", - "candidates": [ + "resolved_fact_key": "ledger_aggregate_fact_v2_9c1150dfbd7f4f3b6235050b" + }, { - "name": "hmrc.cgt.residential_property_taxpayers.ty2024", + "name": "hmrc.cgt.tax_by_age_band.age_85_plus", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 202630.0578034682, + "resolved_value": 390000000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_a26f1261bd153727b83045de" + "resolved_fact_key": "ledger_aggregate_fact_v2_e60df0c2438533341e2f4b08" } ] }, - "hmrc.cgt.residential_property_gains": { + "hmrc.cgt.taxpayers_by_region": { "status": "active", "candidates": [ { - "name": "hmrc.cgt.residential_property_gains.ty2024", + "name": "hmrc.cgt.taxpayers_by_region@E12000001", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 12242481474.688189, + "resolved_value": 11321.91780821918, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_1f8003c937764e4184da3f24" - } - ] - }, - "hmrc.cgt.badr_ir_taxpayers_by_band": { - "status": "active", - "candidates": [ + "resolved_fact_key": "ledger_aggregate_fact_v2_06f4adc777a4a3036026872f" + }, { - "name": "hmrc.cgt.badr_ir_taxpayers_by_band.gain_0_to_9999", + "name": "hmrc.cgt.taxpayers_by_region@E12000002", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 5000.0, + "resolved_value": 41513.69863013699, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_c71dc48a052cd232188e17da" + "resolved_fact_key": "ledger_aggregate_fact_v2_9c0d0cc201d3d0f86df9f485" }, { - "name": "hmrc.cgt.badr_ir_taxpayers_by_band.gain_1000000_plus", + "name": "hmrc.cgt.taxpayers_by_region@E12000003", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 7000.0, + "resolved_value": 32078.767123287675, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_5ff395a45be4717082a60b22" + "resolved_fact_key": "ledger_aggregate_fact_v2_abfee7a635221f3a6573857f" }, { - "name": "hmrc.cgt.badr_ir_taxpayers_by_band.gain_100000_to_249999", + "name": "hmrc.cgt.taxpayers_by_region@E12000004", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 11000.0, + "resolved_value": 31135.273972602743, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_9e67fe204032e08555997593" + "resolved_fact_key": "ledger_aggregate_fact_v2_d8b059af35df8fc34df0ebfa" }, { - "name": "hmrc.cgt.badr_ir_taxpayers_by_band.gain_10000_to_24999", + "name": "hmrc.cgt.taxpayers_by_region@E12000005", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 8000.0, + "resolved_value": 33022.260273972606, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_d22c64afa6be19d572c1ed91" + "resolved_fact_key": "ledger_aggregate_fact_v2_d003284169d6847765c66221" }, { - "name": "hmrc.cgt.badr_ir_taxpayers_by_band.gain_250000_to_499999", + "name": "hmrc.cgt.taxpayers_by_region@E12000006", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 8000.0, + "resolved_value": 58496.57534246576, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_96d45c2b9c3bee35fce3db13" + "resolved_fact_key": "ledger_aggregate_fact_v2_a48acd5e86822a82360de3c3" }, { - "name": "hmrc.cgt.badr_ir_taxpayers_by_band.gain_25000_to_49999", + "name": "hmrc.cgt.taxpayers_by_region@E12000007", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 6000.0, + "resolved_value": 106614.72602739726, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_cbaeca9dc6ef9ead249789a1" + "resolved_fact_key": "ledger_aggregate_fact_v2_7bde136c5103f6b31dc478ef" }, { - "name": "hmrc.cgt.badr_ir_taxpayers_by_band.gain_500000_to_999999", + "name": "hmrc.cgt.taxpayers_by_region@E12000008", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 8000.0, + "resolved_value": 114162.67123287672, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_ef67d726efb00a1a791d32fa" + "resolved_fact_key": "ledger_aggregate_fact_v2_228fb212eb226981e6213fb1" }, { - "name": "hmrc.cgt.badr_ir_taxpayers_by_band.gain_50000_to_99999", + "name": "hmrc.cgt.taxpayers_by_region@E12000009", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 8000.0, + "resolved_value": 60383.56164383562, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_0cc65d2933bfd5e3209916b5" + "resolved_fact_key": "ledger_aggregate_fact_v2_af8dd206a47ffbc3651ece3b" }, { - "name": "hmrc.cgt.badr_ir_taxpayers_by_band.individuals_total", - "status": "signed_excluded", + "name": "hmrc.cgt.taxpayers_by_region@W92000004", + "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, - "signed_row": { - "dimension": "cgt_badr_ir_gain_band", - "value": "total" - }, - "signed_rationale": "HMRC Table 4.1's individuals total row (61,000 claimants, GBP 18,443m of qualifying gains and GBP 1,821m of tax in 2024-25) is the sum of the eight published bands and carries no band edge, so it cannot be measured as a band row. Signed out of the band fan-out; the eight bands stay bound." - } - ] - }, - "hmrc.cgt.badr_ir_qualifying_gains_by_band": { - "status": "active", - "candidates": [ + "geography_level": "country", + "geography_id": "W92000004", + "resolved_period": 2025, + "resolved_value": 16982.87671232877, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_c3fb868cb38397d0420cd136" + }, { - "name": "hmrc.cgt.badr_ir_qualifying_gains_by_band.gain_0_to_9999", + "name": "hmrc.cgt.taxpayers_by_region@S92000003", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "country", + "geography_id": "S92000003", "resolved_period": 2025, - "resolved_value": 32000000.0, + "resolved_value": 34909.24657534247, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_2d2dcd2ab70170cbe79e9683" + "resolved_fact_key": "ledger_aggregate_fact_v2_e3b5a134b920d7bcf071dc5c" }, { - "name": "hmrc.cgt.badr_ir_qualifying_gains_by_band.gain_1000000_plus", + "name": "hmrc.cgt.taxpayers_by_region@N92000002", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "country", + "geography_id": "N92000002", "resolved_period": 2025, - "resolved_value": 6787000000.0, + "resolved_value": 9434.931506849316, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_7902eb60f3eb3e877a55209c" - }, + "resolved_fact_key": "ledger_aggregate_fact_v2_2779d0ba66235d3ec59280b8" + } + ] + }, + "hmrc.cgt.gains_by_region": { + "status": "active", + "candidates": [ { - "name": "hmrc.cgt.badr_ir_qualifying_gains_by_band.gain_100000_to_249999", + "name": "hmrc.cgt.gains_by_region@E12000001", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000001", "resolved_period": 2025, - "resolved_value": 1866000000.0, + "resolved_value": 1497797150.3974364, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_fe7be6fa3787f96f36398a55" + "resolved_fact_key": "ledger_aggregate_fact_v2_c56796163e95a924ef066aeb" }, { - "name": "hmrc.cgt.badr_ir_qualifying_gains_by_band.gain_10000_to_24999", + "name": "hmrc.cgt.gains_by_region@E12000002", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000002", "resolved_period": 2025, - "resolved_value": 129000000.0, + "resolved_value": 8790074083.38308, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_8e3f3a1d2d2d368e10d09ace" + "resolved_fact_key": "ledger_aggregate_fact_v2_07d5a851c664d71dad2233c6" }, { - "name": "hmrc.cgt.badr_ir_qualifying_gains_by_band.gain_250000_to_499999", + "name": "hmrc.cgt.gains_by_region@E12000003", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000003", "resolved_period": 2025, - "resolved_value": 2901000000.0, + "resolved_value": 6970985861.949795, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_72da20bfe653913d4e114ce3" + "resolved_fact_key": "ledger_aggregate_fact_v2_6b4137649b34773c10d9731d" }, { - "name": "hmrc.cgt.badr_ir_qualifying_gains_by_band.gain_25000_to_49999", + "name": "hmrc.cgt.gains_by_region@E12000004", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000004", "resolved_period": 2025, - "resolved_value": 224000000.0, + "resolved_value": 6299365751.358824, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_01616813e32ffc4ddc891dcc" + "resolved_fact_key": "ledger_aggregate_fact_v2_61b52be8ce7d4fc692817ba9" }, { - "name": "hmrc.cgt.badr_ir_qualifying_gains_by_band.gain_500000_to_999999", + "name": "hmrc.cgt.gains_by_region@E12000005", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000005", "resolved_period": 2025, - "resolved_value": 5929000000.0, + "resolved_value": 5890960774.765152, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_9a6304f7b15b3667e02ada02" + "resolved_fact_key": "ledger_aggregate_fact_v2_34a10615174b9297afe221b7" }, { - "name": "hmrc.cgt.badr_ir_qualifying_gains_by_band.gain_50000_to_99999", + "name": "hmrc.cgt.gains_by_region@E12000006", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000006", "resolved_period": 2025, - "resolved_value": 575000000.0, + "resolved_value": 11545870966.728456, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_e213445138d034b04552af29" + "resolved_fact_key": "ledger_aggregate_fact_v2_f15225d0bcd17c6de4da7274" }, { - "name": "hmrc.cgt.badr_ir_qualifying_gains_by_band.individuals_total", - "status": "signed_excluded", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, - "signed_row": { - "dimension": "cgt_badr_ir_gain_band", - "value": "total" - }, - "signed_rationale": "HMRC Table 4.1's individuals total row (61,000 claimants, GBP 18,443m of qualifying gains and GBP 1,821m of tax in 2024-25) is the sum of the eight published bands and carries no band edge, so it cannot be measured as a band row. Signed out of the band fan-out; the eight bands stay bound." - } - ] - }, - "hmrc.cgt.taxpayers_by_taxable_income_band": { - "status": "active", - "candidates": [ - { - "name": "hmrc.cgt.taxpayers_by_taxable_income_band.income_0_to_37699", + "name": "hmrc.cgt.gains_by_region@E12000007", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000007", "resolved_period": 2025, - "resolved_value": 292000.0, + "resolved_value": 32519714615.602127, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f28b96212db4bd74331f8289" + "resolved_fact_key": "ledger_aggregate_fact_v2_1c9e621227b5e9e0de086a29" }, { - "name": "hmrc.cgt.taxpayers_by_taxable_income_band.income_100000_to_125139", + "name": "hmrc.cgt.gains_by_region@E12000008", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000008", "resolved_period": 2025, - "resolved_value": 21000.0, + "resolved_value": 25606804690.69088, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_bc20105eff5e931018c0ec5b" + "resolved_fact_key": "ledger_aggregate_fact_v2_e292074b43a3aaf4dbd7700e" }, { - "name": "hmrc.cgt.taxpayers_by_taxable_income_band.income_125140_to_199999", + "name": "hmrc.cgt.gains_by_region@E12000009", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "region", + "geography_id": "E12000009", "resolved_period": 2025, - "resolved_value": 34000.0, + "resolved_value": 10341263627.509504, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_3ccfaab45013135497556c05" + "resolved_fact_key": "ledger_aggregate_fact_v2_c7cfe6f18b190daed3153cfc" }, { - "name": "hmrc.cgt.taxpayers_by_taxable_income_band.income_200000_plus", + "name": "hmrc.cgt.gains_by_region@W92000004", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "country", + "geography_id": "W92000004", "resolved_period": 2025, - "resolved_value": 62000.0, + "resolved_value": 2358632410.6946497, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_265a5ff96328902a64f2ec39" + "resolved_fact_key": "ledger_aggregate_fact_v2_6cf6ec1d6cf7a4545c25ccb3" }, { - "name": "hmrc.cgt.taxpayers_by_taxable_income_band.income_37700_to_49999", + "name": "hmrc.cgt.gains_by_region@S92000003", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "country", + "geography_id": "S92000003", "resolved_period": 2025, - "resolved_value": 49000.0, + "resolved_value": 5680201325.83493, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_2a4327f9ee7eaa9258805572" + "resolved_fact_key": "ledger_aggregate_fact_v2_4af3f233994240b66f222933" }, { - "name": "hmrc.cgt.taxpayers_by_taxable_income_band.income_50000_to_99999", + "name": "hmrc.cgt.gains_by_region@N92000002", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, + "geography_level": "country", + "geography_id": "N92000002", "resolved_period": 2025, - "resolved_value": 93000.0, + "resolved_value": 1757265449.747086, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_63ee0a3a5a137316b60dc445" + "resolved_fact_key": "ledger_aggregate_fact_v2_8b23977ac0a2db5257dc6bfe" } ] }, - "hmrc.cgt.gains_by_taxable_income_band": { + "hmrc.cgt.taxpayers_by_gain_band": { "status": "active", "candidates": [ { - "name": "hmrc.cgt.gains_by_taxable_income_band.income_0_to_37699", - "status": "active", + "name": "hmrc/cgt_taxpayers_band_0", + "status": "signed_excluded", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, - "resolved_period": 2025, - "resolved_value": 24551000000.0, - "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_34883c3349b61fb7875b85ce" + "signed_row": { + "dimension": "cgt_gain_band", + "value": "gain_0_to_2999" + }, + "signed_rationale": "HMRC Table 2.1a's 0-2,999 row (3,000 taxpayers with a liability on gains at or below the 2024-25 annual exempt amount of GBP 3,000, from attributed gains and prior-year adjustments) lies below the AEA gate the taxpayer proxy measures, so the model cannot place anyone in it. Signed out; the twelve bands from 3,000 stay bound." }, { - "name": "hmrc.cgt.gains_by_taxable_income_band.income_100000_to_125139", + "name": "hmrc/cgt_taxpayers_band_1000000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 5293000000.0, + "resolved_value": 9000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f4f922a95f792326faf77ec8" + "resolved_fact_key": "ledger_aggregate_fact_v2_6a760ffb56140426b69a5269" }, { - "name": "hmrc.cgt.gains_by_taxable_income_band.income_125140_to_199999", + "name": "hmrc/cgt_taxpayers_band_100000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 10948000000.0, + "resolved_value": 61000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_62b93eaa7a9e2acf76ef70e2" + "resolved_fact_key": "ledger_aggregate_fact_v2_9abad7ce7e36bcbf61e93db0" }, { - "name": "hmrc.cgt.gains_by_taxable_income_band.income_200000_plus", + "name": "hmrc/cgt_taxpayers_band_10000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 55127000000.0, + "resolved_value": 26000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_f5177011b130ef1ad4338bb4" + "resolved_fact_key": "ledger_aggregate_fact_v2_2393740ba1c11b1a31e54e75" }, { - "name": "hmrc.cgt.gains_by_taxable_income_band.income_37700_to_49999", + "name": "hmrc/cgt_taxpayers_band_12300", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 6178000000.0, + "resolved_value": 97000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_738e2f54bc21206d6af1b64d" + "resolved_fact_key": "ledger_aggregate_fact_v2_c5a351873a7b2c4cc4150711" }, { - "name": "hmrc.cgt.gains_by_taxable_income_band.income_50000_to_99999", + "name": "hmrc/cgt_taxpayers_band_2000000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 17160000000.0, + "resolved_value": 5000.0, "resolved_fact_period": "2024", - "resolved_fact_key": "ledger_aggregate_fact_v2_342eca3641c9a9dd39b88c16" - } - ] - }, - "hmrc.itl.taxpayers_by_total_income_band": { - "status": "active", - "candidates": [ - { - "name": "hmrc.itl.taxpayers_by_total_income_band.band_100000_150000", - "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, - "resolved_period": 2025, - "resolved_value": 1092500.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_4dfde5206ad78ee391044162" - }, - { - "name": "hmrc.itl.taxpayers_by_total_income_band.band_1000000_2000000", - "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, - "resolved_period": 2025, - "resolved_value": 20750.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_20329726f977dd1779716b6f" - }, - { - "name": "hmrc.itl.taxpayers_by_total_income_band.band_12570_15000", - "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, - "resolved_period": 2025, - "resolved_value": 2972500.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_3a1683d0d0e8fc64df15bb7d" - }, - { - "name": "hmrc.itl.taxpayers_by_total_income_band.band_15000_20000", - "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, - "resolved_period": 2025, - "resolved_value": 5412500.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_b091ce428064d8fc92ddbf0e" + "resolved_fact_key": "ledger_aggregate_fact_v2_7a32f131c687a8bed9ec747a" }, { - "name": "hmrc.itl.taxpayers_by_total_income_band.band_150000_200000", + "name": "hmrc/cgt_taxpayers_band_250000", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 342750.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_bb4b5a0be61cc0bccb1f138e" + "resolved_value": 25000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_9df6b0435f02114bbff8b83e" }, { - "name": "hmrc.itl.taxpayers_by_total_income_band.band_20000_30000", + "name": "hmrc/cgt_taxpayers_band_25000", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 10225000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_ce6b9659ea26c8b1a2c12dcf" + "resolved_value": 98000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_dbb814e164ce932da9f110e3" }, { - "name": "hmrc.itl.taxpayers_by_total_income_band.band_200000_500000", + "name": "hmrc/cgt_taxpayers_band_3000", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 372500.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_fb06142225a5cc3067c35d18" + "resolved_value": 73000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_445cdec889b5a04a38bfc529" }, { - "name": "hmrc.itl.taxpayers_by_total_income_band.band_2000000_plus", + "name": "hmrc/cgt_taxpayers_band_5000000", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 10750.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_fe7feb575130feb78a6e7590" + "resolved_value": 3000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_185d64390d180e168f174c93" }, { - "name": "hmrc.itl.taxpayers_by_total_income_band.band_30000_50000", + "name": "hmrc/cgt_taxpayers_band_500000", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 12125000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_ed1524af73b18d05ad5c2853" + "resolved_value": 16000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_ff1311e347cb11ab13a55da8" }, { - "name": "hmrc.itl.taxpayers_by_total_income_band.band_50000_100000", + "name": "hmrc/cgt_taxpayers_band_50000", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, - "resolved_period": 2025, - "resolved_value": 6950000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_215002b59ecd9283660632bc" + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 78000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_16303d73f7eadbadac68edc5" }, { - "name": "hmrc.itl.taxpayers_by_total_income_band.band_500000_1000000", + "name": "hmrc/cgt_taxpayers_band_6000", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 65500.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_e19b3faa384ea09af15eb591" + "resolved_value": 57000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_2f1e03f344a1e1de11bf0fe3" } ] }, - "hmrc.itl.total_income_by_total_income_band": { + "hmrc.cgt.gains_by_gain_band": { "status": "active", "candidates": [ { - "name": "hmrc.itl.total_income_by_total_income_band.band_100000_150000", + "name": "hmrc/capital_gains_band_0", + "status": "signed_excluded", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "signed_row": { + "dimension": "cgt_gain_band", + "value": "gain_0_to_2999" + }, + "signed_rationale": "HMRC Table 2.1a's 0-2,999 row (3,000 taxpayers with a liability on gains at or below the 2024-25 annual exempt amount of GBP 3,000, from attributed gains and prior-year adjustments) lies below the AEA gate the taxpayer proxy measures, so the model cannot place anyone in it. Signed out; the twelve bands from 3,000 stay bound." + }, + { + "name": "hmrc/capital_gains_band_1000000", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 129750000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_4206ac3d1e306760a8cd90fe" + "resolved_value": 12806000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_d4ad617897f228660a6a6be3" }, { - "name": "hmrc.itl.total_income_by_total_income_band.band_1000000_2000000", + "name": "hmrc/capital_gains_band_100000", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 28425000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_082f58aced9f31b41d675e89" + "resolved_value": 9487000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_ed181e27011def0336c6cd99" }, { - "name": "hmrc.itl.total_income_by_total_income_band.band_12570_15000", + "name": "hmrc/capital_gains_band_10000", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 40950000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_5740a6c464861ca01edbd05d" + "resolved_value": 289000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_0ce43b4d53bb602f1b9fb49a" }, { - "name": "hmrc.itl.total_income_by_total_income_band.band_15000_20000", + "name": "hmrc/capital_gains_band_12300", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 94200000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_c837e9b3bf684218fe68ebad" + "resolved_value": 1747000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_52d8b43cd07113d29860cd06" }, { - "name": "hmrc.itl.total_income_by_total_income_band.band_150000_200000", + "name": "hmrc/capital_gains_band_2000000", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 58525000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_9dec94f99ff43c604bd0feeb" + "resolved_value": 16477000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_36a58e75b04a937aa837b211" }, { - "name": "hmrc.itl.total_income_by_total_income_band.band_20000_30000", + "name": "hmrc/capital_gains_band_250000", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 253750000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_94d7a54a82d09ffcfdd550da" + "resolved_value": 8820000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_e79c0dd87ea41c5469aa88af" }, { - "name": "hmrc.itl.total_income_by_total_income_band.band_200000_500000", + "name": "hmrc/capital_gains_band_25000", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 108250000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_a3d99427060437f8ee20ad67" + "resolved_value": 3516000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_12a05bb18f0245343b24c882" }, { - "name": "hmrc.itl.total_income_by_total_income_band.band_2000000_plus", + "name": "hmrc/capital_gains_band_3000", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 55175000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_c0f84c920d7ec18ec2904a46" + "resolved_value": 311000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_68d13fca859e018be0915149" }, { - "name": "hmrc.itl.total_income_by_total_income_band.band_30000_50000", + "name": "hmrc/capital_gains_band_5000000", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 465500000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_48ee9145e8905c8c3a645c18" + "resolved_value": 48474000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_e86658beb663c322dfe3f311" }, { - "name": "hmrc.itl.total_income_by_total_income_band.band_50000_100000", + "name": "hmrc/capital_gains_band_500000", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 455500000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_1cc7e9aefd34df9b8e1434f7" + "resolved_value": 11372000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_bcee60127caf8ba271530f73" }, { - "name": "hmrc.itl.total_income_by_total_income_band.band_500000_1000000", + "name": "hmrc/capital_gains_band_50000", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 44350000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_8e0a8f6f4b49892884b60d7c" + "resolved_value": 5510000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_6854e6a3ad1abc041042f35d" + }, + { + "name": "hmrc/capital_gains_band_6000", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 448000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f808792afed121cadff6f396" } ] }, - "hmrc.itl.income_tax_by_total_income_band": { + "hmrc.cgt.residential_property_taxpayers": { "status": "active", "candidates": [ { - "name": "hmrc.itl.income_tax_by_total_income_band.band_100000_150000", - "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, - "resolved_period": 2025, - "resolved_value": 38000000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_69742f8204cc9ac1ef2c8e9e" - }, - { - "name": "hmrc.itl.income_tax_by_total_income_band.band_1000000_2000000", + "name": "hmrc.cgt.residential_property_taxpayers.ty2024", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 11550000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_4c0d2c52c414e75deb891a7a" - }, + "resolved_value": 202630.0578034682, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_a26f1261bd153727b83045de" + } + ] + }, + "hmrc.cgt.residential_property_gains": { + "status": "active", + "candidates": [ { - "name": "hmrc.itl.income_tax_by_total_income_band.band_12570_15000", + "name": "hmrc.cgt.residential_property_gains.ty2024", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 650750000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_0ab1c9f2169012fe9630ef63" - }, + "resolved_value": 12242481474.688189, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_1f8003c937764e4184da3f24" + } + ] + }, + "hmrc.cgt.badr_ir_taxpayers_by_band": { + "status": "active", + "candidates": [ { - "name": "hmrc.itl.income_tax_by_total_income_band.band_15000_20000", + "name": "hmrc.cgt.badr_ir_taxpayers_by_band.gain_0_to_9999", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 4532500000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_11307d6a9a99ba80374bdf15" + "resolved_value": 5000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_c71dc48a052cd232188e17da" }, { - "name": "hmrc.itl.income_tax_by_total_income_band.band_150000_200000", + "name": "hmrc.cgt.badr_ir_taxpayers_by_band.gain_1000000_plus", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 20000000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_2954bada0d66920670eb5dec" + "resolved_value": 7000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_5ff395a45be4717082a60b22" }, { - "name": "hmrc.itl.income_tax_by_total_income_band.band_20000_30000", + "name": "hmrc.cgt.badr_ir_taxpayers_by_band.gain_100000_to_249999", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 23025000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_0ef61cad9a110b5774ccea20" + "resolved_value": 11000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_9e67fe204032e08555997593" }, { - "name": "hmrc.itl.income_tax_by_total_income_band.band_200000_500000", + "name": "hmrc.cgt.badr_ir_taxpayers_by_band.gain_10000_to_24999", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 41075000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_919c63d863e7b92dc22868a9" + "resolved_value": 8000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_d22c64afa6be19d572c1ed91" }, { - "name": "hmrc.itl.income_tax_by_total_income_band.band_2000000_plus", + "name": "hmrc.cgt.badr_ir_taxpayers_by_band.gain_250000_to_499999", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 21800000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_2d60cb91572bce26d6ec18e0" + "resolved_value": 8000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_96d45c2b9c3bee35fce3db13" }, { - "name": "hmrc.itl.income_tax_by_total_income_band.band_30000_50000", + "name": "hmrc.cgt.badr_ir_taxpayers_by_band.gain_25000_to_49999", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 57925000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_1e89268f4fb8c2499ad07d88" + "resolved_value": 6000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_cbaeca9dc6ef9ead249789a1" }, { - "name": "hmrc.itl.income_tax_by_total_income_band.band_50000_100000", + "name": "hmrc.cgt.badr_ir_taxpayers_by_band.gain_500000_to_999999", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 86025000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_e5bde95ce263d795f9583630" + "resolved_value": 8000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_ef67d726efb00a1a791d32fa" }, { - "name": "hmrc.itl.income_tax_by_total_income_band.band_500000_1000000", + "name": "hmrc.cgt.badr_ir_taxpayers_by_band.gain_50000_to_99999", "status": "active", - "matched_fact_count_overall": 4, - "matched_fact_count_at_or_before_period": 3, + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 18100000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_76841022d640a76385d5a2e7" + "resolved_value": 8000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_0cc65d2933bfd5e3209916b5" + }, + { + "name": "hmrc.cgt.badr_ir_taxpayers_by_band.individuals_total", + "status": "signed_excluded", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "signed_row": { + "dimension": "cgt_badr_ir_gain_band", + "value": "total" + }, + "signed_rationale": "HMRC Table 4.1's individuals total row (61,000 claimants, GBP 18,443m of qualifying gains and GBP 1,821m of tax in 2024-25) is the sum of the eight published bands and carries no band edge, so it cannot be measured as a band row. Signed out of the band fan-out; the eight bands stay bound." } ] }, - "hmrc.spi.savings_interest_income.amount_by_total_income_band": { + "hmrc.cgt.badr_ir_qualifying_gains_by_band": { "status": "active", "candidates": [ { - "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_100000", + "name": "hmrc.cgt.badr_ir_qualifying_gains_by_band.gain_0_to_9999", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 1489138606.9960644, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_0ef4a95b830d9e4e41b15e02", - "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", - "factor": "1.18185603729846", - "value_before_uprating": "1260000000.0" - } + "resolved_value": 32000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_2d2dcd2ab70170cbe79e9683" }, { - "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_1000000", + "name": "hmrc.cgt.badr_ir_qualifying_gains_by_band.gain_1000000_plus", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 1465501486.2500951, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_4f8e330da2fcd6774dd7ea1a", - "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", - "factor": "1.18185603729846", - "value_before_uprating": "1240000000.0" - } + "resolved_value": 6787000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_7902eb60f3eb3e877a55209c" }, { - "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_12570", + "name": "hmrc.cgt.badr_ir_qualifying_gains_by_band.gain_100000_to_249999", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 323828554.21977913, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_bd65aa884ad89d9837551b0e", - "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", - "factor": "1.18185603729846", - "value_before_uprating": "274000000.0" - } + "resolved_value": 1866000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_fe7be6fa3787f96f36398a55" }, { - "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_15000", + "name": "hmrc.cgt.badr_ir_qualifying_gains_by_band.gain_10000_to_24999", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 1619142771.0988955, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_34ecf84ec234f3525db59f91", - "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", - "factor": "1.18185603729846", - "value_before_uprating": "1370000000.0" - } + "resolved_value": 129000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_8e3f3a1d2d2d368e10d09ace" }, { - "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_150000", + "name": "hmrc.cgt.badr_ir_qualifying_gains_by_band.gain_250000_to_499999", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 768206424.2440015, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_89bdbe74eda3cee8844ad898", - "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", - "factor": "1.18185603729846", - "value_before_uprating": "650000000.0" - } + "resolved_value": 2901000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_72da20bfe653913d4e114ce3" }, { - "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_20000", + "name": "hmrc.cgt.badr_ir_qualifying_gains_by_band.gain_25000_to_49999", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 3699209396.744192, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_752ea2329d313046c61bf1e2", - "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", - "factor": "1.18185603729846", - "value_before_uprating": "3130000000.0" - } + "resolved_value": 224000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_01616813e32ffc4ddc891dcc" }, { - "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_200000", + "name": "hmrc.cgt.badr_ir_qualifying_gains_by_band.gain_500000_to_999999", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 866300475.339774, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_02f3a7f7b7097a3fd455b702", - "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", - "factor": "1.18185603729846", - "value_before_uprating": "733000000.0" - } + "resolved_value": 5929000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_9a6304f7b15b3667e02ada02" }, { - "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_30000", + "name": "hmrc.cgt.badr_ir_qualifying_gains_by_band.gain_50000_to_99999", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 2990095774.3651137, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_d341b6820714e38a12ac4b1c", - "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", - "factor": "1.18185603729846", - "value_before_uprating": "2530000000.0" - } + "resolved_value": 575000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_e213445138d034b04552af29" }, { - "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_300000", + "name": "hmrc.cgt.badr_ir_qualifying_gains_by_band.individuals_total", + "status": "signed_excluded", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "signed_row": { + "dimension": "cgt_badr_ir_gain_band", + "value": "total" + }, + "signed_rationale": "HMRC Table 4.1's individuals total row (61,000 claimants, GBP 18,443m of qualifying gains and GBP 1,821m of tax in 2024-25) is the sum of the eight published bands and carries no band edge, so it cannot be measured as a band row. Signed out of the band fan-out; the eight bands stay bound." + } + ] + }, + "hmrc.cgt.taxpayers_by_taxable_income_band": { + "status": "active", + "candidates": [ + { + "name": "hmrc.cgt.taxpayers_by_taxable_income_band.income_0_to_37699", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 795389113.1018662, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_8fc8bdb298f62c90d7af57b8", - "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", - "factor": "1.18185603729846", - "value_before_uprating": "673000000.0" - } + "resolved_value": 292000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f28b96212db4bd74331f8289" }, { - "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_40000", + "name": "hmrc.cgt.taxpayers_by_taxable_income_band.income_100000_to_125139", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 2210070789.7481275, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_367d1c49bfab3c640463ded8", - "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", - "factor": "1.18185603729846", - "value_before_uprating": "1870000000.0" - } + "resolved_value": 21000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_bc20105eff5e931018c0ec5b" }, { - "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_50000", + "name": "hmrc.cgt.taxpayers_by_taxable_income_band.income_125140_to_199999", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 2765543127.2784057, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_819d2f77e45b3ba5a7907a4a", - "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", - "factor": "1.18185603729846", - "value_before_uprating": "2340000000.0" - } + "resolved_value": 34000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_3ccfaab45013135497556c05" }, { - "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_500000", + "name": "hmrc.cgt.taxpayers_by_taxable_income_band.income_200000_plus", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 771751992.355897, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_5d68b2314b5c54a09f274733", - "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", - "factor": "1.18185603729846", - "value_before_uprating": "653000000.0" - } + "resolved_value": 62000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_265a5ff96328902a64f2ec39" + }, + { + "name": "hmrc.cgt.taxpayers_by_taxable_income_band.income_37700_to_49999", + "status": "active", + "matched_fact_count_overall": 1, + "matched_fact_count_at_or_before_period": 1, + "resolved_period": 2025, + "resolved_value": 49000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_2a4327f9ee7eaa9258805572" }, { - "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_70000", + "name": "hmrc.cgt.taxpayers_by_taxable_income_band.income_50000_to_99999", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 1914606780.4235115, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_ab8a5ac6dd4ba75e194133f1", - "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", - "factor": "1.18185603729846", - "value_before_uprating": "1620000000.0" - } + "resolved_value": 93000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_63ee0a3a5a137316b60dc445" } ] }, - "hmrc.spi.savings_interest_income.count_by_total_income_band": { + "hmrc.cgt.gains_by_taxable_income_band": { "status": "active", "candidates": [ { - "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_100000", + "name": "hmrc.cgt.gains_by_taxable_income_band.income_0_to_37699", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 608465.2619589977, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_cc751c95928989eb960cb707", - "uprating": { - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.24430523917995", - "value_before_uprating": "489000.0" - } + "resolved_value": 24551000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_34883c3349b61fb7875b85ce" }, { - "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_1000000", + "name": "hmrc.cgt.gains_by_taxable_income_band.income_100000_to_125139", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 24500.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_b1146332a0862643714ecd16", - "uprating": { - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.16666666666667", - "value_before_uprating": "21000.0" - } + "resolved_value": 5293000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f4f922a95f792326faf77ec8" }, { - "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_12570", + "name": "hmrc.cgt.gains_by_taxable_income_band.income_125140_to_199999", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 1303728.0701754387, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_8dc7ca35e8068968a019f95a", - "uprating": { - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.04298245614035", - "value_before_uprating": "1250000.0" - } + "resolved_value": 10948000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_62b93eaa7a9e2acf76ef70e2" }, { - "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_15000", + "name": "hmrc.cgt.gains_by_taxable_income_band.income_200000_plus", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 2779656.419529837, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_67f08d2099c256d2dffa19e1", - "uprating": { - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "0.97875226039783", - "value_before_uprating": "2840000.0" - } + "resolved_value": 55127000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_f5177011b130ef1ad4338bb4" }, { - "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_150000", + "name": "hmrc.cgt.gains_by_taxable_income_band.income_37700_to_49999", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 170209.1836734694, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_555072d001278266acad64d4", - "uprating": { - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.16581632653061", - "value_before_uprating": "146000.0" - } + "resolved_value": 6178000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_738e2f54bc21206d6af1b64d" }, { - "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_20000", + "name": "hmrc.cgt.gains_by_taxable_income_band.income_50000_to_99999", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 5262867.647058823, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_ee833e8b84d420fa560c50de", - "uprating": { - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.00245098039216", - "value_before_uprating": "5250000.0" - } + "resolved_value": 17160000000.0, + "resolved_fact_period": "2024", + "resolved_fact_key": "ledger_aggregate_fact_v2_342eca3641c9a9dd39b88c16" + } + ] + }, + "hmrc.itl.taxpayers_by_total_income_band": { + "status": "active", + "candidates": [ + { + "name": "hmrc.itl.taxpayers_by_total_income_band.band_100000_150000", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, + "resolved_period": 2025, + "resolved_value": 1092500.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_4dfde5206ad78ee391044162" }, { - "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_200000", + "name": "hmrc.itl.taxpayers_by_total_income_band.band_1000000_2000000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 132950.16077170416, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_c9084328800ae8dd29f6fedc", - "uprating": { - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.19774919614148", - "value_before_uprating": "111000.0" - } + "resolved_value": 20750.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_20329726f977dd1779716b6f" }, { - "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_30000", + "name": "hmrc.itl.taxpayers_by_total_income_band.band_12570_15000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 4142708.333333333, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_53f5b48bbcf461f728be5b8f", - "uprating": { - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "3690000.0" - } + "resolved_value": 2972500.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_3a1683d0d0e8fc64df15bb7d" }, { - "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_300000", + "name": "hmrc.itl.taxpayers_by_total_income_band.band_15000_20000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 81446.94533762058, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_c18d1294d4f9b41cd396a6ba", - "uprating": { - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.19774919614148", - "value_before_uprating": "68000.0" - } + "resolved_value": 5412500.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_b091ce428064d8fc92ddbf0e" }, { - "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_40000", + "name": "hmrc.itl.taxpayers_by_total_income_band.band_150000_200000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 2660763.8888888885, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_abd9f1a8fe87970d0b8ad851", - "uprating": { - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "2370000.0" - } + "resolved_value": 342750.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_bb4b5a0be61cc0bccb1f138e" }, { - "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_50000", + "name": "hmrc.itl.taxpayers_by_total_income_band.band_20000_30000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 2714273.204903678, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_2b269edb165684a70d5c1359", - "uprating": { - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "2230000.0" - } + "resolved_value": 10225000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_ce6b9659ea26c8b1a2c12dcf" }, { - "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_500000", + "name": "hmrc.itl.taxpayers_by_total_income_band.band_200000_500000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 46092.59259259259, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_3c55f69b2611214dd3797239", - "uprating": { - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21296296296296", - "value_before_uprating": "38000.0" - } + "resolved_value": 372500.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_fb06142225a5cc3067c35d18" }, { - "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_70000", + "name": "hmrc.itl.taxpayers_by_total_income_band.band_2000000_plus", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 1302364.2732049038, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_b6d8c5fb857de26f65fb7adb", - "uprating": { - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "1070000.0" - } - } - ] - }, - "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band": { - "status": "active", - "candidates": [ + "resolved_value": 10750.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_fe7feb575130feb78a6e7590" + }, { - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_100000_150000", + "name": "hmrc.itl.taxpayers_by_total_income_band.band_30000_50000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 1748592941.2404864, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_69ca3488034d7d0999ea4445", - "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "1580000000.0" - } + "resolved_value": 12125000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_ed1524af73b18d05ad5c2853" + }, + { + "name": "hmrc.itl.taxpayers_by_total_income_band.band_50000_100000", + "status": "active", + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, + "resolved_period": 2025, + "resolved_value": 6950000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_215002b59ecd9283660632bc" }, { - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_1000000_plus", + "name": "hmrc.itl.taxpayers_by_total_income_band.band_500000_1000000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 9960339.538711632, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_e09d754eff2e1e564909379b", - "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "9000000.0" - } - }, + "resolved_value": 65500.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_e19b3faa384ea09af15eb591" + } + ] + }, + "hmrc.itl.total_income_by_total_income_band": { + "status": "active", + "candidates": [ { - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_12570_15000", + "name": "hmrc.itl.total_income_by_total_income_band.band_100000_150000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 167112363.37171736, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_a39a596f4452ac87dce45705", - "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "151000000.0" - } + "resolved_value": 129750000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_4206ac3d1e306760a8cd90fe" }, { - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_15000_20000", + "name": "hmrc.itl.total_income_by_total_income_band.band_1000000_2000000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 749238874.1897527, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_ce714b4f80dbbd968c06ba36", - "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "677000000.0" - } + "resolved_value": 28425000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_082f58aced9f31b41d675e89" }, { - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_150000_200000", + "name": "hmrc.itl.total_income_by_total_income_band.band_12570_15000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 785760119.1650287, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_9adb54bc49ea4994b46468e5", - "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "710000000.0" - } + "resolved_value": 40950000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_5740a6c464861ca01edbd05d" }, { - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_20000_30000", + "name": "hmrc.itl.total_income_by_total_income_band.band_15000_20000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 2965967773.749686, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_11d669d44fe0ac81e7ac9fcc", - "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "2680000000.0" - } + "resolved_value": 94200000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_c837e9b3bf684218fe68ebad" }, { - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_200000_300000", + "name": "hmrc.itl.total_income_by_total_income_band.band_150000_200000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 418334260.6258885, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_2211d55a20fbe6510985fab1", - "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "378000000.0" - } + "resolved_value": 58525000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_9dec94f99ff43c604bd0feeb" }, { - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_30000_40000", + "name": "hmrc.itl.total_income_by_total_income_band.band_20000_30000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 3962001727.6208487, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_6663f19bf07b337d0f596bee", - "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "3580000000.0" - } + "resolved_value": 253750000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_94d7a54a82d09ffcfdd550da" }, { - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_300000_500000", + "name": "hmrc.itl.total_income_by_total_income_band.band_200000_500000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 150511797.47386464, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_a0fa23c34ca03fb21900996a", - "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "136000000.0" - } + "resolved_value": 108250000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_a3d99427060437f8ee20ad67" }, { - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_40000_50000", + "name": "hmrc.itl.total_income_by_total_income_band.band_2000000_plus", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 4006269903.348456, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_cc84f08131e4e6b264c7fd80", - "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "3620000000.0" - } + "resolved_value": 55175000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_c0f84c920d7ec18ec2904a46" }, { - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_50000_70000", + "name": "hmrc.itl.total_income_by_total_income_band.band_30000_50000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 5345382219.108575, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_9598d3c1f8b6f7f20c749957", - "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "4830000000.0" - } + "resolved_value": 465500000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_48ee9145e8905c8c3a645c18" }, { - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_500000_1000000", + "name": "hmrc.itl.total_income_by_total_income_band.band_50000_100000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 30987723.009325072, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_d881d51cc1c615ace3627f11", - "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "28000000.0" - } + "resolved_value": 455500000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_1cc7e9aefd34df9b8e1434f7" }, { - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_70000_100000", + "name": "hmrc.itl.total_income_by_total_income_band.band_500000_1000000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 2667157587.588337, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_c2dea35b8f673106284a6d14", - "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "2410000000.0" - } + "resolved_value": 44350000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_8e0a8f6f4b49892884b60d7c" } ] }, - "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band": { + "hmrc.itl.income_tax_by_total_income_band": { "status": "active", "candidates": [ { - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_100000_150000", - "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, - "resolved_period": 2025, - "resolved_value": 226463.55353075173, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_da03a2780fbba864d40f7010", - "uprating": { - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.24430523917995", - "value_before_uprating": "182000.0" - } - }, - { - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_1000000_plus", - "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, - "resolved_period": 2025, - "resolved_value": 1166.6666666666667, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_aee102e14c8660157ed202cf", - "uprating": { - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.16666666666667", - "value_before_uprating": "1000.0" - } - }, - { - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_12570_15000", + "name": "hmrc.itl.income_tax_by_total_income_band.band_100000_150000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 349399.1228070175, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_52052dcfa84c3b0620d8b980", - "uprating": { - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.04298245614035", - "value_before_uprating": "335000.0" - } + "resolved_value": 38000000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_69742f8204cc9ac1ef2c8e9e" }, { - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_15000_20000", + "name": "hmrc.itl.income_tax_by_total_income_band.band_1000000_2000000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 988539.7830018083, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_5857734e278d6dd9c6f038c6", - "uprating": { - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "0.97875226039783", - "value_before_uprating": "1010000.0" - } + "resolved_value": 11550000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_4c0d2c52c414e75deb891a7a" }, { - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_150000_200000", + "name": "hmrc.itl.income_tax_by_total_income_band.band_12570_15000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 69948.97959183673, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_eca0d63510daab5cd94b5c08", - "uprating": { - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.16581632653061", - "value_before_uprating": "60000.0" - } + "resolved_value": 650750000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_0ab1c9f2169012fe9630ef63" }, { - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_20000_30000", + "name": "hmrc.itl.income_tax_by_total_income_band.band_15000_20000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 2435955.882352941, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_7b2fe2031fef3b5548e3f3c4", - "uprating": { - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.00245098039216", - "value_before_uprating": "2430000.0" - } + "resolved_value": 4532500000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_11307d6a9a99ba80374bdf15" }, { - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_200000_300000", + "name": "hmrc.itl.income_tax_by_total_income_band.band_150000_200000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 38327.974276527326, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_63aa600ed5f19c9fe4a56f51", - "uprating": { - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.19774919614148", - "value_before_uprating": "32000.0" - } + "resolved_value": 20000000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_2954bada0d66920670eb5dec" }, { - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_30000_40000", + "name": "hmrc.itl.income_tax_by_total_income_band.band_20000_30000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 2121875.0, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_e67144b24c53ca5969c5e99b", - "uprating": { - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "1890000.0" - } + "resolved_value": 23025000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_0ef61cad9a110b5774ccea20" }, { - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_300000_500000", + "name": "hmrc.itl.income_tax_by_total_income_band.band_200000_500000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 14372.990353697749, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_3dedd2e692e38c826782d028", - "uprating": { - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.19774919614148", - "value_before_uprating": "12000.0" - } + "resolved_value": 41075000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_919c63d863e7b92dc22868a9" }, { - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_40000_50000", + "name": "hmrc.itl.income_tax_by_total_income_band.band_2000000_plus", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 1425810.1851851852, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_7347727cb44787847d8e1292", - "uprating": { - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.12268518518519", - "value_before_uprating": "1270000.0" - } + "resolved_value": 21800000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_2d60cb91572bce26d6ec18e0" }, { - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_50000_70000", + "name": "hmrc.itl.income_tax_by_total_income_band.band_30000_50000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 1460595.4465849388, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_df636cc5cb9af8d5b4772e17", - "uprating": { - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "1200000.0" - } + "resolved_value": 57925000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_1e89268f4fb8c2499ad07d88" }, { - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_500000_1000000", + "name": "hmrc.itl.income_tax_by_total_income_band.band_50000_100000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 4851.851851851852, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_c260f5cd6c361c9311f0bb82", - "uprating": { - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21296296296296", - "value_before_uprating": "4000.0" - } + "resolved_value": 86025000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_e5bde95ce263d795f9583630" }, { - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_70000_100000", + "name": "hmrc.itl.income_tax_by_total_income_band.band_500000_1000000", "status": "active", - "matched_fact_count_overall": 1, - "matched_fact_count_at_or_before_period": 1, + "matched_fact_count_overall": 4, + "matched_fact_count_at_or_before_period": 3, "resolved_period": 2025, - "resolved_value": 520945.7092819615, - "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_bb1de045c936f54320cc8681", - "uprating": { - "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "factor": "1.21716287215412", - "value_before_uprating": "428000.0" - } + "resolved_value": 18100000000.0, + "resolved_fact_period": "2025", + "resolved_fact_key": "ledger_aggregate_fact_v2_76841022d640a76385d5a2e7" } ] }, - "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band": { + "hmrc.spi.savings_interest_income.amount_by_total_income_band": { "status": "active", "candidates": [ { - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_100000_150000", + "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_100000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 2888498466.226373, + "resolved_value": 1489138606.9960644, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_ad786b998eed3e49ad12c0a7", + "resolved_fact_key": "ledger_aggregate_fact_v2_0ef4a95b830d9e4e41b15e02", "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "2610000000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", + "factor": "1.18185603729846", + "value_before_uprating": "1260000000.0" } }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_1000000_plus", + "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_1000000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 84109533.88245377, + "resolved_value": 1465501486.2500951, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_8fa1705682f55cff9e18a0b5", + "resolved_fact_key": "ledger_aggregate_fact_v2_4f8e330da2fcd6774dd7ea1a", "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "76000000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", + "factor": "1.18185603729846", + "value_before_uprating": "1240000000.0" } }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_12570_15000", + "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_12570", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 193673268.80828172, + "resolved_value": 323828554.21977913, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_d85ca871c404258929b62b14", + "resolved_fact_key": "ledger_aggregate_fact_v2_bd65aa884ad89d9837551b0e", "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "175000000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", + "factor": "1.18185603729846", + "value_before_uprating": "274000000.0" } }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_15000_20000", + "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_15000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 775799779.626317, + "resolved_value": 1619142771.0988955, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_f613cd427677fd0c6ec74446", + "resolved_fact_key": "ledger_aggregate_fact_v2_34ecf84ec234f3525db59f91", "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "701000000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", + "factor": "1.18185603729846", + "value_before_uprating": "1370000000.0" } }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_150000_200000", + "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_150000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 1604721370.1257627, + "resolved_value": 768206424.2440015, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_28dfee53a20f51baa78ce2e2", + "resolved_fact_key": "ledger_aggregate_fact_v2_89bdbe74eda3cee8844ad898", "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "1450000000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", + "factor": "1.18185603729846", + "value_before_uprating": "650000000.0" } }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_20000_30000", + "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_20000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 3120906388.796311, + "resolved_value": 3699209396.744192, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_818ba25d69b70814b2e69129", + "resolved_fact_key": "ledger_aggregate_fact_v2_752ea2329d313046c61bf1e2", "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "2820000000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", + "factor": "1.18185603729846", + "value_before_uprating": "3130000000.0" } }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_200000_300000", + "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_200000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 1261643008.2368066, + "resolved_value": 866300475.339774, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_f1685e6eb7c2cd733e8666e0", + "resolved_fact_key": "ledger_aggregate_fact_v2_02f3a7f7b7097a3fd455b702", "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "1140000000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", + "factor": "1.18185603729846", + "value_before_uprating": "733000000.0" } }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_30000_40000", + "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_30000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 2833163246.566864, + "resolved_value": 2990095774.3651137, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_0a83445ae5da86296e31e6ae", + "resolved_fact_key": "ledger_aggregate_fact_v2_d341b6820714e38a12ac4b1c", "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "2560000000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", + "factor": "1.18185603729846", + "value_before_uprating": "2530000000.0" } }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_300000_500000", + "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_300000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 453748801.2079743, + "resolved_value": 795389113.1018662, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_a2ed3fe8cb8ea8cdafbb57eb", + "resolved_fact_key": "ledger_aggregate_fact_v2_8fc8bdb298f62c90d7af57b8", "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "410000000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", + "factor": "1.18185603729846", + "value_before_uprating": "673000000.0" } }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_40000_50000", + "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_40000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 2158073566.7208533, + "resolved_value": 2210070789.7481275, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_43c82cc4e382737eae7e59b6", + "resolved_fact_key": "ledger_aggregate_fact_v2_367d1c49bfab3c640463ded8", "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "1950000000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", + "factor": "1.18185603729846", + "value_before_uprating": "1870000000.0" } }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_50000_70000", + "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_50000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 2899565510.1582747, + "resolved_value": 2765543127.2784057, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_1b0ff080c0f6274ec84d8194", + "resolved_fact_key": "ledger_aggregate_fact_v2_819d2f77e45b3ba5a7907a4a", "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "2620000000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", + "factor": "1.18185603729846", + "value_before_uprating": "2340000000.0" } }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_500000_1000000", + "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_500000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 184819633.66276026, + "resolved_value": 771751992.355897, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_7094bdafe2aafc7ebdbdbf71", + "resolved_fact_key": "ledger_aggregate_fact_v2_5d68b2314b5c54a09f274733", "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "167000000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", + "factor": "1.18185603729846", + "value_before_uprating": "653000000.0" } }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_70000_100000", + "name": "hmrc.spi.savings_interest_income.amount_by_total_income_band.band_70000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 2645023499.724533, + "resolved_value": 1914606780.4235115, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_cce64f76ec702d7156fc0a7f", + "resolved_fact_key": "ledger_aggregate_fact_v2_ab8a5ac6dd4ba75e194133f1", "uprating": { - "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "factor": "1.10670439319018", - "value_before_uprating": "2390000000.0" + "index": "policyengine_uk_parameter:gov.economic_assumptions.indices.ons.household_interest_income", + "factor": "1.18185603729846", + "value_before_uprating": "1620000000.0" } } ] }, - "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band": { + "hmrc.spi.savings_interest_income.count_by_total_income_band": { "status": "active", "candidates": [ { - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_100000_150000", + "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_100000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 332229.49886104785, + "resolved_value": 608465.2619589977, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_0e72018eb0ad9245363dfa56", + "resolved_fact_key": "ledger_aggregate_fact_v2_cc751c95928989eb960cb707", "uprating": { "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", "factor": "1.24430523917995", - "value_before_uprating": "267000.0" + "value_before_uprating": "489000.0" } }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_1000000_plus", + "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_1000000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 8166.666666666667, + "resolved_value": 24500.0, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_a7220ffd945f41bc1f8420a8", + "resolved_fact_key": "ledger_aggregate_fact_v2_b1146332a0862643714ecd16", "uprating": { "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", "factor": "1.16666666666667", - "value_before_uprating": "7000.0" + "value_before_uprating": "21000.0" } }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_12570_15000", + "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_12570", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 538178.947368421, + "resolved_value": 1303728.0701754387, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_b9b586efc9ab9d4a6b054d9d", + "resolved_fact_key": "ledger_aggregate_fact_v2_8dc7ca35e8068968a019f95a", "uprating": { "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", "factor": "1.04298245614035", - "value_before_uprating": "516000.0" + "value_before_uprating": "1250000.0" } }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_15000_20000", + "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_15000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 1282165.4611211573, + "resolved_value": 2779656.419529837, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_7b95a6a4cc78d60a04dd89f3", + "resolved_fact_key": "ledger_aggregate_fact_v2_67f08d2099c256d2dffa19e1", "uprating": { "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", "factor": "0.97875226039783", - "value_before_uprating": "1310000.0" + "value_before_uprating": "2840000.0" } }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_150000_200000", + "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_150000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 108420.91836734694, + "resolved_value": 170209.1836734694, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_610c984d016f5d1de385c867", + "resolved_fact_key": "ledger_aggregate_fact_v2_555072d001278266acad64d4", "uprating": { "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", "factor": "1.16581632653061", - "value_before_uprating": "93000.0" + "value_before_uprating": "146000.0" } }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_20000_30000", + "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_20000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 3267990.1960784313, + "resolved_value": 5262867.647058823, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_627613cc1f1ee670ad30ccb8", + "resolved_fact_key": "ledger_aggregate_fact_v2_ee833e8b84d420fa560c50de", "uprating": { "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", "factor": "1.00245098039216", - "value_before_uprating": "3260000.0" + "value_before_uprating": "5250000.0" } }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_200000_300000", + "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_200000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 74260.4501607717, + "resolved_value": 132950.16077170416, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_906b2677a58cad2e8dbe77af", + "resolved_fact_key": "ledger_aggregate_fact_v2_c9084328800ae8dd29f6fedc", "uprating": { "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", "factor": "1.19774919614148", - "value_before_uprating": "62000.0" + "value_before_uprating": "111000.0" } }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_30000_40000", + "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_30000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 2211689.814814815, + "resolved_value": 4142708.333333333, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_7c4ca60e993c754568b1e747", + "resolved_fact_key": "ledger_aggregate_fact_v2_53f5b48bbcf461f728be5b8f", "uprating": { "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", "factor": "1.12268518518519", - "value_before_uprating": "1970000.0" + "value_before_uprating": "3690000.0" } }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_300000_500000", + "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_300000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 33536.977491961414, + "resolved_value": 81446.94533762058, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_1382eb43553da82b11fc0ea3", + "resolved_fact_key": "ledger_aggregate_fact_v2_c18d1294d4f9b41cd396a6ba", "uprating": { "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", "factor": "1.19774919614148", - "value_before_uprating": "28000.0" + "value_before_uprating": "68000.0" } }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_40000_50000", + "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_40000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 1212500.0, + "resolved_value": 2660763.8888888885, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_c4f2ea45e164ef5b82da6b42", + "resolved_fact_key": "ledger_aggregate_fact_v2_abd9f1a8fe87970d0b8ad851", "uprating": { "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", "factor": "1.12268518518519", - "value_before_uprating": "1080000.0" + "value_before_uprating": "2370000.0" } }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_50000_70000", + "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_50000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 1194036.7775831874, + "resolved_value": 2714273.204903678, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_3be9ba98483d526840fb85be", + "resolved_fact_key": "ledger_aggregate_fact_v2_2b269edb165684a70d5c1359", "uprating": { "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", "factor": "1.21716287215412", - "value_before_uprating": "981000.0" + "value_before_uprating": "2230000.0" } }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_500000_1000000", + "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_500000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 16981.48148148148, + "resolved_value": 46092.59259259259, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_c101024b1a2949a598bb4685", + "resolved_fact_key": "ledger_aggregate_fact_v2_3c55f69b2611214dd3797239", "uprating": { "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", "factor": "1.21296296296296", - "value_before_uprating": "14000.0" + "value_before_uprating": "38000.0" } }, { - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_70000_100000", + "name": "hmrc.spi.savings_interest_income.count_by_total_income_band.band_70000", "status": "active", "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 591541.1558669002, + "resolved_value": 1302364.2732049038, "resolved_fact_period": "2023", - "resolved_fact_key": "ledger_aggregate_fact_v2_e4e549331f3c79ca34cef20f", + "resolved_fact_key": "ledger_aggregate_fact_v2_b6d8c5fb857de26f65fb7adb", "uprating": { "index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", "factor": "1.21716287215412", - "value_before_uprating": "486000.0" + "value_before_uprating": "1070000.0" } } ] @@ -30329,21 +29093,6 @@ } ] }, - "dwp.workplace_pension.employee_contributions": { - "status": "active", - "candidates": [ - { - "name": "dwp.workplace_pension.employee_contributions", - "status": "active", - "matched_fact_count_overall": 24, - "matched_fact_count_at_or_before_period": 24, - "resolved_period": 2025, - "resolved_value": 66200000000.0, - "resolved_fact_period": "2025", - "resolved_fact_key": "ledger_aggregate_fact_v2_9077833a715946b65beb9f3d" - } - ] - }, "dwp.attendance_allowance.recipients_england": { "status": "active", "candidates": [ @@ -30444,7 +29193,7 @@ { "family": "hmrc_spi", "status": "active_with_signed_property_amount_exclusion", - "active_reference_count": 221, + "active_reference_count": 169, "signed_rationale": "SPI income-band targets fan out by strict total-income-band dimension pins, except the HMRC property-income amount surface. Those 13 rows are signed out because Ledger carries the official SPI Table 3.7 net property-income amounts, while the incumbent target applies the populace-side x1.9 property-income undercount adjustment traced to policyengine-uk-data PR #311 / issue #230 and HMRC Property Rental Income Statistics." }, { 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 4ce012cc3..f1200e3f8 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/target_references.json +++ b/packages/microcosm-build/src/microcosm/build/uk/target_references.json @@ -348,7 +348,6 @@ "dwp.uc.two_child_limit.households_affected": "dwp.universal_credit_two_child_limit", "dwp.uc.two_child_limit.households_claimant_pip": "dwp.universal_credit_two_child_limit", "dwp.uc.two_child_limit.households_disabled_child_element": "dwp.universal_credit_two_child_limit", - "dwp.workplace_pension.employee_contributions": "dwp.workplace_pensions", "dwp.workplace_pension.employer_contributions": "dwp.workplace_pensions", "hmrc.cgt.badr_ir_qualifying_gains_by_band": "hmrc.capital_gains_tax", "hmrc.cgt.badr_ir_taxpayers_by_band": "hmrc.capital_gains_tax", @@ -381,13 +380,9 @@ "hmrc.spi.dividend_income.count_by_total_income_band": "hmrc.survey_of_personal_incomes", "hmrc.spi.employment_income.amount_by_total_income_band": "hmrc.survey_of_personal_incomes", "hmrc.spi.employment_income.count_by_total_income_band": "hmrc.survey_of_personal_incomes", - "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band": "hmrc.survey_of_personal_incomes", - "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band": "hmrc.survey_of_personal_incomes", "hmrc.spi.private_pension_income.amount_by_total_income_band": "hmrc.survey_of_personal_incomes", "hmrc.spi.private_pension_income.count_by_total_income_band": "hmrc.survey_of_personal_incomes", "hmrc.spi.property_income.count_by_total_income_band": "hmrc.survey_of_personal_incomes", - "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band": "hmrc.survey_of_personal_incomes", - "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band": "hmrc.survey_of_personal_incomes", "hmrc.spi.savings_interest_income.amount_by_total_income_band": "hmrc.survey_of_personal_incomes", "hmrc.spi.savings_interest_income.count_by_total_income_band": "hmrc.survey_of_personal_incomes", "hmrc.spi.self_employment_income.amount_by_total_income_band": "hmrc.survey_of_personal_incomes", @@ -680,7 +675,6 @@ "dwp.uc.two_child_limit.households_affected": "Households affected", "dwp.uc.two_child_limit.households_claimant_pip": "Households claimant Personal Independence Payment", "dwp.uc.two_child_limit.households_disabled_child_element": "Households disabled child element", - "dwp.workplace_pension.employee_contributions": "Employee workplace pension contributions (gross), Great Britain", "dwp.workplace_pension.employer_contributions": "Employer workplace pension contributions, Great Britain", "hmrc.cgt.badr_ir_qualifying_gains_by_band": "Capital Gains Tax BADR and Investors' Relief qualifying gains by band", "hmrc.cgt.badr_ir_taxpayers_by_band": "Capital Gains Tax BADR and Investors' Relief claimants by band of qualifying gain", @@ -713,13 +707,9 @@ "hmrc.spi.dividend_income.count_by_total_income_band": "Count by total income band", "hmrc.spi.employment_income.amount_by_total_income_band": "Amount by total income band", "hmrc.spi.employment_income.count_by_total_income_band": "Count by total income band", - "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band": "Pension contributions under net pay arrangements, amount by total income band", - "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band": "Pension contributions under net pay arrangements, count by total income band", "hmrc.spi.private_pension_income.amount_by_total_income_band": "Amount by total income band", "hmrc.spi.private_pension_income.count_by_total_income_band": "Count by total income band", "hmrc.spi.property_income.count_by_total_income_band": "Count by total income band", - "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band": "Pension contributions under relief at source, amount by total income band", - "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band": "Pension contributions under relief at source, count by total income band", "hmrc.spi.savings_interest_income.amount_by_total_income_band": "Amount by total income band", "hmrc.spi.savings_interest_income.count_by_total_income_band": "Count by total income band", "hmrc.spi.self_employment_income.amount_by_total_income_band": "Amount by total income band", @@ -29820,1306 +29810,6 @@ "uprating_from_period": "2023", "uprating_to_period": 2025 }, - { - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_100000_150000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_net_pay_pension_contributions_amount", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 100000 - } - }, - "entity": "person", - "measure": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_100000_150000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_1000000_plus", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_net_pay_pension_contributions_amount", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 1000000 - } - }, - "entity": "person", - "measure": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_1000000_plus", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_12570_15000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_net_pay_pension_contributions_amount", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 12570 - } - }, - "entity": "person", - "measure": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_12570_15000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_15000_20000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_net_pay_pension_contributions_amount", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 15000 - } - }, - "entity": "person", - "measure": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_15000_20000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_150000_200000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_net_pay_pension_contributions_amount", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 150000 - } - }, - "entity": "person", - "measure": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_150000_200000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_20000_30000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_net_pay_pension_contributions_amount", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 20000 - } - }, - "entity": "person", - "measure": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_20000_30000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_200000_300000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_net_pay_pension_contributions_amount", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 200000 - } - }, - "entity": "person", - "measure": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_200000_300000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_30000_40000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_net_pay_pension_contributions_amount", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 30000 - } - }, - "entity": "person", - "measure": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_30000_40000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_300000_500000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_net_pay_pension_contributions_amount", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 300000 - } - }, - "entity": "person", - "measure": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_300000_500000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_40000_50000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_net_pay_pension_contributions_amount", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 40000 - } - }, - "entity": "person", - "measure": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_40000_50000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_50000_70000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_net_pay_pension_contributions_amount", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 50000 - } - }, - "entity": "person", - "measure": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_50000_70000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_500000_1000000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_net_pay_pension_contributions_amount", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 500000 - } - }, - "entity": "person", - "measure": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_500000_1000000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_70000_100000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_net_pay_pension_contributions_amount", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 70000 - } - }, - "entity": "person", - "measure": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band.band_70000_100000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_100000_150000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_net_pay_pension_contributions_count", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 100000 - } - }, - "entity": "person", - "measure": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_100000_150000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_1000000_plus", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_net_pay_pension_contributions_count", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 1000000 - } - }, - "entity": "person", - "measure": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_1000000_plus", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_12570_15000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_net_pay_pension_contributions_count", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 12570 - } - }, - "entity": "person", - "measure": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_12570_15000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_15000_20000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_net_pay_pension_contributions_count", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 15000 - } - }, - "entity": "person", - "measure": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_15000_20000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_150000_200000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_net_pay_pension_contributions_count", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 150000 - } - }, - "entity": "person", - "measure": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_150000_200000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_20000_30000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_net_pay_pension_contributions_count", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 20000 - } - }, - "entity": "person", - "measure": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_20000_30000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_200000_300000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_net_pay_pension_contributions_count", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 200000 - } - }, - "entity": "person", - "measure": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_200000_300000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_30000_40000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_net_pay_pension_contributions_count", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 30000 - } - }, - "entity": "person", - "measure": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_30000_40000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_300000_500000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_net_pay_pension_contributions_count", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 300000 - } - }, - "entity": "person", - "measure": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_300000_500000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_40000_50000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_net_pay_pension_contributions_count", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 40000 - } - }, - "entity": "person", - "measure": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_40000_50000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_50000_70000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_net_pay_pension_contributions_count", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 50000 - } - }, - "entity": "person", - "measure": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_50000_70000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_500000_1000000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_net_pay_pension_contributions_count", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 500000 - } - }, - "entity": "person", - "measure": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_500000_1000000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_70000_100000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_net_pay_pension_contributions_count", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 70000 - } - }, - "entity": "person", - "measure": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band.band_70000_100000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_100000_150000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_relief_at_source_pension_contributions_amount", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 100000 - } - }, - "entity": "person", - "measure": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_100000_150000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_1000000_plus", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_relief_at_source_pension_contributions_amount", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 1000000 - } - }, - "entity": "person", - "measure": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_1000000_plus", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_12570_15000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_relief_at_source_pension_contributions_amount", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 12570 - } - }, - "entity": "person", - "measure": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_12570_15000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_15000_20000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_relief_at_source_pension_contributions_amount", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 15000 - } - }, - "entity": "person", - "measure": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_15000_20000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_150000_200000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_relief_at_source_pension_contributions_amount", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 150000 - } - }, - "entity": "person", - "measure": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_150000_200000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_20000_30000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_relief_at_source_pension_contributions_amount", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 20000 - } - }, - "entity": "person", - "measure": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_20000_30000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_200000_300000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_relief_at_source_pension_contributions_amount", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 200000 - } - }, - "entity": "person", - "measure": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_200000_300000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_30000_40000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_relief_at_source_pension_contributions_amount", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 30000 - } - }, - "entity": "person", - "measure": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_30000_40000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_300000_500000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_relief_at_source_pension_contributions_amount", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 300000 - } - }, - "entity": "person", - "measure": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_300000_500000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_40000_50000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_relief_at_source_pension_contributions_amount", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 40000 - } - }, - "entity": "person", - "measure": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_40000_50000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_50000_70000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_relief_at_source_pension_contributions_amount", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 50000 - } - }, - "entity": "person", - "measure": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_50000_70000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_500000_1000000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_relief_at_source_pension_contributions_amount", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 500000 - } - }, - "entity": "person", - "measure": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_500000_1000000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_70000_100000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_relief_at_source_pension_contributions_amount", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 70000 - } - }, - "entity": "person", - "measure": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band.band_70000_100000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_100000_150000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_relief_at_source_pension_contributions_count", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 100000 - } - }, - "entity": "person", - "measure": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_100000_150000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_1000000_plus", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_relief_at_source_pension_contributions_count", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 1000000 - } - }, - "entity": "person", - "measure": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_1000000_plus", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_12570_15000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_relief_at_source_pension_contributions_count", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 12570 - } - }, - "entity": "person", - "measure": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_12570_15000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_15000_20000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_relief_at_source_pension_contributions_count", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 15000 - } - }, - "entity": "person", - "measure": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_15000_20000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_150000_200000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_relief_at_source_pension_contributions_count", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 150000 - } - }, - "entity": "person", - "measure": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_150000_200000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_20000_30000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_relief_at_source_pension_contributions_count", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 20000 - } - }, - "entity": "person", - "measure": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_20000_30000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_200000_300000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_relief_at_source_pension_contributions_count", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 200000 - } - }, - "entity": "person", - "measure": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_200000_300000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_30000_40000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_relief_at_source_pension_contributions_count", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 30000 - } - }, - "entity": "person", - "measure": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_30000_40000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_300000_500000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_relief_at_source_pension_contributions_count", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 300000 - } - }, - "entity": "person", - "measure": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_300000_500000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_40000_50000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_relief_at_source_pension_contributions_count", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 40000 - } - }, - "entity": "person", - "measure": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_40000_50000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_50000_70000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_relief_at_source_pension_contributions_count", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 50000 - } - }, - "entity": "person", - "measure": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_50000_70000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_500000_1000000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_relief_at_source_pension_contributions_count", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 500000 - } - }, - "entity": "person", - "measure": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_500000_1000000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, - { - "name": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_70000_100000", - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_relief_at_source_pension_contributions_count", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person", - "geography_level": "country", - "geography_id": "K02000001", - "dimension_values": { - "total_income_lower_bound": 70000 - } - }, - "entity": "person", - "measure": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band.band_70000_100000", - "family": "hmrc_spi", - "period": 2025, - "metadata": { - "contract_target_id": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band", - "measure_kind": "prepared_column" - }, - "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "uprating_from_period": "2023", - "uprating_to_period": 2025 - }, { "name": "hmrc.spi_region.taxpayers_by_region_12570_15000@E12000001", "ledger_selector": { @@ -46184,58 +44874,6 @@ "period_match_policy": "exact", "value_operation": "sum" }, - { - "name": "dwp.workplace_pension.employee_contributions", - "ledger_selector": { - "source_name": "dwp", - "source_concept": "dwp.workplace_pension_annual_saving", - "entity_name": "person", - "dimensions": [ - "price_basis", - "saver_population", - "saving_component", - "sector" - ], - "period_type": "calendar_year", - "period_value": 2025, - "geography_level": "country", - "geography_id": "K03000001" - }, - "entity": "person", - "measure": "dwp/workplace_pension/employee_contributions", - "family": "dwp_workplace_pensions", - "period": 2025, - "metadata": { - "contract_target_id": "dwp.workplace_pension.employee_contributions", - "measure_kind": "prepared_column" - }, - "period_match_policy": "exact", - "value_operation": "linear_combination", - "value_operands": [ - { - "weight": 1, - "source_concept": "dwp.workplace_pension_annual_saving", - "dimension_values": { - "price_basis": "2025_earnings_terms", - "saver_population": "all_savers", - "saving_component": "employee_contributions", - "sector": "all" - }, - "label": "employee_contributions_net_of_tax" - }, - { - "weight": 1, - "source_concept": "dwp.workplace_pension_annual_saving", - "dimension_values": { - "price_basis": "2025_earnings_terms", - "saver_population": "all_savers", - "saving_component": "tax_relief", - "sector": "all" - }, - "label": "tax_relief" - } - ] - }, { "name": "dwp.attendance_allowance.recipients_england", "ledger_selector": { 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 819d932e9..5c0706279 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 @@ -824,12 +824,7 @@ "dwp.pension_credit.benefit_units_85_89": "Post-freeze fact family (DWP Stat-Xplore Pension Credit caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", "dwp.pension_credit.benefit_units_90_plus": "Post-freeze fact family (DWP Stat-Xplore Pension Credit caseload, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", "dfc_ni.pension_credit.benefit_units": "Post-freeze fact family (DfC Northern Ireland Pension Credit statistics, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", - "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band": "Post-freeze fact family (HMRC SPI 2023-24 Table 3.8, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", - "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band": "Post-freeze fact family (HMRC SPI 2023-24 Table 3.8, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", - "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band": "Post-freeze fact family (HMRC SPI 2023-24 Table 3.8, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", - "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band": "Post-freeze fact family (HMRC SPI 2023-24 Table 3.8, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069).", "dwp.workplace_pension.employer_contributions": "Post-freeze fact family (DWP workplace pension savings trends / HMRC Table 6.2, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069 c9).", - "dwp.workplace_pension.employee_contributions": "Post-freeze fact family (DWP workplace pension savings trends / HMRC Table 6.2, PolicyEngine/chronicle#302 via #305), no uk-data metric (microcosm#1069 c9).", "dwp.attendance_allowance.recipients_england": "Post-freeze fact family (DWP Stat-Xplore Attendance Allowance), no uk-data metric (microcosm#1069 c10).", "dwp.attendance_allowance.recipients_wales": "Post-freeze fact family (DWP Stat-Xplore Attendance Allowance), no uk-data metric (microcosm#1069 c10).", "dwp.hb.households_pension_age": "Post-freeze fact family (DWP Stat-Xplore Housing Benefit, pension age), no uk-data metric (microcosm#1069 c10).", @@ -1132,10 +1127,6 @@ "hmrc.itl.income_tax_by_total_income_band", "hmrc.spi.savings_interest_income.amount_by_total_income_band", "hmrc.spi.savings_interest_income.count_by_total_income_band", - "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band", - "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band", - "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band", - "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band", "hmrc.spi_region.taxpayers_by_region_12570_15000", "hmrc.spi_region.taxpayers_by_region_15000_20000", "hmrc.spi_region.taxpayers_by_region_20000_30000", @@ -1207,7 +1198,6 @@ "dwp.pension_credit.benefit_units_90_plus", "dfc_ni.pension_credit.benefit_units", "dwp.workplace_pension.employer_contributions", - "dwp.workplace_pension.employee_contributions", "dwp.attendance_allowance.recipients_england", "dwp.attendance_allowance.recipients_wales", "dwp.hb.households_pension_age", @@ -18227,186 +18217,6 @@ "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", "selector_note": "Uprated from the SPI 2023-24 fact to the 2025 calibration period by HMRC's own projected growth in Income Tax payers for the Table 2.5 band containing this band (Income Tax liabilities statistics, July 2026): the calendar-2025 window of the 2024-25 and 2025-26 projections (3/12 and 9/12) over the 2023-24 outturn, from the vendored hmrc_itl_taxpayer_counts.json. Ruled by María on 2026-09-22 (PolicyEngine/chronicle#280 lane): calendar 2025, months to the end of the year for fiscal- and tax-year facts." }, - { - "target_id": "hmrc.spi.net_pay_pension_contributions.amount_by_total_income_band", - "family": "hmrc_spi", - "geography_levels": [ - "country" - ], - "measurement": { - "entity": "person", - "map_to": "household", - "concept": "uk.pensions.contributions.net_pay.amount", - "groupby_dimension": "hmrc.total_income_band" - }, - "bindings": { - "policyengine": { - "metric_name": "hmrc/net_pay_pension_contributions_amount_income_band", - "value_variable": "employee_pension_contributions", - "from_entity": "person", - "map_to": "household", - "groupby_variable": "total_income", - "notes": "HMRC Survey of Personal Incomes 2023-24, collated Table 3.8 (deductions and reliefs by range of total income; PolicyEngine/chronicle#302 via #305): employee contributions deducted from pay before tax (the engine's employee_pension_contributions: reported workplace contributions not made by salary sacrifice), summed by person-level total income band; band edges come from the fact dimension (microcosm#1069 c8, R5)." - }, - "axiom": { - "metric_name": "hmrc/net_pay_pension_contributions_amount_income_band", - "status": "pending", - "value_rule": "uk.pensions.contributions.net_pay.amount" - } - }, - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_net_pay_pension_contributions_amount", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person" - }, - "category_id": "hmrc.survey_of_personal_incomes", - "label": "Pension contributions under net pay arrangements, amount by total income band", - "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "selector_note": "Uprated from the SPI 2023-24 fact to the 2025 calibration period by the pinned engine's gov.economic_assumptions.indices.obr.average_earnings between 1 January 2023 and 1 January 2025, the earnings applier R5 rules for contributions (microcosm#1069)." - }, - { - "target_id": "hmrc.spi.net_pay_pension_contributions.count_by_total_income_band", - "family": "hmrc_spi", - "geography_levels": [ - "country" - ], - "measurement": { - "entity": "person", - "map_to": "household", - "concept": "uk.person.count", - "groupby_dimension": "hmrc.total_income_band", - "filters": [ - { - "concept": "uk.pensions.contributions.net_pay.amount", - "operator": ">", - "value": 0 - } - ] - }, - "bindings": { - "policyengine": { - "metric_name": "hmrc/net_pay_pension_contributions_count_income_band", - "value_variable": "person_count", - "from_entity": "person", - "map_to": "household", - "groupby_variable": "total_income", - "notes": "HMRC Survey of Personal Incomes 2023-24, collated Table 3.8 (deductions and reliefs by range of total income; PolicyEngine/chronicle#302 via #305): employee contributions deducted from pay before tax (the engine's employee_pension_contributions: reported workplace contributions not made by salary sacrifice), counted where positive by person-level total income band; band edges come from the fact dimension (microcosm#1069 c8, R5).", - "filters": [ - { - "variable": "employee_pension_contributions", - "operator": ">", - "value": 0 - } - ] - }, - "axiom": { - "metric_name": "hmrc/net_pay_pension_contributions_count_income_band", - "status": "pending", - "value_rule": "uk.person.count" - } - }, - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_net_pay_pension_contributions_count", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person" - }, - "category_id": "hmrc.survey_of_personal_incomes", - "label": "Pension contributions under net pay arrangements, count by total income band", - "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "selector_note": "Uprated from the SPI 2023-24 fact to the 2025 calibration period by HMRC's projected growth in Income Tax payers for the Table 2.5 band containing this band, as the other SPI counts are (microcosm#1069)." - }, - { - "target_id": "hmrc.spi.relief_at_source_pension_contributions.amount_by_total_income_band", - "family": "hmrc_spi", - "geography_levels": [ - "country" - ], - "measurement": { - "entity": "person", - "map_to": "household", - "concept": "uk.pensions.contributions.relief_at_source.amount", - "groupby_dimension": "hmrc.total_income_band" - }, - "bindings": { - "policyengine": { - "metric_name": "hmrc/relief_at_source_pension_contributions_amount_income_band", - "value_variable": "personal_pension_contributions", - "from_entity": "person", - "map_to": "household", - "groupby_variable": "total_income", - "notes": "HMRC Survey of Personal Incomes 2023-24, collated Table 3.8 (deductions and reliefs by range of total income; PolicyEngine/chronicle#302 via #305): contributions paid from taxed income with basic-rate relief added by the scheme (the engine's personal_pension_contributions, FRS personal and stakeholder pensions), summed by person-level total income band; band edges come from the fact dimension (microcosm#1069 c8, R5)." - }, - "axiom": { - "metric_name": "hmrc/relief_at_source_pension_contributions_amount_income_band", - "status": "pending", - "value_rule": "uk.pensions.contributions.relief_at_source.amount" - } - }, - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_relief_at_source_pension_contributions_amount", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person" - }, - "category_id": "hmrc.survey_of_personal_incomes", - "label": "Pension contributions under relief at source, amount by total income band", - "uprating_index": "policyengine_uk_parameter:gov.economic_assumptions.indices.obr.average_earnings", - "selector_note": "Uprated from the SPI 2023-24 fact to the 2025 calibration period by the pinned engine's gov.economic_assumptions.indices.obr.average_earnings between 1 January 2023 and 1 January 2025, the earnings applier R5 rules for contributions (microcosm#1069)." - }, - { - "target_id": "hmrc.spi.relief_at_source_pension_contributions.count_by_total_income_band", - "family": "hmrc_spi", - "geography_levels": [ - "country" - ], - "measurement": { - "entity": "person", - "map_to": "household", - "concept": "uk.person.count", - "groupby_dimension": "hmrc.total_income_band", - "filters": [ - { - "concept": "uk.pensions.contributions.relief_at_source.amount", - "operator": ">", - "value": 0 - } - ] - }, - "bindings": { - "policyengine": { - "metric_name": "hmrc/relief_at_source_pension_contributions_count_income_band", - "value_variable": "person_count", - "from_entity": "person", - "map_to": "household", - "groupby_variable": "total_income", - "notes": "HMRC Survey of Personal Incomes 2023-24, collated Table 3.8 (deductions and reliefs by range of total income; PolicyEngine/chronicle#302 via #305): contributions paid from taxed income with basic-rate relief added by the scheme (the engine's personal_pension_contributions, FRS personal and stakeholder pensions), counted where positive by person-level total income band; band edges come from the fact dimension (microcosm#1069 c8, R5).", - "filters": [ - { - "variable": "personal_pension_contributions", - "operator": ">", - "value": 0 - } - ] - }, - "axiom": { - "metric_name": "hmrc/relief_at_source_pension_contributions_count_income_band", - "status": "pending", - "value_rule": "uk.person.count" - } - }, - "ledger_selector": { - "source_name": "hmrc", - "source_concept": "hmrc.spi_relief_at_source_pension_contributions_count", - "groupby_dimension": "hmrc.total_income_band", - "entity_name": "person" - }, - "category_id": "hmrc.survey_of_personal_incomes", - "label": "Pension contributions under relief at source, count by total income band", - "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_by_total_income_band", - "selector_note": "Uprated from the SPI 2023-24 fact to the 2025 calibration period by HMRC's projected growth in Income Tax payers for the Table 2.5 band containing this band, as the other SPI counts are (microcosm#1069)." - }, { "target_id": "hmrc.spi_region.taxpayers_by_region_12570_15000", "family": "hmrc_spi_region", @@ -25896,95 +25706,6 @@ "label": "Employer workplace pension contributions, Great Britain", "period_match_policy": "exact" }, - { - "target_id": "dwp.workplace_pension.employee_contributions", - "family": "dwp_workplace_pensions", - "geography_levels": [ - "country" - ], - "measurement": { - "entity": "person", - "map_to": "household", - "concept": "uk.pensions.contributions.employee.amount" - }, - "bindings": { - "policyengine": { - "metric_name": "dwp/workplace_pension/employee_contributions", - "value_variable": "employee_pension_contributions", - "from_entity": "person", - "map_to": "household", - "household_conditions": [ - { - "variable": "region", - "entity": "household", - "reduce": "any", - "operator": "in", - "value": [ - "NORTH_EAST", - "NORTH_WEST", - "YORKSHIRE", - "EAST_MIDLANDS", - "WEST_MIDLANDS", - "EAST_OF_ENGLAND", - "LONDON", - "SOUTH_EAST", - "SOUTH_WEST", - "WALES", - "SCOTLAND" - ], - "map_to": "person" - } - ], - "notes": "DWP Workplace pension participation and savings trends 2025 (ONS ASHE, Great Britain, all savers, 2025 earnings terms; PolicyEngine/chronicle#302 via #305): gross employee contributions, DWP's employee part (net of tax) plus its tax relief part, against the engine's employee contributions (microcosm#1069 c9, R6)." - }, - "axiom": { - "metric_name": "dwp/workplace_pension/employee_contributions", - "status": "pending", - "value_rule": "uk.pensions.contributions.employee.amount" - } - }, - "ledger_selector": { - "source_name": "dwp", - "source_concept": "dwp.workplace_pension_annual_saving", - "entity_name": "person", - "dimensions": [ - "price_basis", - "saver_population", - "saving_component", - "sector" - ], - "period_type": "calendar_year", - "period_value": 2025 - }, - "value_operation": "linear_combination", - "value_operands": [ - { - "weight": 1, - "source_concept": "dwp.workplace_pension_annual_saving", - "dimension_values": { - "price_basis": "2025_earnings_terms", - "saver_population": "all_savers", - "saving_component": "employee_contributions", - "sector": "all" - }, - "label": "employee_contributions_net_of_tax" - }, - { - "weight": 1, - "source_concept": "dwp.workplace_pension_annual_saving", - "dimension_values": { - "price_basis": "2025_earnings_terms", - "saver_population": "all_savers", - "saving_component": "tax_relief", - "sector": "all" - }, - "label": "tax_relief" - } - ], - "category_id": "dwp.workplace_pensions", - "label": "Employee workplace pension contributions (gross), Great Britain", - "period_match_policy": "exact" - }, { "target_id": "dwp.attendance_allowance.recipients_england", "family": "dwp_attendance_allowance", diff --git a/packages/microcosm-build/tests/engine_free/shared/test_country_spec.py b/packages/microcosm-build/tests/engine_free/shared/test_country_spec.py index e47487acd..9b99b5882 100644 --- a/packages/microcosm-build/tests/engine_free/shared/test_country_spec.py +++ b/packages/microcosm-build/tests/engine_free/shared/test_country_spec.py @@ -1128,7 +1128,7 @@ def test_uk_target_references_accept_regenerated_contract_fields(self) -> None: references = {reference.name: reference for reference in spec.target_references} assert ( - len(references) == 1283 + len(references) == 1230 ) # PolicyEngine/chronicle#280 lane: 705 + 33 HMRC liabilities rows (Table 2.5, three # measures by eleven bands) + 26 SPI savings-interest rows (two measures by # thirteen bands) + 360 SPI Table 3.11 region-tier rows (three measures by @@ -1143,9 +1143,8 @@ def test_uk_target_references_accept_regenerated_contract_fields(self) -> None: # less the OBR State Pension line, now a diagnostic, and the signed-out # empty new State Pension £40-£60 band; 14 Pension Credit caseload rows # (Great Britain total, six type-by-partner cells, six age bands, NI); - # 52 SPI Table 3.8 contribution rows (four measures by thirteen bands); - # the DWP employer and employee contribution totals and the - # salary-sacrifice amount, less the salary-sacrifice users total; two + # the DWP employer contribution total, less the salary-sacrifice users + # total (the Table 3.8 rows and the DWP employee total left the fit); two # Attendance Allowance and three pension-age Housing Benefit rows; the # income-tax relief total on salary sacrifice in place of the amount row assert references["obr.esa"].value_operation == "calendar_year_window" diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_national_calibration.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_national_calibration.py index 83f61a17c..d1ed33339 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_national_calibration.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_national_calibration.py @@ -53,7 +53,7 @@ from microcosm.calibrate.artifacts import decode_problem from microcosm.frame import EntitySchema, Frame, MassChange, WeightKind, Weights -ACTIVE_REFERENCE_COUNT = 1283 +ACTIVE_REFERENCE_COUNT = 1230 def _uc_reference(**overrides) -> LedgerTargetReference: diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_population_targets.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_population_targets.py index bd34055fa..49fe9fd5f 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_population_targets.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_population_targets.py @@ -191,8 +191,11 @@ def test_uk_population_targets_shape_order_and_registry_accounting() -> None: # four SPI pension contribution band targets in c8; c9 adds the DWP employer # and employee contribution totals and the salary-sacrifice amount and drops # the salary-sacrifice users total; c10 adds two Attendance Allowance and - # three pension-age Housing Benefit caseload targets. - assert len(resource["targets"]) == 396 + # three pension-age Housing Benefit caseload targets; the four Table 3.8 + # contribution targets and the DWP employee total leave the fit again (their + # relief-mechanism and gross definitions do not match the engine's columns; + # microcosm#1069 c9 arm). + assert len(resource["targets"]) == 391 providers = resource["hierarchy"]["providers"] categories = resource["hierarchy"]["categories"] @@ -206,10 +209,10 @@ def test_uk_population_targets_shape_order_and_registry_accounting() -> None: 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) == 345 + assert len(registry_scope) == 340 assert len(profile_scope) == 51 - assert target_ids[:345] == registry_scope - assert target_ids[345:] == profile_scope + assert target_ids[:340] == registry_scope + assert target_ids[340:] == profile_scope parity = resource["registry_parity"] assert parity["pinned_ref"] == "12a1e028afeef08d8b2d74ee03fd9de3a78b2dd3" @@ -223,7 +226,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) == 192 - assert len(unmapped_declarations) == 153 + assert len(unmapped_declarations) == 148 suppressed_ancestors = parity["suppressed_ancestors"] assert len(suppressed_ancestors) == 5 assert set(suppressed_ancestors).isdisjoint(parity["mapped"]) @@ -342,7 +345,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) == 396 + assert len(target_ids) == 391 assert len(target_ids) == len(set(target_ids)) @@ -810,7 +813,7 @@ def test_uc_payment_bands_share_administrative_family_but_keep_source_window() - def test_paid_joint_diagnostics_do_not_add_active_targets() -> None: targets = _load()["targets"] - assert len(targets) == 396 + assert len(targets) == 391 assert not any( f.get("variable") == "uc_calibration_child_entitlement" for target in targets diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_target_references.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_target_references.py index 75894ba30..9a0fbfaad 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_target_references.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_target_references.py @@ -64,7 +64,7 @@ _TEST_PATHS = paths_for("microcosm-build") -ACTIVE_REFERENCE_COUNT = 1283 +ACTIVE_REFERENCE_COUNT = 1230 REGION_TIER_LEVEL = {code: level for level, code in UK_REGION_TIER} UK_DATA_REPO = "policyengine-" + "uk-data" @@ -750,7 +750,7 @@ def test_uk_target_reference_membership_report_is_packaged() -> None: assert membership["target_period"] == 2025 assert membership["active_reference_count"] == ACTIVE_REFERENCE_COUNT assert membership["status_counts"] == { - "active": 1283, + "active": 1230, "no_fact_at_or_before_period": 7, "signed_excluded": 16, } @@ -768,7 +768,7 @@ def test_uk_target_reference_membership_report_is_packaged() -> None: { "family": "hmrc_spi", "status": "active_with_signed_property_amount_exclusion", - "active_reference_count": 221, + "active_reference_count": 169, "signed_rationale": ( "SPI income-band targets fan out by strict total-income-band " "dimension pins, except the HMRC property-income amount " From b03b0dfbea3fc3e46ba2b052e6e87f1fd005edc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20Juaristi?= <127882282+juaristi22@users.noreply.github.com> Date: Thu, 1 Oct 2026 21:51:46 +0100 Subject: [PATCH 17/22] Receipts: the UK pensions arms, the final build and WP7 (#1069 c12) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The measurement record for the c5 fix through c11 and the two follow-ups: the SPI channel's 66-year-olds, the pension-age prior share (σ_p 0.5 committed, 0.2 measured at c6 and at the final state), the D6 retirement, Pension Credit take-up and caseload, the contribution rows that left the fit and why, the pension-age benefit caseloads, the salary-sacrifice relief counterfactual and its decomposition, the final arm (battery passed, loss 0.00730 on 1,170 targets, ESS 4,900), HBAI pensioner positions, the CPI-only State Pension probe with bootstrap SEs, and the remaining gaps and rulings owed. Every H5 is measurement only; the scripts live under data/ukds/acceptance/pensions-1069/. Co-Authored-By: Claude Opus 5.5 --- experiments/1069-uk-pensions-receipts.md | 307 +++++++++++++++++++++++ 1 file changed, 307 insertions(+) create mode 100644 experiments/1069-uk-pensions-receipts.md diff --git a/experiments/1069-uk-pensions-receipts.md b/experiments/1069-uk-pensions-receipts.md new file mode 100644 index 000000000..3e5869144 --- /dev/null +++ b/experiments/1069-uk-pensions-receipts.md @@ -0,0 +1,307 @@ +# microcosm#1069 receipts: UK pensions + +Plan: `repos/microcosm-uk-pensions-implementation-plan.md`, approved 2026-09-30 (rulings R1–R15). The plan +was executed in this order on branch `uk-pensions-1069`, rebased onto main 3598c38de: + +- c5, c1–c4 and the £40–60 band sign-out came earlier (see their own commits). +- This note covers the c5 fix (dae9cc916), c6 (7cac27b27), c7 (f795e9121), c8 (9b66ab395), the D6 + retirement (b19f14d98), c9 (8b3e9f993), the c6 follow-up (be5c13245), c10 (13089945a), c11 + (fcb5c46b5) and the c8/c9 follow-up (d9fca7bb7). +- c0 waits for PolicyEngine/policyengine-uk#1899. + +Builds. Every arm is a licensed local build: the spine (the build_930 recipe with the five NTS tabs and +`--was-person-tab`, `--no-staging`), then the national role (`--staging-local-only`). They use the +Chronicle artifact 825406f (PolicyEngine/chronicle#302 via #305) and the 2026-09-30 national build as the +incumbent. The scripts live in `data/ukds/acceptance/pensions-1069/scripts/`: + +- `arm.sh` and `arm2.sh` (`arm2.sh` refines the quiet gate); +- `arm_readout.py`, which reads out from the ordered dense solution, so it also works on arms whose + battery blocked the H5; +- `arm_h5.py`, which writes measurement H5s from a spine and its calibrated weights; +- `wp7.sh`, `wp7_analyse.py` and `relief_decomposition.py`. + +Every H5 is measurement only and never released. Engine: policyengine-uk 2.100.0 (the repo's pin). + +The arms, in order: + +- c4: the starting point. +- c5fix. +- c6s50 and c6s20, the σ_p variants; 0.2 was never committed. +- c7. +- c9: c8 and c9 together, which blocked on Table 3.8. +- final: d9fca7bb7, reusing the c9 spine. Its battery passed and it wrote an H5. +- finals20: the final state at σ_p = 0.2, a variant. + +## Part A. The SPI channel's 66-year-olds (c5 fix) + +The c4 arm left 402 66-year-old records without a State Pension, so only 81% of 66-year-olds received +it. That share is what squeezed age 65 inside the ONS 65–69 band (R3). + +- **Where the zeros sat (c4 spine).** 330 of the 402 records, carrying 88% of their weight, were SPI-channel + synthetic records. The SPI channel's zero-State-Pension share was 100%, 51% and 6% at 65, 66 and 67; the + FRS respondents' was 7% at 66 and 3–6% at 67–71. +- **Mechanism.** c5's donors carry whole-year ages plus a uniform fraction, while the hosts carry whole + years. A host at exactly 66.0 sits on the forest's 66.0 split and reads a 65.x donor's leaf, which never + holds a State Pension. In a synthetic forest the whole-year query gives 0% receipt at 66 and the + mid-year query 100%. +- **Fix (dae9cc916).** Stage-1 queries the forest at the whole-year age plus half a year + (`_stage1_query_predictors`, also used for the base redraw). Band carriers now pool only donors on + their own side of State Pension age (`_resample_band_donor_leaves(state_pension_age=…)`, with a receipt + of matched carriers per band). +- **Arm c5fix (spine 39c1254a).** + - Loss 0.00826 on 1,148 targets (c4: 0.00908 on 1,149); 98.0% within 10%; ESS 5,003. + - No row above 25%. The London £12,570–15,000 income-tax row moved from +26.2% to +1.9%, and the + 50–70k State Pension band (D6) from +28.6% to +23.0%. + - State Pension receipt at 66: 95%. + - Single ages 64–68 against ONS mid-2024: +1/−15/0/+2/0% (c4: −5/−27/−7/+20/+4%). + +## Part B. The SPI channel's pension-age mass (c6) + +- **What the prior mix showed (c4 spine).** + - 66+ people at prior weights were 13.88m: 6.07m FRS and 7.81m SPI channel. Pension-age households were + 5.67m in the SPI channel against 4.44m from the FRS. + - The SPI channel's uniform within-region weights inflate pension-age mass: the FRS sample + over-represents pensioner households, and uniform weights keep that composition. Design-weight 66+ + is about 12.1m (ONS about 12.4m). + - The taxpayer share of the 66+ is 67.7% in the FRS channel (HMRC 67%) and 83% in the SPI channel. + - The non-taxpayer share of State Pension is 25.9% in the FRS channel and 10.6% in the SPI channel; + HMRC and DWP imply 32.4% (£46.1bn of £142.3bn). +- **Change (7cac27b27).** The allocation is stratified by region × pension-age household (any member at + or over State Pension age), with a pension-age share σ_p. The committed value is 0.5 (provisional). +- **Arms.** + - c6s50 (spine 6721f725): loss 0.00824 on 1,148; within 10% 97.8%; ESS 5,033. + - Prior 66+ people 12.33m. + - SPI State Pension bands: 20–30k +15.8%, 50–70k +23.6%. + - Non-taxpayer State Pension £36.8bn; 66+ calibrated FRS 6.87m / SPI 5.66m. + - c6s20 (spine 0bbf0895; a measurement variant, never committed): loss 0.00857; ESS 4,967. + - SPI bands: 20–30k +10.1%, 50–70k +24.0%. + - Non-taxpayer State Pension £38.6bn. + - Single ages worse: 62 +15%, 63 +10%, 72 −17%. + - Pre-calibration Pension Credit spend: c5fix −17.5%, c6s50 −23.5%, c6s20 −5.8%. Attendance Allowance + −12%, −21% and −17%. +- **HBAI (measurement H5s, Part H).** Pensioner quintile shares before housing costs against HBAI's + 22/25/21/18/14: c6s50 20.9/26.5/20.5/18.7/13.4; c6s20 21.7/27.8/20.3/17.9/12.2. + +## Part C. D6 retired (b19f14d98) + +The 50–70k State Pension band fits at +23.0%, +23.6% and +24.0% on the c5fix, c6s50 and c6s20 arms. +The terminal `uk_target_fit` gate fails its reviewed deferral (ruling D6, 2026-09-23, expiring +2026-10-21) as stale, so every arm from c5fix to c7 blocked its H5 on that one line. The entry is +retired, as the SE deferrals were, and the register is empty. + +## Part D. Pension Credit (c7) + +- **Rows.** 14 caseload targets (`dwp_pension_credit`; the CY2025 mean of four quarterly points): Great + Britain, six type-by-partner cells, six age bands and Northern Ireland. `obr.pension_credit` stays bound. +- **Take-up.** A new stage, `pension_credit_take_up`, after the SPI chain. Within each DWP component a + reporter claims, and the other entitled units claim at r = (t·E − R)/(E − R), with FYE2024 take-up of 69% + (Guarantee Credit) and 37% (Savings Credit only). + - Stage gate on the c7 spine: realised take-up 69.4% (1,463 entitled units in the sample) and 39.1% + (392). +- **Arm c7 (spine e5788819).** Loss 0.00818 on 1,162; within 10% 97.8%; ESS 5,004 (66+ households 2,071). + All 14 caseload rows are within 0.3%. +- **The prior misses.** Before calibration the caseload is 0.889m against 1.391m (−36%) and spend −35.3% + (c6s50 −23.5%). + - The take-up lands, so the miss is on the entitled side: too few entitled pensioner units at the + σ_p = 0.5 prior. + - Calibration closes it. R9's fallback, solving take-up against the caseload, would not help: the + rates already reproduce DWP's. + +## Part E. Contributions (c8, c9) and the rows that left the fit + +- **c8 (9b66ab395).** The FRS spine no longer clips personal and stakeholder contributions at the 95th + percentile of every PENPROV amount; the clip removed 28% of the reported amount on 1.8% of rows. The + commit also authored four SPI Table 3.8 targets (net pay and relief at source, amount and count by + total-income band; amounts uprated by the earnings index under R5, counts by taxpayer growth). +- **c9 (8b3e9f993).** + - Employer contributions are an ASHE 2024 rate draw on pay, by scheme type and sector, replacing three + times the employee contribution. + - On the c9 spine: 10,102 members with earnings and a mean member rate of 8.4%. + - Members by ASHE type: 2,204 defined benefit, 2,824 defined contribution, 4,201 group personal and + 568 group stakeholder, plus 305 not specified. + - Converted salary-sacrifice records lose the sacrificed pay: 4,625 converted rows take the headcount + from 2.70m to 5.44m, against the 5.4m staging target. + - Contract: + - DWP employer contributions (£104.2bn) against the engine's employer contributions plus salary + sacrifice; + - DWP gross employee contributions (£45.5bn employees' own plus £20.7bn relief = £66.2bn); + - the 2024-25 salary-sacrifice amount (£24.6bn); + - the 7.7m users total leaves the fit. +- **Arm c9 (be5c13245, spine c2232d87).** The battery blocked on 12 Table 3.8 rows. + - Loss 0.01513 on 1,216 targets (c7: 0.00818); within 10% 95.6%; ESS 4,060 (c7: 5,004). Single ages + distorted (69 +21%). + - Totals against SPI 2023-24, uprated: + - net pay £23.0bn and 9.66m contributors: +67% and +68% at prior, +136% and +78% calibrated; + - relief at source £21.1bn and 10.87m: −28% and −82% at prior, −2% and −74% calibrated; + - DWP employee gross: −43% prior, −18% calibrated; + - DWP employer: +12% prior, +0.1% calibrated; + - salary-sacrifice amount: +57% prior, on target calibrated. +- **Diagnosis.** + - Table 3.8 splits contributions by relief mechanism; the engine's columns split by provider. + `employee_pension_contributions` holds every workplace deduction, and `personal_pension_contributions` + holds the FRS personal and stakeholder pensions. Workplace group personal pensions and many master + trusts take relief at source, so the engine's "net pay" is too large and its relief-at-source + contributors far too few (about 2.0m against 10.9m). No reweighting reaches that. + - DWP's gross employee figure also pulls against SPI's net pay: SPI net pay plus relief at source is + £44.1bn, close to DWP's £45.5bn employees' own contributions, not the £66.2bn gross. +- **Follow-up (c11b).** The four Table 3.8 targets and the DWP employee row leave the fit + (`scripts/c11b_unbind.py`; active references 1,283 → 1,230). The clip removal, the employer draw, the + conversion fix and the DWP employer row stay. Re-specification options are in Part I. + +## Part F. Pension-age benefits (c10, 13089945a) + +- Attendance Allowance cases with entitlement in England (1,597,003) and Wales (124,118): the mean of the + four calendar-2025 quarterly points, in the new family `dwp_attendance_allowance`. + - Scotland is not bound. Its caseload moves to Pension Age Disability Payment through 2025 (171k in + February, 25k in November), which the engine does not model. +- Pension-age Housing Benefit benefit units in Great Britain, as the twelve-month mean for 2025: + 1,107,464 across all tenures, 890,664 in the social and 216,779 in the private rented sector. + - The tenure cells are Stat-Xplore detail rows (measure `claimants`), and the engine reads the eldest + adult's age against 66. +- Winter Fuel Payment recipients in England and Wales, winter 2025/26 (11,003,237; fact key 31256472…), + sit beside `obr.winter_fuel_allowance` as a required diagnostic and are never fitted + (PolicyEngine/policyengine-uk#1760). +- **Final arm.** + - Every row fits within 0.2%: Attendance Allowance England −0.2% and Wales 0.0%; pension-age Housing + Benefit −0.2% (social −0.2%, private 0.0%). + - The prior was far short: Attendance Allowance −35% (England) and −23% (Wales); pension-age Housing + Benefit −41% (social −40%, private −49%). The frame lacks low-income pensioners at prior weights, the + same signal as Pension Credit (Part D). + - `obr.attendance_allowance` (amount) moves from 0.0% to +2.6%, and `obr.winter_fuel_allowance` from + +0.1% to +3.2%. + +## Part G. The salary-sacrifice relief counterfactual (c11, fcb5c46b5) + +- **Route.** The resolution loop resolves `input_substitution_counterfactual` bindings through the + provider. `UKMeasureResolver` builds one extra simulation per substitution: the sacrifice is zeroed and + added to pay at the calibration year, and the result is the output's delta against the baseline. The + delta lands in a slash-free column. +- **Rows (HMRC Table 6.2, 2024-25).** + - Employee NICs relief: £1.0bn. + - Employer NICs relief: restated from 13.8% to the engine's 2025 rate of 15%, so £3.4bn becomes + £3.70bn (new engine index parameter). + - Income-tax relief total: £8.8bn. + - c9's interim amount row retires; the three rate bands stay excluded until the band-test fix. +- **Engine test.** £3,000 returned to pay is taxed at 20% income tax, 8% employee NICs and 15% employer + NICs. +- **Decomposition at c7 (before the c9 pay fix; scripts/relief_decomposition.py).** + - Sacrificed amount £36.9bn across 7.67m sacrificers. + - Income-tax delta £8.31bn: the Child Benefit charge contributes +£0.09bn and the annual-allowance charge + −£0.27bn. + - Employee NICs delta £1.27bn, employer £4.13bn. + - At c7 the deltas double-count, because converted records' pay still carried the sacrifice; c9's fix + removes that. +- **Final arm (fits).** + - Income-tax relief total £8.8bn: −0.0% (prior −2.5%). + - Employee NICs relief £1.0bn: −0.1% (prior +20.6%). + - Employer NICs relief £3.70bn: −0.1% (prior +10.3%). +- **Final-arm decomposition on the H5.** + - Income-tax delta £8.86bn: the Child Benefit charge contributes +£0.09bn and the annual-allowance charge + −£0.39bn, so £9.16bn excluding the charges. + - Employee NICs £1.01bn, employer £3.72bn. + - The sacrificed amount is £36.3bn across 7.66m sacrificers, against the £24.6bn HMRC's employer relief + implies (c9's amount row held it exactly). + - In the final H5, 1.24m sacrificers (16%) have no pay but carry £18.8bn (52% of the amount), and + 0.35m are under 16 (£5.3bn). At prior, on the c9 spine, no-pay records already hold 64% of the + amount (£24.9bn of £38.8bn); in the c9 arm, with the amount row bound, they held £11.3bn of £24.7bn. + - The salary-sacrifice stage's forest predicts a sacrifice for everyone not asked (the #1063 + non-earner finding). Returned pay on those records carries less relief per pound (the personal + allowance and the NICs thresholds absorb it), so the solver inflates amounts to reach the relief + totals. + - So the R7 premise, that the employer row anchors the amount, does not hold until the non-earner + defect is fixed (a #1063 fold-in). Keeping the amount row bound beside the relief rows is the + interim option. + +## Part H. Validation (WP7) and the final arm + +- **Final arm (d9fca7bb7, `runs/uk-pensions-1069-final`).** The battery passed and the H5 was written. + - Loss 0.00730 on 1,170 targets; within 10% 97.5%; ESS 4,900 (66+ households 2,268); top-1% weight + share 0.272. For comparison: c7 0.00818 on 1,162, and the 2026-09-30 main build 0.00836 on 1,090. + - Measure resolution, including the one counterfactual simulation, takes about 10 minutes. + - No row above 25%. The worst rows: + - the 50–70k State Pension band +24.5%; + - East Midlands total income £12,570–15,000 +24.4%; + - VAT +23.9% (PolicyEngine/policyengine-uk#1996); + - Child Benefit +22.7% (#1063); + - employment income £15–20k −21.8% and £20–30k −21.1%. + - SPI State Pension bands: 20–30k +19.7%, 30–40k +20.0%, 40–50k +12.3%, 50–70k +24.5%, 70–100k +16.6%. +- **Engine, FY2025-26, on the final H5 (pension_types.py).** + - State Pension £142.5bn and 12.42m recipients, against the £142.3bn resident level (GB £138.6bn plus NI + £3.7bn). + - New State Pension 4.85m (£54.2bn); basic 7.57m; additional 9.18m. + - Pension Credit 1.46m benefit units and £6.15bn (targets 1.45m and £6.11bn): Guarantee Credit only + 0.859m, both 0.430m, Savings Credit only 0.171m. + - Ages 64–68: 0.874, 0.633, 0.721, 0.757 and 0.698m, against ONS 0.80, 0.77, 0.75, 0.71 and 0.68m. +- **HBAI (pensioner_position.py).** + - Pensioner quintile shares before housing costs: 20.6/26.2/21.4/18.8/13.0, against HBAI's + 22/25/21/18/14. The pre-#1069 control (ch3) had 18.3/24.0/22.0/18.8/17.0. + - Pensioner relative poverty: 14.2% BHC and 14.7% AHC, against HBAI FYE 2025's 16% and 14% (ch3: 13.1% + and 11.3%). The arms run from 14.2% to 16.0% BHC. +- **CPI-only State Pension probe (reform_probe.py, wp7_analyse.py; 300 household bootstrap draws).** + - Budget effect +£1.20bn, +£1.79bn, +£2.43bn and +£3.10bn for 2027 to 2030 (SE ≤ £0.08bn). + - ch3 is 10–13% lower and the #979 build 7–8% lower: mostly the State Pension level (the engine's £131bn + on ch3 against £142.5bn now). + - Decile loss shares in 2030: 7.4/8.9/12.6/13.0/11.4/11.4/12.7/8.8/7.7/6.0, SE ≤ 1.0 point. ch3's + heavy D4 record (SE 3.4 points) is gone. +- **Stability.** A second calibration seed would change nothing: the national solve is deterministic + (L0 λ = 0; the seed only feeds L0 gate sampling). Stability is read from the household bootstrap above + and from the σ_p variant below. +- **σ_p variant at the final state (finals20, spine 70f4cb44; uncommitted).** + - The battery blocks on one row: the 50–70k State Pension band at +25.6% (final +24.5%). + - Loss 0.00758 against 0.00730; within 10% 97.7% against 97.5%; ESS 4,994 against 4,900; top-1% weight + share 0.267 against 0.272. + - SPI bands: 20–30k +13.9% and 30–40k +15.1% (better), 70–100k +22.6% (worse). + - Non-taxpayer State Pension £37.5bn against £35.5bn. + - Prior gaps are closer: Pension Credit −24% against −36%; Attendance Allowance (England) −32% against + −35%; pension-age Housing Benefit −28% against −41%. + - Single ages: 62 +15%, 63 +11%, 64 −6%, 65 −17%, 69 +12% (final: +8/+2/+9/−19/+20%). + - HBAI quintiles: 21.5/27.9/21.1/16.7/12.7 (Q2 +2.9 points against HBAI; the final's largest gap is 1.4). + Pensioner relative poverty: 15.1% BHC and 15.1% AHC. + - CPI-only probe against the final: the budget effect agrees within 0.5% in every year, inside WP7's 3% + criterion. Decile loss shares differ by up to 1.2–1.8 points, just outside its 1-point criterion: 0.2 + moves loss towards D1–D4. The bootstrap SE is 0.6–1.0 points. + +## Part I. Remaining gaps and rulings owed + +- **c0 (State Pension age by date of birth).** Blocked on PolicyEngine/policyengine-uk#1899, still open. + The 70–74 type-boundary zig-zag remains until it lands, with single ages 69 to 73 off by 10% to 20%. +- **Engine follow-up (repos/policyengine-uk-1069, 4 local commits).** These cover reform propagation, the + 2025-26 Pension Credit rates and guarantee uprating, the April 2027 rate and the state_pension column + guard. Items 2 (the basic-to-new double count) and 3 (Additional State Pension by CPI) wait for #1899. + Seven engine rulings are owed. +- **σ_p (SPI channel pension-age share).** 0.5 is committed provisionally; the evidence is in Part B and + the final-state variant. Her ruling. +- **Single ages (R3).** At the final state 65 is −19% and 64 +9% (c5fix: −15% and +1%). The fallback, + splitting 65–69 into 65, 66 and 67–69, is available on her ruling. +- **SPI State Pension bands 20–100k: +12% to +24.5% at the final state.** The 50–70k band (D6, now retired) + sits at +24.5%, just inside the 25% bound. At σ_p = 0.2 it crosses (+25.6%) and blocks the H5. +- **Non-taxpayer State Pension.** £35–39bn against about £46bn implied (the HMRC/DWP split). +- **Pension Credit entitlement at prior: −36%** (σ_p interaction); calibration closes it. +- **Contribution rows out of the fit (Part E).** Options: + - (1) Bind combined Table 3.8 amounts (net pay plus relief at source) against employee plus personal + contributions, and drop the counts. + - (2) Model the relief mechanism from PENPROV.STEMPPEN: group personal and stakeholder workplace schemes + to relief at source, occupational to net pay. NEST-type master trusts stay ambiguous. + - (3) Keep both families as diagnostics. + - The DWP employee figure: bind employees' own £45.5bn, the gross £66.2bn, or neither. +- **Salary-sacrifice relief.** + - The relief rows fit, but the sacrificed amount rises to £36.3bn (£24.6bn implied), because no-pay + records hold half of it (Part G). Options: keep the c9 amount row bound beside the relief rows, or + land #1063's earners-only fix first. R7 retired the amount row, so this is her call. + - The three income-tax rate bands are deferred until the band test reads after-allowance thresholds and + the Scottish bands; the exclusions expire 2026-11-25. + - The FY2024-25 relief and amount rows are not earnings-uprated (consistent with R1 and R10), a gap of + about 4–5%. + - The employer row is restated to 15% (my call, to confirm). + - The income-tax delta includes the Child Benefit and annual-allowance charges. +- **Winter Fuel.** A diagnostic only, until PolicyEngine/policyengine-uk#1760. +- **Attendance Allowance in Scotland (Pension Age Disability Payment).** Not bound. +- **Salary-sacrifice anchor.** Not yet vendored from Chronicle (a plan item; the values already match the + feed). +- **WP7 second seed.** The national solve is deterministic, so stability is measured by bootstrap and + across the σ_p variant. +- **Time-critical, outside this PR.** The `slc.borrowers.plan_2_*` measure exclusions expire 2026-10-03; + an expired entry raises in every build and in the certifier. +- **Outward steps, each on her go.** Push the branch and open the draft PR; comment on + PolicyEngine/chronicle#302; flag the deleted parameters on PolicyEngine/policyengine-uk#1899; open the + engine follow-up issue and PR. From 4262b750f0ce95471c8475eda9b5bdd7a7fe59a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20Juaristi?= <127882282+juaristi22@users.noreply.github.com> Date: Thu, 1 Oct 2026 22:15:57 +0100 Subject: [PATCH 18/22] Re-pin the UK gate digests and two tests the pension stages moved (#1069) The full engine-free job at d9fca7bb7 failed eight tests that the targeted runs of each commit did not cover: - the microcosm-data contract's mirrors of the UK gate battery (policy, gates manifest, spec fingerprint) and of the certification parts' scoped digests: the pension stages and their gates (c6, c7, c9) moved them; six digests are re-pinned in contract.py and test_contract.py (the gate battery pins and the release assembler's three tests); - the UC capital coherence stage is now followed by the Pension Credit take-up redraw (c7) before the deduction attributes; - the SPI spine path-resolution test passes State Pension age to the support stage, which reads it from the engine for the pension-age allocation stratum (c6) unless given. Co-Authored-By: Claude Opus 5.5 --- .../tests/engine_free/uk/test_uk_spi_spine.py | 3 +++ .../engine_free/uk/test_uk_uc_capital_coherence.py | 9 ++++++++- .../microcosm-data/src/microcosm/data/contract.py | 12 ++++++------ .../tests/engine_free/shared/test_contract.py | 6 +++--- 4 files changed, 20 insertions(+), 10 deletions(-) diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_spi_spine.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_spi_spine.py index c4e768a48..21e06ef0c 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_spi_spine.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_spi_spine.py @@ -579,6 +579,9 @@ def uprating_factors(year): support_frame = UKSPISupportChannelStageTransform( stage=_committed_stage("spi_support_channel"), sample_fraction=0.0002, + # The pension-age allocation stratum (microcosm#1069 c6) reads State + # Pension age from the engine unless the test passes it. + state_pension_age=66, )(_base_frame(time_period=HMRC_SPI_BUILD_PERIOD)) income_stage = _with_mutated_operation( _committed_stage("hmrc_spi_income_spine"), diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_uc_capital_coherence.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_uc_capital_coherence.py index b045957c8..30e375c3e 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_uc_capital_coherence.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_uc_capital_coherence.py @@ -55,7 +55,14 @@ def test_stage_orders_after_every_universal_credit_report_writer() -> None: assert reporter_writers assert all(index < coherence_index for index, _ in reporter_writers) - assert stages[coherence_index + 1].stage == "uc_deduction_attributes" + # The Pension Credit take-up redraw sits between the coherence stage and the + # deduction attributes (microcosm#1069 c7); it writes no UC report. + assert [ + stage.stage for stage in stages[coherence_index + 1 : coherence_index + 3] + ] == [ + "pension_credit_take_up", + "uc_deduction_attributes", + ] def test_or_refresh_truth_table_and_same_capital_source() -> None: diff --git a/packages/microcosm-data/src/microcosm/data/contract.py b/packages/microcosm-data/src/microcosm/data/contract.py index fa99ef8d1..518135bcf 100644 --- a/packages/microcosm-data/src/microcosm/data/contract.py +++ b/packages/microcosm-data/src/microcosm/data/contract.py @@ -416,13 +416,13 @@ def compatibility_claim_declarer_error(declared_by: object) -> str | None: # fingerprint derives from the manifest digest. Editing the spec moves all # three here in the same reviewed change. _UK_GATE_BATTERY_POLICY_SHA256 = ( - "7365ded0928aa124ff8fe3e9ca87cc5b55c8f61ad7fc6c910fa5b17b5cd60e29" + "783472d00c7f2a7db9e69bb6096b67664d9cf38564b7803e3a988c81aeda23ff" ) _UK_GATE_BATTERY_GATES_MANIFEST_SHA256 = ( - "dcc233997328072dbb94b823c93b4e3db33e7410ed94533530f0a6fe31f0d4c9" + "9853301352d9ed016b60171d0004aba640d11dfec785b215d12b9f7925187384" ) _UK_GATE_BATTERY_SPEC_FINGERPRINT = ( - "13ba3e6141315da40c2db07ec6a3be3ec6607be3c47645220b399c02e8e6f626" + "86f6baba74bf8c500e406370ddbaebfe419e1ab93d1a5644e800e723fac939ae" ) #: Spec entry id -> the legacy gate name whose observable detail checks #: apply unchanged (the battery re-keys the report by entry id; the gate @@ -839,10 +839,10 @@ def _uk_line_cut_tag_re(release_id: str) -> re.Pattern[str] | None: _UK_CERTIFICATION_PART_DIGESTS: Mapping[str, Mapping[str, str]] = { "spine": { "gates_manifest_sha256": ( - "e24f22b411d69ca0da2a884ed530ed3d19c5b8a3f0061866dbf8c88fb053a267" + "2acb8ed4287738645ad52690a571d9d5b8d2c54d9920ecc52c1246f1dbb74a01" ), "policy_sha256": ( - "af1750f20eafea8b63d0a816ceeffe95ad6719a18fb5b81bb8023a9cb770cb6a" + "38709195e442e0d435f6d7985fb13553add8a4aa85fb102d198d76cb8ba865ca" ), }, "calibration_seam": { @@ -855,7 +855,7 @@ def _uk_line_cut_tag_re(release_id: str) -> re.Pattern[str] | None: }, "release_cut": { "gates_manifest_sha256": ( - "dbf6099f574995d3134efeb10d900dd106772f6765d5520e999db45871164c7c" + "60e37d4ac2ed3725e1a6d89eeb939513486efddd6ac7f6d689857485bd9a1ef1" ), "policy_sha256": ( "264084717c05c80509795a69299fe60f4513e821f443e0c3f2126911c8ce3605" diff --git a/packages/microcosm-data/tests/engine_free/shared/test_contract.py b/packages/microcosm-data/tests/engine_free/shared/test_contract.py index 7534ea95b..ab97ab309 100644 --- a/packages/microcosm-data/tests/engine_free/shared/test_contract.py +++ b/packages/microcosm-data/tests/engine_free/shared/test_contract.py @@ -117,13 +117,13 @@ 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 = ( - "7365ded0928aa124ff8fe3e9ca87cc5b55c8f61ad7fc6c910fa5b17b5cd60e29" + "783472d00c7f2a7db9e69bb6096b67664d9cf38564b7803e3a988c81aeda23ff" ) UK_GATE_BATTERY_GATES_MANIFEST_SHA256 = ( - "dcc233997328072dbb94b823c93b4e3db33e7410ed94533530f0a6fe31f0d4c9" + "9853301352d9ed016b60171d0004aba640d11dfec785b215d12b9f7925187384" ) UK_GATE_BATTERY_SPEC_FINGERPRINT = ( - "13ba3e6141315da40c2db07ec6a3be3ec6607be3c47645220b399c02e8e6f626" + "86f6baba74bf8c500e406370ddbaebfe419e1ab93d1a5644e800e723fac939ae" ) UK_GATE_BATTERY_DEGENERATE_EVIDENCE_SHA256 = ( "6f0243bcda09dad26945376230c44ec3cf55d4e417c3a25e29bae8c59bc1a69d" From 004b5c9cc81e26e4adfb1809c8493ca3cdba5c71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20Juaristi?= <127882282+juaristi22@users.noreply.github.com> Date: Fri, 2 Oct 2026 09:53:19 +0100 Subject: [PATCH 19/22] Let synthetic smoke builds record the Pension Credit take-up gate without blocking (#1069) integration-uk failed on #1084: the hermetic smoke build runs the spine on the charter-H2 fixture, where the new uk_stage_pension_credit_take_up gate realised 0.55 Guarantee Credit take-up and found no Savings Credit only units. The realised rates are population facts, so the gate now declares population_fact_check like the NTS and LCFS fact gates: a synthetic smoke build records the failure and continues; every other posture still blocks. No gate digest moves. Co-Authored-By: Claude Opus 5.5 --- packages/microcosm-build/src/microcosm/build/uk/gates.json | 1 + .../tests/engine_free/uk/test_uk_stage_health.py | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/packages/microcosm-build/src/microcosm/build/uk/gates.json b/packages/microcosm-build/src/microcosm/build/uk/gates.json index 1dbeb0814..fdcff9799 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/gates.json +++ b/packages/microcosm-build/src/microcosm/build/uk/gates.json @@ -447,6 +447,7 @@ "phase": "transferred", "criticality": "release_blocking", "evidence_absent_blocks": true, + "population_fact_check": true, "parameters": { "stage": "pension_credit_take_up", "check": "pension_credit_take_up", diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_stage_health.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_stage_health.py index c23d75d74..d779c64de 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_stage_health.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_stage_health.py @@ -1504,3 +1504,7 @@ def gate(*bands): assert not gate(band("guarantee_credit", 0.69, 0.50, exceed=True)).passed assert not gate(band("guarantee_credit", 0.69, None, units=0)).passed assert not gate().passed + # The realised rates are population facts: a synthetic smoke fixture records + # the failure without blocking, every other posture blocks on it. + committed = _gate_parameters("uk_stage_pension_credit_take_up") + assert committed["check"] == "pension_credit_take_up" From 3a3fc105ccbbdadda018715006c69f3d3c205f4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20Juaristi?= <127882282+juaristi22@users.noreply.github.com> Date: Fri, 2 Oct 2026 10:03:21 +0100 Subject: [PATCH 20/22] Lower the SPI channel's pension-age prior share to 0.2 (#1069, ruled 2026-10-02) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit σ_p (c6) was committed at a provisional 0.5. Measured at the final state (the finals20 arm), 0.2 keeps more low-income pensioners in the prior: Pension Credit caseload -24% before calibration (0.5: -36%), pension-age Housing Benefit -28% (-41%), Attendance Allowance (England) -32% (-35%); ESS 4,994 (4,900), top-1% weight share 0.267 (0.272), non-taxpayer State Pension GBP 37.5bn (35.5). Its one blocked row, the SPI State Pension 50-70k band at +25.6%, is fixed at its root in the next commit. The constant, both manifests and the stage gate parameter move to 0.2; the release-input coverage manifest's required allocation reason and the charter-H2 fixture regenerate; five gate digests are re-pinned. Co-Authored-By: Claude Opus 5.5 --- ...-channel-pension-age-share-1069.changed.md | 1 + .../src/microcosm/build/uk/gates.json | 2 +- .../uk/release_input_coverage_manifest.json | 32 +++++------ .../src/microcosm/build/uk/source_stages.json | 2 +- .../src/microcosm/build/uk/spec/sources.yaml | 2 +- .../microcosm/build/uk_runtime/spi_spine.py | 5 +- ...test_uk_release_input_coverage_manifest.py | 2 +- .../tests/engine_free/uk/test_uk_spi_spine.py | 2 +- .../src/microcosm/data/contract.py | 10 ++-- .../tests/engine_free/shared/test_contract.py | 6 +- .../sources/cgt_asset_type_facts.json | 56 +++++++++---------- .../parity/uk_spine/sources/fixture.json | 2 +- .../fixtures/parity/uk_spine/uk_spine.json | 2 +- 13 files changed, 63 insertions(+), 61 deletions(-) create mode 100644 changelog.d/uk-spi-channel-pension-age-share-1069.changed.md diff --git a/changelog.d/uk-spi-channel-pension-age-share-1069.changed.md b/changelog.d/uk-spi-channel-pension-age-share-1069.changed.md new file mode 100644 index 000000000..dfd6a2b62 --- /dev/null +++ b/changelog.d/uk-spi-channel-pension-age-share-1069.changed.md @@ -0,0 +1 @@ +Lower the UK SPI channel's share of pension-age prior mass from 0.5 to 0.2 (#1069). Measured at the final state, 0.2 keeps more low-income pensioners in the prior: before calibration the Pension Credit caseload sits 24% short instead of 36%, and pension-age Housing Benefit 28% short instead of 41%. The effective sample size rises from 4,900 to 4,994, and non-taxpayer State Pension from £35.5bn to £37.5bn. The coverage manifest's required allocation reason, the charter-H2 fixture and the gate digests move with the stage parameter. diff --git a/packages/microcosm-build/src/microcosm/build/uk/gates.json b/packages/microcosm-build/src/microcosm/build/uk/gates.json index fdcff9799..4cb1738dd 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/gates.json +++ b/packages/microcosm-build/src/microcosm/build/uk/gates.json @@ -418,7 +418,7 @@ "stage": "spi_support_channel", "check": "spi_support_channel", "spi_prior_mass_share": 0.5, - "pension_age_spi_prior_mass_share": 0.5, + "pension_age_spi_prior_mass_share": 0.2, "absolute_tolerance": 0.0, "household_weight_kind": "importance", "minimum_spi_households": 1 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 ebd51218b..1edc791c4 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 @@ -468,7 +468,7 @@ "required_mass_change_reason": "Capital-gains incidence anchor moves the mass of non-liable clone households back to their paired originals until the sub-exempt and loss-making clone mass match the Advani-Summers reporter composition at the redrawn liable mass; every pair's mass and the total household mass are conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "43e06433b2d35deeeec9192678fe75d73d8a5fcdd54f2a4a2117fd64208c941d", + "source_manifest_sha256": "c461c338a92a48409c1537bd1c142852f750ab2529b302fa74bf08af32da4752", "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, the HMRC Table 3 redrawn gains on the spine and Advani-Summers capital-gains incidence" @@ -491,7 +491,7 @@ "capital_gains" ], "source_manifest": "source_stages.json", - "source_manifest_sha256": "43e06433b2d35deeeec9192678fe75d73d8a5fcdd54f2a4a2117fd64208c941d", + "source_manifest_sha256": "c461c338a92a48409c1537bd1c142852f750ab2529b302fa74bf08af32da4752", "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" @@ -513,7 +513,7 @@ "required_mass_change_reason": "Capital-gains support split divides the wealthiest households of each HMRC Table 3 income band into light copies at equal weight; every household's mass and the total household mass are conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "43e06433b2d35deeeec9192678fe75d73d8a5fcdd54f2a4a2117fd64208c941d", + "source_manifest_sha256": "c461c338a92a48409c1537bd1c142852f750ab2529b302fa74bf08af32da4752", "source_vintages": { "source": "HMRC Capital Gains Tax statistics, July 2026 release, Table 3 for 2024-25, via the vendored conditioning facts", "survey": "Family Resources Survey 2024-25, SPI synthetic support and HMRC Capital Gains Tax statistics Table 3 (2024-25 individuals by size of gain and taxable income)" @@ -542,7 +542,7 @@ "required_mass_change_reason": "ETB public-services imputation on the source spine: household weights pass through unchanged and total household mass is conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "43e06433b2d35deeeec9192678fe75d73d8a5fcdd54f2a4a2117fd64208c941d", + "source_manifest_sha256": "c461c338a92a48409c1537bd1c142852f750ab2529b302fa74bf08af32da4752", "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" @@ -562,7 +562,7 @@ "required_mass_change_reason": "ETB VAT expenditure-rate imputation on the source spine: household weights pass through unchanged and total household mass is conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "43e06433b2d35deeeec9192678fe75d73d8a5fcdd54f2a4a2117fd64208c941d", + "source_manifest_sha256": "c461c338a92a48409c1537bd1c142852f750ab2529b302fa74bf08af32da4752", "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" @@ -584,7 +584,7 @@ "required_mass_change_reason": "CGT asset-type assignment on the source spine: household weights pass through unchanged and total household mass is conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "43e06433b2d35deeeec9192678fe75d73d8a5fcdd54f2a4a2117fd64208c941d", + "source_manifest_sha256": "c461c338a92a48409c1537bd1c142852f750ab2529b302fa74bf08af32da4752", "source_vintages": { "source": "https://www.gov.uk/government/statistics/capital-gains-tax-statistics", "survey": "HMRC Capital Gains Tax statistics 2026 release, Table 8 (UK residential property disposals, 2024-25, administrative), Table 4.1 (individuals claiming Business Asset Disposal Relief or Investors' Relief by band of qualifying gain, 2024-25, administrative) and Table 7 (disposals, proceeds and gains by asset type, 2023-24, sample-based), vendored from the pinned Chronicle feed" @@ -608,7 +608,7 @@ "capital_gains" ], "source_manifest": "source_stages.json", - "source_manifest_sha256": "43e06433b2d35deeeec9192678fe75d73d8a5fcdd54f2a4a2117fd64208c941d", + "source_manifest_sha256": "c461c338a92a48409c1537bd1c142852f750ab2529b302fa74bf08af32da4752", "source_vintages": { "conditioning_resource": "hmrc_cgt_conditioning_facts.json", "conditioning_resource_sha256": "067ba21c12aeb4e95e6a8a16141dbaa075e8787ed875a005f549cab6e91a6b56", @@ -660,7 +660,7 @@ "dividend_income", "other_investment_income" ], - "required_mass_change_reason": "Allocate 0.5 of certified UK national household prior mass in households without, and 0.5 in households with, a member at or over State Pension age to the rebuilt 2022-23 SPI support channel; total national mass is conserved.", + "required_mass_change_reason": "Allocate 0.5 of certified UK national household prior mass in households without, and 0.2 in households with, a member at or over State Pension age to the rebuilt 2022-23 SPI support channel; total national mass is conserved.", "required_predecessor_stages": [ "frs_hmrc_spine_leaves", "spi_support_channel", @@ -697,7 +697,7 @@ "full_frs_tei_band_unavailable" ], "source_manifest": "source_stages.json", - "source_manifest_sha256": "43e06433b2d35deeeec9192678fe75d73d8a5fcdd54f2a4a2117fd64208c941d", + "source_manifest_sha256": "c461c338a92a48409c1537bd1c142852f750ab2529b302fa74bf08af32da4752", "source_vintages": { "hmrc_surface": "2023-24", "mapped_build_period": "2024", @@ -738,7 +738,7 @@ "required_mass_change_reason": "LCFS consumption imputation on the source spine: household weights pass through unchanged and total household mass is conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "43e06433b2d35deeeec9192678fe75d73d8a5fcdd54f2a4a2117fd64208c941d", + "source_manifest_sha256": "c461c338a92a48409c1537bd1c142852f750ab2529b302fa74bf08af32da4752", "source_vintages": { "source": "UK Data Service SN 9468 Living Costs and Food Survey 2023-24 household/person tabs and the vendored Chronicle facts for NEED 2023 mean kWh, the FY2024-25 Ofgem cap levels, road-fuel outturn (DESNZ, HMRC, ONS), the DfT VEH1103 licensed-car stock, NTS bus use and the DfT and devolved bus finance tables.", "survey": "Living Costs and Food Survey 2023-24" @@ -764,7 +764,7 @@ "required_mass_change_reason": "NTS bus-travel imputation on the source spine: household weights pass through unchanged and total household mass is conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "43e06433b2d35deeeec9192678fe75d73d8a5fcdd54f2a4a2117fd64208c941d", + "source_manifest_sha256": "c461c338a92a48409c1537bd1c142852f750ab2529b302fa74bf08af32da4752", "source_vintages": { "source": "Department for Transport National Travel Survey, UK Data Service SN 5340 (End User Licence, 19th edition, November 2025), DOI 10.5255/UKDA-SN-5340-19; local licensed tab files (household, individual, trip); England residents only from 2013.", "survey": "National Travel Survey 2002-2024" @@ -785,7 +785,7 @@ "property_wealth" ], "source_manifest": "source_stages.json", - "source_manifest_sha256": "43e06433b2d35deeeec9192678fe75d73d8a5fcdd54f2a4a2117fd64208c941d", + "source_manifest_sha256": "c461c338a92a48409c1537bd1c142852f750ab2529b302fa74bf08af32da4752", "source_vintages": { "source": "MHCLG dwellings and ONS UK House Price Index December 2025 regional average prices.", "survey": "Public regional property reference" @@ -811,7 +811,7 @@ "employment_income" ], "source_manifest": "source_stages.json", - "source_manifest_sha256": "43e06433b2d35deeeec9192678fe75d73d8a5fcdd54f2a4a2117fd64208c941d", + "source_manifest_sha256": "c461c338a92a48409c1537bd1c142852f750ab2529b302fa74bf08af32da4752", "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" @@ -833,7 +833,7 @@ "student_loan_plan" ], "source_manifest": "source_stages.json", - "source_manifest_sha256": "43e06433b2d35deeeec9192678fe75d73d8a5fcdd54f2a4a2117fd64208c941d", + "source_manifest_sha256": "c461c338a92a48409c1537bd1c142852f750ab2529b302fa74bf08af32da4752", "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" @@ -855,7 +855,7 @@ "required_mass_change_reason": "WAS Lifetime ISA imputation on the source spine: household weights pass through unchanged and total household mass is conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "43e06433b2d35deeeec9192678fe75d73d8a5fcdd54f2a4a2117fd64208c941d", + "source_manifest_sha256": "c461c338a92a48409c1537bd1c142852f750ab2529b302fa74bf08af32da4752", "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 round-8 person and household tabs (interviews April 2020 to March 2022, Great Britain).", "survey": "Wealth and Assets Survey round 8" @@ -890,7 +890,7 @@ "required_mass_change_reason": "WAS wealth imputation on the source spine: household weights pass through unchanged and total household mass is conserved.", "rewrites": [], "source_manifest": "source_stages.json", - "source_manifest_sha256": "43e06433b2d35deeeec9192678fe75d73d8a5fcdd54f2a4a2117fd64208c941d", + "source_manifest_sha256": "c461c338a92a48409c1537bd1c142852f750ab2529b302fa74bf08af32da4752", "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 b2e8d25c1..27840af3a 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/source_stages.json +++ b/packages/microcosm-build/src/microcosm/build/uk/source_stages.json @@ -1421,7 +1421,7 @@ "strata": [ "region" ], - "pension_age_share": 0.5, + "pension_age_share": 0.2, "pension_age_stratum": "any_member_at_or_over_state_pension_age", "weight_kind_out": "importance", "conservation": "exact_total" 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 eaa342601..3442ecfe4 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/spec/sources.yaml +++ b/packages/microcosm-build/src/microcosm/build/uk/spec/sources.yaml @@ -1233,7 +1233,7 @@ stages: share: 0.5 strata: - region - pension_age_share: 0.5 + pension_age_share: 0.2 pension_age_stratum: any_member_at_or_over_state_pension_age weight_kind_out: importance conservation: exact_total diff --git a/packages/microcosm-build/src/microcosm/build/uk_runtime/spi_spine.py b/packages/microcosm-build/src/microcosm/build/uk_runtime/spi_spine.py index 1e9345f1a..85d5c6753 100644 --- a/packages/microcosm-build/src/microcosm/build/uk_runtime/spi_spine.py +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/spi_spine.py @@ -253,8 +253,9 @@ #: (microcosm#1069 c6). The channel's households are drawn unweighted with one #: weight per region, so a region-only allocation gave the channel more #: pension-age mass than the FRS design gives pension-age households, every -#: adult of it on a taxpayer's income. -SPI_SPINE_PENSION_AGE_PRIOR_MASS_SHARE = 0.5 +#: adult of it on a taxpayer's income. 0.2 (ruled 2026-10-02 over the measured +#: 0.5) keeps the low-income pensioners the benefit caseloads need in the prior. +SPI_SPINE_PENSION_AGE_PRIOR_MASS_SHARE = 0.2 SPI_SPINE_PENSION_AGE_STRATUM = "any_member_at_or_over_state_pension_age" SPI_SPINE_EFFECTIVE_MASS_COLUMNS = ("gift_aid", "charitable_investment_gifts") diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_release_input_coverage_manifest.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_release_input_coverage_manifest.py index 6257c7ef6..029f04514 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_release_input_coverage_manifest.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_release_input_coverage_manifest.py @@ -164,7 +164,7 @@ def test_hmrc_stage_is_required_while_the_208_fact_replay_remains_fenced() -> No # since microcosm#1069 c6. assert family["required_mass_change_reason"] == ( "Allocate 0.5 of certified UK national household prior mass in " - "households without, and 0.5 in households with, a member at or over " + "households without, and 0.2 in households with, a member at or over " "State Pension age to the rebuilt 2022-23 SPI support channel; total " "national mass is conserved." ) diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_spi_spine.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_spi_spine.py index 21e06ef0c..bdadfd4e4 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_spi_spine.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_spi_spine.py @@ -825,7 +825,7 @@ def test_readers_of_the_support_record_take_the_declared_allocation_reason() -> reason = uk_spi_support_mass_change_reason(stage) # The record the support stage writes for the declared shares. - assert reason == _spi_prior_mass_change_reason(0.5, pension_age_share=0.5) + assert reason == _spi_prior_mass_change_reason(0.5, pension_age_share=0.2) assert reason != SPI_PRIOR_MASS_CHANGE_REASON # The release-cut coverage gate requires that record on the final dataset. manifest = load_uk_release_input_coverage_manifest() diff --git a/packages/microcosm-data/src/microcosm/data/contract.py b/packages/microcosm-data/src/microcosm/data/contract.py index 518135bcf..2fdccd6e2 100644 --- a/packages/microcosm-data/src/microcosm/data/contract.py +++ b/packages/microcosm-data/src/microcosm/data/contract.py @@ -416,13 +416,13 @@ def compatibility_claim_declarer_error(declared_by: object) -> str | None: # fingerprint derives from the manifest digest. Editing the spec moves all # three here in the same reviewed change. _UK_GATE_BATTERY_POLICY_SHA256 = ( - "783472d00c7f2a7db9e69bb6096b67664d9cf38564b7803e3a988c81aeda23ff" + "e6ad5f71e55a9c639026eb3794753ad9da0f2d1633949166956fc2f13be4d5c2" ) _UK_GATE_BATTERY_GATES_MANIFEST_SHA256 = ( - "9853301352d9ed016b60171d0004aba640d11dfec785b215d12b9f7925187384" + "9ade6a80be484b410c47bf93191bd17cce01542d3d9032ba672d38bd23cdb98c" ) _UK_GATE_BATTERY_SPEC_FINGERPRINT = ( - "86f6baba74bf8c500e406370ddbaebfe419e1ab93d1a5644e800e723fac939ae" + "7830c47cab40144f503e2e377391fe2a0f008b0dd20b88a584f750acdb8127ae" ) #: Spec entry id -> the legacy gate name whose observable detail checks #: apply unchanged (the battery re-keys the report by entry id; the gate @@ -839,10 +839,10 @@ def _uk_line_cut_tag_re(release_id: str) -> re.Pattern[str] | None: _UK_CERTIFICATION_PART_DIGESTS: Mapping[str, Mapping[str, str]] = { "spine": { "gates_manifest_sha256": ( - "2acb8ed4287738645ad52690a571d9d5b8d2c54d9920ecc52c1246f1dbb74a01" + "c6fce886d43fc981a1d65fbe24decca84bca0988d98f0bbb054758e7d8bbe0e7" ), "policy_sha256": ( - "38709195e442e0d435f6d7985fb13553add8a4aa85fb102d198d76cb8ba865ca" + "68399e4cb348b7cb7f1ac07e9b03cb0027cbc94f056b412bd1db7fdf49e7bff8" ), }, "calibration_seam": { diff --git a/packages/microcosm-data/tests/engine_free/shared/test_contract.py b/packages/microcosm-data/tests/engine_free/shared/test_contract.py index ab97ab309..a6660b969 100644 --- a/packages/microcosm-data/tests/engine_free/shared/test_contract.py +++ b/packages/microcosm-data/tests/engine_free/shared/test_contract.py @@ -117,13 +117,13 @@ 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 = ( - "783472d00c7f2a7db9e69bb6096b67664d9cf38564b7803e3a988c81aeda23ff" + "e6ad5f71e55a9c639026eb3794753ad9da0f2d1633949166956fc2f13be4d5c2" ) UK_GATE_BATTERY_GATES_MANIFEST_SHA256 = ( - "9853301352d9ed016b60171d0004aba640d11dfec785b215d12b9f7925187384" + "9ade6a80be484b410c47bf93191bd17cce01542d3d9032ba672d38bd23cdb98c" ) UK_GATE_BATTERY_SPEC_FINGERPRINT = ( - "86f6baba74bf8c500e406370ddbaebfe419e1ab93d1a5644e800e723fac939ae" + "7830c47cab40144f503e2e377391fe2a0f008b0dd20b88a584f750acdb8127ae" ) UK_GATE_BATTERY_DEGENERATE_EVIDENCE_SHA256 = ( "6f0243bcda09dad26945376230c44ec3cf55d4e417c3a25e29bae8c59bc1a69d" diff --git a/packages/microcosm-graph/tests/fixtures/parity/uk_spine/sources/cgt_asset_type_facts.json b/packages/microcosm-graph/tests/fixtures/parity/uk_spine/sources/cgt_asset_type_facts.json index c333f59b7..a2cf4dbb7 100644 --- a/packages/microcosm-graph/tests/fixtures/parity/uk_spine/sources/cgt_asset_type_facts.json +++ b/packages/microcosm-graph/tests/fixtures/parity/uk_spine/sources/cgt_asset_type_facts.json @@ -2,70 +2,70 @@ "resource": "synthetic-cgt-asset-type.json", "resource_sha256": "synthetic", "source_commit": "synthetic", - "table4_all_gains": 86659823.95675428, + "table4_all_gains": 86140764.44464564, "table4_all_tax": 0.0, - "table4_all_taxpayers": 195.41087509549274, + "table4_all_taxpayers": 194.81827357660933, "table4_bands": [ { - "gains": 109844.32589737896, + "gains": 109881.50549018131, "lower_bound": 0, "tax": null, - "taxpayers": 24.261122420598333, + "taxpayers": 24.254564087265, "upper_bound": 10000 }, { - "gains": 295006.5491158912, + "gains": 292228.7986384038, "lower_bound": 10000, "tax": null, - "taxpayers": 16.717161184066104, + "taxpayers": 16.58439246485428, "upper_bound": 25000 }, { - "gains": 670416.39230188, + "gains": 669730.4631223604, "lower_bound": 25000, "tax": null, - "taxpayers": 16.67354418899221, + "taxpayers": 16.663812046135067, "upper_bound": 50000 }, { - "gains": 1747662.027771732, + "gains": 1661458.7134747333, "lower_bound": 50000, "tax": null, - "taxpayers": 23.89852410368536, + "taxpayers": 23.49154791320917, "upper_bound": 100000 }, { - "gains": 3425714.5235730945, + "gains": 3395372.364664346, "lower_bound": 100000, "tax": null, - "taxpayers": 16.624203877005346, + "taxpayers": 16.459524279304198, "upper_bound": 250000 }, { - "gains": 6670462.63062136, + "gains": 6803922.927752389, "lower_bound": 250000, "tax": null, - "taxpayers": 16.10222666025658, + "taxpayers": 16.407377522325543, "upper_bound": 500000 }, { - "gains": 17020711.347642235, + "gains": 16060242.575711947, "lower_bound": 500000, "tax": null, - "taxpayers": 24.414086501058105, + "taxpayers": 23.809128167724772, "upper_bound": 1000000 }, { - "gains": 56720006.159830704, + "gains": 57147927.09579129, "lower_bound": 1000000, "tax": null, - "taxpayers": 56.7200061598307, + "taxpayers": 57.14792709579129, "upper_bound": null } ], - "table4_individuals_gains": 86659823.95675428, + "table4_individuals_gains": 86140764.44464564, "table4_individuals_tax": 0.0, - "table4_individuals_taxpayers": 195.41087509549274, + "table4_individuals_taxpayers": 194.81827357660933, "table4_trusts_gains": 0.0, "table4_trusts_tax": 0.0, "table7_total_disposals": 2743095.2380952383, @@ -114,12 +114,12 @@ "proceeds": 9000000000.0 } ], - "table8a_disposals_total": 366.17505, - "table8a_gains_total": 568549737.3060771, - "table8a_tax_total": 113709947.46121544, - "table8a_taxpayers_total": 332.88640909090907, - "table8b_all_gains": 568549737.3060771, - "table8b_all_taxpayers": 332.88640909090907, - "table8b_individuals_gains": 568549737.3060771, - "table8b_individuals_taxpayers": 332.88640909090907 + "table8a_disposals_total": 366.328632, + "table8a_gains_total": 572565131.7814949, + "table8a_tax_total": 114513026.35629898, + "table8a_taxpayers_total": 333.0260290909091, + "table8b_all_gains": 572565131.7814949, + "table8b_all_taxpayers": 333.0260290909091, + "table8b_individuals_gains": 572565131.7814949, + "table8b_individuals_taxpayers": 333.0260290909091 } 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 a83bcf779..ef551bb80 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 @@ -4585,7 +4585,7 @@ { "conservation": "exact_total", "kind": "allocate_zero_weight_prior_mass", - "pension_age_share": 0.5, + "pension_age_share": 0.2, "pension_age_stratum": "any_member_at_or_over_state_pension_age", "share": 0.5, "strata": [ 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 d1510a36d..03603c243 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":[{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":"care_hours","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":"is_uc_claimant","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":"would_claim_carers_allowance","dtype":"bool","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"sample_fraction":1.0,"sample_seed":578,"stage_contract_sha256":"047d30937efb21e39259fdbed5597751e4f5a0c341ea583c7446e4c9c11eba48","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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":"care_hours","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":"is_uc_claimant","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":"would_claim_carers_allowance","dtype":"bool","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"age_tail","stage_contract_sha256":"963a34f38caede2525e3b8735f904bb70a1bbef5a272f0eefd4346343444484f","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage frs_relationships.","id":"frs_relationships","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","is_household_head"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_relationships@1","mass":"conserve","outputs":[{"column":"relationship_to_head","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"ons_family_role","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"ons_family_index","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"ons_household_type","dtype":"string","entity":"household","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_relationships","stage_contract_sha256":"30628808d06d9829ebcbcf460cd355a01261e78c7c73e6006c75bec2e3d60c33","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage frs_employment.","id":"frs_employment","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["ons_household_type","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_employment","stage_contract_sha256":"ddbefaf05b44788d794a6e4b0e8926c14318d66e50d2f11f50ca549538bbf60c","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_council_tax","stage_contract_sha256":"3381cd9f7a736514d5073c57480e07f5098890f3ca9ed3865392043594771eb9","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_disability","stage_contract_sha256":"ac500b4cb1bc04d4fb72d198592dd376d61da8c150921a6ac53914ac18be0508","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_education","stage_contract_sha256":"836cb0f5a582fee1425190e96c9cb81bdef859bd236c8b6bc27660b6e3d0c2f8","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","ons_household_type","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"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","ons_household_type","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","ons_household_type","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_education_grant_split","stage_contract_sha256":"8718f014b90498c2cc7c754289775ca4a41452d9b978d8cbc5f34b64cbdc7df2","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage frs_take_up.","id":"frs_take_up","inputs":[{"columns":["frs_benunit_capital","is_married"],"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":"would_claim_uc_childcare","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"maximum_extended_childcare_hours_usage","dtype":"float64","entity":"benunit","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_take_up","stage_contract_sha256":"067d31b7fbe733d1d182588705e9ce79df0c8e5f6e8f519314765af49b1b00d7","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_person_draws","stage_contract_sha256":"5b9b4b7ad87cdc16f96a7f2ee0794946a308011b529956d8adf8ab53d704ede2","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_household_draws","stage_contract_sha256":"c74c63b09264319c4bf0049dabba00ecd0ce660beb7b53d6dae71518434bc949","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"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","would_claim_uc_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","ons_household_type","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":["brma","region"],"entity":"household","rows":"all"},{"columns":["age","employment_income"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_hmrc_spine_leaves","stage_contract_sha256":"8cfab42bcc250fdf1161b22e4fd988fbe8a0473af78f99afea4b1017556633ae","time_period":"2024"},"population":"frs_brma.checkpoint","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"frs_brma.checkpoint","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","would_claim_uc_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","ons_household_type","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"spi_support_channel","stage_contract_sha256":"a9c85eb66fad3587e1c1fae46fee6972b9e554097e724c9e399f4560edfed61c","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"spi_support_channel","citation":"","description":"Run structural UK stage spi_income_band_donors.","id":"spi_income_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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.spi_income_band_donors@1","mass":"free","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","household_source_id","int64"],["household","household_support_channel","string"],["household","household_support_clone_index","int64"],["household","household_is_spi_synthetic","bool"],["household","household_is_spi_income_band_donor","bool"],["household","spi_income_band_donor_lower_bound","float64"],["person","person_is_spi_income_band_carrier","bool"]],"expand_weight_entity":"household","expand_weight_kind":"importance","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"spi_income_band_donors","stage_contract_sha256":"190a40ab145b001993733553f45b3e8e5adfe999f598231481ab6706447d5f3c","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"base":null,"citation":"","description":"Own the cells materialized by spi_income_band_donors.","id":"spi_income_band_donors.owned","inputs":[],"kernel":"uk.claim@1","mass":"conserve","outputs":[{"column":"person_source_id","dtype":"int64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"person_support_channel","dtype":"string","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"person_support_clone_index","dtype":"int64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"benunit_source_id","dtype":"int64","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"benunit_support_channel","dtype":"string","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"benunit_support_clone_index","dtype":"int64","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_source_id","dtype":"int64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_support_channel","dtype":"string","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_support_clone_index","dtype":"int64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_is_spi_synthetic","dtype":"bool","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_is_spi_income_band_donor","dtype":"bool","entity":"household","ownership":"produced","rows":"all"},{"column":"spi_income_band_donor_lower_bound","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"person_is_spi_income_band_carrier","dtype":"bool","entity":"person","ownership":"produced","rows":"all"}],"params":{"materialized_expand_outputs":["household.household_is_spi_income_band_donor","household.spi_income_band_donor_lower_bound","person.person_is_spi_income_band_carrier"]},"population":"spi_income_band_donors","sources":[],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","relationship_to_head","ons_family_role","ons_family_index","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","ossben_identifiable_subset","srp_regular_code5","person_source_id","person_support_channel","person_support_clone_index","person_is_spi_income_band_carrier"],"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"},{"column":"would_claim_carers_allowance","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"hmrc_spi_income_spine","stage_contract_sha256":"834334536c1c6add6648b801272c61ca2f597a54c82553a943667200b9e6c4ce","time_period":"2024"},"population":"spi_income_band_donors","sources":["frs"],"structural":"none","weights":null},{"base":"spi_income_band_donors","citation":"","description":"Ownership boundary before spi_housing_shell rewrites.","id":"spi_housing_shell.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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage spi_housing_shell.","id":"spi_housing_shell","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["council_tax_single_adult_raw","household_support_channel","ons_household_type","region"],"entity":"household","rows":"all"},{"columns":["age","dividend_income","employment_income","is_household_head","other_investment_income","private_pension_income","property_income","savings_interest_income","self_employment_income","state_pension_reported","would_claim_carers_allowance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.spi_housing_shell@1","mass":"conserve","outputs":[{"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":"council_tax_band","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","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_reported","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"rent","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":"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":"subrent","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_rebate","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"housing_benefit_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"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"spi_housing_shell","stage_contract_sha256":"809f19fd33ff79ceda005e8cc3fa89ae40b297dceca26a7658b6259267987890","time_period":"2024"},"population":"spi_housing_shell.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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.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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"was_wealth","stage_contract_sha256":"366e019c41ee2a28bcd61bbaa62a024ed0bb4b30b3ffc4d87ab23b340b4076bf","time_period":"2024"},"population":"spi_housing_shell.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage was_lisa.","id":"was_lisa","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.was_lisa@1","mass":"conserve","outputs":[{"column":"has_lifetime_isa","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"lifetime_isa_balance","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"household_lifetime_isa_balance","dtype":"float64","entity":"household","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"was_lisa","stage_contract_sha256":"f1d0f962e84d32007821b32e4e03a8af9443acc0ed3d1836ff094dcbacb928da","time_period":"2024"},"population":"spi_housing_shell.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"spi_housing_shell.boundary","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":["household_lifetime_isa_balance","household_support_channel","region"],"entity":"household","rows":"all"},{"columns":["age"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"regional_property_uprating","stage_contract_sha256":"acb342e8ca1770556c5682a9411c5ead5d61dd1420cfe6b0305ed14a3407fb25","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage nts_bus_travel.","id":"nts_bus_travel","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.nts_bus_travel@1","mass":"conserve","outputs":[{"column":"local_bus_use_band","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"bus_in_london_trips","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"other_local_bus_trips","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"local_bus_trips","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"bus_pass_eligible","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"local_bus_single_fare_share","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"household_local_bus_trips","dtype":"float64","entity":"household","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"nts_bus_travel","stage_contract_sha256":"59767eeb246755f4636e2abbbc9ab3370a64c6142e01cda21a12cb01be95e535","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"lcfs_consumption","stage_contract_sha256":"f428215b7d66e1297688cfc8dce94e670268fb26a6681ca5f0e6e0641cfaf076","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"etb_vat","stage_contract_sha256":"5a2b777d88315bcccb72477c088a136c634131e0bc1a339b7287217ee5cfd8d3","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"etb_services","stage_contract_sha256":"991be160f2f2c28cf7eadc911b3214aca8bf5be441676fe21a87ba12888c5c25","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"regional_property_uprating.boundary","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"uc_reporter_redraw","stage_contract_sha256":"7e94e034cad29c5bae566ffb875c42cddf3a1025c15496907e783ceff1144f8b","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","is_benunit_head","is_parent","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"uc_capital_coherence","stage_contract_sha256":"059f27ee687ee15385b246d43068b17aeecbe3645ccc41fd52fcad06a006a081","time_period":"2024"},"population":"uc_capital_coherence.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"uc_capital_coherence.boundary","citation":"","description":"Ownership boundary before pension_credit_take_up rewrites.","id":"pension_credit_take_up.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","would_claim_uc_childcare","maximum_extended_childcare_hours_usage","benunit_source_id","benunit_support_channel","benunit_support_clone_index","uc_reported_capital"],"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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage pension_credit_take_up.","id":"pension_credit_take_up","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","would_claim_uc_childcare","maximum_extended_childcare_hours_usage","benunit_source_id","benunit_support_channel","benunit_support_clone_index","uc_reported_capital"],"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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.stage.pension_credit_take_up@1","mass":"conserve","outputs":[{"column":"would_claim_pc","dtype":"bool","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"pension_credit_take_up","stage_contract_sha256":"5f2f0410ec296be7119d7f58365658e72ee46b5e4397c37f97ce01e911a98960","time_period":"2024"},"population":"pension_credit_take_up.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage uc_deduction_attributes.","id":"uc_deduction_attributes","inputs":[{"columns":["frs_benunit_capital","would_claim_pc"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"uc_deduction_attributes","stage_contract_sha256":"6bc7e3ec1a5712e23ca1b7d2956e8b17f2526b94431ba3e5a9294b04658e4fe0","time_period":"2024"},"population":"pension_credit_take_up.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"pension_credit_take_up.boundary","citation":"","description":"Run structural UK stage cgt_support_split.","id":"cgt_support_split","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.cgt_support_split@1","mass":"conserve","outputs":[],"params":{"expand_cells":[["household","household_is_cgt_support_copy","bool"],["household","cgt_support_copies","int64"],["household","cgt_support_copy_index","int64"]],"expand_weight_entity":"household","expand_weight_kind":"importance","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"cgt_support_split","stage_contract_sha256":"30b37e1c4e122db18391c5f76f1a6d432aea970275bcda7a52126dacc923490b","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"base":null,"citation":"","description":"Own the cells materialized by cgt_support_split.","id":"cgt_support_split.owned","inputs":[],"kernel":"uk.claim@1","mass":"conserve","outputs":[{"column":"household_is_cgt_support_copy","dtype":"bool","entity":"household","ownership":"produced","rows":"all"},{"column":"cgt_support_copies","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"cgt_support_copy_index","dtype":"int64","entity":"household","ownership":"produced","rows":"all"}],"params":{"materialized_expand_outputs":["household.household_is_cgt_support_copy","household.cgt_support_copies","household.cgt_support_copy_index"]},"population":"cgt_support_split","sources":[],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"cgt_support_split","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","household_is_cgt_support_copy","cgt_support_copies","cgt_support_copy_index"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"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","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"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":"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","household_is_cgt_support_copy","cgt_support_copies","cgt_support_copy_index","household_is_capital_gains_clone"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","capital_gains"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":["cgt_support_copies","corporate_wealth","gross_financial_wealth","household_is_cgt_support_copy","non_residential_property_value","other_residential_property_value","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"hmrc_cgt_gains_spine","stage_contract_sha256":"ff740a36b03dcda73b889aa43bde7cff5d178de7b3da38e487320c68342bf9a3","time_period":"2024"},"population":"hmrc_cgt_gains_spine.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage hmrc_cgt_asset_type_spine.","id":"hmrc_cgt_asset_type_spine","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["corporate_wealth","gross_financial_wealth","other_residential_property_value","region","stocks_and_shares_isa"],"entity":"household","rows":"all"},{"columns":["age","capital_gains","dividend_income","property_income","self_employment_income"],"entity":"person","rows":"all"}],"kernel":"uk.stage.hmrc_cgt_asset_type_spine@1","mass":"conserve","outputs":[{"column":"capital_gains_asset_type","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"capital_gains_residential_property","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"capital_gains_badr","dtype":"float64","entity":"person","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"hmrc_cgt_asset_type_spine","stage_contract_sha256":"c918223197c706279b37d1b32d0ff3885fb1cd7b65b2e50d0308ab508ed0ed64","time_period":"2024"},"population":"hmrc_cgt_gains_spine.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"hmrc_cgt_gains_spine.boundary","citation":"","description":"Run structural UK stage cgt_incidence_anchor.","id":"cgt_incidence_anchor","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["household_is_capital_gains_clone","region"],"entity":"household","rows":"all"},{"columns":["age","capital_gains","capital_gains_badr","dividend_income","employment_income","miscellaneous_income","private_pension_income","property_income","savings_interest_income","self_employment_income","state_pension_reported"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.cgt_incidence_anchor@1","mass":"conserve","outputs":[],"params":{"expand_cells":[],"expand_weight_entity":"household","expand_weight_kind":"importance","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"cgt_incidence_anchor","stage_contract_sha256":"b79ce806015de2f1e1703fa68bf4ad871c6df54b5b32633c864632ab68919a48","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","household_is_cgt_support_copy","cgt_support_copies","cgt_support_copy_index","household_is_capital_gains_clone"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","capital_gains","capital_gains_asset_type","capital_gains_residential_property","capital_gains_badr"],"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"},{"column":"employment_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"salary_sacrifice","stage_contract_sha256":"b4581ac43437c170dbe6369392630a832c1f18e99c113753984be6e57b5b18cd","time_period":"2024"},"population":"cgt_incidence_anchor","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","employment_income","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"student_loans","stage_contract_sha256":"f2936c5e22a0e9b097437e3f3aabaf06c4561d5c25a9b7c05e720a6553f73bbc","time_period":"2024"},"population":"cgt_incidence_anchor","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":[{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":"care_hours","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":"is_uc_claimant","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":"would_claim_carers_allowance","dtype":"bool","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"sample_fraction":1.0,"sample_seed":578,"stage_contract_sha256":"047d30937efb21e39259fdbed5597751e4f5a0c341ea583c7446e4c9c11eba48","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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":"care_hours","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":"is_uc_claimant","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":"would_claim_carers_allowance","dtype":"bool","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"age_tail","stage_contract_sha256":"963a34f38caede2525e3b8735f904bb70a1bbef5a272f0eefd4346343444484f","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage frs_relationships.","id":"frs_relationships","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["region"],"entity":"household","rows":"all"},{"columns":["age","is_household_head"],"entity":"person","rows":"all"}],"kernel":"uk.stage.frs_relationships@1","mass":"conserve","outputs":[{"column":"relationship_to_head","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"ons_family_role","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"ons_family_index","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"ons_household_type","dtype":"string","entity":"household","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_relationships","stage_contract_sha256":"30628808d06d9829ebcbcf460cd355a01261e78c7c73e6006c75bec2e3d60c33","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage frs_employment.","id":"frs_employment","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["ons_household_type","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_employment","stage_contract_sha256":"ddbefaf05b44788d794a6e4b0e8926c14318d66e50d2f11f50ca549538bbf60c","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_council_tax","stage_contract_sha256":"3381cd9f7a736514d5073c57480e07f5098890f3ca9ed3865392043594771eb9","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_disability","stage_contract_sha256":"ac500b4cb1bc04d4fb72d198592dd376d61da8c150921a6ac53914ac18be0508","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_education","stage_contract_sha256":"836cb0f5a582fee1425190e96c9cb81bdef859bd236c8b6bc27660b6e3d0c2f8","time_period":"2024"},"population":"age_tail.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","ons_household_type","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"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","ons_household_type","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","ons_household_type","council_tax"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_education_grant_split","stage_contract_sha256":"8718f014b90498c2cc7c754289775ca4a41452d9b978d8cbc5f34b64cbdc7df2","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage frs_take_up.","id":"frs_take_up","inputs":[{"columns":["frs_benunit_capital","is_married"],"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":"would_claim_uc_childcare","dtype":"bool","entity":"benunit","ownership":"produced","rows":"all"},{"column":"maximum_extended_childcare_hours_usage","dtype":"float64","entity":"benunit","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_take_up","stage_contract_sha256":"067d31b7fbe733d1d182588705e9ce79df0c8e5f6e8f519314765af49b1b00d7","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_person_draws","stage_contract_sha256":"5b9b4b7ad87cdc16f96a7f2ee0794946a308011b529956d8adf8ab53d704ede2","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_household_draws","stage_contract_sha256":"c74c63b09264319c4bf0049dabba00ecd0ce660beb7b53d6dae71518434bc949","time_period":"2024"},"population":"frs_education_grant_split.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"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","would_claim_uc_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","ons_household_type","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":["brma","region"],"entity":"household","rows":"all"},{"columns":["age","employment_income"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"frs_hmrc_spine_leaves","stage_contract_sha256":"8cfab42bcc250fdf1161b22e4fd988fbe8a0473af78f99afea4b1017556633ae","time_period":"2024"},"population":"frs_brma.checkpoint","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"frs_brma.checkpoint","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","would_claim_uc_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","ons_household_type","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"spi_support_channel","stage_contract_sha256":"2c682605139c0a8f96e8ba45a2c03f506d3f758ef437841066a8fdb8b74269b6","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"spi_support_channel","citation":"","description":"Run structural UK stage spi_income_band_donors.","id":"spi_income_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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.spi_income_band_donors@1","mass":"free","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","household_source_id","int64"],["household","household_support_channel","string"],["household","household_support_clone_index","int64"],["household","household_is_spi_synthetic","bool"],["household","household_is_spi_income_band_donor","bool"],["household","spi_income_band_donor_lower_bound","float64"],["person","person_is_spi_income_band_carrier","bool"]],"expand_weight_entity":"household","expand_weight_kind":"importance","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"spi_income_band_donors","stage_contract_sha256":"190a40ab145b001993733553f45b3e8e5adfe999f598231481ab6706447d5f3c","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"base":null,"citation":"","description":"Own the cells materialized by spi_income_band_donors.","id":"spi_income_band_donors.owned","inputs":[],"kernel":"uk.claim@1","mass":"conserve","outputs":[{"column":"person_source_id","dtype":"int64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"person_support_channel","dtype":"string","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"person_support_clone_index","dtype":"int64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"benunit_source_id","dtype":"int64","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"benunit_support_channel","dtype":"string","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"benunit_support_clone_index","dtype":"int64","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_source_id","dtype":"int64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_support_channel","dtype":"string","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_support_clone_index","dtype":"int64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_is_spi_synthetic","dtype":"bool","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"household_is_spi_income_band_donor","dtype":"bool","entity":"household","ownership":"produced","rows":"all"},{"column":"spi_income_band_donor_lower_bound","dtype":"float64","entity":"household","ownership":"produced","rows":"all"},{"column":"person_is_spi_income_band_carrier","dtype":"bool","entity":"person","ownership":"produced","rows":"all"}],"params":{"materialized_expand_outputs":["household.household_is_spi_income_band_donor","household.spi_income_band_donor_lower_bound","person.person_is_spi_income_band_carrier"]},"population":"spi_income_band_donors","sources":[],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","relationship_to_head","ons_family_role","ons_family_index","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","ossben_identifiable_subset","srp_regular_code5","person_source_id","person_support_channel","person_support_clone_index","person_is_spi_income_band_carrier"],"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"},{"column":"would_claim_carers_allowance","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"hmrc_spi_income_spine","stage_contract_sha256":"834334536c1c6add6648b801272c61ca2f597a54c82553a943667200b9e6c4ce","time_period":"2024"},"population":"spi_income_band_donors","sources":["frs"],"structural":"none","weights":null},{"base":"spi_income_band_donors","citation":"","description":"Ownership boundary before spi_housing_shell rewrites.","id":"spi_housing_shell.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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage spi_housing_shell.","id":"spi_housing_shell","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["council_tax_single_adult_raw","household_support_channel","ons_household_type","region"],"entity":"household","rows":"all"},{"columns":["age","dividend_income","employment_income","is_household_head","other_investment_income","private_pension_income","property_income","savings_interest_income","self_employment_income","state_pension_reported","would_claim_carers_allowance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.spi_housing_shell@1","mass":"conserve","outputs":[{"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":"council_tax_band","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","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_reported","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"rent","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":"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":"subrent","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"council_tax_rebate","dtype":"float64","entity":"household","ownership":"produced","rewrite":true,"rows":"all"},{"column":"housing_benefit_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"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"spi_housing_shell","stage_contract_sha256":"809f19fd33ff79ceda005e8cc3fa89ae40b297dceca26a7658b6259267987890","time_period":"2024"},"population":"spi_housing_shell.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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.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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"was_wealth","stage_contract_sha256":"366e019c41ee2a28bcd61bbaa62a024ed0bb4b30b3ffc4d87ab23b340b4076bf","time_period":"2024"},"population":"spi_housing_shell.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage was_lisa.","id":"was_lisa","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.was_lisa@1","mass":"conserve","outputs":[{"column":"has_lifetime_isa","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"lifetime_isa_balance","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"household_lifetime_isa_balance","dtype":"float64","entity":"household","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"was_lisa","stage_contract_sha256":"f1d0f962e84d32007821b32e4e03a8af9443acc0ed3d1836ff094dcbacb928da","time_period":"2024"},"population":"spi_housing_shell.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"spi_housing_shell.boundary","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":["household_lifetime_isa_balance","household_support_channel","region"],"entity":"household","rows":"all"},{"columns":["age"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"regional_property_uprating","stage_contract_sha256":"acb342e8ca1770556c5682a9411c5ead5d61dd1420cfe6b0305ed14a3407fb25","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage nts_bus_travel.","id":"nts_bus_travel","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance"],"entity":"person","rows":"all"}],"kernel":"uk.stage.nts_bus_travel@1","mass":"conserve","outputs":[{"column":"local_bus_use_band","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"bus_in_london_trips","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"other_local_bus_trips","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"local_bus_trips","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"bus_pass_eligible","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"local_bus_single_fare_share","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"household_local_bus_trips","dtype":"float64","entity":"household","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"nts_bus_travel","stage_contract_sha256":"59767eeb246755f4636e2abbbc9ab3370a64c6142e01cda21a12cb01be95e535","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"lcfs_consumption","stage_contract_sha256":"f428215b7d66e1297688cfc8dce94e670268fb26a6681ca5f0e6e0641cfaf076","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"etb_vat","stage_contract_sha256":"5a2b777d88315bcccb72477c088a136c634131e0bc1a339b7287217ee5cfd8d3","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"etb_services","stage_contract_sha256":"991be160f2f2c28cf7eadc911b3214aca8bf5be441676fe21a87ba12888c5c25","time_period":"2024"},"population":"regional_property_uprating.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"regional_property_uprating.boundary","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"uc_reporter_redraw","stage_contract_sha256":"7e94e034cad29c5bae566ffb875c42cddf3a1025c15496907e783ceff1144f8b","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","is_benunit_head","is_parent","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"uc_capital_coherence","stage_contract_sha256":"059f27ee687ee15385b246d43068b17aeecbe3645ccc41fd52fcad06a006a081","time_period":"2024"},"population":"uc_capital_coherence.boundary","sources":["frs"],"structural":"none","weights":null},{"base":"uc_capital_coherence.boundary","citation":"","description":"Ownership boundary before pension_credit_take_up rewrites.","id":"pension_credit_take_up.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","would_claim_uc_childcare","maximum_extended_childcare_hours_usage","benunit_source_id","benunit_support_channel","benunit_support_clone_index","uc_reported_capital"],"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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage pension_credit_take_up.","id":"pension_credit_take_up","inputs":[{"columns":["frs_benunit_capital","is_married","dependent_children","would_claim_child_benefit","child_benefit_opts_out","would_claim_uc","would_claim_tfc","would_claim_extended_childcare","would_claim_universal_childcare","would_claim_targeted_childcare","would_claim_uc_childcare","maximum_extended_childcare_hours_usage","benunit_source_id","benunit_support_channel","benunit_support_clone_index","uc_reported_capital"],"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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.stage.pension_credit_take_up@1","mass":"conserve","outputs":[{"column":"would_claim_pc","dtype":"bool","entity":"benunit","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"pension_credit_take_up","stage_contract_sha256":"5f2f0410ec296be7119d7f58365658e72ee46b5e4397c37f97ce01e911a98960","time_period":"2024"},"population":"pension_credit_take_up.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage uc_deduction_attributes.","id":"uc_deduction_attributes","inputs":[{"columns":["frs_benunit_capital","would_claim_pc"],"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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"uc_deduction_attributes","stage_contract_sha256":"6bc7e3ec1a5712e23ca1b7d2956e8b17f2526b94431ba3e5a9294b04658e4fe0","time_period":"2024"},"population":"pension_credit_take_up.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"pension_credit_take_up.boundary","citation":"","description":"Run structural UK stage cgt_support_split.","id":"cgt_support_split","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.cgt_support_split@1","mass":"conserve","outputs":[],"params":{"expand_cells":[["household","household_is_cgt_support_copy","bool"],["household","cgt_support_copies","int64"],["household","cgt_support_copy_index","int64"]],"expand_weight_entity":"household","expand_weight_kind":"importance","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"cgt_support_split","stage_contract_sha256":"30b37e1c4e122db18391c5f76f1a6d432aea970275bcda7a52126dacc923490b","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"base":null,"citation":"","description":"Own the cells materialized by cgt_support_split.","id":"cgt_support_split.owned","inputs":[],"kernel":"uk.claim@1","mass":"conserve","outputs":[{"column":"household_is_cgt_support_copy","dtype":"bool","entity":"household","ownership":"produced","rows":"all"},{"column":"cgt_support_copies","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"cgt_support_copy_index","dtype":"int64","entity":"household","ownership":"produced","rows":"all"}],"params":{"materialized_expand_outputs":["household.household_is_cgt_support_copy","household.cgt_support_copies","household.cgt_support_copy_index"]},"population":"cgt_support_split","sources":[],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"cgt_support_split","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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","household_is_cgt_support_copy","cgt_support_copies","cgt_support_copy_index"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending"],"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","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"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":"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","household_is_cgt_support_copy","cgt_support_copies","cgt_support_copy_index","household_is_capital_gains_clone"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","capital_gains"],"entity":"person","rows":"all"}],"kernel":"uk.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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":["cgt_support_copies","corporate_wealth","gross_financial_wealth","household_is_cgt_support_copy","non_residential_property_value","other_residential_property_value","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"hmrc_cgt_gains_spine","stage_contract_sha256":"ff740a36b03dcda73b889aa43bde7cff5d178de7b3da38e487320c68342bf9a3","time_period":"2024"},"population":"hmrc_cgt_gains_spine.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":null,"citation":"","description":"Run UK spine stage hmrc_cgt_asset_type_spine.","id":"hmrc_cgt_asset_type_spine","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["corporate_wealth","gross_financial_wealth","other_residential_property_value","region","stocks_and_shares_isa"],"entity":"household","rows":"all"},{"columns":["age","capital_gains","dividend_income","property_income","self_employment_income"],"entity":"person","rows":"all"}],"kernel":"uk.stage.hmrc_cgt_asset_type_spine@1","mass":"conserve","outputs":[{"column":"capital_gains_asset_type","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"capital_gains_residential_property","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"capital_gains_badr","dtype":"float64","entity":"person","ownership":"produced","rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"hmrc_cgt_asset_type_spine","stage_contract_sha256":"c918223197c706279b37d1b32d0ff3885fb1cd7b65b2e50d0308ab508ed0ed64","time_period":"2024"},"population":"hmrc_cgt_gains_spine.boundary","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"base":"hmrc_cgt_gains_spine.boundary","citation":"","description":"Run structural UK stage cgt_incidence_anchor.","id":"cgt_incidence_anchor","inputs":[{"columns":["frs_benunit_capital"],"entity":"benunit","rows":"all"},{"columns":["household_is_capital_gains_clone","region"],"entity":"household","rows":"all"},{"columns":["age","capital_gains","capital_gains_badr","dividend_income","employment_income","miscellaneous_income","private_pension_income","property_income","savings_interest_income","self_employment_income","state_pension_reported"],"entity":"person","rows":"all"}],"kernel":"uk.stage.expand.cgt_incidence_anchor@1","mass":"conserve","outputs":[],"params":{"expand_cells":[],"expand_weight_entity":"household","expand_weight_kind":"importance","numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"cgt_incidence_anchor","stage_contract_sha256":"b79ce806015de2f1e1703fa68bf4ad871c6df54b5b32633c864632ab68919a48","time_period":"2024"},"population":null,"sources":["frs"],"structural":"expand","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","would_claim_uc_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","ons_household_type","council_tax","household_owns_tv","would_evade_tv_licence_fee","main_residential_property_purchased_is_first_home","property_purchased","brma","source_household_id","source_year","source_household_key","household_source_id","household_support_channel","household_support_clone_index","household_is_spi_synthetic","household_is_spi_income_band_donor","spi_income_band_donor_lower_bound","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","household_lifetime_isa_balance","household_local_bus_trips","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","household_is_cgt_support_copy","cgt_support_copies","cgt_support_copy_index","household_is_capital_gains_clone"],"entity":"household","rows":"all"},{"columns":["age","gender","marital_status","hours_worked","care_hours","is_household_head","is_benunit_head","is_parent","is_uc_claimant","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","would_claim_carers_allowance","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","relationship_to_head","ons_family_role","ons_family_index","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","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","person_is_spi_income_band_carrier","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","student_loan_balance","has_lifetime_isa","lifetime_isa_balance","local_bus_use_band","bus_in_london_trips","other_local_bus_trips","local_bus_trips","bus_pass_eligible","local_bus_single_fare_share","a_and_e_visits","admitted_patient_visits","outpatient_visits","nhs_a_and_e_spending","nhs_admitted_patient_spending","nhs_outpatient_spending","capital_gains","capital_gains_asset_type","capital_gains_residential_property","capital_gains_badr"],"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"},{"column":"employment_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"salary_sacrifice","stage_contract_sha256":"b4581ac43437c170dbe6369392630a832c1f18e99c113753984be6e57b5b18cd","time_period":"2024"},"population":"cgt_incidence_anchor","sources":["frs"],"structural":"none","weights":null},{"artifact_outputs":[{"name":"stage_evidence","type":{"name":"microcosm.stage-evidence","schema_version":1}}],"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","employment_income","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":{"numerical_dependencies":[["policyengine-uk","2.100.0"],["policyengine-core","3.32.5"],["numpy","2.4.6"],["pandas","3.0.3"],["scikit-learn","1.8.0"],["quantile-forest","1.4.2"]],"stage":"student_loans","stage_contract_sha256":"f2936c5e22a0e9b097437e3f3aabaf06c4561d5c25a9b7c05e720a6553f73bbc","time_period":"2024"},"population":"cgt_incidence_anchor","sources":["frs"],"structural":"none","weights":null}],"sources":[{"codec":"csv-tables","description":"Content-bound UK FRS and donor fixture/source bundle.","name":"frs"}]} From 677336b3dccff84edc25c17e4796ef23bc3e1d32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20Juaristi?= <127882282+juaristi22@users.noreply.github.com> Date: Fri, 2 Oct 2026 11:40:11 +0100 Subject: [PATCH 21/22] Uprate the SPI State Pension amount rows by their count rows' recipient growth times the rate (#1069) The SPI Table 3.7 State Pension amount rows by total-income band moved to 2025 by the new State Pension rate alone, while their count rows moved by HMRC's projected taxpayer growth in the band. The two rows of a band then described different numbers of recipients: in the 50-70k band the count grew by 1.217 and the amount by 1.130, which is the +24.5% residual (and the +25.6% block at a 0.2 pension-age share) the final arm showed. A new applier moves each amount row by its count row's factor times the engine rate ratio, receipting both. Also, from Vahid's first review: the DWP employer contributions measurement declares Great Britain (the binding already did), and the signed-out new State Pension 40-60 band's rationale no longer quotes a unit amount. National references and membership and the 2025 parity receipt are regenerated; the 2023 receipt, the coverage manifest, the charter-H2 fixture and every gate digest are unchanged. Co-Authored-By: Claude Opus 5.5 --- ...contributions-gb-measurement-1069.fixed.md | 1 + ...tate-pension-amount-uprating-1069.fixed.md | 1 + ...ity_incumbent_2025_signed_differences.json | 26 ++-- .../build/uk/target_reference_membership.json | 134 +++++++++--------- .../target_reference_signed_exclusions.json | 2 +- .../microcosm/build/uk/target_references.json | 26 ++-- .../build/uk/uk_population_targets.json | 17 ++- .../build/uk_runtime/hmrc_uprating.py | 87 ++++++++++++ .../engine_free/uk/test_uk_hmrc_uprating.py | 75 ++++++++++ .../microcosm_build/uk_hmrc_uprating.py | 3 + 10 files changed, 275 insertions(+), 97 deletions(-) create mode 100644 changelog.d/uk-employer-contributions-gb-measurement-1069.fixed.md create mode 100644 changelog.d/uk-spi-state-pension-amount-uprating-1069.fixed.md diff --git a/changelog.d/uk-employer-contributions-gb-measurement-1069.fixed.md b/changelog.d/uk-employer-contributions-gb-measurement-1069.fixed.md new file mode 100644 index 000000000..ad0651856 --- /dev/null +++ b/changelog.d/uk-employer-contributions-gb-measurement-1069.fixed.md @@ -0,0 +1 @@ +Declare Great Britain on the measurement of DWP's employer pension contributions target (#1069). DWP's figure covers England, Scotland and Wales; the engine binding already measured GB households only, and the contract's measurement block now says so too. diff --git a/changelog.d/uk-spi-state-pension-amount-uprating-1069.fixed.md b/changelog.d/uk-spi-state-pension-amount-uprating-1069.fixed.md new file mode 100644 index 000000000..5d663d816 --- /dev/null +++ b/changelog.d/uk-spi-state-pension-amount-uprating-1069.fixed.md @@ -0,0 +1 @@ +Uprate the UK SPI State Pension amount rows by total-income band as recipients times the amount per recipient (#1069). Each amount row now moves by the growth its count row already declares (HMRC's projected Income Tax payers in the Table 2.5 band containing it, calendar-2025 window over 2023-24) times the new State Pension rate the engine pays (230.25 against 203.85 a week, 1.1295). Before, the amount rows moved by the rate alone, so each band's amount held the 2023-24 number of recipients while its count row grew them: in the £50,000 to £70,000 band the count row grew by 1.217 and the amount row by 1.130, which left that band 24.5% above its amount target at the final arm even with its count fitted. The new factors run from 1.106 (£15,000 to £20,000, where taxpayer numbers fall) to 1.405 (£100,000 to £150,000); the thirteen rows sum to £100.9bn instead of £96.3bn. Both component factors are receipted on every row, and a row compiled at its own year (the production-2023 parity surface) stays as published. 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 545ffc368..585358f3e 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 @@ -7075,7 +7075,7 @@ { "fixture_value": 847000000.0, "kind": "calibration_drift", - "ledger_value": 956692420.897719, + "ledger_value": 1190417391.6067786, "name": "hmrc/state_pension_income_band_100_000_to_150_000", "period": 2025, "reason": "Declared uprating (PolicyEngine/chronicle#280 lane, María's ruling of 2026-09-22): ours moves the SPI 2023-24 band value to the 2025 calibration year by the index the reference declares (amounts by the pinned engine's per-variable OBR and ONS indices between 1 January 2023 and 1 January 2025, the state pension by the new State Pension rate the engine pays, counts by HMRC's projected taxpayer growth in the containing Table 2.5 band as the calendar-2025 window); the frozen incumbent fixture holds the 2023-24 values it projects one year forward with its own income-projection ratios." @@ -7083,7 +7083,7 @@ { "fixture_value": 11800000000.0, "kind": "calibration_drift", - "ledger_value": 13328182487.122885, + "ledger_value": 13901060506.30619, "name": "hmrc/state_pension_income_band_12_570_to_15_000", "period": 2025, "reason": "Declared uprating (PolicyEngine/chronicle#280 lane, María's ruling of 2026-09-22): ours moves the SPI 2023-24 band value to the 2025 calibration year by the index the reference declares (amounts by the pinned engine's per-variable OBR and ONS indices between 1 January 2023 and 1 January 2025, the state pension by the new State Pension rate the engine pays, counts by HMRC's projected taxpayer growth in the containing Table 2.5 band as the calendar-2025 window); the frozen incumbent fixture holds the 2023-24 values it projects one year forward with its own income-projection ratios." @@ -7091,7 +7091,7 @@ { "fixture_value": 265000000.0, "kind": "calibration_drift", - "ledger_value": 299319352.46504784, + "ledger_value": 348951387.9503221, "name": "hmrc/state_pension_income_band_150_000_to_200_000", "period": 2025, "reason": "Declared uprating (PolicyEngine/chronicle#280 lane, María's ruling of 2026-09-22): ours moves the SPI 2023-24 band value to the 2025 calibration year by the index the reference declares (amounts by the pinned engine's per-variable OBR and ONS indices between 1 January 2023 and 1 January 2025, the state pension by the new State Pension rate the engine pays, counts by HMRC's projected taxpayer growth in the containing Table 2.5 band as the calendar-2025 window); the frozen incumbent fixture holds the 2023-24 values it projects one year forward with its own income-projection ratios." @@ -7099,7 +7099,7 @@ { "fixture_value": 22200000000.0, "kind": "calibration_drift", - "ledger_value": 25075055187.63797, + "ledger_value": 24542266944.500935, "name": "hmrc/state_pension_income_band_15_000_to_20_000", "period": 2025, "reason": "Declared uprating (PolicyEngine/chronicle#280 lane, María's ruling of 2026-09-22): ours moves the SPI 2023-24 band value to the 2025 calibration year by the index the reference declares (amounts by the pinned engine's per-variable OBR and ONS indices between 1 January 2023 and 1 January 2025, the state pension by the new State Pension rate the engine pays, counts by HMRC's projected taxpayer growth in the containing Table 2.5 band as the calendar-2025 window); the frozen incumbent fixture holds the 2023-24 values it projects one year forward with its own income-projection ratios." @@ -7107,7 +7107,7 @@ { "fixture_value": 20000000.0, "kind": "calibration_drift", - "ledger_value": 22590139.808682855, + "ledger_value": 26355163.11013001, "name": "hmrc/state_pension_income_band_1_000_000_to_inf", "period": 2025, "reason": "Declared uprating (PolicyEngine/chronicle#280 lane, María's ruling of 2026-09-22): ours moves the SPI 2023-24 band value to the 2025 calibration year by the index the reference declares (amounts by the pinned engine's per-variable OBR and ONS indices between 1 January 2023 and 1 January 2025, the state pension by the new State Pension rate the engine pays, counts by HMRC's projected taxpayer growth in the containing Table 2.5 band as the calendar-2025 window); the frozen incumbent fixture holds the 2023-24 values it projects one year forward with its own income-projection ratios." @@ -7115,7 +7115,7 @@ { "fixture_value": 179000000.0, "kind": "calibration_drift", - "ledger_value": 202181751.28771156, + "ledger_value": 242163030.07933253, "name": "hmrc/state_pension_income_band_200_000_to_300_000", "period": 2025, "reason": "Declared uprating (PolicyEngine/chronicle#280 lane, María's ruling of 2026-09-22): ours moves the SPI 2023-24 band value to the 2025 calibration year by the index the reference declares (amounts by the pinned engine's per-variable OBR and ONS indices between 1 January 2023 and 1 January 2025, the state pension by the new State Pension rate the engine pays, counts by HMRC's projected taxpayer growth in the containing Table 2.5 band as the calendar-2025 window); the frozen incumbent fixture holds the 2023-24 values it projects one year forward with its own income-projection ratios." @@ -7123,7 +7123,7 @@ { "fixture_value": 24900000000.0, "kind": "calibration_drift", - "ledger_value": 28124724061.810158, + "ledger_value": 28193657209.02049, "name": "hmrc/state_pension_income_band_20_000_to_30_000", "period": 2025, "reason": "Declared uprating (PolicyEngine/chronicle#280 lane, María's ruling of 2026-09-22): ours moves the SPI 2023-24 band value to the 2025 calibration year by the index the reference declares (amounts by the pinned engine's per-variable OBR and ONS indices between 1 January 2023 and 1 January 2025, the state pension by the new State Pension rate the engine pays, counts by HMRC's projected taxpayer growth in the containing Table 2.5 band as the calendar-2025 window); the frozen incumbent fixture holds the 2023-24 values it projects one year forward with its own income-projection ratios." @@ -7131,7 +7131,7 @@ { "fixture_value": 96000000.0, "kind": "calibration_drift", - "ledger_value": 108432671.0816777, + "ledger_value": 129875144.62355264, "name": "hmrc/state_pension_income_band_300_000_to_500_000", "period": 2025, "reason": "Declared uprating (PolicyEngine/chronicle#280 lane, María's ruling of 2026-09-22): ours moves the SPI 2023-24 band value to the 2025 calibration year by the index the reference declares (amounts by the pinned engine's per-variable OBR and ONS indices between 1 January 2023 and 1 January 2025, the state pension by the new State Pension rate the engine pays, counts by HMRC's projected taxpayer growth in the containing Table 2.5 band as the calendar-2025 window); the frozen incumbent fixture holds the 2023-24 values it projects one year forward with its own income-projection ratios." @@ -7139,7 +7139,7 @@ { "fixture_value": 12300000000.0, "kind": "calibration_drift", - "ledger_value": 13892935982.339956, + "ledger_value": 15597393406.099285, "name": "hmrc/state_pension_income_band_30_000_to_40_000", "period": 2025, "reason": "Declared uprating (PolicyEngine/chronicle#280 lane, María's ruling of 2026-09-22): ours moves the SPI 2023-24 band value to the 2025 calibration year by the index the reference declares (amounts by the pinned engine's per-variable OBR and ONS indices between 1 January 2023 and 1 January 2025, the state pension by the new State Pension rate the engine pays, counts by HMRC's projected taxpayer growth in the containing Table 2.5 band as the calendar-2025 window); the frozen incumbent fixture holds the 2023-24 values it projects one year forward with its own income-projection ratios." @@ -7147,7 +7147,7 @@ { "fixture_value": 6020000000.0, "kind": "calibration_drift", - "ledger_value": 6799632082.41354, + "ledger_value": 7633846203.635585, "name": "hmrc/state_pension_income_band_40_000_to_50_000", "period": 2025, "reason": "Declared uprating (PolicyEngine/chronicle#280 lane, María's ruling of 2026-09-22): ours moves the SPI 2023-24 band value to the 2025 calibration year by the index the reference declares (amounts by the pinned engine's per-variable OBR and ONS indices between 1 January 2023 and 1 January 2025, the state pension by the new State Pension rate the engine pays, counts by HMRC's projected taxpayer growth in the containing Table 2.5 band as the calendar-2025 window); the frozen incumbent fixture holds the 2023-24 values it projects one year forward with its own income-projection ratios." @@ -7155,7 +7155,7 @@ { "fixture_value": 43000000.0, "kind": "calibration_drift", - "ledger_value": 48568800.58866814, + "ledger_value": 58912156.269587904, "name": "hmrc/state_pension_income_band_500_000_to_1_000_000", "period": 2025, "reason": "Declared uprating (PolicyEngine/chronicle#280 lane, María's ruling of 2026-09-22): ours moves the SPI 2023-24 band value to the 2025 calibration year by the index the reference declares (amounts by the pinned engine's per-variable OBR and ONS indices between 1 January 2023 and 1 January 2025, the state pension by the new State Pension rate the engine pays, counts by HMRC's projected taxpayer growth in the containing Table 2.5 band as the calendar-2025 window); the frozen incumbent fixture holds the 2023-24 values it projects one year forward with its own income-projection ratios." @@ -7163,7 +7163,7 @@ { "fixture_value": 4660000000.0, "kind": "calibration_drift", - "ledger_value": 5263502575.423105, + "ledger_value": 6406539912.292578, "name": "hmrc/state_pension_income_band_50_000_to_70_000", "period": 2025, "reason": "Declared uprating (PolicyEngine/chronicle#280 lane, María's ruling of 2026-09-22): ours moves the SPI 2023-24 band value to the 2025 calibration year by the index the reference declares (amounts by the pinned engine's per-variable OBR and ONS indices between 1 January 2023 and 1 January 2025, the state pension by the new State Pension rate the engine pays, counts by HMRC's projected taxpayer growth in the containing Table 2.5 band as the calendar-2025 window); the frozen incumbent fixture holds the 2023-24 values it projects one year forward with its own income-projection ratios." @@ -7171,7 +7171,7 @@ { "fixture_value": 1890000000.0, "kind": "calibration_drift", - "ledger_value": 2134768211.9205298, + "ledger_value": 2598360608.2045007, "name": "hmrc/state_pension_income_band_70_000_to_100_000", "period": 2025, "reason": "Declared uprating (PolicyEngine/chronicle#280 lane, María's ruling of 2026-09-22): ours moves the SPI 2023-24 band value to the 2025 calibration year by the index the reference declares (amounts by the pinned engine's per-variable OBR and ONS indices between 1 January 2023 and 1 January 2025, the state pension by the new State Pension rate the engine pays, counts by HMRC's projected taxpayer growth in the containing Table 2.5 band as the calendar-2025 window); the frozen incumbent fixture holds the 2023-24 values it projects one year forward with its own income-projection ratios." 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 a2d03b607..554d47588 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 @@ -5217,104 +5217,104 @@ "name": "hmrc/state_pension_income_band_100_000_to_150_000", "from": "2023", "to": "2025", - "index": "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount", - "factor": "1.12950699043414", + "index": "hmrc.itl_2026.taxpayer_count_growth_times_new_state_pension_rate_by_total_income_band", + "factor": "1.40545146588758", "value_before_uprating": "847000000.0" }, { "name": "hmrc/state_pension_income_band_1_000_000_to_inf", "from": "2023", "to": "2025", - "index": "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount", - "factor": "1.12950699043414", + "index": "hmrc.itl_2026.taxpayer_count_growth_times_new_state_pension_rate_by_total_income_band", + "factor": "1.3177581555065", "value_before_uprating": "20000000.0" }, { "name": "hmrc/state_pension_income_band_12_570_to_15_000", "from": "2023", "to": "2025", - "index": "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount", - "factor": "1.12950699043414", + "index": "hmrc.itl_2026.taxpayer_count_growth_times_new_state_pension_rate_by_total_income_band", + "factor": "1.17805597511069", "value_before_uprating": "11800000000.0" }, { "name": "hmrc/state_pension_income_band_15_000_to_20_000", "from": "2023", "to": "2025", - "index": "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount", - "factor": "1.12950699043414", + "index": "hmrc.itl_2026.taxpayer_count_growth_times_new_state_pension_rate_by_total_income_band", + "factor": "1.10550752002256", "value_before_uprating": "22200000000.0" }, { "name": "hmrc/state_pension_income_band_150_000_to_200_000", "from": "2023", "to": "2025", - "index": "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount", - "factor": "1.12950699043414", + "index": "hmrc.itl_2026.taxpayer_count_growth_times_new_state_pension_rate_by_total_income_band", + "factor": "1.31679769037857", "value_before_uprating": "265000000.0" }, { "name": "hmrc/state_pension_income_band_20_000_to_30_000", "from": "2023", "to": "2025", - "index": "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount", - "factor": "1.12950699043414", + "index": "hmrc.itl_2026.taxpayer_count_growth_times_new_state_pension_rate_by_total_income_band", + "factor": "1.1322753899205", "value_before_uprating": "24900000000.0" }, { "name": "hmrc/state_pension_income_band_200_000_to_300_000", "from": "2023", "to": "2025", - "index": "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount", - "factor": "1.12950699043414", + "index": "hmrc.itl_2026.taxpayer_count_growth_times_new_state_pension_rate_by_total_income_band", + "factor": "1.35286608982867", "value_before_uprating": "179000000.0" }, { "name": "hmrc/state_pension_income_band_30_000_to_40_000", "from": "2023", "to": "2025", - "index": "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount", - "factor": "1.12950699043414", + "index": "hmrc.itl_2026.taxpayer_count_growth_times_new_state_pension_rate_by_total_income_band", + "factor": "1.26808076472352", "value_before_uprating": "12300000000.0" }, { "name": "hmrc/state_pension_income_band_300_000_to_500_000", "from": "2023", "to": "2025", - "index": "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount", - "factor": "1.12950699043414", + "index": "hmrc.itl_2026.taxpayer_count_growth_times_new_state_pension_rate_by_total_income_band", + "factor": "1.35286608982867", "value_before_uprating": "96000000.0" }, { "name": "hmrc/state_pension_income_band_40_000_to_50_000", "from": "2023", "to": "2025", - "index": "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount", - "factor": "1.12950699043414", + "index": "hmrc.itl_2026.taxpayer_count_growth_times_new_state_pension_rate_by_total_income_band", + "factor": "1.26808076472352", "value_before_uprating": "6020000000.0" }, { "name": "hmrc/state_pension_income_band_50_000_to_70_000", "from": "2023", "to": "2025", - "index": "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount", - "factor": "1.12950699043414", + "index": "hmrc.itl_2026.taxpayer_count_growth_times_new_state_pension_rate_by_total_income_band", + "factor": "1.37479397259497", "value_before_uprating": "4660000000.0" }, { "name": "hmrc/state_pension_income_band_500_000_to_1_000_000", "from": "2023", "to": "2025", - "index": "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount", - "factor": "1.12950699043414", + "index": "hmrc.itl_2026.taxpayer_count_growth_times_new_state_pension_rate_by_total_income_band", + "factor": "1.37005014580437", "value_before_uprating": "43000000.0" }, { "name": "hmrc/state_pension_income_band_70_000_to_100_000", "from": "2023", "to": "2025", - "index": "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount", - "factor": "1.12950699043414", + "index": "hmrc.itl_2026.taxpayer_count_growth_times_new_state_pension_rate_by_total_income_band", + "factor": "1.37479397259497", "value_before_uprating": "1890000000.0" }, { @@ -13378,12 +13378,12 @@ "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 956692420.897719, + "resolved_value": 1190417391.6067786, "resolved_fact_period": "2023", "resolved_fact_key": "ledger_aggregate_fact_v2_d63e1a96cab57582f482b8c2", "uprating": { - "index": "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount", - "factor": "1.12950699043414", + "index": "hmrc.itl_2026.taxpayer_count_growth_times_new_state_pension_rate_by_total_income_band", + "factor": "1.40545146588758", "value_before_uprating": "847000000.0" } }, @@ -13393,12 +13393,12 @@ "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 22590139.808682855, + "resolved_value": 26355163.11013001, "resolved_fact_period": "2023", "resolved_fact_key": "ledger_aggregate_fact_v2_9a20bd62d4d5984865242929", "uprating": { - "index": "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount", - "factor": "1.12950699043414", + "index": "hmrc.itl_2026.taxpayer_count_growth_times_new_state_pension_rate_by_total_income_band", + "factor": "1.3177581555065", "value_before_uprating": "20000000.0" } }, @@ -13408,12 +13408,12 @@ "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 13328182487.122885, + "resolved_value": 13901060506.30619, "resolved_fact_period": "2023", "resolved_fact_key": "ledger_aggregate_fact_v2_45083c1383ea711226aebd1b", "uprating": { - "index": "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount", - "factor": "1.12950699043414", + "index": "hmrc.itl_2026.taxpayer_count_growth_times_new_state_pension_rate_by_total_income_band", + "factor": "1.17805597511069", "value_before_uprating": "11800000000.0" } }, @@ -13423,12 +13423,12 @@ "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 25075055187.63797, + "resolved_value": 24542266944.500935, "resolved_fact_period": "2023", "resolved_fact_key": "ledger_aggregate_fact_v2_310febb949c686fad2b71a94", "uprating": { - "index": "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount", - "factor": "1.12950699043414", + "index": "hmrc.itl_2026.taxpayer_count_growth_times_new_state_pension_rate_by_total_income_band", + "factor": "1.10550752002256", "value_before_uprating": "22200000000.0" } }, @@ -13438,12 +13438,12 @@ "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 299319352.46504784, + "resolved_value": 348951387.9503221, "resolved_fact_period": "2023", "resolved_fact_key": "ledger_aggregate_fact_v2_e79668076aadc063559585e9", "uprating": { - "index": "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount", - "factor": "1.12950699043414", + "index": "hmrc.itl_2026.taxpayer_count_growth_times_new_state_pension_rate_by_total_income_band", + "factor": "1.31679769037857", "value_before_uprating": "265000000.0" } }, @@ -13453,12 +13453,12 @@ "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 28124724061.810158, + "resolved_value": 28193657209.02049, "resolved_fact_period": "2023", "resolved_fact_key": "ledger_aggregate_fact_v2_3d18e138c32f6581d6dafdd7", "uprating": { - "index": "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount", - "factor": "1.12950699043414", + "index": "hmrc.itl_2026.taxpayer_count_growth_times_new_state_pension_rate_by_total_income_band", + "factor": "1.1322753899205", "value_before_uprating": "24900000000.0" } }, @@ -13468,12 +13468,12 @@ "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 202181751.28771156, + "resolved_value": 242163030.07933253, "resolved_fact_period": "2023", "resolved_fact_key": "ledger_aggregate_fact_v2_e1dda799099ac0f4f439700d", "uprating": { - "index": "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount", - "factor": "1.12950699043414", + "index": "hmrc.itl_2026.taxpayer_count_growth_times_new_state_pension_rate_by_total_income_band", + "factor": "1.35286608982867", "value_before_uprating": "179000000.0" } }, @@ -13483,12 +13483,12 @@ "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 13892935982.339956, + "resolved_value": 15597393406.099285, "resolved_fact_period": "2023", "resolved_fact_key": "ledger_aggregate_fact_v2_151045b793ac454ab29260fc", "uprating": { - "index": "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount", - "factor": "1.12950699043414", + "index": "hmrc.itl_2026.taxpayer_count_growth_times_new_state_pension_rate_by_total_income_band", + "factor": "1.26808076472352", "value_before_uprating": "12300000000.0" } }, @@ -13498,12 +13498,12 @@ "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 108432671.0816777, + "resolved_value": 129875144.62355264, "resolved_fact_period": "2023", "resolved_fact_key": "ledger_aggregate_fact_v2_c95154893499181b7f3a8903", "uprating": { - "index": "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount", - "factor": "1.12950699043414", + "index": "hmrc.itl_2026.taxpayer_count_growth_times_new_state_pension_rate_by_total_income_band", + "factor": "1.35286608982867", "value_before_uprating": "96000000.0" } }, @@ -13513,12 +13513,12 @@ "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 6799632082.41354, + "resolved_value": 7633846203.635585, "resolved_fact_period": "2023", "resolved_fact_key": "ledger_aggregate_fact_v2_bc4cee7d39f5e1c311464a55", "uprating": { - "index": "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount", - "factor": "1.12950699043414", + "index": "hmrc.itl_2026.taxpayer_count_growth_times_new_state_pension_rate_by_total_income_band", + "factor": "1.26808076472352", "value_before_uprating": "6020000000.0" } }, @@ -13528,12 +13528,12 @@ "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 5263502575.423105, + "resolved_value": 6406539912.292578, "resolved_fact_period": "2023", "resolved_fact_key": "ledger_aggregate_fact_v2_7f09c940c0fbc3cc42b9e510", "uprating": { - "index": "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount", - "factor": "1.12950699043414", + "index": "hmrc.itl_2026.taxpayer_count_growth_times_new_state_pension_rate_by_total_income_band", + "factor": "1.37479397259497", "value_before_uprating": "4660000000.0" } }, @@ -13543,12 +13543,12 @@ "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 48568800.58866814, + "resolved_value": 58912156.269587904, "resolved_fact_period": "2023", "resolved_fact_key": "ledger_aggregate_fact_v2_d265dfcd4ba09d10053a78a4", "uprating": { - "index": "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount", - "factor": "1.12950699043414", + "index": "hmrc.itl_2026.taxpayer_count_growth_times_new_state_pension_rate_by_total_income_band", + "factor": "1.37005014580437", "value_before_uprating": "43000000.0" } }, @@ -13558,12 +13558,12 @@ "matched_fact_count_overall": 1, "matched_fact_count_at_or_before_period": 1, "resolved_period": 2025, - "resolved_value": 2134768211.9205298, + "resolved_value": 2598360608.2045007, "resolved_fact_period": "2023", "resolved_fact_key": "ledger_aggregate_fact_v2_41c1df25454fdf413d5765d7", "uprating": { - "index": "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount", - "factor": "1.12950699043414", + "index": "hmrc.itl_2026.taxpayer_count_growth_times_new_state_pension_rate_by_total_income_band", + "factor": "1.37479397259497", "value_before_uprating": "1890000000.0" } } @@ -28713,7 +28713,7 @@ "dimension": "grouped_amount_of_benefit", "value": "\u00a340.00 to under \u00a360.00" }, - "signed_rationale": "DWP's new State Pension \u00a340.00 to under \u00a360.00 a week cell (2,903 recipients over May to November 2025, 0.06% of new State Pension recipients) has no record on the frame: about thirty distinct new State Pension recipients report under \u00a3100 a week in FRS 2024-25, and the two nearest (\u00a358.59 a week) restate to \u00a360.99 at the 2025 rate the engine pays, so the row would always measure zero. Signed out of the weekly-amount fan-out; the other nine new State Pension bands stay bound." + "signed_rationale": "DWP's new State Pension \u00a340.00 to under \u00a360.00 a week cell (2,903 recipients over May to November 2025, 0.06% of new State Pension recipients) has no record on the frame: about thirty distinct new State Pension recipients report under \u00a3100 a week in FRS 2024-25, and the nearest of them restate above \u00a360 at the 2025 rate the engine pays, so the row would always measure zero. Signed out of the weekly-amount fan-out; the other nine new State Pension bands stay bound." }, { "name": "dwp.state_pension.recipients_new_by_weekly_amount.60_00_to_under_80_00__new_state_pension", @@ -29258,7 +29258,7 @@ "target_id": "dwp.state_pension.recipients_new_by_weekly_amount", "row": "dwp.state_pension.recipients_new_by_weekly_amount.40_00_to_under_60_00__new_state_pension", "status": "signed_excluded", - "signed_rationale": "DWP's new State Pension \u00a340.00 to under \u00a360.00 a week cell (2,903 recipients over May to November 2025, 0.06% of new State Pension recipients) has no record on the frame: about thirty distinct new State Pension recipients report under \u00a3100 a week in FRS 2024-25, and the two nearest (\u00a358.59 a week) restate to \u00a360.99 at the 2025 rate the engine pays, so the row would always measure zero. Signed out of the weekly-amount fan-out; the other nine new State Pension bands stay bound." + "signed_rationale": "DWP's new State Pension \u00a340.00 to under \u00a360.00 a week cell (2,903 recipients over May to November 2025, 0.06% of new State Pension recipients) has no record on the frame: about thirty distinct new State Pension recipients report under \u00a3100 a week in FRS 2024-25, and the nearest of them restate above \u00a360 at the 2025 rate the engine pays, so the row would always measure zero. Signed out of the weekly-amount fan-out; the other nine new State Pension bands stay bound." }, { "family": "hmrc_cgt", 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 4ec8dfd0f..c7fb3ae25 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 @@ -159,7 +159,7 @@ { "target_id": "dwp.state_pension.recipients_new_by_weekly_amount", "reason_id": "no_frame_support", - "rationale": "DWP's new State Pension £40.00 to under £60.00 a week cell (2,903 recipients over May to November 2025, 0.06% of new State Pension recipients) has no record on the frame: about thirty distinct new State Pension recipients report under £100 a week in FRS 2024-25, and the two nearest (£58.59 a week) restate to £60.99 at the 2025 rate the engine pays, so the row would always measure zero. Signed out of the weekly-amount fan-out; the other nine new State Pension bands stay bound.", + "rationale": "DWP's new State Pension £40.00 to under £60.00 a week cell (2,903 recipients over May to November 2025, 0.06% of new State Pension recipients) has no record on the frame: about thirty distinct new State Pension recipients report under £100 a week in FRS 2024-25, and the nearest of them restate above £60 at the 2025 rate the engine pays, so the row would always measure zero. Signed out of the weekly-amount fan-out; the other nine new State Pension bands stay bound.", "tracking": "microcosm#1069", "approved_by": "juaristi22", "approved_on": "2026-10-01", 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 f1200e3f8..4af44a21d 100644 --- a/packages/microcosm-build/src/microcosm/build/uk/target_references.json +++ b/packages/microcosm-build/src/microcosm/build/uk/target_references.json @@ -4387,7 +4387,7 @@ "contract_target_id": "hmrc.spi.state_pension.amount_by_total_income_band", "measure_kind": "prepared_column" }, - "uprating_index": "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount", + "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_times_new_state_pension_rate_by_total_income_band", "uprating_from_period": "2023", "uprating_to_period": 2025 }, @@ -4412,7 +4412,7 @@ "contract_target_id": "hmrc.spi.state_pension.amount_by_total_income_band", "measure_kind": "prepared_column" }, - "uprating_index": "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount", + "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_times_new_state_pension_rate_by_total_income_band", "uprating_from_period": "2023", "uprating_to_period": 2025 }, @@ -4437,7 +4437,7 @@ "contract_target_id": "hmrc.spi.state_pension.amount_by_total_income_band", "measure_kind": "prepared_column" }, - "uprating_index": "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount", + "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_times_new_state_pension_rate_by_total_income_band", "uprating_from_period": "2023", "uprating_to_period": 2025 }, @@ -4462,7 +4462,7 @@ "contract_target_id": "hmrc.spi.state_pension.amount_by_total_income_band", "measure_kind": "prepared_column" }, - "uprating_index": "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount", + "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_times_new_state_pension_rate_by_total_income_band", "uprating_from_period": "2023", "uprating_to_period": 2025 }, @@ -4487,7 +4487,7 @@ "contract_target_id": "hmrc.spi.state_pension.amount_by_total_income_band", "measure_kind": "prepared_column" }, - "uprating_index": "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount", + "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_times_new_state_pension_rate_by_total_income_band", "uprating_from_period": "2023", "uprating_to_period": 2025 }, @@ -4512,7 +4512,7 @@ "contract_target_id": "hmrc.spi.state_pension.amount_by_total_income_band", "measure_kind": "prepared_column" }, - "uprating_index": "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount", + "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_times_new_state_pension_rate_by_total_income_band", "uprating_from_period": "2023", "uprating_to_period": 2025 }, @@ -4537,7 +4537,7 @@ "contract_target_id": "hmrc.spi.state_pension.amount_by_total_income_band", "measure_kind": "prepared_column" }, - "uprating_index": "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount", + "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_times_new_state_pension_rate_by_total_income_band", "uprating_from_period": "2023", "uprating_to_period": 2025 }, @@ -4562,7 +4562,7 @@ "contract_target_id": "hmrc.spi.state_pension.amount_by_total_income_band", "measure_kind": "prepared_column" }, - "uprating_index": "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount", + "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_times_new_state_pension_rate_by_total_income_band", "uprating_from_period": "2023", "uprating_to_period": 2025 }, @@ -4587,7 +4587,7 @@ "contract_target_id": "hmrc.spi.state_pension.amount_by_total_income_band", "measure_kind": "prepared_column" }, - "uprating_index": "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount", + "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_times_new_state_pension_rate_by_total_income_band", "uprating_from_period": "2023", "uprating_to_period": 2025 }, @@ -4612,7 +4612,7 @@ "contract_target_id": "hmrc.spi.state_pension.amount_by_total_income_band", "measure_kind": "prepared_column" }, - "uprating_index": "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount", + "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_times_new_state_pension_rate_by_total_income_band", "uprating_from_period": "2023", "uprating_to_period": 2025 }, @@ -4637,7 +4637,7 @@ "contract_target_id": "hmrc.spi.state_pension.amount_by_total_income_band", "measure_kind": "prepared_column" }, - "uprating_index": "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount", + "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_times_new_state_pension_rate_by_total_income_band", "uprating_from_period": "2023", "uprating_to_period": 2025 }, @@ -4662,7 +4662,7 @@ "contract_target_id": "hmrc.spi.state_pension.amount_by_total_income_band", "measure_kind": "prepared_column" }, - "uprating_index": "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount", + "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_times_new_state_pension_rate_by_total_income_band", "uprating_from_period": "2023", "uprating_to_period": 2025 }, @@ -4687,7 +4687,7 @@ "contract_target_id": "hmrc.spi.state_pension.amount_by_total_income_band", "measure_kind": "prepared_column" }, - "uprating_index": "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount", + "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_times_new_state_pension_rate_by_total_income_band", "uprating_from_period": "2023", "uprating_to_period": 2025 }, 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 5c0706279..2cefb5368 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 @@ -3510,8 +3510,8 @@ }, "category_id": "hmrc.survey_of_personal_incomes", "label": "Amount by total income band", - "uprating_index": "policyengine_uk_parameter:gov.dwp.state_pension.new_state_pension.amount", - "selector_note": "Uprated from the SPI 2023-24 fact to the 2025 calibration period by the new State Pension weekly rate the engine pays at each period (203.85 at 2023, 230.25 at 2025 on the pinned engine): the engine fixes every pensioner's amount at the period's rate, so the bands can only be met at that level. Ruled by María on 2026-09-22 (PolicyEngine/chronicle#280 lane)." + "uprating_index": "hmrc.itl_2026.taxpayer_count_growth_times_new_state_pension_rate_by_total_income_band", + "selector_note": "Uprated from the SPI 2023-24 fact to the 2025 calibration period as recipients times the amount per recipient: the band's recipients grow by HMRC's projected Income Tax payer growth for the Table 2.5 band containing it (the index its count row declares, the calendar-2025 window of the 2024-25 and 2025-26 projections over the 2023-24 outturn), and the amount per recipient by the new State Pension weekly rate the engine pays (203.85 at 2023, 230.25 at 2025 on the pinned engine). The rate alone held the band's recipients at the 2023-24 number while the count row grew them, so the two rows described different populations (microcosm#1069)." }, { "target_id": "hmrc.spi.state_pension.count_by_total_income_band", @@ -25645,7 +25645,18 @@ "measurement": { "entity": "person", "map_to": "household", - "concept": "uk.pensions.contributions.employer.amount" + "concept": "uk.pensions.contributions.employer.amount", + "filters": [ + { + "concept": "uk.geography.country", + "operator": "in", + "value": [ + "england", + "scotland", + "wales" + ] + } + ] }, "bindings": { "policyengine": { diff --git a/packages/microcosm-build/src/microcosm/build/uk_runtime/hmrc_uprating.py b/packages/microcosm-build/src/microcosm/build/uk_runtime/hmrc_uprating.py index 734530216..08cd57454 100644 --- a/packages/microcosm-build/src/microcosm/build/uk_runtime/hmrc_uprating.py +++ b/packages/microcosm-build/src/microcosm/build/uk_runtime/hmrc_uprating.py @@ -120,6 +120,20 @@ "calibration year over the SPI fact's year, summed over the Table 2.5 bands " "the SPI band spans" ) +#: The SPI State Pension amount by band (microcosm#1069): an amount row is the +#: band's recipients times the amount each is paid, so it moves by the growth +#: its count row declares (the band's taxpayers, HMRC Table 2.5) times the +#: rate the engine pays. Moving it by the rate alone held the band's recipients +#: at the fact year's number while the count row grew them, and the two rows +#: described different populations. +UK_SPI_STATE_PENSION_AMOUNT_INDEX_CONCEPT = "hmrc.itl_2026.taxpayer_count_growth_times_new_state_pension_rate_by_total_income_band" +UK_SPI_STATE_PENSION_RATE_PARAMETER = "gov.dwp.state_pension.new_state_pension.amount" +UK_RECIPIENT_AMOUNT_GROWTH_BASIS = ( + "recipients times the amount per recipient: the band's recipients grow like its " + "taxpayers (the count row's index, {count_basis}) and the amount per recipient by " + "the pinned engine's {parameter} between 1 January of the fact's opening year and " + "1 January of the calibration year" +) UK_INCOME_UPRATING_ADJUDICATION = ( "PolicyEngine/chronicle#280 lane (María, 2026-09-22): the calibration binds at calendar " "2025; facts published by fiscal or tax year use the months to the end of " @@ -638,6 +652,71 @@ def align_hmrc_row_by_itl_growth( return TargetRegistry(aligned, country="uk") +def align_hmrc_amount_by_recipient_growth_and_rate( + reference: LedgerTargetReference, + registry: TargetRegistry, + *, + index_concept: str, + parameter_path: str, + parameter_value: ParameterValue = engine_parameter_value, + rows: list[Mapping[str, Any]] | None = None, +) -> TargetRegistry: + """Move an SPI amount band row by its recipients' growth and their rate. + + factor = (the band's taxpayer growth, exactly as the count row computes it) + x (the engine parameter ratio, exactly as the engine-index applier computes + it); both component receipts are written on the spec. + """ + + if reference.uprating_index != index_concept: + return registry + counted = align_hmrc_row_by_itl_growth( + replace(reference, uprating_index=UK_HMRC_TAXPAYER_GROWTH_INDEX_CONCEPT), + registry, + index_concept=UK_HMRC_TAXPAYER_GROWTH_INDEX_CONCEPT, + rows=rows, + ) + rated = align_hmrc_row_by_engine_index( + replace( + reference, + uprating_index=f"{UK_ENGINE_PARAMETER_INDEX_PREFIX}{parameter_path}", + ), + registry, + parameter_path=parameter_path, + parameter_value=parameter_value, + ) + aligned = [] + for spec, count_spec, rate_spec in zip( + registry.specs, counted.specs, rated.specs, strict=True + ): + count_factor = float(count_spec.metadata["uprating_factor"]) + rate_factor = float(rate_spec.metadata["uprating_factor"]) + factor = count_factor * rate_factor + count_basis = str(count_spec.metadata["uprating_index_basis"]) + # A fact compiled at its own year (the production-2023 parity surface) + # reads both halves as identities, which write the instants only. + rate_receipt = { + f"uprating_rate_{key}": str(rate_spec.metadata[f"uprating_index_{key}"]) + for key in ("from_instant", "to_instant", "from_value", "to_value") + if f"uprating_index_{key}" in rate_spec.metadata + } + metadata = { + **count_spec.metadata, + "uprating_index": index_concept, + "uprating_index_basis": UK_RECIPIENT_AMOUNT_GROWTH_BASIS.format( + count_basis=count_basis, parameter=parameter_path + ), + "uprating_count_factor": f"{count_factor:.15g}", + "uprating_rate_parameter": parameter_path, + **rate_receipt, + "uprating_rate_factor": f"{rate_factor:.15g}", + "uprating_factor": f"{factor:.15g}", + "ledger_value_before_alignment": f"{spec.value:.15g}", + } + aligned.append(replace(spec, value=spec.value * factor, metadata=metadata)) + return TargetRegistry(aligned, country="uk") + + def hmrc_uprating_appliers() -> dict[str, Any]: """The appliers this module contributes to ``UK_UPRATING_APPLIERS``.""" @@ -651,6 +730,11 @@ def hmrc_uprating_appliers() -> dict[str, Any]: appliers[index_concept] = partial( align_hmrc_row_by_itl_growth, index_concept=index_concept ) + appliers[UK_SPI_STATE_PENSION_AMOUNT_INDEX_CONCEPT] = partial( + align_hmrc_amount_by_recipient_growth_and_rate, + index_concept=UK_SPI_STATE_PENSION_AMOUNT_INDEX_CONCEPT, + parameter_path=UK_SPI_STATE_PENSION_RATE_PARAMETER, + ) return appliers @@ -672,6 +756,9 @@ def align_hmrc_count_row_by_taxpayer_growth( __all__ = [ "SPI_BAND_TO_ITL_BANDS", + "UK_SPI_STATE_PENSION_AMOUNT_INDEX_CONCEPT", + "UK_SPI_STATE_PENSION_RATE_PARAMETER", + "align_hmrc_amount_by_recipient_growth_and_rate", "UK_ENGINE_INDEX_CONCEPTS", "UK_ENGINE_INDEX_PARAMETERS", "UK_ENGINE_PARAMETER_INDEX_PREFIX", diff --git a/packages/microcosm-build/tests/engine_free/uk/test_uk_hmrc_uprating.py b/packages/microcosm-build/tests/engine_free/uk/test_uk_hmrc_uprating.py index b7bbc3769..91827cd62 100644 --- a/packages/microcosm-build/tests/engine_free/uk/test_uk_hmrc_uprating.py +++ b/packages/microcosm-build/tests/engine_free/uk/test_uk_hmrc_uprating.py @@ -11,6 +11,7 @@ def test_every_declared_engine_index_and_the_count_index_have_an_applier() -> No UK_HMRC_TAXPAYER_GROWTH_INDEX_CONCEPT, "hmrc.itl_2026.total_income_growth_by_total_income_band", "hmrc.itl_2026.total_tax_growth_by_total_income_band", + UK_SPI_STATE_PENSION_AMOUNT_INDEX_CONCEPT, } assert set(appliers) <= set(UK_UPRATING_APPLIERS) assert len(UK_ENGINE_INDEX_PARAMETERS) == 7 @@ -228,3 +229,77 @@ def test_a_regional_open_top_band_sums_every_table_2_5_band_above_it() -> None: assert spec.metadata["uprating_index_itl_bands"] == ( "200000-500000;500000-1000000;1000000-2000000;2000000-inf" ) + +def test_state_pension_amount_moves_with_its_count_rows_recipients_and_the_rate() -> ( + None +): + """microcosm#1069: amount = recipients (the count row's growth) x the rate.""" + + registry = TargetRegistry( + ( + _spec( + name="hmrc/state_pension_income_band_40_000_to_50_000@2025", + value=6.0e9, + lower_bound=40_000, + ), + ), + country="uk", + ) + + def rate(path: str, instant: str) -> float: + assert path == UK_SPI_STATE_PENSION_RATE_PARAMETER + return {"2023-01-01": 200.0, "2025-01-01": 230.0}[instant] + + (spec,) = align_hmrc_amount_by_recipient_growth_and_rate( + _reference(UK_SPI_STATE_PENSION_AMOUNT_INDEX_CONCEPT), + registry, + index_concept=UK_SPI_STATE_PENSION_AMOUNT_INDEX_CONCEPT, + parameter_path=UK_SPI_STATE_PENSION_RATE_PARAMETER, + parameter_value=rate, + rows=_count_rows(), + ).specs + + # The count row's factor for the band (the 30-50k Table 2.5 band's window + # over 2023) times the rate ratio: the mean per recipient moves by the rate. + (count,) = align_hmrc_count_row_by_taxpayer_growth( + _reference(UK_HMRC_TAXPAYER_GROWTH_INDEX_CONCEPT), + registry, + count_rows=_count_rows(), + ).specs + count_factor = float(count.metadata["uprating_factor"]) + assert count_factor == pytest.approx(1.175) + assert spec.value == pytest.approx(6.0e9 * 1.175 * 1.15) + assert spec.metadata["uprating_index"] == UK_SPI_STATE_PENSION_AMOUNT_INDEX_CONCEPT + assert float(spec.metadata["uprating_count_factor"]) == pytest.approx(1.175) + assert float(spec.metadata["uprating_rate_factor"]) == pytest.approx(1.15) + assert ( + spec.metadata["uprating_rate_parameter"] == UK_SPI_STATE_PENSION_RATE_PARAMETER + ) + assert spec.metadata["uprating_index_itl_bands"] == "30000-50000" + assert spec.metadata["ledger_value_before_alignment"] == "6000000000" + # Another index passes through untouched. + assert ( + align_hmrc_amount_by_recipient_growth_and_rate( + _reference(EARNINGS_INDEX), + registry, + index_concept=UK_SPI_STATE_PENSION_AMOUNT_INDEX_CONCEPT, + parameter_path=UK_SPI_STATE_PENSION_RATE_PARAMETER, + parameter_value=rate, + rows=_count_rows(), + ) + is registry + ) + # Compiled at its own year (the production-2023 parity surface), the row + # stays as published with a complete receipt rather than dropping out. + (own_year,) = align_hmrc_amount_by_recipient_growth_and_rate( + _reference(UK_SPI_STATE_PENSION_AMOUNT_INDEX_CONCEPT, period=2023), + registry, + index_concept=UK_SPI_STATE_PENSION_AMOUNT_INDEX_CONCEPT, + parameter_path=UK_SPI_STATE_PENSION_RATE_PARAMETER, + parameter_value=rate, + rows=_count_rows(), + ).specs + assert own_year.value == 6.0e9 + assert own_year.metadata["uprating_factor"] == "1" + assert own_year.metadata["uprating_rate_from_instant"] == "2023-01-01" + assert "uprating_rate_from_value" not in own_year.metadata diff --git a/test_support/microcosm_build/uk_hmrc_uprating.py b/test_support/microcosm_build/uk_hmrc_uprating.py index 65ab5dfec..df90a072b 100644 --- a/test_support/microcosm_build/uk_hmrc_uprating.py +++ b/test_support/microcosm_build/uk_hmrc_uprating.py @@ -18,6 +18,9 @@ UK_ENGINE_INDEX_PARAMETERS, UK_ENGINE_PARAMETER_INDEX_PREFIX, UK_HMRC_TAXPAYER_GROWTH_INDEX_CONCEPT, + UK_SPI_STATE_PENSION_AMOUNT_INDEX_CONCEPT, + UK_SPI_STATE_PENSION_RATE_PARAMETER, + align_hmrc_amount_by_recipient_growth_and_rate, align_hmrc_count_row_by_taxpayer_growth, align_hmrc_row_by_engine_index, engine_parameter_value, From c78dff42aa1d4133efbbfe25ce0c8e384fdd74dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20Juaristi?= <127882282+juaristi22@users.noreply.github.com> Date: Fri, 2 Oct 2026 13:04:49 +0100 Subject: [PATCH 22/22] =?UTF-8?q?Receipts:=20review=20round=201,=20the=20?= =?UTF-8?q?=CF=83=5Fp=20ruling=20and=20the=20State=20Pension=20amount=20ro?= =?UTF-8?q?ot=20fix=20(#1069)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Part J records the round: the CI fix, σ_p = 0.2, and the SPI State Pension amount uprating fix with the fix20 and fix50 arms (fresh spines at 677336b3d, data-identical to the finals20 and final spines). It also records the post-fix σ_p comparison and the measurements Vahid's review asked for: the employer NICs threshold factors, and Pension Credit take-up realised after calibration. Parts B, C, H and I point to it. Co-Authored-By: Claude Opus 5.5 --- experiments/1069-uk-pensions-receipts.md | 153 ++++++++++++++++++++--- 1 file changed, 133 insertions(+), 20 deletions(-) diff --git a/experiments/1069-uk-pensions-receipts.md b/experiments/1069-uk-pensions-receipts.md index 3e5869144..dc09938d1 100644 --- a/experiments/1069-uk-pensions-receipts.md +++ b/experiments/1069-uk-pensions-receipts.md @@ -6,7 +6,8 @@ was executed in this order on branch `uk-pensions-1069`, rebased onto main 3598c - c5, c1–c4 and the £40–60 band sign-out came earlier (see their own commits). - This note covers the c5 fix (dae9cc916), c6 (7cac27b27), c7 (f795e9121), c8 (9b66ab395), the D6 retirement (b19f14d98), c9 (8b3e9f993), the c6 follow-up (be5c13245), c10 (13089945a), c11 - (fcb5c46b5) and the c8/c9 follow-up (d9fca7bb7). + (fcb5c46b5) and the c8/c9 follow-up (d9fca7bb7). Part J covers the first review round: the CI fix + (004b5c9cc), σ_p = 0.2 (3a3fc105c) and the SPI State Pension amount root fix (677336b3d). - c0 waits for PolicyEngine/policyengine-uk#1899. Builds. Every arm is a licensed local build: the spine (the build_930 recipe with the five NTS tabs and @@ -18,7 +19,8 @@ incumbent. The scripts live in `data/ukds/acceptance/pensions-1069/scripts/`: - `arm_readout.py`, which reads out from the ordered dense solution, so it also works on arms whose battery blocked the H5; - `arm_h5.py`, which writes measurement H5s from a spine and its calibrated weights; -- `wp7.sh`, `wp7_analyse.py` and `relief_decomposition.py`. +- `wp7.sh`, `wp7_analyse.py` and `relief_decomposition.py`; +- `pc_takeup_realised.py`, `nics_threshold_effect.py`, `sp_band_diag.py` and `fix_compare.py` (round 1). Every H5 is measurement only and never released. Engine: policyengine-uk 2.100.0 (the repo's pin). @@ -26,11 +28,13 @@ The arms, in order: - c4: the starting point. - c5fix. -- c6s50 and c6s20, the σ_p variants; 0.2 was never committed. +- c6s50 and c6s20, the σ_p variants (0.2 was committed in round 1). - c7. - c9: c8 and c9 together, which blocked on Table 3.8. - final: d9fca7bb7, reusing the c9 spine. Its battery passed and it wrote an H5. - finals20: the final state at σ_p = 0.2, a variant. +- fix20 and fix50: 677336b3d (the root fix) at σ_p = 0.2 (committed) and 0.5 (a variant), each on a fresh + spine. Both batteries pass, and each wrote its H5. ## Part A. The SPI channel's 66-year-olds (c5 fix) @@ -67,7 +71,8 @@ it. That share is what squeezed age 65 inside the ONS 65–69 band (R3). - The non-taxpayer share of State Pension is 25.9% in the FRS channel and 10.6% in the SPI channel; HMRC and DWP imply 32.4% (£46.1bn of £142.3bn). - **Change (7cac27b27).** The allocation is stratified by region × pension-age household (any member at - or over State Pension age), with a pension-age share σ_p. The committed value is 0.5 (provisional). + or over State Pension age), with a pension-age share σ_p: 0.5 provisionally at c6, 0.2 since 3a3fc105c + (ruled 2026-10-02; Part J). - **Arms.** - c6s50 (spine 6721f725): loss 0.00824 on 1,148; within 10% 97.8%; ESS 5,033. - Prior 66+ people 12.33m. @@ -87,7 +92,8 @@ it. That share is what squeezed age 65 inside the ONS 65–69 band (R3). The 50–70k State Pension band fits at +23.0%, +23.6% and +24.0% on the c5fix, c6s50 and c6s20 arms. The terminal `uk_target_fit` gate fails its reviewed deferral (ruling D6, 2026-09-23, expiring 2026-10-21) as stale, so every arm from c5fix to c7 blocked its H5 on that one line. The entry is -retired, as the SE deferrals were, and the register is empty. +retired, as the SE deferrals were, and the register is empty. The band's residual turned out to be an +uprating inconsistency between its amount and count rows, fixed at the root in 677336b3d (Part J). ## Part D. Pension Credit (c7) @@ -232,6 +238,9 @@ retired, as the SE deferrals were, and the register is empty. - Pension Credit 1.46m benefit units and £6.15bn (targets 1.45m and £6.11bn): Guarantee Credit only 0.859m, both 0.430m, Savings Credit only 0.171m. - Ages 64–68: 0.874, 0.633, 0.721, 0.757 and 0.698m, against ONS 0.80, 0.77, 0.75, 0.71 and 0.68m. + - Realised Pension Credit take-up (weighted claimants over weighted entitled; Vahid's review): Guarantee + Credit 74.7% and Savings Credit only 46.1%, against the 69% and 37% the stage sets at prior weights + (Part J). - **HBAI (pensioner_position.py).** - Pensioner quintile shares before housing costs: 20.6/26.2/21.4/18.8/13.0, against HBAI's 22/25/21/18/14. The pre-#1069 control (ch3) had 18.3/24.0/22.0/18.8/17.0. @@ -269,14 +278,17 @@ retired, as the SE deferrals were, and the register is empty. 2025-26 Pension Credit rates and guarantee uprating, the April 2027 rate and the state_pension column guard. Items 2 (the basic-to-new double count) and 3 (Additional State Pension by CPI) wait for #1899. Seven engine rulings are owed. -- **σ_p (SPI channel pension-age share).** 0.5 is committed provisionally; the evidence is in Part B and - the final-state variant. Her ruling. -- **Single ages (R3).** At the final state 65 is −19% and 64 +9% (c5fix: −15% and +1%). The fallback, - splitting 65–69 into 65, 66 and 67–69, is available on her ruling. -- **SPI State Pension bands 20–100k: +12% to +24.5% at the final state.** The 50–70k band (D6, now retired) - sits at +24.5%, just inside the 25% bound. At σ_p = 0.2 it crosses (+25.6%) and blocks the H5. -- **Non-taxpayer State Pension.** £35–39bn against about £46bn implied (the HMRC/DWP split). -- **Pension Credit entitlement at prior: −36%** (σ_p interaction); calibration closes it. +- **σ_p (SPI channel pension-age share).** Ruled 0.2 on 2026-10-02 (3a3fc105c); the post-fix comparison + with 0.5 is in Part J. +- **Single ages (R3).** At the final state 65 is −19% and 64 +9% (c5fix: −15% and +1%); at fix20, 65 is + −17%, 64 −6%, and 62 and 63 are +15% and +12%. The fallback, splitting 65–69 into 65, 66 and 67–69, is + available on her ruling; Vahid recommends taking it now. +- **SPI State Pension bands.** Fixed at the root in 677336b3d (Part J). At fix20 every band is within 4% + except £20–30k (+13.1%), a headcount residual (8.0% too many recipients) that the uprating does not cause. +- **Non-taxpayer State Pension.** The arms' proxy split puts it at £35.5bn (σ_p 0.5) and £37.6bn (0.2), + short of what HMRC and DWP imply (about £41bn against the post-fix SPI rows). +- **Pension Credit entitlement at prior: −36% at σ_p 0.5, −24% at 0.2.** Calibration closes the caseload; + realised take-up then lands at 71.6% and 40.9% at fix20 against DWP's 69% and 37% (Part J). - **Contribution rows out of the fit (Part E).** Options: - (1) Bind combined Table 3.8 amounts (net pay plus relief at source) against employee plus personal contributions, and drop the counts. @@ -285,14 +297,18 @@ retired, as the SE deferrals were, and the register is empty. - (3) Keep both families as diagnostics. - The DWP employee figure: bind employees' own £45.5bn, the gross £66.2bn, or neither. - **Salary-sacrifice relief.** - - The relief rows fit, but the sacrificed amount rises to £36.3bn (£24.6bn implied), because no-pay - records hold half of it (Part G). Options: keep the c9 amount row bound beside the relief rows, or - land #1063's earners-only fix first. R7 retired the amount row, so this is her call. + - The relief rows fit, but the sacrificed amount rises to £36.3bn at the final state and £34.3bn at + fix20 (£24.6bn implied), because records paid under £9,100 hold about half of it (Part G, Part J). + Her ruling (2026-10-02): #1063's earners-only fix resolves it. Vahid recommends keeping the c9 amount + row bound until then, because the excess displaces genuine employer contributions inside the DWP + employer row; her call. - The three income-tax rate bands are deferred until the band test reads after-allowance thresholds and the Scottish bands; the exclusions expire 2026-11-25. - The FY2024-25 relief and amount rows are not earnings-uprated (consistent with R1 and R10), a gap of about 4–5%. - - The employer row is restated to 15% (my call, to confirm). + - The employer row is restated to 15% by the rate only. The 15% is statute (NICs (Secondary Class 1 + Contributions) Act 2025, ss.1–2), and the engine-measured factor on earners is exactly 15/13.8 + (Part J); recommendation: keep it. - The income-tax delta includes the Child Benefit and annual-allowance charges. - **Winter Fuel.** A diagnostic only, until PolicyEngine/policyengine-uk#1760. - **Attendance Allowance in Scotland (Pension Age Disability Payment).** Not bound. @@ -302,6 +318,103 @@ retired, as the SE deferrals were, and the register is empty. across the σ_p variant. - **Time-critical, outside this PR.** The `slc.borrowers.plan_2_*` measure exclusions expire 2026-10-03; an expired entry raises in every build and in the certifier. -- **Outward steps, each on her go.** Push the branch and open the draft PR; comment on - PolicyEngine/chronicle#302; flag the deleted parameters on PolicyEngine/policyengine-uk#1899; open the - engine follow-up issue and PR. +- **Outward steps, each on her go.** The draft PR is open (#1084). Held: the reply to Vahid's review; the + comment on PolicyEngine/chronicle#302; the flag on the deleted parameters on + PolicyEngine/policyengine-uk#1899; the engine follow-up issue and PR. + +## Part J. Review round 1, the σ_p ruling and the SPI State Pension amount root fix + +- **CI (004b5c9cc).** The integration-uk smoke build blocked on the new Pension Credit take-up gate, because + a synthetic smoke frame has no real entitlement. The gate now records without blocking on synthetic + builds (`population_fact_check`), like the other population fact gates, and a test pins that. +- **σ_p = 0.2 (3a3fc105c, ruled 2026-10-02).** The stage constant, both stage manifests and the + `pension_age_spi_prior_mass_share` gate move together. The coverage manifest, the charter-H2 fixture and + the gate digests are regenerated. +- **The SPI State Pension amount root fix (677336b3d).** + - **Mechanism.** The 13 Table 3.7 amount rows moved from 2023-24 to 2025 by the new State Pension rate + alone (230.25 / 203.85 = 1.1295). Their count rows moved by HMRC's projected taxpayer growth in the + Table 2.5 band containing each SPI band. So each band's amount kept the 2023-24 number of recipients + while its count row grew them, and the two rows described different populations. + - **Fix.** An amount row now moves by its count row's factor times the rate ratio, with both component + factors receipted. The factors run from 1.106 (£15–20k, where taxpayer numbers fall) to 1.405 + (£100–150k); £50–70k moves by 1.217 × 1.1295 = 1.375. The 13 rows sum to £100.9bn instead of £96.3bn. + A row compiled at its own year (the production-2023 parity surface) stays as published. + - **Per recipient.** Before the fix, the targets' mean State Pension per recipient in the £30,000–100,000 + bands was £9.8–10.7k, below the full new State Pension of £11,973 a year, while the model's means there + were £11.6–12.3k. After it, the target means are £11.9–12.1k and the model is within 1–4% of them. + - **Effect at σ_p 0.2 (finals20 → fix20).** The two spines are data-identical (all 2,494 datasets and + their attributes match), so only the targets differ. + - The battery passes: no row above 25%. + - Loss 0.00742 against 0.00758; within 10% 98.0% against 97.7%; ESS 5,007 against 4,994; top-1% + weight share 0.267. + - SPI State Pension bands: £30–40k +3.3% (was +15.1%), £40–50k +0.8% (+13.0%), £50–70k +3.8% + (+25.6%), £70–100k +1.7% (+22.6%), £12,570–15,000 +0.3% (+4.6%); every other band within 1%. + - The £20–30k band stays at +13.1%. Its count factor is 1.0025, so the uprating is not the cause: the + band has 8.0% too many State Pension recipients and a mean 4.7% high. At σ_p 0.5 its count residual + is +13.9% (final +14.2%). + - Single ages, the HBAI position and the State Pension totals move by at most a point (the same + spine; only the band targets changed). + - **Effect at σ_p 0.5 (final → fix50).** The spines are data-identical too: the c9 spine the final arm + reused matches fix50's dataset for dataset, so nothing since c9 changed the spine data. + - The battery passes. Loss 0.00716 against 0.00730; within 10% 98.0% against 97.5%; ESS 4,937 against + 4,900. + - SPI State Pension bands: £40–50k 0.0% (was +12.3%), £50–70k +3.0% (+24.5%), £70–100k +0.1% + (+16.6%), £30–40k +8.9% (+20.0%), £20–30k +18.7% (+19.7%). +- **σ_p after the fix: fix20 (0.2) against fix50 (0.5).** Both pass every gate, and both put 98.0% of rows + within 10%. + - **For 0.5.** + - Reported loss 0.00716 against 0.00742. The gap is one row: ESA claimants, +6.9% against +9.4%, + contributes more than the whole difference. Without it the weighted loss favours 0.2, and the + unweighted sum of squared relative errors is 0.913 at 0.5 against 0.806 at 0.2. + - Single ages: mean absolute error over 55–79 is 7.3% against 7.6%, and over 60–65 9.3% against 11.7%. + 62 and 63 are +8% and +2% against +15% and +12%. Ages 64, 65 and 69 are better at 0.2: −6%, −17% + and +12%, against +9%, −19% and +21%. + - HBAI pensioner quintiles (BHC): 20.6/26.0/21.5/18.9/13.0 against 21.5/27.9/21.1/16.7/12.7, with + HBAI at 22/25/21/18/14. The total gap is 4.8 points against 6.1 (Q2 +1.0 against +2.9). + - AHC relative poverty 14.8% against 15.3% (HBAI 14%, interval 12–16%). + - ESS on pension-age households 2,304 against 2,217. + - **For 0.2.** + - Pension Credit take-up after calibration: Guarantee Credit 71.6% against 74.7%, and Savings Credit + only 40.9% against 45.7% (DWP 69% and 37%). The entitled pool behind the bound caseload is 1.81m + and 0.41m, against 1.73m and 0.37m (about 1.87m and 0.46m at DWP's rates). + - Before calibration: Pension Credit −24% against −36%, pension-age Housing Benefit −28% against + −41%, Attendance Allowance (England) −32% against −35%. + - The SPI £20–30k State Pension band: count +8.0% against +13.9%, amount +13.1% against +18.7%; + £30–40k +3.3% against +8.9%. + - BHC relative poverty 15.2% against 14.3% (HBAI 16%, interval 14–18%). + - ESS 5,007 against 4,937; top-1% weight share 0.267 against 0.270. + - Non-taxpayer State Pension (proxy split) £37.6bn against £35.4bn. + - The SPI channel, built to supply the top of the income distribution, carries 22% of calibrated + pension-age people against 46%. + - **Neutral.** The CPI-only probe's budget effect agrees within 0.5% in every year (+£3.11bn against + +£3.10bn in 2030, SE £0.07bn). 0.2 moves up to 1.5 points of the 2030 loss towards D1–D4 (SE 0.6–1.0). +- **Vahid's points.** + 1. **The DWP employer row's country.** The contract's measurement block now declares England, + Scotland and Wales. The engine binding already restricted the row to GB households (its + `household_conditions` list the nine English regions, Wales and Scotland), so the fit was GB-only + before; the declaration now matches it. + 2. **The employer NICs threshold.** On the fix20 H5, the counterfactual under 2025 parameters (15% above + £96 a week) against 2024-25 parameters (13.8% above £175 a week): + - sacrificers paid at least £9,100: relief £2.605bn against £2.397bn, factor 1.087, exactly the + rate-only 15/13.8; + - sacrificers paid under £9,100: £1.112bn against £0.778bn, factor 1.430; + - all: £3.717bn against £3.174bn, factor 1.171. + - The excess over the rate ratio sits entirely on records paid under £9,100. They are essentially the + no-pay sacrificers of #1063's non-earner defect, and they carry £16.6bn of the £34.3bn sacrificed; + earners carry £17.6bn, against the £24.6bn HMRC's relief implies. HMRC's sacrificers are earners, + so the rate-only factor restates the real quantity; the engine-measured factor would write the + frame defect into the target. Recommendation: keep the rate-only factor (her call, ruling 4). + 3. **Pension Credit take-up after calibration** (weighted claimants over weighted entitled; DWP FYE2024 + 69% and 37%): + - final (σ_p 0.5): Guarantee Credit 74.7%, Savings Credit only 46.1% (entitled 1.73m and 0.37m); + - finals20: 71.6% and 40.7% (1.80m and 0.42m); + - fix20: 71.6% and 40.9% (1.81m and 0.41m); + - fix50: 74.7% and 45.7% (1.73m and 0.37m). + - At DWP's rates the bound caseload implies entitled pools of about 1.87m and 0.46m. Calibration fixes + the claimants exactly, so the drift is in the entitled pool behind them, which is what a take-up or + rate reform acts on. It is smallest at 0.2. R9's fallback is not needed at 0.2. + 4. **The unit value in the £40–60 band rationale** is removed. The earlier text remains in the branch + history (a2bfee0a0, below the #1063 stack's base); rewriting it is her call. + 5. **The income-tax relief bands after the band-test fix.** Proposal: bind the three bands and make the + total a diagnostic, since the bands carry the distribution and the total is their sum (her call). + 6. **The £50–70k band and the fence**: resolved at the root, above.