diff --git a/sources/campaign-20260802/uk_runs/additional_rate_1p_2026.json b/sources/campaign-20260802/uk_runs/additional_rate_1p_2026.json new file mode 100644 index 0000000..dc2be43 --- /dev/null +++ b/sources/campaign-20260802/uk_runs/additional_rate_1p_2026.json @@ -0,0 +1,40 @@ +{ + "reform_key": "additional_rate_1p", + "year": 2026, + "reform_hint": "Increase additional rate by 1p", + "pe_construction": "gov.hmrc.income_tax.rates.uk[2].rate: 0.45 -> 0.46", + "reform_json": "{\"gov.hmrc.income_tax.rates.uk[2].rate\": {\"2026-01-01.2028-12-31\": 0.46}}", + "bundle": { + "bundle_id": "uk-5.0.1", + "country_id": "uk", + "policyengine_version": "5.0.1", + "model_package": "policyengine-uk", + "model_version": "2.89.2", + "data_package": "populace-data", + "data_version": "0.1.0", + "default_dataset": "populace_uk_2023", + "default_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_artifact_sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833", + "data_build_model_version": "2.89.2", + "data_build_model_git_sha": "None", + "data_build_fingerprint": "None", + "compatibility_basis": "exact_build_model_version", + "certified_by": "None", + "runtime_dataset": "populace_uk_2023", + "runtime_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "runtime_dataset_source": "/Users/maxghenis/.cache/huggingface/hub/datasets--policyengine--populace-uk-private/snapshots/a75a9a831d6b07aaffbd09713f2a1124f5c0f08f/populace_uk_2023.h5", + "managed_by": "policyengine.py" + }, + "aggregates_gbp": { + "income_tax": 423760606390.3071, + "national_insurance": 61450306465.09366, + "ni_employer": 185481157065.2179, + "child_benefit": 17434702263.490685, + "universal_credit": 39887838277.66961, + "vat": 219622883998.86896, + "household_net_income": 1789411469372.6099, + "gov_tax": 1048672620829.9907, + "gov_spending": 485663250574.56665 + } +} \ No newline at end of file diff --git a/sources/campaign-20260802/uk_runs/aggregates_2026.json b/sources/campaign-20260802/uk_runs/aggregates_2026.json new file mode 100644 index 0000000..1b15902 --- /dev/null +++ b/sources/campaign-20260802/uk_runs/aggregates_2026.json @@ -0,0 +1,200 @@ +{ + "year": 2026, + "concept_notes": { + "period_basis": "PE calendar-year 2026; OBR/HMRC/DWP fiscal-year Apr-Mar (named delta)", + "receipts_vs_liability": "PE totals are accrual liabilities/entitlements; OBR receipts are cash (named delta)", + "caseload_concept": "annual-ever units with amount>0; DWP BECL caseloads are FY-average point-in-time (named delta, pre-adjudicated in staging)" + }, + "bundle": { + "bundle_id": "uk-5.0.1", + "country_id": "uk", + "policyengine_version": "5.0.1", + "model_package": "policyengine-uk", + "model_version": "2.89.2", + "data_package": "populace-data", + "data_version": "0.1.0", + "default_dataset": "populace_uk_2023", + "default_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_artifact_sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833", + "data_build_model_version": "2.89.2", + "data_build_model_git_sha": "None", + "data_build_fingerprint": "None", + "compatibility_basis": "exact_build_model_version", + "certified_by": "None", + "runtime_dataset": "populace_uk_2023", + "runtime_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "runtime_dataset_source": "/Users/maxghenis/.cache/huggingface/hub/datasets--policyengine--populace-uk-private/snapshots/a75a9a831d6b07aaffbd09713f2a1124f5c0f08f/populace_uk_2023.h5", + "managed_by": "policyengine.py" + }, + "totals_gbp": { + "income_tax": 421891913533.19946, + "national_insurance": 61450306465.09366, + "ni_employer": 185481157065.2179, + "vat": 219622883998.86896, + "capital_gains_tax": 24243246083.18426, + "council_tax": 60083773529.38769, + "fuel_duty": 12976906953.47097, + "universal_credit": 39887838277.66961, + "child_benefit": 17434702263.490685, + "state_pension": 145097022169.8143, + "pension_credit": 5725827904.638691, + "housing_benefit": 5225876604.907799, + "dla": 6342775060.054455, + "pip": 20593016304.099655, + "attendance_allowance": 4733056192.259981, + "carers_allowance": 3358301903.9573593, + "esa_income": 3156436499.0282836, + "esa_contrib": 2156177884.0742674, + "jsa_income": 0.0, + "jsa_contrib": 157967402.95190462, + "income_support": 0.0, + "working_tax_credit": 0.0, + "child_tax_credit": 0.0, + "winter_fuel_allowance": 1665681809.4226718, + "statutory_sick_pay": 1334439593.0563817, + "statutory_maternity_pay": 1366751179.0460634, + "council_tax_benefit": 2934640355.279371, + "tax_credits": 0.0, + "scottish_child_payment": 159585140.49813133, + "household_net_income": 1791280163555.2764, + "gov_tax": 1046803930669.7205, + "gov_spending": 485663250574.56665, + "household_benefits": 485946590329.34766 + }, + "recipient_counts": { + "income_tax": { + "unit": "person", + "recipient_units_annual_ever": 37691747.66273152 + }, + "national_insurance": { + "unit": "person", + "recipient_units_annual_ever": 27160368.26024862 + }, + "ni_employer": { + "unit": "person", + "recipient_units_annual_ever": 26292511.121389605 + }, + "vat": { + "unit": "household", + "recipient_units_annual_ever": 29470263.382621806 + }, + "capital_gains_tax": { + "unit": "person", + "recipient_units_annual_ever": 1507931.6696882509 + }, + "council_tax": { + "unit": "household", + "recipient_units_annual_ever": 28469697.078922734 + }, + "fuel_duty": { + "unit": "household", + "recipient_units_annual_ever": 12682432.195110451 + }, + "universal_credit": { + "unit": "benunit", + "recipient_units_annual_ever": 3296452.404684961 + }, + "child_benefit": { + "unit": "benunit", + "recipient_units_annual_ever": 8476800.070532933 + }, + "state_pension": { + "unit": "person", + "recipient_units_annual_ever": 12698240.466625169 + }, + "pension_credit": { + "unit": "benunit", + "recipient_units_annual_ever": 1217787.1301087737 + }, + "housing_benefit": { + "unit": "benunit", + "recipient_units_annual_ever": 732051.740912199 + }, + "dla": { + "unit": "person", + "recipient_units_annual_ever": 914247.0047843456 + }, + "pip": { + "unit": "person", + "recipient_units_annual_ever": 2817522.645383328 + }, + "attendance_allowance": { + "unit": "person", + "recipient_units_annual_ever": 915595.5719996989 + }, + "carers_allowance": { + "unit": "person", + "recipient_units_annual_ever": 747052.9823623598 + }, + "esa_income": { + "unit": "benunit", + "recipient_units_annual_ever": 352682.03596651554 + }, + "esa_contrib": { + "unit": "person", + "recipient_units_annual_ever": 303683.59814062715 + }, + "jsa_income": { + "unit": "benunit", + "recipient_units_annual_ever": 0.0 + }, + "jsa_contrib": { + "unit": "person", + "recipient_units_annual_ever": 32927.54791140556 + }, + "income_support": { + "unit": "benunit", + "recipient_units_annual_ever": 0.0 + }, + "working_tax_credit": { + "unit": "benunit", + "recipient_units_annual_ever": 0.0 + }, + "child_tax_credit": { + "unit": "benunit", + "recipient_units_annual_ever": 0.0 + }, + "winter_fuel_allowance": { + "unit": "household", + "recipient_units_annual_ever": 7060742.019033432 + }, + "statutory_sick_pay": { + "unit": "person", + "recipient_units_annual_ever": 254034.1130834818 + }, + "statutory_maternity_pay": { + "unit": "person", + "recipient_units_annual_ever": 166412.83011466265 + }, + "council_tax_benefit": { + "unit": "benunit", + "recipient_units_annual_ever": 2886327.5622606277 + }, + "tax_credits": { + "unit": "benunit", + "recipient_units_annual_ever": 0.0 + }, + "scottish_child_payment": { + "unit": "person", + "recipient_units_annual_ever": 108827.83540725708 + }, + "household_net_income": { + "unit": "household", + "recipient_units_annual_ever": 29369810.998743203 + }, + "gov_tax": { + "unit": "household", + "recipient_units_annual_ever": 29470583.18248133 + }, + "gov_spending": { + "unit": "household", + "recipient_units_annual_ever": 29470583.18248133 + }, + "household_benefits": { + "unit": "household", + "recipient_units_annual_ever": 29470583.18248133 + } + }, + "not_in_model": [] +} \ No newline at end of file diff --git a/sources/campaign-20260802/uk_runs/baseline_2026.json b/sources/campaign-20260802/uk_runs/baseline_2026.json new file mode 100644 index 0000000..057f220 --- /dev/null +++ b/sources/campaign-20260802/uk_runs/baseline_2026.json @@ -0,0 +1,47 @@ +{ + "reform_key": "baseline", + "year": 2026, + "reform_hint": "baseline", + "pe_construction": "", + "reform_json": "baseline", + "bundle": { + "bundle_id": "uk-5.0.1", + "country_id": "uk", + "policyengine_version": "5.0.1", + "model_package": "policyengine-uk", + "model_version": "2.89.2", + "data_package": "populace-data", + "data_version": "0.1.0", + "default_dataset": "populace_uk_2023", + "default_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_artifact_sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833", + "data_build_model_version": "2.89.2", + "data_build_model_git_sha": "None", + "data_build_fingerprint": "None", + "compatibility_basis": "exact_build_model_version", + "certified_by": "None", + "runtime_dataset": "populace_uk_2023", + "runtime_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "runtime_dataset_source": "/Users/maxghenis/.cache/huggingface/hub/datasets--policyengine--populace-uk-private/snapshots/a75a9a831d6b07aaffbd09713f2a1124f5c0f08f/populace_uk_2023.h5", + "managed_by": "policyengine.py" + }, + "aggregates_gbp": { + "income_tax": 421891913533.19946, + "national_insurance": 61450306465.09366, + "ni_employer": 185481157065.2179, + "child_benefit": 17434702263.490685, + "universal_credit": 39887838277.66961, + "vat": 219622883998.86896, + "household_net_income": 1791280163555.2764, + "gov_tax": 1046803930669.7205, + "gov_spending": 485663250574.56665 + }, + "poverty": { + "var": "in_poverty_ahc", + "rate_all": 0.18629731591349413, + "count_all": 13028998.553302944, + "rate_child_u16": 0.26918599390042075, + "count_child_u16": 3642525.343844831 + } +} \ No newline at end of file diff --git a/sources/campaign-20260802/uk_runs/basic_rate_1p_2026.json b/sources/campaign-20260802/uk_runs/basic_rate_1p_2026.json new file mode 100644 index 0000000..c2c1d6c --- /dev/null +++ b/sources/campaign-20260802/uk_runs/basic_rate_1p_2026.json @@ -0,0 +1,40 @@ +{ + "reform_key": "basic_rate_1p", + "year": 2026, + "reform_hint": "Change in basic rate by 1p", + "pe_construction": "gov.hmrc.income_tax.rates.uk[0].rate: 0.2 -> 0.21000000000000002", + "reform_json": "{\"gov.hmrc.income_tax.rates.uk[0].rate\": {\"2026-01-01.2028-12-31\": 0.21000000000000002}}", + "bundle": { + "bundle_id": "uk-5.0.1", + "country_id": "uk", + "policyengine_version": "5.0.1", + "model_package": "policyengine-uk", + "model_version": "2.89.2", + "data_package": "populace-data", + "data_version": "0.1.0", + "default_dataset": "populace_uk_2023", + "default_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_artifact_sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833", + "data_build_model_version": "2.89.2", + "data_build_model_git_sha": "None", + "data_build_fingerprint": "None", + "compatibility_basis": "exact_build_model_version", + "certified_by": "None", + "runtime_dataset": "populace_uk_2023", + "runtime_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "runtime_dataset_source": "/Users/maxghenis/.cache/huggingface/hub/datasets--policyengine--populace-uk-private/snapshots/a75a9a831d6b07aaffbd09713f2a1124f5c0f08f/populace_uk_2023.h5", + "managed_by": "policyengine.py" + }, + "aggregates_gbp": { + "income_tax": 429170357848.19604, + "national_insurance": 61450306465.09366, + "ni_employer": 185481157065.2179, + "child_benefit": 17434702263.490685, + "universal_credit": 39940721048.87594, + "vat": 219622883998.86896, + "household_net_income": 1784059120421.784, + "gov_tax": 1054082375257.415, + "gov_spending": 485720651909.46375 + } +} \ No newline at end of file diff --git a/sources/campaign-20260802/uk_runs/brl_10pct_2026.json b/sources/campaign-20260802/uk_runs/brl_10pct_2026.json new file mode 100644 index 0000000..a79d832 --- /dev/null +++ b/sources/campaign-20260802/uk_runs/brl_10pct_2026.json @@ -0,0 +1,40 @@ +{ + "reform_key": "brl_10pct", + "year": 2026, + "reform_hint": "Increase basic rate limit by 10%", + "pe_construction": "gov.hmrc.income_tax.rates.uk[1].threshold: 37700 -> 41470.0", + "reform_json": "{\"gov.hmrc.income_tax.rates.uk[1].threshold\": {\"2026-01-01.2028-12-31\": 41470.0}}", + "bundle": { + "bundle_id": "uk-5.0.1", + "country_id": "uk", + "policyengine_version": "5.0.1", + "model_package": "policyengine-uk", + "model_version": "2.89.2", + "data_package": "populace-data", + "data_version": "0.1.0", + "default_dataset": "populace_uk_2023", + "default_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_artifact_sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833", + "data_build_model_version": "2.89.2", + "data_build_model_git_sha": "None", + "data_build_fingerprint": "None", + "compatibility_basis": "exact_build_model_version", + "certified_by": "None", + "runtime_dataset": "populace_uk_2023", + "runtime_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "runtime_dataset_source": "/Users/maxghenis/.cache/huggingface/hub/datasets--policyengine--populace-uk-private/snapshots/a75a9a831d6b07aaffbd09713f2a1124f5c0f08f/populace_uk_2023.h5", + "managed_by": "policyengine.py" + }, + "aggregates_gbp": { + "income_tax": 414956034385.8568, + "national_insurance": 61450306465.09366, + "ni_employer": 185481157065.2179, + "child_benefit": 17434702263.490685, + "universal_credit": 39879827000.2447, + "vat": 219622883998.86896, + "household_net_income": 1798292944062.5166, + "gov_tax": 1039783137834.5403, + "gov_spending": 485655239297.94086 + } +} \ No newline at end of file diff --git a/sources/campaign-20260802/uk_runs/brl_1pct_2026.json b/sources/campaign-20260802/uk_runs/brl_1pct_2026.json new file mode 100644 index 0000000..57bc08a --- /dev/null +++ b/sources/campaign-20260802/uk_runs/brl_1pct_2026.json @@ -0,0 +1,40 @@ +{ + "reform_key": "brl_1pct", + "year": 2026, + "reform_hint": "Change basic rate limit by 1%", + "pe_construction": "gov.hmrc.income_tax.rates.uk[1].threshold: 37700 -> 38077.0", + "reform_json": "{\"gov.hmrc.income_tax.rates.uk[1].threshold\": {\"2026-01-01.2028-12-31\": 38077.0}}", + "bundle": { + "bundle_id": "uk-5.0.1", + "country_id": "uk", + "policyengine_version": "5.0.1", + "model_package": "policyengine-uk", + "model_version": "2.89.2", + "data_package": "populace-data", + "data_version": "0.1.0", + "default_dataset": "populace_uk_2023", + "default_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_artifact_sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833", + "data_build_model_version": "2.89.2", + "data_build_model_git_sha": "None", + "data_build_fingerprint": "None", + "compatibility_basis": "exact_build_model_version", + "certified_by": "None", + "runtime_dataset": "populace_uk_2023", + "runtime_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "runtime_dataset_source": "/Users/maxghenis/.cache/huggingface/hub/datasets--policyengine--populace-uk-private/snapshots/a75a9a831d6b07aaffbd09713f2a1124f5c0f08f/populace_uk_2023.h5", + "managed_by": "policyengine.py" + }, + "aggregates_gbp": { + "income_tax": 421166867195.18976, + "national_insurance": 61450306465.09366, + "ni_employer": 185481157065.2179, + "child_benefit": 17434702263.490685, + "universal_credit": 39886998063.102234, + "vat": 219622883998.86896, + "household_net_income": 1792012959460.6045, + "gov_tax": 1046070293965.8806, + "gov_spending": 485662410359.99927 + } +} \ No newline at end of file diff --git a/sources/campaign-20260802/uk_runs/cb_additional_1pw_2026.json b/sources/campaign-20260802/uk_runs/cb_additional_1pw_2026.json new file mode 100644 index 0000000..d9948f1 --- /dev/null +++ b/sources/campaign-20260802/uk_runs/cb_additional_1pw_2026.json @@ -0,0 +1,40 @@ +{ + "reform_key": "cb_additional_1pw", + "year": 2026, + "reform_hint": "Increase subsequent child rate by \u00a31 per week (Child Benefit)", + "pe_construction": "gov.hmrc.child_benefit.amount.additional: 17.9 -> 18.9", + "reform_json": "{\"gov.hmrc.child_benefit.amount.additional\": {\"2026-01-01.2028-12-31\": 18.9}}", + "bundle": { + "bundle_id": "uk-5.0.1", + "country_id": "uk", + "policyengine_version": "5.0.1", + "model_package": "policyengine-uk", + "model_version": "2.89.2", + "data_package": "populace-data", + "data_version": "0.1.0", + "default_dataset": "populace_uk_2023", + "default_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_artifact_sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833", + "data_build_model_version": "2.89.2", + "data_build_model_git_sha": "None", + "data_build_fingerprint": "None", + "compatibility_basis": "exact_build_model_version", + "certified_by": "None", + "runtime_dataset": "populace_uk_2023", + "runtime_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "runtime_dataset_source": "/Users/maxghenis/.cache/huggingface/hub/datasets--policyengine--populace-uk-private/snapshots/a75a9a831d6b07aaffbd09713f2a1124f5c0f08f/populace_uk_2023.h5", + "managed_by": "policyengine.py" + }, + "aggregates_gbp": { + "income_tax": 421963044332.5929, + "national_insurance": 61450306465.09366, + "ni_employer": 185481157065.2179, + "child_benefit": 17742594091.59945, + "universal_credit": 39876311217.78101, + "vat": 219622883998.86896, + "household_net_income": 1791503754495.7544, + "gov_tax": 1046875061471.4768, + "gov_spending": 485957972068.68146 + } +} \ No newline at end of file diff --git a/sources/campaign-20260802/uk_runs/cb_first_1pw_2026.json b/sources/campaign-20260802/uk_runs/cb_first_1pw_2026.json new file mode 100644 index 0000000..0d41383 --- /dev/null +++ b/sources/campaign-20260802/uk_runs/cb_first_1pw_2026.json @@ -0,0 +1,40 @@ +{ + "reform_key": "cb_first_1pw", + "year": 2026, + "reform_hint": "Increase first child rate by \u00a31 per week (Child Benefit)", + "pe_construction": "gov.hmrc.child_benefit.amount.eldest: 27.05 -> 28.05", + "reform_json": "{\"gov.hmrc.child_benefit.amount.eldest\": {\"2026-01-01.2028-12-31\": 28.05}}", + "bundle": { + "bundle_id": "uk-5.0.1", + "country_id": "uk", + "policyengine_version": "5.0.1", + "model_package": "policyengine-uk", + "model_version": "2.89.2", + "data_package": "populace-data", + "data_version": "0.1.0", + "default_dataset": "populace_uk_2023", + "default_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_artifact_sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833", + "data_build_model_version": "2.89.2", + "data_build_model_git_sha": "None", + "data_build_fingerprint": "None", + "compatibility_basis": "exact_build_model_version", + "certified_by": "None", + "runtime_dataset": "populace_uk_2023", + "runtime_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "runtime_dataset_source": "/Users/maxghenis/.cache/huggingface/hub/datasets--policyengine--populace-uk-private/snapshots/a75a9a831d6b07aaffbd09713f2a1124f5c0f08f/populace_uk_2023.h5", + "managed_by": "policyengine.py" + }, + "aggregates_gbp": { + "income_tax": 421998371267.27783, + "national_insurance": 61450306465.09366, + "ni_employer": 185481157065.2179, + "child_benefit": 17875496449.564846, + "universal_credit": 39877696638.711266, + "vat": 219622883998.86896, + "household_net_income": 1791603117233.8826, + "gov_tax": 1046910388375.8025, + "gov_spending": 486092662024.4314 + } +} \ No newline at end of file diff --git a/sources/campaign-20260802/uk_runs/class4_1pp_2026.json b/sources/campaign-20260802/uk_runs/class4_1pp_2026.json new file mode 100644 index 0000000..917363d --- /dev/null +++ b/sources/campaign-20260802/uk_runs/class4_1pp_2026.json @@ -0,0 +1,40 @@ +{ + "reform_key": "class4_1pp", + "year": 2026, + "reform_hint": "Change Class 4 main rate by 1 percentage point", + "pe_construction": "gov.hmrc.national_insurance.class_4.rates.main: 0.06 -> 0.06999999999999999", + "reform_json": "{\"gov.hmrc.national_insurance.class_4.rates.main\": {\"2026-01-01.2028-12-31\": 0.06999999999999999}}", + "bundle": { + "bundle_id": "uk-5.0.1", + "country_id": "uk", + "policyengine_version": "5.0.1", + "model_package": "policyengine-uk", + "model_version": "2.89.2", + "data_package": "populace-data", + "data_version": "0.1.0", + "default_dataset": "populace_uk_2023", + "default_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_artifact_sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833", + "data_build_model_version": "2.89.2", + "data_build_model_git_sha": "None", + "data_build_fingerprint": "None", + "compatibility_basis": "exact_build_model_version", + "certified_by": "None", + "runtime_dataset": "populace_uk_2023", + "runtime_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "runtime_dataset_source": "/Users/maxghenis/.cache/huggingface/hub/datasets--policyengine--populace-uk-private/snapshots/a75a9a831d6b07aaffbd09713f2a1124f5c0f08f/populace_uk_2023.h5", + "managed_by": "policyengine.py" + }, + "aggregates_gbp": { + "income_tax": 421891913533.19946, + "national_insurance": 62033845047.73435, + "ni_employer": 185481157065.2179, + "child_benefit": 17434702263.490685, + "universal_credit": 39895539839.215096, + "vat": 219622883998.86896, + "household_net_income": 1790704386445.0725, + "gov_tax": 1047387469094.1289, + "gov_spending": 485671012295.77014 + } +} \ No newline at end of file diff --git a/sources/campaign-20260802/uk_runs/dividend_allowance_100_2026.json b/sources/campaign-20260802/uk_runs/dividend_allowance_100_2026.json new file mode 100644 index 0000000..00c1660 --- /dev/null +++ b/sources/campaign-20260802/uk_runs/dividend_allowance_100_2026.json @@ -0,0 +1,40 @@ +{ + "reform_key": "dividend_allowance_100", + "year": 2026, + "reform_hint": "Change dividend allowance by \u00a3100", + "pe_construction": "gov.hmrc.income_tax.allowances.dividend_allowance: 500 -> 600", + "reform_json": "{\"gov.hmrc.income_tax.allowances.dividend_allowance\": {\"2026-01-01.2028-12-31\": 600}}", + "bundle": { + "bundle_id": "uk-5.0.1", + "country_id": "uk", + "policyengine_version": "5.0.1", + "model_package": "policyengine-uk", + "model_version": "2.89.2", + "data_package": "populace-data", + "data_version": "0.1.0", + "default_dataset": "populace_uk_2023", + "default_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_artifact_sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833", + "data_build_model_version": "2.89.2", + "data_build_model_git_sha": "None", + "data_build_fingerprint": "None", + "compatibility_basis": "exact_build_model_version", + "certified_by": "None", + "runtime_dataset": "populace_uk_2023", + "runtime_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "runtime_dataset_source": "/Users/maxghenis/.cache/huggingface/hub/datasets--policyengine--populace-uk-private/snapshots/a75a9a831d6b07aaffbd09713f2a1124f5c0f08f/populace_uk_2023.h5", + "managed_by": "policyengine.py" + }, + "aggregates_gbp": { + "income_tax": 421839136039.63904, + "national_insurance": 61450306465.09366, + "ni_employer": 185481157065.2179, + "child_benefit": 17434702263.490685, + "universal_credit": 39887583907.98256, + "vat": 219622883998.86896, + "household_net_income": 1791332109461.8525, + "gov_tax": 1046751153142.9175, + "gov_spending": 485662419548.0166 + } +} \ No newline at end of file diff --git a/sources/campaign-20260802/uk_runs/employee_additional_1pp_2026.json b/sources/campaign-20260802/uk_runs/employee_additional_1pp_2026.json new file mode 100644 index 0000000..13a4bd0 --- /dev/null +++ b/sources/campaign-20260802/uk_runs/employee_additional_1pp_2026.json @@ -0,0 +1,40 @@ +{ + "reform_key": "employee_additional_1pp", + "year": 2026, + "reform_hint": "Change Class 1 employee additional rate by 1 percentage point", + "pe_construction": "gov.hmrc.national_insurance.class_1.rates.employee.additional: 0.02 -> 0.03", + "reform_json": "{\"gov.hmrc.national_insurance.class_1.rates.employee.additional\": {\"2026-01-01.2028-12-31\": 0.03}}", + "bundle": { + "bundle_id": "uk-5.0.1", + "country_id": "uk", + "policyengine_version": "5.0.1", + "model_package": "policyengine-uk", + "model_version": "2.89.2", + "data_package": "populace-data", + "data_version": "0.1.0", + "default_dataset": "populace_uk_2023", + "default_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_artifact_sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833", + "data_build_model_version": "2.89.2", + "data_build_model_git_sha": "None", + "data_build_fingerprint": "None", + "compatibility_basis": "exact_build_model_version", + "certified_by": "None", + "runtime_dataset": "populace_uk_2023", + "runtime_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "runtime_dataset_source": "/Users/maxghenis/.cache/huggingface/hub/datasets--policyengine--populace-uk-private/snapshots/a75a9a831d6b07aaffbd09713f2a1124f5c0f08f/populace_uk_2023.h5", + "managed_by": "policyengine.py" + }, + "aggregates_gbp": { + "income_tax": 421891913533.19946, + "national_insurance": 65842185759.9592, + "ni_employer": 185481157065.2179, + "child_benefit": 17434702263.490685, + "universal_credit": 39888958441.26988, + "vat": 219622883998.86896, + "household_net_income": 1786889404491.035, + "gov_tax": 1051195806571.1741, + "gov_spending": 485664370731.6019 + } +} \ No newline at end of file diff --git a/sources/campaign-20260802/uk_runs/employee_ni_1pp_2026.json b/sources/campaign-20260802/uk_runs/employee_ni_1pp_2026.json new file mode 100644 index 0000000..85715de --- /dev/null +++ b/sources/campaign-20260802/uk_runs/employee_ni_1pp_2026.json @@ -0,0 +1,40 @@ +{ + "reform_key": "employee_ni_1pp", + "year": 2026, + "reform_hint": "Change Class 1 employee main rate by 1 percentage point", + "pe_construction": "gov.hmrc.national_insurance.class_1.rates.employee.main: 0.08 -> 0.09", + "reform_json": "{\"gov.hmrc.national_insurance.class_1.rates.employee.main\": {\"2026-01-01.2028-12-31\": 0.09}}", + "bundle": { + "bundle_id": "uk-5.0.1", + "country_id": "uk", + "policyengine_version": "5.0.1", + "model_package": "policyengine-uk", + "model_version": "2.89.2", + "data_package": "populace-data", + "data_version": "0.1.0", + "default_dataset": "populace_uk_2023", + "default_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_artifact_sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833", + "data_build_model_version": "2.89.2", + "data_build_model_git_sha": "None", + "data_build_fingerprint": "None", + "compatibility_basis": "exact_build_model_version", + "certified_by": "None", + "runtime_dataset": "populace_uk_2023", + "runtime_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "runtime_dataset_source": "/Users/maxghenis/.cache/huggingface/hub/datasets--policyengine--populace-uk-private/snapshots/a75a9a831d6b07aaffbd09713f2a1124f5c0f08f/populace_uk_2023.h5", + "managed_by": "policyengine.py" + }, + "aggregates_gbp": { + "income_tax": 421891913533.19946, + "national_insurance": 67484728237.42434, + "ni_employer": 185481157065.2179, + "child_benefit": 17434702263.490685, + "universal_credit": 39940166838.24085, + "vat": 219622883998.86896, + "household_net_income": 1785298660293.8418, + "gov_tax": 1052838353684.803, + "gov_spending": 485716169381.86334 + } +} \ No newline at end of file diff --git a/sources/campaign-20260802/uk_runs/employer_ni_1pp_2026.json b/sources/campaign-20260802/uk_runs/employer_ni_1pp_2026.json new file mode 100644 index 0000000..d678dab --- /dev/null +++ b/sources/campaign-20260802/uk_runs/employer_ni_1pp_2026.json @@ -0,0 +1,40 @@ +{ + "reform_key": "employer_ni_1pp", + "year": 2026, + "reform_hint": "Change Class 1 employer rate by 1 percentage point", + "pe_construction": "gov.hmrc.national_insurance.class_1.rates.employer: 0.15 -> 0.16", + "reform_json": "{\"gov.hmrc.national_insurance.class_1.rates.employer\": {\"2026-01-01.2028-12-31\": 0.16}}", + "bundle": { + "bundle_id": "uk-5.0.1", + "country_id": "uk", + "policyengine_version": "5.0.1", + "model_package": "policyengine-uk", + "model_version": "2.89.2", + "data_package": "populace-data", + "data_version": "0.1.0", + "default_dataset": "populace_uk_2023", + "default_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_artifact_sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833", + "data_build_model_version": "2.89.2", + "data_build_model_git_sha": "None", + "data_build_fingerprint": "None", + "compatibility_basis": "exact_build_model_version", + "certified_by": "None", + "runtime_dataset": "populace_uk_2023", + "runtime_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "runtime_dataset_source": "/Users/maxghenis/.cache/huggingface/hub/datasets--policyengine--populace-uk-private/snapshots/a75a9a831d6b07aaffbd09713f2a1124f5c0f08f/populace_uk_2023.h5", + "managed_by": "policyengine.py" + }, + "aggregates_gbp": { + "income_tax": 417874975062.0403, + "national_insurance": 61017427929.294205, + "ni_employer": 196141752167.8369, + "child_benefit": 17434702263.490685, + "universal_credit": 39943626683.16225, + "vat": 219622883998.86896, + "household_net_income": 1785041525354.8857, + "gov_tax": 1053012522819.1843, + "gov_spending": 485728107093.64154 + } +} \ No newline at end of file diff --git a/sources/campaign-20260802/uk_runs/fixed_line/with_limit_2026_meta.json b/sources/campaign-20260802/uk_runs/fixed_line/with_limit_2026_meta.json new file mode 100644 index 0000000..d0c4bc6 --- /dev/null +++ b/sources/campaign-20260802/uk_runs/fixed_line/with_limit_2026_meta.json @@ -0,0 +1,34 @@ +{ + "world": "with_limit", + "year": 2026, + "construction": "gov.dwp.universal_credit.elements.child.limit.child_count: inf -> 2 (reinstate; born-pre-2017 exemption active)", + "reform_json": "{\"gov.dwp.universal_credit.elements.child.limit.child_count\": {\"2026-01-01.2028-12-31\": 2}}", + "hbai_dependent_child_proxy": "is_child_or_qualifying_young_person_for_child_tax_credit: under-16 OR 16-19 qualifying young person in full-time non-advanced education, excl. looked-after children (closest installed analogue of the HBAI dependent-child definition)", + "bundle": { + "bundle_id": "uk-5.0.1", + "country_id": "uk", + "policyengine_version": "5.0.1", + "model_package": "policyengine-uk", + "model_version": "2.89.2", + "data_package": "populace-data", + "data_version": "0.1.0", + "default_dataset": "populace_uk_2023", + "default_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_artifact_sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833", + "data_build_model_version": "2.89.2", + "data_build_model_git_sha": "None", + "data_build_fingerprint": "None", + "compatibility_basis": "exact_build_model_version", + "certified_by": "None", + "runtime_dataset": "populace_uk_2023", + "runtime_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "runtime_dataset_source": "/Users/maxghenis/.cache/huggingface/hub/datasets--policyengine--populace-uk-private/snapshots/a75a9a831d6b07aaffbd09713f2a1124f5c0f08f/populace_uk_2023.h5", + "managed_by": "policyengine.py" + }, + "aggregates_gbp": { + "universal_credit": 38783589984.86714, + "household_net_income": 1790266784216.2012, + "gov_spending": 484560539496.0421 + } +} \ No newline at end of file diff --git a/sources/campaign-20260802/uk_runs/fixed_line/with_limit_fulltakeup_2026_meta.json b/sources/campaign-20260802/uk_runs/fixed_line/with_limit_fulltakeup_2026_meta.json new file mode 100644 index 0000000..0e6f1b0 --- /dev/null +++ b/sources/campaign-20260802/uk_runs/fixed_line/with_limit_fulltakeup_2026_meta.json @@ -0,0 +1,45 @@ +{ + "world": "with_limit", + "year": 2026, + "mode": "fulltakeup", + "forced_flags": [ + "would_claim_uc", + "would_claim_housing_benefit", + "would_claim_child_benefit", + "would_claim_council_tax_reduction", + "would_claim_CTC", + "would_claim_WTC", + "would_claim_IS", + "claims_all_entitled_benefits" + ], + "construction": "gov.dwp.universal_credit.elements.child.limit.child_count: inf -> 2 (reinstate; born-pre-2017 exemption active)", + "reform_json": "{\"gov.dwp.universal_credit.elements.child.limit.child_count\": {\"2026-01-01.2028-12-31\": 2}}", + "hbai_dependent_child_proxy": "is_child_or_qualifying_young_person_for_child_tax_credit: under-16 OR 16-19 qualifying young person in full-time non-advanced education, excl. looked-after children (closest installed analogue of the HBAI dependent-child definition)", + "bundle": { + "bundle_id": "uk-5.0.1", + "country_id": "uk", + "policyengine_version": "5.0.1", + "model_package": "policyengine-uk", + "model_version": "2.89.2", + "data_package": "populace-data", + "data_version": "0.1.0", + "default_dataset": "populace_uk_2023", + "default_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_artifact_sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833", + "data_build_model_version": "2.89.2", + "data_build_model_git_sha": "None", + "data_build_fingerprint": "None", + "compatibility_basis": "exact_build_model_version", + "certified_by": "None", + "runtime_dataset": "populace_uk_2023", + "runtime_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "runtime_dataset_source": "/Users/maxghenis/.cache/huggingface/hub/datasets--policyengine--populace-uk-private/snapshots/a75a9a831d6b07aaffbd09713f2a1124f5c0f08f/populace_uk_2023.h5", + "managed_by": "policyengine.py" + }, + "aggregates_gbp": { + "universal_credit": 53429818141.101036, + "household_net_income": 1803220878970.0093, + "gov_spending": 497880464939.9005 + } +} \ No newline at end of file diff --git a/sources/campaign-20260802/uk_runs/fixed_line/without_limit_2026_meta.json b/sources/campaign-20260802/uk_runs/fixed_line/without_limit_2026_meta.json new file mode 100644 index 0000000..38948e2 --- /dev/null +++ b/sources/campaign-20260802/uk_runs/fixed_line/without_limit_2026_meta.json @@ -0,0 +1,34 @@ +{ + "world": "without_limit", + "year": 2026, + "construction": "baseline (limit abolished in current law)", + "reform_json": "baseline", + "hbai_dependent_child_proxy": "is_child_or_qualifying_young_person_for_child_tax_credit: under-16 OR 16-19 qualifying young person in full-time non-advanced education, excl. looked-after children (closest installed analogue of the HBAI dependent-child definition)", + "bundle": { + "bundle_id": "uk-5.0.1", + "country_id": "uk", + "policyengine_version": "5.0.1", + "model_package": "policyengine-uk", + "model_version": "2.89.2", + "data_package": "populace-data", + "data_version": "0.1.0", + "default_dataset": "populace_uk_2023", + "default_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_artifact_sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833", + "data_build_model_version": "2.89.2", + "data_build_model_git_sha": "None", + "data_build_fingerprint": "None", + "compatibility_basis": "exact_build_model_version", + "certified_by": "None", + "runtime_dataset": "populace_uk_2023", + "runtime_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "runtime_dataset_source": "/Users/maxghenis/.cache/huggingface/hub/datasets--policyengine--populace-uk-private/snapshots/a75a9a831d6b07aaffbd09713f2a1124f5c0f08f/populace_uk_2023.h5", + "managed_by": "policyengine.py" + }, + "aggregates_gbp": { + "universal_credit": 39887838277.66961, + "household_net_income": 1791280163555.2764, + "gov_spending": 485663250574.56665 + } +} \ No newline at end of file diff --git a/sources/campaign-20260802/uk_runs/fixed_line/without_limit_fulltakeup_2026_meta.json b/sources/campaign-20260802/uk_runs/fixed_line/without_limit_fulltakeup_2026_meta.json new file mode 100644 index 0000000..1e5ad20 --- /dev/null +++ b/sources/campaign-20260802/uk_runs/fixed_line/without_limit_fulltakeup_2026_meta.json @@ -0,0 +1,45 @@ +{ + "world": "without_limit", + "year": 2026, + "mode": "fulltakeup", + "forced_flags": [ + "would_claim_uc", + "would_claim_housing_benefit", + "would_claim_child_benefit", + "would_claim_council_tax_reduction", + "would_claim_CTC", + "would_claim_WTC", + "would_claim_IS", + "claims_all_entitled_benefits" + ], + "construction": "baseline (limit abolished in current law)", + "reform_json": "baseline", + "hbai_dependent_child_proxy": "is_child_or_qualifying_young_person_for_child_tax_credit: under-16 OR 16-19 qualifying young person in full-time non-advanced education, excl. looked-after children (closest installed analogue of the HBAI dependent-child definition)", + "bundle": { + "bundle_id": "uk-5.0.1", + "country_id": "uk", + "policyengine_version": "5.0.1", + "model_package": "policyengine-uk", + "model_version": "2.89.2", + "data_package": "populace-data", + "data_version": "0.1.0", + "default_dataset": "populace_uk_2023", + "default_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_artifact_sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833", + "data_build_model_version": "2.89.2", + "data_build_model_git_sha": "None", + "data_build_fingerprint": "None", + "compatibility_basis": "exact_build_model_version", + "certified_by": "None", + "runtime_dataset": "populace_uk_2023", + "runtime_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "runtime_dataset_source": "/Users/maxghenis/.cache/huggingface/hub/datasets--policyengine--populace-uk-private/snapshots/a75a9a831d6b07aaffbd09713f2a1124f5c0f08f/populace_uk_2023.h5", + "managed_by": "policyengine.py" + }, + "aggregates_gbp": { + "universal_credit": 55279919145.339645, + "household_net_income": 1804948205172.6, + "gov_spending": 499729028736.36316 + } +} \ No newline at end of file diff --git a/sources/campaign-20260802/uk_runs/free_joins.csv b/sources/campaign-20260802/uk_runs/free_joins.csv new file mode 100644 index 0000000..3953177 --- /dev/null +++ b/sources/campaign-20260802/uk_runs/free_joins.csv @@ -0,0 +1,24 @@ +source,label,period,external_value,pe_value,ratio,pe_construction,conventions,status +uk_obr,Income tax (gross of tax credits),2026,359618867481.6865,421891913533.19946,1.1731640124657368,income_tax total,OBR/DWP fiscal year 2026-27 vs PE calendar 2026 (named delta); receipts/expenditure cash vs PE accrual entitlement/liability (named delta),computed +uk_obr,Pay as you earn,2026,296293048154.10803,,,,,"skipped: skip: PAYE is a collection channel, not a liability concept PE separates" +uk_obr,Self assessment,2026,64372729845.45013,,,,,skipped: skip: collection channel +uk_obr,National insurance contributions,2026,211594391642.42764,246931463530.31155,1.1670038209122284,national_insurance + ni_employer,OBR/DWP fiscal year 2026-27 vs PE calendar 2026 (named delta); receipts/expenditure cash vs PE accrual entitlement/liability (named delta),computed +uk_obr,Class 1 Employee NICs,2026,51474273325.11673,61450306465.09366,1.1938061966794031,national_insurance (employee+self-employed personal NI) — join also covers Class 4/2 row jointly; scope note,OBR/DWP fiscal year 2026-27 vs PE calendar 2026 (named delta); receipts/expenditure cash vs PE accrual entitlement/liability (named delta),computed +uk_obr,Class 1 Employer NICs,2026,150989275628.03833,185481157065.2179,1.2284392801655015,ni_employer total,OBR/DWP fiscal year 2026-27 vs PE calendar 2026 (named delta); receipts/expenditure cash vs PE accrual entitlement/liability (named delta),computed +uk_obr,Class 4 and Class 2 Self employed NICs,2026,3156842035.84375,,,,,skipped: joined jointly with Class 1 Employee row (PE national_insurance is combined personal NI) +uk_obr,Pay as you earn,2026,294158207190.2883,,,,,"skipped: skip: PAYE is a collection channel, not a liability concept PE separates" +uk_obr,Self assessment,2026,64372729845.45013,,,,,skipped: skip: collection channel +uk_obr,National insurance contributions,2026,210445437610.04147,246931463530.31155,1.173375228917432,national_insurance + ni_employer,OBR/DWP fiscal year 2026-27 vs PE calendar 2026 (named delta); receipts/expenditure cash vs PE accrual entitlement/liability (named delta),computed +uk_obr,Value added tax,2026,187704367258.10846,219622883998.86896,1.1700467453528665,vat total (household VAT incidence model),OBR/DWP fiscal year 2026-27 vs PE calendar 2026 (named delta); receipts/expenditure cash vs PE accrual entitlement/liability (named delta),computed +uk_obr,Fuel duties,2026,24628571426.324806,12976906953.47097,0.5269045747249599,fuel_duty total (household incidence share only — OBR head includes business use; scope note),OBR/DWP fiscal year 2026-27 vs PE calendar 2026 (named delta); receipts/expenditure cash vs PE accrual entitlement/liability (named delta),computed +uk_obr,Capital gains tax,2026,20801165202.018173,24243246083.18426,1.165475387928371,capital_gains_tax total,OBR/DWP fiscal year 2026-27 vs PE calendar 2026 (named delta); receipts/expenditure cash vs PE accrual entitlement/liability (named delta),computed +uk_obr,Council tax,2026,52761337186.675934,60083773529.38769,1.1387841312058506,council_tax total,OBR/DWP fiscal year 2026-27 vs PE calendar 2026 (named delta); receipts/expenditure cash vs PE accrual entitlement/liability (named delta),computed +uk_dwp,state_pension,2026,146071196250.36,145097022169.8143,0.9933308269833295,state_pension total,OBR/DWP fiscal year 2026-27 vs PE calendar 2026 (named delta); receipts/expenditure cash vs PE accrual entitlement/liability (named delta); geography gb vs PE UK (named delta),computed +uk_dwp,uc_and_equivalents,2026,92246901091.19,,,,,skipped: composite of UC + legacy equivalents; overlaps universal_credit row — skipped to avoid double-join +uk_dwp,universal_credit,2026,79208239139.54,39887838277.66961,0.5035819342909491,universal_credit total,OBR/DWP fiscal year 2026-27 vs PE calendar 2026 (named delta); receipts/expenditure cash vs PE accrual entitlement/liability (named delta); geography gb vs PE UK (named delta),computed +uk_dwp,pension_credit,2026,6144472389.48,5725827904.638691,0.9318664877462753,pension_credit total,OBR/DWP fiscal year 2026-27 vs PE calendar 2026 (named delta); receipts/expenditure cash vs PE accrual entitlement/liability (named delta); geography gb vs PE UK (named delta),computed +uk_dwp,dla,2026,8289471895.17,6342775060.054455,0.7651603311123087,dla total,OBR/DWP fiscal year 2026-27 vs PE calendar 2026 (named delta); receipts/expenditure cash vs PE accrual entitlement/liability (named delta); geography england_wales vs PE UK (named delta),computed +uk_dwp,pip,2026,28542217375.36,20593016304.099655,0.7214932194398199,pip total,OBR/DWP fiscal year 2026-27 vs PE calendar 2026 (named delta); receipts/expenditure cash vs PE accrual entitlement/liability (named delta); geography england_wales vs PE UK (named delta),computed +uk_dwp,attendance_allowance,2026,8497187075.07,4733056192.259981,0.5570144743719192,attendance_allowance total,OBR/DWP fiscal year 2026-27 vs PE calendar 2026 (named delta); receipts/expenditure cash vs PE accrual entitlement/liability (named delta); geography england_wales vs PE UK (named delta),computed +uk_dwp,child_benefit,2026,12945231644.37,17434702263.490685,1.3468049659098371,child_benefit total,OBR/DWP fiscal year 2026-27 vs PE calendar 2026 (named delta); receipts/expenditure cash vs PE accrual entitlement/liability (named delta); geography gb vs PE UK (named delta),computed +uk_dwp,personal_tax_credits,2026,-61742834.79,,,,,skipped: legacy tax credits ended April 2025; PE 2026 total ~0 by design — join skipped diff --git a/sources/campaign-20260802/uk_runs/free_joins_summary.json b/sources/campaign-20260802/uk_runs/free_joins_summary.json new file mode 100644 index 0000000..6a7bff6 --- /dev/null +++ b/sources/campaign-20260802/uk_runs/free_joins_summary.json @@ -0,0 +1,118 @@ +{ + "computed": 16, + "skipped": 7, + "rows": [ + { + "source": "uk_obr", + "label": "Income tax (gross of tax credits)", + "external_value": 359618867481.6865, + "pe_value": 421891913533.19946, + "ratio": 1.1731640124657368 + }, + { + "source": "uk_obr", + "label": "National insurance contributions", + "external_value": 211594391642.42764, + "pe_value": 246931463530.31155, + "ratio": 1.1670038209122284 + }, + { + "source": "uk_obr", + "label": "Class 1 Employee NICs", + "external_value": 51474273325.11673, + "pe_value": 61450306465.09366, + "ratio": 1.1938061966794031 + }, + { + "source": "uk_obr", + "label": "Class 1 Employer NICs", + "external_value": 150989275628.03833, + "pe_value": 185481157065.2179, + "ratio": 1.2284392801655015 + }, + { + "source": "uk_obr", + "label": "National insurance contributions", + "external_value": 210445437610.04147, + "pe_value": 246931463530.31155, + "ratio": 1.173375228917432 + }, + { + "source": "uk_obr", + "label": "Value added tax", + "external_value": 187704367258.10846, + "pe_value": 219622883998.86896, + "ratio": 1.1700467453528665 + }, + { + "source": "uk_obr", + "label": "Fuel duties", + "external_value": 24628571426.324806, + "pe_value": 12976906953.47097, + "ratio": 0.5269045747249599 + }, + { + "source": "uk_obr", + "label": "Capital gains tax", + "external_value": 20801165202.018173, + "pe_value": 24243246083.18426, + "ratio": 1.165475387928371 + }, + { + "source": "uk_obr", + "label": "Council tax", + "external_value": 52761337186.675934, + "pe_value": 60083773529.38769, + "ratio": 1.1387841312058506 + }, + { + "source": "uk_dwp", + "label": "state_pension", + "external_value": 146071196250.36, + "pe_value": 145097022169.8143, + "ratio": 0.9933308269833295 + }, + { + "source": "uk_dwp", + "label": "universal_credit", + "external_value": 79208239139.54, + "pe_value": 39887838277.66961, + "ratio": 0.5035819342909491 + }, + { + "source": "uk_dwp", + "label": "pension_credit", + "external_value": 6144472389.48, + "pe_value": 5725827904.638691, + "ratio": 0.9318664877462753 + }, + { + "source": "uk_dwp", + "label": "dla", + "external_value": 8289471895.17, + "pe_value": 6342775060.054455, + "ratio": 0.7651603311123087 + }, + { + "source": "uk_dwp", + "label": "pip", + "external_value": 28542217375.36, + "pe_value": 20593016304.099655, + "ratio": 0.7214932194398199 + }, + { + "source": "uk_dwp", + "label": "attendance_allowance", + "external_value": 8497187075.07, + "pe_value": 4733056192.259981, + "ratio": 0.5570144743719192 + }, + { + "source": "uk_dwp", + "label": "child_benefit", + "external_value": 12945231644.37, + "pe_value": 17434702263.490685, + "ratio": 1.3468049659098371 + } + ] +} \ No newline at end of file diff --git a/sources/campaign-20260802/uk_runs/higher_rate_1p_2026.json b/sources/campaign-20260802/uk_runs/higher_rate_1p_2026.json new file mode 100644 index 0000000..454a6ac --- /dev/null +++ b/sources/campaign-20260802/uk_runs/higher_rate_1p_2026.json @@ -0,0 +1,40 @@ +{ + "reform_key": "higher_rate_1p", + "year": 2026, + "reform_hint": "Change in higher rate by 1p", + "pe_construction": "gov.hmrc.income_tax.rates.uk[1].rate: 0.4 -> 0.41000000000000003", + "reform_json": "{\"gov.hmrc.income_tax.rates.uk[1].rate\": {\"2026-01-01.2028-12-31\": 0.41000000000000003}}", + "bundle": { + "bundle_id": "uk-5.0.1", + "country_id": "uk", + "policyengine_version": "5.0.1", + "model_package": "policyengine-uk", + "model_version": "2.89.2", + "data_package": "populace-data", + "data_version": "0.1.0", + "default_dataset": "populace_uk_2023", + "default_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_artifact_sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833", + "data_build_model_version": "2.89.2", + "data_build_model_git_sha": "None", + "data_build_fingerprint": "None", + "compatibility_basis": "exact_build_model_version", + "certified_by": "None", + "runtime_dataset": "populace_uk_2023", + "runtime_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "runtime_dataset_source": "/Users/maxghenis/.cache/huggingface/hub/datasets--policyengine--populace-uk-private/snapshots/a75a9a831d6b07aaffbd09713f2a1124f5c0f08f/populace_uk_2023.h5", + "managed_by": "policyengine.py" + }, + "aggregates_gbp": { + "income_tax": 425122001726.7472, + "national_insurance": 61450306465.09366, + "ni_employer": 185481157065.2179, + "child_benefit": 17434702263.490685, + "universal_credit": 39888830158.40607, + "vat": 219622883998.86896, + "household_net_income": 1788051065526.0142, + "gov_tax": 1050034016776.2913, + "gov_spending": 485664242455.3031 + } +} \ No newline at end of file diff --git a/sources/campaign-20260802/uk_runs/ni_lpl_104_2026.json b/sources/campaign-20260802/uk_runs/ni_lpl_104_2026.json new file mode 100644 index 0000000..137efba --- /dev/null +++ b/sources/campaign-20260802/uk_runs/ni_lpl_104_2026.json @@ -0,0 +1,40 @@ +{ + "reform_key": "ni_lpl_104", + "year": 2026, + "reform_hint": "Change lower profits limit by \u00a3104 per year", + "pe_construction": "gov.hmrc.national_insurance.class_4.thresholds.lower_profits_limit: 12570 -> 12674", + "reform_json": "{\"gov.hmrc.national_insurance.class_4.thresholds.lower_profits_limit\": {\"2026-01-01.2028-12-31\": 12674}}", + "bundle": { + "bundle_id": "uk-5.0.1", + "country_id": "uk", + "policyengine_version": "5.0.1", + "model_package": "policyengine-uk", + "model_version": "2.89.2", + "data_package": "populace-data", + "data_version": "0.1.0", + "default_dataset": "populace_uk_2023", + "default_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_artifact_sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833", + "data_build_model_version": "2.89.2", + "data_build_model_git_sha": "None", + "data_build_fingerprint": "None", + "compatibility_basis": "exact_build_model_version", + "certified_by": "None", + "runtime_dataset": "populace_uk_2023", + "runtime_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "runtime_dataset_source": "/Users/maxghenis/.cache/huggingface/hub/datasets--policyengine--populace-uk-private/snapshots/a75a9a831d6b07aaffbd09713f2a1124f5c0f08f/populace_uk_2023.h5", + "managed_by": "policyengine.py" + }, + "aggregates_gbp": { + "income_tax": 421891913533.19946, + "national_insurance": 61432802737.61227, + "ni_employer": 185481157065.2179, + "child_benefit": 17434702263.490685, + "universal_credit": 39887468519.522835, + "vat": 219622883998.86896, + "household_net_income": 1791297289957.8032, + "gov_tax": 1046786427292.1333, + "gov_spending": 485662874001.65283 + } +} \ No newline at end of file diff --git a/sources/campaign-20260802/uk_runs/ni_pt_2pw_2026.json b/sources/campaign-20260802/uk_runs/ni_pt_2pw_2026.json new file mode 100644 index 0000000..12226b7 --- /dev/null +++ b/sources/campaign-20260802/uk_runs/ni_pt_2pw_2026.json @@ -0,0 +1,40 @@ +{ + "reform_key": "ni_pt_2pw", + "year": 2026, + "reform_hint": "Change employee entry threshold by \u00a32 per week", + "pe_construction": "gov.hmrc.national_insurance.class_1.thresholds.primary_threshold: 241.73 -> 243.73", + "reform_json": "{\"gov.hmrc.national_insurance.class_1.thresholds.primary_threshold\": {\"2026-01-01.2028-12-31\": 243.73}}", + "bundle": { + "bundle_id": "uk-5.0.1", + "country_id": "uk", + "policyengine_version": "5.0.1", + "model_package": "policyengine-uk", + "model_version": "2.89.2", + "data_package": "populace-data", + "data_version": "0.1.0", + "default_dataset": "populace_uk_2023", + "default_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_artifact_sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833", + "data_build_model_version": "2.89.2", + "data_build_model_git_sha": "None", + "data_build_fingerprint": "None", + "compatibility_basis": "exact_build_model_version", + "certified_by": "None", + "runtime_dataset": "populace_uk_2023", + "runtime_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "runtime_dataset_source": "/Users/maxghenis/.cache/huggingface/hub/datasets--policyengine--populace-uk-private/snapshots/a75a9a831d6b07aaffbd09713f2a1124f5c0f08f/populace_uk_2023.h5", + "managed_by": "policyengine.py" + }, + "aggregates_gbp": { + "income_tax": 421891913533.19946, + "national_insurance": 61247412506.2825, + "ni_employer": 185481157065.2179, + "child_benefit": 17434702263.490685, + "universal_credit": 39884554264.69081, + "vat": 219622883998.86896, + "household_net_income": 1791479630711.484, + "gov_tax": 1046601034859.8083, + "gov_spending": 485659828356.7229 + } +} \ No newline at end of file diff --git a/sources/campaign-20260802/uk_runs/ni_st_2pw_2026.json b/sources/campaign-20260802/uk_runs/ni_st_2pw_2026.json new file mode 100644 index 0000000..ef64ada --- /dev/null +++ b/sources/campaign-20260802/uk_runs/ni_st_2pw_2026.json @@ -0,0 +1,40 @@ +{ + "reform_key": "ni_st_2pw", + "year": 2026, + "reform_hint": "Change employer threshold by \u00a32 per week", + "pe_construction": "gov.hmrc.national_insurance.class_1.thresholds.secondary_threshold: 96 -> 98", + "reform_json": "{\"gov.hmrc.national_insurance.class_1.thresholds.secondary_threshold\": {\"2026-01-01.2028-12-31\": 98}}", + "bundle": { + "bundle_id": "uk-5.0.1", + "country_id": "uk", + "policyengine_version": "5.0.1", + "model_package": "policyengine-uk", + "model_version": "2.89.2", + "data_package": "populace-data", + "data_version": "0.1.0", + "default_dataset": "populace_uk_2023", + "default_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_artifact_sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833", + "data_build_model_version": "2.89.2", + "data_build_model_git_sha": "None", + "data_build_fingerprint": "None", + "compatibility_basis": "exact_build_model_version", + "certified_by": "None", + "runtime_dataset": "populace_uk_2023", + "runtime_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "runtime_dataset_source": "/Users/maxghenis/.cache/huggingface/hub/datasets--policyengine--populace-uk-private/snapshots/a75a9a831d6b07aaffbd09713f2a1124f5c0f08f/populace_uk_2023.h5", + "managed_by": "policyengine.py" + }, + "aggregates_gbp": { + "income_tax": 421988745899.63025, + "national_insurance": 61470250117.390854, + "ni_employer": 185124471869.89862, + "child_benefit": 17434702263.490685, + "universal_credit": 39882152358.15605, + "vat": 219622883998.86896, + "household_net_income": 1791518553057.7065, + "gov_tax": 1046564131847.5134, + "gov_spending": 485657547200.1842 + } +} \ No newline at end of file diff --git a/sources/campaign-20260802/uk_runs/ni_uel_10pw_2026.json b/sources/campaign-20260802/uk_runs/ni_uel_10pw_2026.json new file mode 100644 index 0000000..273c914 --- /dev/null +++ b/sources/campaign-20260802/uk_runs/ni_uel_10pw_2026.json @@ -0,0 +1,40 @@ +{ + "reform_key": "ni_uel_10pw", + "year": 2026, + "reform_hint": "Change upper earnings limit by \u00a310 per week", + "pe_construction": "gov.hmrc.national_insurance.class_1.thresholds.upper_earnings_limit: 966.73 -> 976.73", + "reform_json": "{\"gov.hmrc.national_insurance.class_1.thresholds.upper_earnings_limit\": {\"2026-01-01.2028-12-31\": 976.73}}", + "bundle": { + "bundle_id": "uk-5.0.1", + "country_id": "uk", + "policyengine_version": "5.0.1", + "model_package": "policyengine-uk", + "model_version": "2.89.2", + "data_package": "populace-data", + "data_version": "0.1.0", + "default_dataset": "populace_uk_2023", + "default_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_artifact_sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833", + "data_build_model_version": "2.89.2", + "data_build_model_git_sha": "None", + "data_build_fingerprint": "None", + "compatibility_basis": "exact_build_model_version", + "certified_by": "None", + "runtime_dataset": "populace_uk_2023", + "runtime_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "runtime_dataset_source": "/Users/maxghenis/.cache/huggingface/hub/datasets--policyengine--populace-uk-private/snapshots/a75a9a831d6b07aaffbd09713f2a1124f5c0f08f/populace_uk_2023.h5", + "managed_by": "policyengine.py" + }, + "aggregates_gbp": { + "income_tax": 421891913533.19946, + "national_insurance": 61698340326.92478, + "ni_employer": 185481157065.2179, + "child_benefit": 17434702263.490685, + "universal_credit": 39888279664.24094, + "vat": 219622883998.86896, + "household_net_income": 1791032569936.045, + "gov_tax": 1047051964774.6648, + "gov_spending": 485663691957.69104 + } +} \ No newline at end of file diff --git a/sources/campaign-20260802/uk_runs/ni_upl_520_2026.json b/sources/campaign-20260802/uk_runs/ni_upl_520_2026.json new file mode 100644 index 0000000..f595517 --- /dev/null +++ b/sources/campaign-20260802/uk_runs/ni_upl_520_2026.json @@ -0,0 +1,40 @@ +{ + "reform_key": "ni_upl_520", + "year": 2026, + "reform_hint": "Change upper profits limit by \u00a3520 per year", + "pe_construction": "gov.hmrc.national_insurance.class_4.thresholds.upper_profits_limit: 50270 -> 50790", + "reform_json": "{\"gov.hmrc.national_insurance.class_4.thresholds.upper_profits_limit\": {\"2026-01-01.2028-12-31\": 50790}}", + "bundle": { + "bundle_id": "uk-5.0.1", + "country_id": "uk", + "policyengine_version": "5.0.1", + "model_package": "policyengine-uk", + "model_version": "2.89.2", + "data_package": "populace-data", + "data_version": "0.1.0", + "default_dataset": "populace_uk_2023", + "default_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_artifact_sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833", + "data_build_model_version": "2.89.2", + "data_build_model_git_sha": "None", + "data_build_fingerprint": "None", + "compatibility_basis": "exact_build_model_version", + "certified_by": "None", + "runtime_dataset": "populace_uk_2023", + "runtime_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "runtime_dataset_source": "/Users/maxghenis/.cache/huggingface/hub/datasets--policyengine--populace-uk-private/snapshots/a75a9a831d6b07aaffbd09713f2a1124f5c0f08f/populace_uk_2023.h5", + "managed_by": "policyengine.py" + }, + "aggregates_gbp": { + "income_tax": 421891913533.19946, + "national_insurance": 61465511136.82886, + "ni_employer": 185481157065.2179, + "child_benefit": 17434702263.490685, + "universal_credit": 39887906318.899765, + "vat": 219622883998.86896, + "household_net_income": 1791265026916.7566, + "gov_tax": 1046819135514.6714, + "gov_spending": 485663318615.7969 + } +} \ No newline at end of file diff --git a/sources/campaign-20260802/uk_runs/obr_measures/art_as2022_2026.json b/sources/campaign-20260802/uk_runs/obr_measures/art_as2022_2026.json new file mode 100644 index 0000000..096f731 --- /dev/null +++ b/sources/campaign-20260802/uk_runs/obr_measures/art_as2022_2026.json @@ -0,0 +1,47 @@ +{ + "key": "art_as2022", + "year": 2026, + "measure_reversed": "Additional-rate threshold 150k -> 125,140 (AS2022) \u2014 REVERSED", + "pe_construction": "gov.hmrc.income_tax.rates.uk[2].threshold: 125140.0 -> 150000", + "reform_json": "{\"gov.hmrc.income_tax.rates.uk[2].threshold\": {\"2026-01-01.2028-12-31\": 150000}}", + "baseline_for_delta": "results/uk/baseline_2026.json", + "conventions": [ + "PE measure effect = MINUS the (this - baseline) delta", + "OBR costing scored vs OBR announcement-time baseline w/ behavioural adjustments; this is the parametric content on the certified 2026 world (baseline-vintage delta, named)", + "PE calendar-year vs OBR fiscal-year (named)" + ], + "bundle": { + "bundle_id": "uk-5.0.1", + "country_id": "uk", + "policyengine_version": "5.0.1", + "model_package": "policyengine-uk", + "model_version": "2.89.2", + "data_package": "populace-data", + "data_version": "0.1.0", + "default_dataset": "populace_uk_2023", + "default_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_artifact_sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833", + "data_build_model_version": "2.89.2", + "data_build_model_git_sha": "None", + "data_build_fingerprint": "None", + "compatibility_basis": "exact_build_model_version", + "certified_by": "None", + "runtime_dataset": "populace_uk_2023", + "runtime_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "runtime_dataset_source": "/Users/maxghenis/.cache/huggingface/hub/datasets--policyengine--populace-uk-private/snapshots/a75a9a831d6b07aaffbd09713f2a1124f5c0f08f/populace_uk_2023.h5", + "managed_by": "policyengine.py" + }, + "aggregates_gbp": { + "income_tax": 420104649997.17816, + "national_insurance": 61450306465.09366, + "ni_employer": 185481157065.2179, + "child_benefit": 17434702263.490685, + "universal_credit": 39887838277.66961, + "vat": 219622883998.86896, + "capital_gains_tax": 24243246317.39654, + "household_net_income": 1793067423736.099, + "gov_tax": 1045016665180.2018, + "gov_spending": 485663250574.56665 + } +} \ No newline at end of file diff --git a/sources/campaign-20260802/uk_runs/obr_measures/cgt_ab2024_2026.json b/sources/campaign-20260802/uk_runs/obr_measures/cgt_ab2024_2026.json new file mode 100644 index 0000000..0da6f55 --- /dev/null +++ b/sources/campaign-20260802/uk_runs/obr_measures/cgt_ab2024_2026.json @@ -0,0 +1,47 @@ +{ + "key": "cgt_ab2024", + "year": 2026, + "measure_reversed": "CGT main rates to 18%/24% (AB2024) \u2014 REVERSED to 10%/20%", + "pe_construction": "gov.hmrc.cgt.basic_rate: 0.18 -> 0.10; gov.hmrc.cgt.higher_rate: 0.24 -> 0.20", + "reform_json": "{\"gov.hmrc.cgt.basic_rate\": {\"2026-01-01.2028-12-31\": 0.1}, \"gov.hmrc.cgt.higher_rate\": {\"2026-01-01.2028-12-31\": 0.2}}", + "baseline_for_delta": "results/uk/baseline_2026.json", + "conventions": [ + "PE measure effect = MINUS the (this - baseline) delta", + "OBR costing scored vs OBR announcement-time baseline w/ behavioural adjustments; this is the parametric content on the certified 2026 world (baseline-vintage delta, named)", + "PE calendar-year vs OBR fiscal-year (named)" + ], + "bundle": { + "bundle_id": "uk-5.0.1", + "country_id": "uk", + "policyengine_version": "5.0.1", + "model_package": "policyengine-uk", + "model_version": "2.89.2", + "data_package": "populace-data", + "data_version": "0.1.0", + "default_dataset": "populace_uk_2023", + "default_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_artifact_sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833", + "data_build_model_version": "2.89.2", + "data_build_model_git_sha": "None", + "data_build_fingerprint": "None", + "compatibility_basis": "exact_build_model_version", + "certified_by": "None", + "runtime_dataset": "populace_uk_2023", + "runtime_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "runtime_dataset_source": "/Users/maxghenis/.cache/huggingface/hub/datasets--policyengine--populace-uk-private/snapshots/a75a9a831d6b07aaffbd09713f2a1124f5c0f08f/populace_uk_2023.h5", + "managed_by": "policyengine.py" + }, + "aggregates_gbp": { + "income_tax": 421891913533.19946, + "national_insurance": 61450306465.09366, + "ni_employer": 185481157065.2179, + "child_benefit": 17434702263.490685, + "universal_credit": 39887838277.66961, + "vat": 219622883998.86896, + "capital_gains_tax": 21410681957.39096, + "household_net_income": 1794112726617.4487, + "gov_tax": 1043971365921.0344, + "gov_spending": 485663250574.56665 + } +} \ No newline at end of file diff --git a/sources/campaign-20260802/uk_runs/obr_measures/class2_reinstate_2026.json b/sources/campaign-20260802/uk_runs/obr_measures/class2_reinstate_2026.json new file mode 100644 index 0000000..1642c56 --- /dev/null +++ b/sources/campaign-20260802/uk_runs/obr_measures/class2_reinstate_2026.json @@ -0,0 +1,47 @@ +{ + "key": "class2_reinstate", + "year": 2026, + "measure_reversed": "Class 2 NICs abolition (AS2023) \u2014 REVERSED (flat rate reinstated)", + "pe_construction": "gov.hmrc.national_insurance.class_2.flat_rate: 0.0 -> 3.15 (tree's own 2023 value)", + "reform_json": "{\"gov.hmrc.national_insurance.class_2.flat_rate\": {\"2026-01-01.2028-12-31\": 3.15}}", + "baseline_for_delta": "results/uk/baseline_2026.json", + "conventions": [ + "PE measure effect = MINUS the (this - baseline) delta", + "OBR costing scored vs OBR announcement-time baseline w/ behavioural adjustments; this is the parametric content on the certified 2026 world (baseline-vintage delta, named)", + "PE calendar-year vs OBR fiscal-year (named)" + ], + "bundle": { + "bundle_id": "uk-5.0.1", + "country_id": "uk", + "policyengine_version": "5.0.1", + "model_package": "policyengine-uk", + "model_version": "2.89.2", + "data_package": "populace-data", + "data_version": "0.1.0", + "default_dataset": "populace_uk_2023", + "default_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_artifact_sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833", + "data_build_model_version": "2.89.2", + "data_build_model_git_sha": "None", + "data_build_fingerprint": "None", + "compatibility_basis": "exact_build_model_version", + "certified_by": "None", + "runtime_dataset": "populace_uk_2023", + "runtime_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "runtime_dataset_source": "/Users/maxghenis/.cache/huggingface/hub/datasets--policyengine--populace-uk-private/snapshots/a75a9a831d6b07aaffbd09713f2a1124f5c0f08f/populace_uk_2023.h5", + "managed_by": "policyengine.py" + }, + "aggregates_gbp": { + "income_tax": 421891913533.19946, + "national_insurance": 62013334079.32899, + "ni_employer": 185481157065.2179, + "child_benefit": 17434702263.490685, + "universal_credit": 39900585645.060844, + "vat": 219622883998.86896, + "capital_gains_tax": 24243246083.18426, + "household_net_income": 1790730061170.91, + "gov_tax": 1047366958222.5403, + "gov_spending": 485676176862.0828 + } +} \ No newline at end of file diff --git a/sources/campaign-20260802/uk_runs/obr_measures/class4_p3_2026.json b/sources/campaign-20260802/uk_runs/obr_measures/class4_p3_2026.json new file mode 100644 index 0000000..bb97160 --- /dev/null +++ b/sources/campaign-20260802/uk_runs/obr_measures/class4_p3_2026.json @@ -0,0 +1,47 @@ +{ + "key": "class4_p3", + "year": 2026, + "measure_reversed": "Class 4 main-rate cuts AS2023 (1p) + SB2024 (2p) \u2014 stack REVERSED", + "pe_construction": "gov.hmrc.national_insurance.class_4.rates.main: 0.06 -> 0.09", + "reform_json": "{\"gov.hmrc.national_insurance.class_4.rates.main\": {\"2026-01-01.2028-12-31\": 0.09}}", + "baseline_for_delta": "results/uk/baseline_2026.json", + "conventions": [ + "PE measure effect = MINUS the (this - baseline) delta", + "OBR costing scored vs OBR announcement-time baseline w/ behavioural adjustments; this is the parametric content on the certified 2026 world (baseline-vintage delta, named)", + "PE calendar-year vs OBR fiscal-year (named)" + ], + "bundle": { + "bundle_id": "uk-5.0.1", + "country_id": "uk", + "policyengine_version": "5.0.1", + "model_package": "policyengine-uk", + "model_version": "2.89.2", + "data_package": "populace-data", + "data_version": "0.1.0", + "default_dataset": "populace_uk_2023", + "default_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_artifact_sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833", + "data_build_model_version": "2.89.2", + "data_build_model_git_sha": "None", + "data_build_fingerprint": "None", + "compatibility_basis": "exact_build_model_version", + "certified_by": "None", + "runtime_dataset": "populace_uk_2023", + "runtime_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "runtime_dataset_source": "/Users/maxghenis/.cache/huggingface/hub/datasets--policyengine--populace-uk-private/snapshots/a75a9a831d6b07aaffbd09713f2a1124f5c0f08f/populace_uk_2023.h5", + "managed_by": "policyengine.py" + }, + "aggregates_gbp": { + "income_tax": 421891913533.19946, + "national_insurance": 63205745904.51386, + "ni_employer": 185481157065.2179, + "child_benefit": 17434702263.490685, + "universal_credit": 39911053876.13027, + "vat": 219622883998.86896, + "capital_gains_tax": 24243246083.18426, + "household_net_income": 1789548119692.3872, + "gov_tax": 1048559369647.7144, + "gov_spending": 485686646684.7969 + } +} \ No newline at end of file diff --git a/sources/campaign-20260802/uk_runs/obr_measures/div_ab2021_2026.json b/sources/campaign-20260802/uk_runs/obr_measures/div_ab2021_2026.json new file mode 100644 index 0000000..9071ca9 --- /dev/null +++ b/sources/campaign-20260802/uk_runs/obr_measures/div_ab2021_2026.json @@ -0,0 +1,47 @@ +{ + "key": "div_ab2021", + "year": 2026, + "measure_reversed": "Dividend rates +1.25pp all bands (AB2021) \u2014 REVERSED (delta on current)", + "pe_construction": "gov.hmrc.income_tax.rates.dividends[0].rate: 0.1075 -> 0.09500; gov.hmrc.income_tax.rates.dividends[1].rate: 0.3575 -> 0.34500; gov.hmrc.income_tax.rates.dividends[2].rate: 0.3935 -> 0.38100", + "reform_json": "{\"gov.hmrc.income_tax.rates.dividends[0].rate\": {\"2026-01-01.2028-12-31\": 0.095}, \"gov.hmrc.income_tax.rates.dividends[1].rate\": {\"2026-01-01.2028-12-31\": 0.345}, \"gov.hmrc.income_tax.rates.dividends[2].rate\": {\"2026-01-01.2028-12-31\": 0.381}}", + "baseline_for_delta": "results/uk/baseline_2026.json", + "conventions": [ + "PE measure effect = MINUS the (this - baseline) delta", + "OBR costing scored vs OBR announcement-time baseline w/ behavioural adjustments; this is the parametric content on the certified 2026 world (baseline-vintage delta, named)", + "PE calendar-year vs OBR fiscal-year (named)" + ], + "bundle": { + "bundle_id": "uk-5.0.1", + "country_id": "uk", + "policyengine_version": "5.0.1", + "model_package": "policyengine-uk", + "model_version": "2.89.2", + "data_package": "populace-data", + "data_version": "0.1.0", + "default_dataset": "populace_uk_2023", + "default_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_artifact_sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833", + "data_build_model_version": "2.89.2", + "data_build_model_git_sha": "None", + "data_build_fingerprint": "None", + "compatibility_basis": "exact_build_model_version", + "certified_by": "None", + "runtime_dataset": "populace_uk_2023", + "runtime_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "runtime_dataset_source": "/Users/maxghenis/.cache/huggingface/hub/datasets--policyengine--populace-uk-private/snapshots/a75a9a831d6b07aaffbd09713f2a1124f5c0f08f/populace_uk_2023.h5", + "managed_by": "policyengine.py" + }, + "aggregates_gbp": { + "income_tax": 421272389086.94073, + "national_insurance": 61450306465.09366, + "ni_employer": 185481157065.2179, + "child_benefit": 17434702263.490685, + "universal_credit": 39882748479.54425, + "vat": 219622883998.86896, + "capital_gains_tax": 24243246083.18426, + "household_net_income": 1791884765455.082, + "gov_tax": 1046184946709.1343, + "gov_spending": 485648868498.1245 + } +} \ No newline at end of file diff --git a/sources/campaign-20260802/uk_runs/obr_measures/ee_ni_p2_2026.json b/sources/campaign-20260802/uk_runs/obr_measures/ee_ni_p2_2026.json new file mode 100644 index 0000000..968ea16 --- /dev/null +++ b/sources/campaign-20260802/uk_runs/obr_measures/ee_ni_p2_2026.json @@ -0,0 +1,47 @@ +{ + "key": "ee_ni_p2", + "year": 2026, + "measure_reversed": "Class 1 employee main rate cut(s) \u2014 REVERSED by 2pp", + "pe_construction": "gov.hmrc.national_insurance.class_1.rates.employee.main: 0.08 -> 0.1", + "reform_json": "{\"gov.hmrc.national_insurance.class_1.rates.employee.main\": {\"2026-01-01.2028-12-31\": 0.1}}", + "baseline_for_delta": "results/uk/baseline_2026.json", + "conventions": [ + "PE measure effect = MINUS the (this - baseline) delta", + "OBR costing scored vs OBR announcement-time baseline w/ behavioural adjustments; this is the parametric content on the certified 2026 world (baseline-vintage delta, named)", + "PE calendar-year vs OBR fiscal-year (named)" + ], + "bundle": { + "bundle_id": "uk-5.0.1", + "country_id": "uk", + "policyengine_version": "5.0.1", + "model_package": "policyengine-uk", + "model_version": "2.89.2", + "data_package": "populace-data", + "data_version": "0.1.0", + "default_dataset": "populace_uk_2023", + "default_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_artifact_sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833", + "data_build_model_version": "2.89.2", + "data_build_model_git_sha": "None", + "data_build_fingerprint": "None", + "compatibility_basis": "exact_build_model_version", + "certified_by": "None", + "runtime_dataset": "populace_uk_2023", + "runtime_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "runtime_dataset_source": "/Users/maxghenis/.cache/huggingface/hub/datasets--policyengine--populace-uk-private/snapshots/a75a9a831d6b07aaffbd09713f2a1124f5c0f08f/populace_uk_2023.h5", + "managed_by": "policyengine.py" + }, + "aggregates_gbp": { + "income_tax": 421891913533.19946, + "national_insurance": 73520380112.52252, + "ni_employer": 185481157065.2179, + "child_benefit": 17434702263.490685, + "universal_credit": 39992516908.41095, + "vat": 219622883998.86896, + "capital_gains_tax": 24243246083.18426, + "household_net_income": 1779315955619.5928, + "gov_tax": 1058874002645.786, + "gov_spending": 485769116124.35004 + } +} \ No newline at end of file diff --git a/sources/campaign-20260802/uk_runs/obr_measures/ee_ni_p4_2026.json b/sources/campaign-20260802/uk_runs/obr_measures/ee_ni_p4_2026.json new file mode 100644 index 0000000..830bf27 --- /dev/null +++ b/sources/campaign-20260802/uk_runs/obr_measures/ee_ni_p4_2026.json @@ -0,0 +1,47 @@ +{ + "key": "ee_ni_p4", + "year": 2026, + "measure_reversed": "Class 1 employee main rate cut(s) \u2014 REVERSED by 4pp", + "pe_construction": "gov.hmrc.national_insurance.class_1.rates.employee.main: 0.08 -> 0.12", + "reform_json": "{\"gov.hmrc.national_insurance.class_1.rates.employee.main\": {\"2026-01-01.2028-12-31\": 0.12}}", + "baseline_for_delta": "results/uk/baseline_2026.json", + "conventions": [ + "PE measure effect = MINUS the (this - baseline) delta", + "OBR costing scored vs OBR announcement-time baseline w/ behavioural adjustments; this is the parametric content on the certified 2026 world (baseline-vintage delta, named)", + "PE calendar-year vs OBR fiscal-year (named)" + ], + "bundle": { + "bundle_id": "uk-5.0.1", + "country_id": "uk", + "policyengine_version": "5.0.1", + "model_package": "policyengine-uk", + "model_version": "2.89.2", + "data_package": "populace-data", + "data_version": "0.1.0", + "default_dataset": "populace_uk_2023", + "default_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_artifact_sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833", + "data_build_model_version": "2.89.2", + "data_build_model_git_sha": "None", + "data_build_fingerprint": "None", + "compatibility_basis": "exact_build_model_version", + "certified_by": "None", + "runtime_dataset": "populace_uk_2023", + "runtime_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "runtime_dataset_source": "/Users/maxghenis/.cache/huggingface/hub/datasets--policyengine--populace-uk-private/snapshots/a75a9a831d6b07aaffbd09713f2a1124f5c0f08f/populace_uk_2023.h5", + "managed_by": "policyengine.py" + }, + "aggregates_gbp": { + "income_tax": 421891913533.19946, + "national_insurance": 85592349113.85391, + "ni_employer": 185481157065.2179, + "child_benefit": 17434702263.490685, + "universal_credit": 40101606891.22583, + "vat": 219622883998.86896, + "capital_gains_tax": 24243246083.18426, + "household_net_income": 1767369576006.7651, + "gov_tax": 1070945974252.863, + "gov_spending": 485894705385.7301 + } +} \ No newline at end of file diff --git a/sources/campaign-20260802/uk_runs/obr_measures/employer_ab2024_2026.json b/sources/campaign-20260802/uk_runs/obr_measures/employer_ab2024_2026.json new file mode 100644 index 0000000..477d556 --- /dev/null +++ b/sources/campaign-20260802/uk_runs/obr_measures/employer_ab2024_2026.json @@ -0,0 +1,47 @@ +{ + "key": "employer_ab2024", + "year": 2026, + "measure_reversed": "Employer NICs: rate +1.2pp to 15% + secondary threshold cut (AB2024) \u2014 REVERSED", + "pe_construction": "gov.hmrc.national_insurance.class_1.rates.employer: 0.15 -> 0.138; gov.hmrc.national_insurance.class_1.thresholds.secondary_threshold: 96.0 -> 175.0/wk (tree's own 2024 value)", + "reform_json": "{\"gov.hmrc.national_insurance.class_1.rates.employer\": {\"2026-01-01.2028-12-31\": 0.138}, \"gov.hmrc.national_insurance.class_1.thresholds.secondary_threshold\": {\"2026-01-01.2028-12-31\": 175.0}}", + "baseline_for_delta": "results/uk/baseline_2026.json", + "conventions": [ + "PE measure effect = MINUS the (this - baseline) delta", + "OBR costing scored vs OBR announcement-time baseline w/ behavioural adjustments; this is the parametric content on the certified 2026 world (baseline-vintage delta, named)", + "PE calendar-year vs OBR fiscal-year (named)" + ], + "bundle": { + "bundle_id": "uk-5.0.1", + "country_id": "uk", + "policyengine_version": "5.0.1", + "model_package": "policyengine-uk", + "model_version": "2.89.2", + "data_package": "populace-data", + "data_version": "0.1.0", + "default_dataset": "populace_uk_2023", + "default_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_artifact_sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833", + "data_build_model_version": "2.89.2", + "data_build_model_git_sha": "None", + "data_build_fingerprint": "None", + "compatibility_basis": "exact_build_model_version", + "certified_by": "None", + "runtime_dataset": "populace_uk_2023", + "runtime_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "runtime_dataset_source": "/Users/maxghenis/.cache/huggingface/hub/datasets--policyengine--populace-uk-private/snapshots/a75a9a831d6b07aaffbd09713f2a1124f5c0f08f/populace_uk_2023.h5", + "managed_by": "policyengine.py" + }, + "aggregates_gbp": { + "income_tax": 430399651067.8789, + "national_insurance": 62709891794.52179, + "ni_employer": 159467146858.90506, + "child_benefit": 17434702263.490685, + "universal_credit": 39637259173.23514, + "vat": 219622883998.86896, + "capital_gains_tax": 24249848830.99111, + "household_net_income": 1807673173103.146, + "gov_tax": 1030563846566.1243, + "gov_spending": 485421261970.1781 + } +} \ No newline at end of file diff --git a/sources/campaign-20260802/uk_runs/obr_measures/hicbc_sb2024_2026.json b/sources/campaign-20260802/uk_runs/obr_measures/hicbc_sb2024_2026.json new file mode 100644 index 0000000..356dd00 --- /dev/null +++ b/sources/campaign-20260802/uk_runs/obr_measures/hicbc_sb2024_2026.json @@ -0,0 +1,47 @@ +{ + "key": "hicbc_sb2024", + "year": 2026, + "measure_reversed": "HICBC: increase threshold to \u00a360,000 and taper to \u00a380,000 (SB2024) \u2014 REVERSED", + "pe_construction": "phase_out 60k/80k -> 50k/60k (pre-SB2024 statute values from tree history)", + "reform_json": "{\"gov.hmrc.income_tax.charges.CB_HITC.phase_out_start\": {\"2026-01-01.2028-12-31\": 50000}, \"gov.hmrc.income_tax.charges.CB_HITC.phase_out_end\": {\"2026-01-01.2028-12-31\": 60000}}", + "baseline_for_delta": "results/uk/baseline_2026.json", + "conventions": [ + "PE measure effect = MINUS the (this - baseline) delta", + "OBR costing scored vs OBR announcement-time baseline w/ behavioural adjustments; this is the parametric content on the certified 2026 world (baseline-vintage delta, named)", + "PE calendar-year vs OBR fiscal-year (named)" + ], + "bundle": { + "bundle_id": "uk-5.0.1", + "country_id": "uk", + "policyengine_version": "5.0.1", + "model_package": "policyengine-uk", + "model_version": "2.89.2", + "data_package": "populace-data", + "data_version": "0.1.0", + "default_dataset": "populace_uk_2023", + "default_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_artifact_sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833", + "data_build_model_version": "2.89.2", + "data_build_model_git_sha": "None", + "data_build_fingerprint": "None", + "compatibility_basis": "exact_build_model_version", + "certified_by": "None", + "runtime_dataset": "populace_uk_2023", + "runtime_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "runtime_dataset_source": "/Users/maxghenis/.cache/huggingface/hub/datasets--policyengine--populace-uk-private/snapshots/a75a9a831d6b07aaffbd09713f2a1124f5c0f08f/populace_uk_2023.h5", + "managed_by": "policyengine.py" + }, + "aggregates_gbp": { + "income_tax": 423612542977.2704, + "national_insurance": 61450306465.09366, + "ni_employer": 185481157065.2179, + "child_benefit": 17434702263.490685, + "universal_credit": 39901915135.473785, + "vat": 219622883998.86896, + "capital_gains_tax": 24243246083.18426, + "household_net_income": 1789573611412.6536, + "gov_tax": 1048524559951.2327, + "gov_spending": 485677327428.61584 + } +} \ No newline at end of file diff --git a/sources/campaign-20260802/uk_runs/obr_measures/pt_lpl_ss2022_2026.json b/sources/campaign-20260802/uk_runs/obr_measures/pt_lpl_ss2022_2026.json new file mode 100644 index 0000000..a3c94c9 --- /dev/null +++ b/sources/campaign-20260802/uk_runs/obr_measures/pt_lpl_ss2022_2026.json @@ -0,0 +1,47 @@ +{ + "key": "pt_lpl_ss2022", + "year": 2026, + "measure_reversed": "NI PT & LPL alignment to PA (SS2022) \u2014 REVERSED by the \u00a32,690 announcement-vintage gap (LOW CONFIDENCE: counterfactual uprating path unknowable parametrically)", + "pe_construction": "gov.hmrc.national_insurance.class_1.thresholds.primary_threshold: 241.73 -> 190.00/wk; gov.hmrc.national_insurance.class_4.thresholds.lower_profits_limit: 12570.0 -> 9880.0", + "reform_json": "{\"gov.hmrc.national_insurance.class_1.thresholds.primary_threshold\": {\"2026-01-01.2028-12-31\": 189.99923076923076}, \"gov.hmrc.national_insurance.class_4.thresholds.lower_profits_limit\": {\"2026-01-01.2028-12-31\": 9880.0}}", + "baseline_for_delta": "results/uk/baseline_2026.json", + "conventions": [ + "PE measure effect = MINUS the (this - baseline) delta", + "OBR costing scored vs OBR announcement-time baseline w/ behavioural adjustments; this is the parametric content on the certified 2026 world (baseline-vintage delta, named)", + "PE calendar-year vs OBR fiscal-year (named)" + ], + "bundle": { + "bundle_id": "uk-5.0.1", + "country_id": "uk", + "policyengine_version": "5.0.1", + "model_package": "policyengine-uk", + "model_version": "2.89.2", + "data_package": "populace-data", + "data_version": "0.1.0", + "default_dataset": "populace_uk_2023", + "default_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_artifact_sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833", + "data_build_model_version": "2.89.2", + "data_build_model_git_sha": "None", + "data_build_fingerprint": "None", + "compatibility_basis": "exact_build_model_version", + "certified_by": "None", + "runtime_dataset": "populace_uk_2023", + "runtime_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "runtime_dataset_source": "/Users/maxghenis/.cache/huggingface/hub/datasets--policyengine--populace-uk-private/snapshots/a75a9a831d6b07aaffbd09713f2a1124f5c0f08f/populace_uk_2023.h5", + "managed_by": "policyengine.py" + }, + "aggregates_gbp": { + "income_tax": 421891913533.19946, + "national_insurance": 67284003408.16528, + "ni_employer": 185481157065.2179, + "child_benefit": 17434702263.490685, + "universal_credit": 39991711926.14007, + "vat": 219622883998.86896, + "capital_gains_tax": 24243246083.18426, + "household_net_income": 1785554498769.4727, + "gov_tax": 1052637624919.406, + "gov_spending": 485771195086.36804 + } +} \ No newline at end of file diff --git a/sources/campaign-20260802/uk_runs/obr_measures_collation.csv b/sources/campaign-20260802/uk_runs/obr_measures_collation.csv new file mode 100644 index 0000000..5c83198 --- /dev/null +++ b/sources/campaign-20260802/uk_runs/obr_measures_collation.csv @@ -0,0 +1,11 @@ +key,status,pe_measure_effect_gbp,pe_gov_tax_effect_gbp,obr_value_gbp,obr_period,abs_ratio,abs_ratio_head_only,heads,confidence,n_candidate_rows,conventions +hicbc_sb2024,computed,-1720629444.0709229,-1720629281.512207,-250000000.0,2026,6.882517126048828,6.8825177762836915,income_tax,high,3,"reversal on certified 2026 world vs OBR announcement-baseline costing (behavioural-adjusted, FY) — baseline-vintage delta named; PE CY static accrual" +ee_ni_p2,computed,-12070073647.428864,-12070071976.065552,-10465234281.795147,2026,1.153349428312571,1.1533495880188198,national_insurance,high,18,"reversal on certified 2026 world vs OBR announcement-baseline costing (behavioural-adjusted, FY) — baseline-vintage delta named; PE CY static accrual" +ee_ni_p4,computed,-24142042648.760254,-24142043583.14258,-9068607177.111378,2026,2.6621556223182377,2.662155519283416,national_insurance,high; AS2023 leg ≈ p4−p2 differencing,12,"reversal on certified 2026 world vs OBR announcement-baseline costing (behavioural-adjusted, FY) — baseline-vintage delta named; PE CY static accrual" +class4_p3,computed,-1755439439.4202042,-1755438977.9938965,-348009097.91964304,2026,5.044233005653306,5.044234331556307,national_insurance,stack (AS2023 1p + SB2024 2p); external row is the 1p leg — compare via differencing vs tranche-1 class4_1pp,12,"reversal on certified 2026 world vs OBR announcement-baseline costing (behavioural-adjusted, FY) — baseline-vintage delta named; PE CY static accrual" +class2_reinstate,computed,-563027614.2353287,-563027552.8198242,-403140457.34836805,2026,1.3966039442508547,1.3966040965935513,national_insurance,high,12,"reversal on certified 2026 world vs OBR announcement-baseline costing (behavioural-adjusted, FY) — baseline-vintage delta named; PE CY static accrual" +employer_ab2024,computed,26014010206.312836,16240084103.596191,23714722782.217613,2026,0.6848102021995278,1.096956116468683,ni_employer,high; wage-incidence spillover onto IT/employee NI recorded via gov_tax,9,"reversal on certified 2026 world vs OBR announcement-baseline costing (behavioural-adjusted, FY) — baseline-vintage delta named; PE CY static accrual" +art_as2022,computed,1787263536.0213013,1787265489.5186768,783448087.0201031,2026,2.2812813243525296,2.2812788308913703,income_tax,high,9,"reversal on certified 2026 world vs OBR announcement-baseline costing (behavioural-adjusted, FY) — baseline-vintage delta named; PE CY static accrual" +div_ab2021,computed,619524446.258728,618983960.5861816,868649888.8100487,2026,0.712581637964772,0.7132038514474525,income_tax,delta-on-current (allowance changed since 2021 — vintage note),10,"reversal on certified 2026 world vs OBR announcement-baseline costing (behavioural-adjusted, FY) — baseline-vintage delta named; PE CY static accrual" +cgt_ab2024,computed,2832564125.7933006,2832564748.686035,1292432021.691635,2026,2.191654726241273,2.19165424428731,capital_gains_tax,high; PE static (no forestalling/behavioral),9,"reversal on certified 2026 world vs OBR announcement-baseline costing (behavioural-adjusted, FY) — baseline-vintage delta named; PE CY static accrual" +pt_lpl_ss2022,computed,-5833696943.071625,-5833694249.685547,-4702119816.05516,2026,1.2406519778093874,1.240652550611907,national_insurance,"LOW (announcement-vintage £2,690 gap; counterfactual uprating path unknowable)",10,"reversal on certified 2026 world vs OBR announcement-baseline costing (behavioural-adjusted, FY) — baseline-vintage delta named; PE CY static accrual" diff --git a/sources/campaign-20260802/uk_runs/pa_100_2026.json b/sources/campaign-20260802/uk_runs/pa_100_2026.json new file mode 100644 index 0000000..0745752 --- /dev/null +++ b/sources/campaign-20260802/uk_runs/pa_100_2026.json @@ -0,0 +1,40 @@ +{ + "reform_key": "pa_100", + "year": 2026, + "reform_hint": "Change personal allowance by \u00a3100", + "pe_construction": "gov.hmrc.income_tax.allowances.personal_allowance.amount: 12570 -> 12670", + "reform_json": "{\"gov.hmrc.income_tax.allowances.personal_allowance.amount\": {\"2026-01-01.2028-12-31\": 12670}}", + "bundle": { + "bundle_id": "uk-5.0.1", + "country_id": "uk", + "policyengine_version": "5.0.1", + "model_package": "policyengine-uk", + "model_version": "2.89.2", + "data_package": "populace-data", + "data_version": "0.1.0", + "default_dataset": "populace_uk_2023", + "default_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_artifact_sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833", + "data_build_model_version": "2.89.2", + "data_build_model_git_sha": "None", + "data_build_fingerprint": "None", + "compatibility_basis": "exact_build_model_version", + "certified_by": "None", + "runtime_dataset": "populace_uk_2023", + "runtime_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "runtime_dataset_source": "/Users/maxghenis/.cache/huggingface/hub/datasets--policyengine--populace-uk-private/snapshots/a75a9a831d6b07aaffbd09713f2a1124f5c0f08f/populace_uk_2023.h5", + "managed_by": "policyengine.py" + }, + "aggregates_gbp": { + "income_tax": 420992883968.124, + "national_insurance": 61450306465.09366, + "ni_employer": 185481157065.2179, + "child_benefit": 17434702263.490685, + "universal_credit": 39878372967.85101, + "vat": 219622883998.86896, + "household_net_income": 1792163940521.782, + "gov_tax": 1045903461087.4154, + "gov_spending": 485648845473.3286 + } +} \ No newline at end of file diff --git a/sources/campaign-20260802/uk_runs/pa_10pct_2026.json b/sources/campaign-20260802/uk_runs/pa_10pct_2026.json new file mode 100644 index 0000000..b9108c1 --- /dev/null +++ b/sources/campaign-20260802/uk_runs/pa_10pct_2026.json @@ -0,0 +1,40 @@ +{ + "reform_key": "pa_10pct", + "year": 2026, + "reform_hint": "Change personal allowance by 10%", + "pe_construction": "gov.hmrc.income_tax.allowances.personal_allowance.amount: 12570 -> 13827.000000000002", + "reform_json": "{\"gov.hmrc.income_tax.allowances.personal_allowance.amount\": {\"2026-01-01.2028-12-31\": 13827.000000000002}}", + "bundle": { + "bundle_id": "uk-5.0.1", + "country_id": "uk", + "policyengine_version": "5.0.1", + "model_package": "policyengine-uk", + "model_version": "2.89.2", + "data_package": "populace-data", + "data_version": "0.1.0", + "default_dataset": "populace_uk_2023", + "default_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_artifact_sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833", + "data_build_model_version": "2.89.2", + "data_build_model_git_sha": "None", + "data_build_fingerprint": "None", + "compatibility_basis": "exact_build_model_version", + "certified_by": "None", + "runtime_dataset": "populace_uk_2023", + "runtime_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "runtime_dataset_source": "/Users/maxghenis/.cache/huggingface/hub/datasets--policyengine--populace-uk-private/snapshots/a75a9a831d6b07aaffbd09713f2a1124f5c0f08f/populace_uk_2023.h5", + "managed_by": "policyengine.py" + }, + "aggregates_gbp": { + "income_tax": 410743690227.0401, + "national_insurance": 61450306465.09366, + "ni_employer": 185481157065.2179, + "child_benefit": 17434702263.490685, + "universal_credit": 39773310016.436806, + "vat": 219622883998.86896, + "household_net_income": 1802270915580.4868, + "gov_tax": 1035638549541.2341, + "gov_spending": 485501146991.8742 + } +} \ No newline at end of file diff --git a/sources/campaign-20260802/uk_runs/pa_1pct_2026.json b/sources/campaign-20260802/uk_runs/pa_1pct_2026.json new file mode 100644 index 0000000..1270a61 --- /dev/null +++ b/sources/campaign-20260802/uk_runs/pa_1pct_2026.json @@ -0,0 +1,40 @@ +{ + "reform_key": "pa_1pct", + "year": 2026, + "reform_hint": "Change personal allowance by 1%", + "pe_construction": "gov.hmrc.income_tax.allowances.personal_allowance.amount: 12570 -> 12695.7", + "reform_json": "{\"gov.hmrc.income_tax.allowances.personal_allowance.amount\": {\"2026-01-01.2028-12-31\": 12695.7}}", + "bundle": { + "bundle_id": "uk-5.0.1", + "country_id": "uk", + "policyengine_version": "5.0.1", + "model_package": "policyengine-uk", + "model_version": "2.89.2", + "data_package": "populace-data", + "data_version": "0.1.0", + "default_dataset": "populace_uk_2023", + "default_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_artifact_sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833", + "data_build_model_version": "2.89.2", + "data_build_model_git_sha": "None", + "data_build_fingerprint": "None", + "compatibility_basis": "exact_build_model_version", + "certified_by": "None", + "runtime_dataset": "populace_uk_2023", + "runtime_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "runtime_dataset_source": "/Users/maxghenis/.cache/huggingface/hub/datasets--policyengine--populace-uk-private/snapshots/a75a9a831d6b07aaffbd09713f2a1124f5c0f08f/populace_uk_2023.h5", + "managed_by": "policyengine.py" + }, + "aggregates_gbp": { + "income_tax": 420760496345.935, + "national_insurance": 61450306465.09366, + "ni_employer": 185481157065.2179, + "child_benefit": 17434702263.490685, + "universal_credit": 39875962204.15295, + "vat": 219622883998.86896, + "household_net_income": 1792393053013.8193, + "gov_tax": 1045670700930.5881, + "gov_spending": 485645198654.7175 + } +} \ No newline at end of file diff --git a/sources/campaign-20260802/uk_runs/psa_100_50_2026.json b/sources/campaign-20260802/uk_runs/psa_100_50_2026.json new file mode 100644 index 0000000..067fc45 --- /dev/null +++ b/sources/campaign-20260802/uk_runs/psa_100_50_2026.json @@ -0,0 +1,40 @@ +{ + "reform_key": "psa_100_50", + "year": 2026, + "reform_hint": "Change Savings allowance by \u00a3100 for BR and \u00a350 for HR taxpayers", + "pe_construction": "gov.hmrc.income_tax.allowances.personal_savings_allowance.basic: 1000 -> 1100; gov.hmrc.income_tax.allowances.personal_savings_allowance.higher: 500 -> 550", + "reform_json": "{\"gov.hmrc.income_tax.allowances.personal_savings_allowance.basic\": {\"2026-01-01.2028-12-31\": 1100}, \"gov.hmrc.income_tax.allowances.personal_savings_allowance.higher\": {\"2026-01-01.2028-12-31\": 550}}", + "bundle": { + "bundle_id": "uk-5.0.1", + "country_id": "uk", + "policyengine_version": "5.0.1", + "model_package": "policyengine-uk", + "model_version": "2.89.2", + "data_package": "populace-data", + "data_version": "0.1.0", + "default_dataset": "populace_uk_2023", + "default_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_artifact_sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833", + "data_build_model_version": "2.89.2", + "data_build_model_git_sha": "None", + "data_build_fingerprint": "None", + "compatibility_basis": "exact_build_model_version", + "certified_by": "None", + "runtime_dataset": "populace_uk_2023", + "runtime_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "runtime_dataset_source": "/Users/maxghenis/.cache/huggingface/hub/datasets--policyengine--populace-uk-private/snapshots/a75a9a831d6b07aaffbd09713f2a1124f5c0f08f/populace_uk_2023.h5", + "managed_by": "policyengine.py" + }, + "aggregates_gbp": { + "income_tax": 421822237856.2041, + "national_insurance": 61450306465.09366, + "ni_employer": 185481157065.2179, + "child_benefit": 17434702263.490685, + "universal_credit": 39887818603.1317, + "vat": 219622883998.86896, + "household_net_income": 1791349819437.8667, + "gov_tax": 1046734255058.1206, + "gov_spending": 485663230900.0288 + } +} \ No newline at end of file diff --git a/sources/campaign-20260802/uk_runs/srl_100_2026.json b/sources/campaign-20260802/uk_runs/srl_100_2026.json new file mode 100644 index 0000000..b60e0d4 --- /dev/null +++ b/sources/campaign-20260802/uk_runs/srl_100_2026.json @@ -0,0 +1,40 @@ +{ + "reform_key": "srl_100", + "year": 2026, + "reform_hint": "Change starting rate limit for savings income by \u00a3100", + "pe_construction": "gov.hmrc.income_tax.rates.savings_starter_rate.allowance: 5000 -> 5100", + "reform_json": "{\"gov.hmrc.income_tax.rates.savings_starter_rate.allowance\": {\"2026-01-01.2028-12-31\": 5100}}", + "bundle": { + "bundle_id": "uk-5.0.1", + "country_id": "uk", + "policyengine_version": "5.0.1", + "model_package": "policyengine-uk", + "model_version": "2.89.2", + "data_package": "populace-data", + "data_version": "0.1.0", + "default_dataset": "populace_uk_2023", + "default_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_artifact_sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833", + "data_build_model_version": "2.89.2", + "data_build_model_git_sha": "None", + "data_build_fingerprint": "None", + "compatibility_basis": "exact_build_model_version", + "certified_by": "None", + "runtime_dataset": "populace_uk_2023", + "runtime_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "runtime_dataset_source": "/Users/maxghenis/.cache/huggingface/hub/datasets--policyengine--populace-uk-private/snapshots/a75a9a831d6b07aaffbd09713f2a1124f5c0f08f/populace_uk_2023.h5", + "managed_by": "policyengine.py" + }, + "aggregates_gbp": { + "income_tax": 421858524825.77234, + "national_insurance": 61450306465.09366, + "ni_employer": 185481157065.2179, + "child_benefit": 17434702263.490685, + "universal_credit": 39887838277.66961, + "vat": 219622883998.86896, + "household_net_income": 1791313552250.722, + "gov_tax": 1046770541970.1005, + "gov_spending": 485663250574.56665 + } +} \ No newline at end of file diff --git a/sources/campaign-20260802/uk_runs/t2_collation.csv b/sources/campaign-20260802/uk_runs/t2_collation.csv new file mode 100644 index 0000000..e83a428 --- /dev/null +++ b/sources/campaign-20260802/uk_runs/t2_collation.csv @@ -0,0 +1,15 @@ +key,status,hmrc_hint,pe_delta_gbp,pe_gov_tax_delta_gbp,hmrc_fy2026_27,hmrc_fy2027_28,abs_ratio_vs_fy26,abs_ratio_vs_fy27,heads,construction,conventions +pa_1pct,computed,Change personal allowance by 1%,-1131417187.2644653,-1133229739.1323242,1000000000.0,1200000000.0,1.1314171872644654,0.9428476560537211,income_tax,gov.hmrc.income_tax.allowances.personal_allowance.amount: 12570 -> 12695.7,PE CY2026 static accrual vs HMRC projected FY direct effects (first-year cash vs fuller-year; TIE/behavioral in HMRC reckoner per their methodology notes); |magnitude| ratios +pa_10pct,computed,Change personal allowance by 10%,-11148223306.159363,-11165381128.486328,10000000000.0,11650000000.0,1.1148223306159364,0.9569290391553101,income_tax,gov.hmrc.income_tax.allowances.personal_allowance.amount: 12570 -> 13827.000000000002,PE CY2026 static accrual vs HMRC projected FY direct effects (first-year cash vs fuller-year; TIE/behavioral in HMRC reckoner per their methodology notes); |magnitude| ratios +brl_1pct,computed,Change basic rate limit by 1%,-725046338.0097046,-733636703.8398438,495000000.0,665000000.0,1.464740076787282,1.0902952451273753,income_tax,gov.hmrc.income_tax.rates.uk[1].threshold: 37700 -> 38077.0,PE CY2026 static accrual vs HMRC projected FY direct effects (first-year cash vs fuller-year; TIE/behavioral in HMRC reckoner per their methodology notes); |magnitude| ratios +brl_10pct,computed,Increase basic rate limit by 10% (cost),-6935879147.342651,-7020792835.180176,4600000000.0,6250000000.0,1.507799814639707,1.1097406635748241,income_tax,gov.hmrc.income_tax.rates.uk[1].threshold: 37700 -> 41470.0,PE CY2026 static accrual vs HMRC projected FY direct effects (first-year cash vs fuller-year; TIE/behavioral in HMRC reckoner per their methodology notes); |magnitude| ratios +srl_100,computed,Change starting rate limit for savings income by £100,-33388707.427124023,-33388699.619995117,,5000000.0,,6.6777414854248045,income_tax,gov.hmrc.income_tax.rates.savings_starter_rate.allowance: 5000 -> 5100,PE CY2026 static accrual vs HMRC projected FY direct effects (first-year cash vs fuller-year; TIE/behavioral in HMRC reckoner per their methodology notes); |magnitude| ratios +psa_100_50,computed,Change Savings allowance by £100 for BR and £50 for HR taxpayers,-69675676.99536133,-69675611.59985352,0.0,30000000.0,,2.322522566512044,income_tax,gov.hmrc.income_tax.allowances.personal_savings_allowance.basic: 1000 -> 1100; gov.hmrc.income_tax.allowances.personal_savings_allowance.higher: 500 -> 550,PE CY2026 static accrual vs HMRC projected FY direct effects (first-year cash vs fuller-year; TIE/behavioral in HMRC reckoner per their methodology notes); |magnitude| ratios +dividend_allowance_100,computed,Change dividend allowance by £100,-52777493.560424805,-52777526.802978516,0.0,70000000.0,,0.7539641937203544,income_tax,gov.hmrc.income_tax.allowances.dividend_allowance: 500 -> 600,PE CY2026 static accrual vs HMRC projected FY direct effects (first-year cash vs fuller-year; TIE/behavioral in HMRC reckoner per their methodology notes); |magnitude| ratios +ni_pt_2pw,computed,Change employee entry threshold by £2 per week,-202893958.81115723,-202895809.91210938,210000000.0,230000000.0,0.9661617086245582,0.8821476470050315,national_insurance,gov.hmrc.national_insurance.class_1.thresholds.primary_threshold: 241.73 -> 243.73,PE CY2026 static accrual vs HMRC projected FY direct effects (first-year cash vs fuller-year; TIE/behavioral in HMRC reckoner per their methodology notes); |magnitude| ratios +ni_st_2pw,computed,Change employer threshold by £2 per week,-356685195.3192749,-239798822.20703125,420000000.0,430000000.0,0.8492504650458926,0.8295004542308718,ni_employer,gov.hmrc.national_insurance.class_1.thresholds.secondary_threshold: 96 -> 98,PE CY2026 static accrual vs HMRC projected FY direct effects (first-year cash vs fuller-year; TIE/behavioral in HMRC reckoner per their methodology notes); |magnitude| ratios +ni_uel_10pw,computed,Change upper earnings limit by £10 per week,248033861.83112335,248034104.94433594,220000000.0,220000000.0,1.1274266446869243,1.1274266446869243,national_insurance,gov.hmrc.national_insurance.class_1.thresholds.upper_earnings_limit: 966.73 -> 976.73,PE CY2026 static accrual vs HMRC projected FY direct effects (first-year cash vs fuller-year; TIE/behavioral in HMRC reckoner per their methodology notes); |magnitude| ratios +ni_lpl_104,computed,Change lower profits limit by £104 per year,-17503727.481391907,-17503377.587158203,15000000.0,15000000.0,1.1669151654261272,1.1669151654261272,national_insurance,gov.hmrc.national_insurance.class_4.thresholds.lower_profits_limit: 12570 -> 12674,PE CY2026 static accrual vs HMRC projected FY direct effects (first-year cash vs fuller-year; TIE/behavioral in HMRC reckoner per their methodology notes); |magnitude| ratios +ni_upl_520,computed,Change upper profits limit by £520 per year,15204671.735198975,15204844.950927734,10000000.0,10000000.0,1.5204671735198974,1.5204671735198974,national_insurance,gov.hmrc.national_insurance.class_4.thresholds.upper_profits_limit: 50270 -> 50790,PE CY2026 static accrual vs HMRC projected FY direct effects (first-year cash vs fuller-year; TIE/behavioral in HMRC reckoner per their methodology notes); |magnitude| ratios +cb_additional_1pw,computed,Increase subsequent child rate by £1 per week (cost),307891828.10876465,71130801.75634766,230000000.0,240000000.0,1.3386601222120202,1.2828826171198526,child_benefit,gov.hmrc.child_benefit.amount.additional: 17.9 -> 18.9,PE CY2026 static accrual vs HMRC projected FY direct effects (first-year cash vs fuller-year; TIE/behavioral in HMRC reckoner per their methodology notes); |magnitude| ratios +employee_additional_1pp,computed,Change Class 1 employee additional rate by 1 percentage point,4391879294.86554,4391875901.453613,2000000000.0,2000000000.0,2.1959396474327697,2.1959396474327697,national_insurance,gov.hmrc.national_insurance.class_1.rates.employee.additional: 0.02 -> 0.03,PE CY2026 static accrual vs HMRC projected FY direct effects (first-year cash vs fuller-year; TIE/behavioral in HMRC reckoner per their methodology notes); |magnitude| ratios diff --git a/sources/campaign-20260802/uk_runs/two_child_fixed_line_2026.json b/sources/campaign-20260802/uk_runs/two_child_fixed_line_2026.json new file mode 100644 index 0000000..3eeb74c --- /dev/null +++ b/sources/campaign-20260802/uk_runs/two_child_fixed_line_2026.json @@ -0,0 +1,338 @@ +{ + "reform_key": "two_child_limit_removal_fixed_line", + "year": 2026, + "takeup_mode": "calibrated", + "worlds": { + "with_limit": { + "world": "with_limit", + "year": 2026, + "construction": "gov.dwp.universal_credit.elements.child.limit.child_count: inf -> 2 (reinstate; born-pre-2017 exemption active)", + "reform_json": "{\"gov.dwp.universal_credit.elements.child.limit.child_count\": {\"2026-01-01.2028-12-31\": 2}}", + "hbai_dependent_child_proxy": "is_child_or_qualifying_young_person_for_child_tax_credit: under-16 OR 16-19 qualifying young person in full-time non-advanced education, excl. looked-after children (closest installed analogue of the HBAI dependent-child definition)", + "bundle": { + "bundle_id": "uk-5.0.1", + "country_id": "uk", + "policyengine_version": "5.0.1", + "model_package": "policyengine-uk", + "model_version": "2.89.2", + "data_package": "populace-data", + "data_version": "0.1.0", + "default_dataset": "populace_uk_2023", + "default_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_artifact_sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833", + "data_build_model_version": "2.89.2", + "data_build_model_git_sha": "None", + "data_build_fingerprint": "None", + "compatibility_basis": "exact_build_model_version", + "certified_by": "None", + "runtime_dataset": "populace_uk_2023", + "runtime_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "runtime_dataset_source": "/Users/maxghenis/.cache/huggingface/hub/datasets--policyengine--populace-uk-private/snapshots/a75a9a831d6b07aaffbd09713f2a1124f5c0f08f/populace_uk_2023.h5", + "managed_by": "policyengine.py" + }, + "aggregates_gbp": { + "universal_credit": 38783589984.86714, + "household_net_income": 1790266784216.2012, + "gov_spending": 484560539496.0421 + } + }, + "without_limit": { + "world": "without_limit", + "year": 2026, + "construction": "baseline (limit abolished in current law)", + "reform_json": "baseline", + "hbai_dependent_child_proxy": "is_child_or_qualifying_young_person_for_child_tax_credit: under-16 OR 16-19 qualifying young person in full-time non-advanced education, excl. looked-after children (closest installed analogue of the HBAI dependent-child definition)", + "bundle": { + "bundle_id": "uk-5.0.1", + "country_id": "uk", + "policyengine_version": "5.0.1", + "model_package": "policyengine-uk", + "model_version": "2.89.2", + "data_package": "populace-data", + "data_version": "0.1.0", + "default_dataset": "populace_uk_2023", + "default_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_artifact_sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833", + "data_build_model_version": "2.89.2", + "data_build_model_git_sha": "None", + "data_build_fingerprint": "None", + "compatibility_basis": "exact_build_model_version", + "certified_by": "None", + "runtime_dataset": "populace_uk_2023", + "runtime_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "runtime_dataset_source": "/Users/maxghenis/.cache/huggingface/hub/datasets--policyengine--populace-uk-private/snapshots/a75a9a831d6b07aaffbd09713f2a1124f5c0f08f/populace_uk_2023.h5", + "managed_by": "policyengine.py" + }, + "aggregates_gbp": { + "universal_credit": 39887838277.66961, + "household_net_income": 1791280163555.2764, + "gov_spending": 485663250574.56665 + } + } + }, + "median_equiv_hbai_ahc_gbp_year": { + "with_limit": { + "person": 34191.88671875, + "household": 35570.34765625 + }, + "without_limit": { + "person": 34191.88671875, + "household": 35570.34765625 + } + }, + "median_weighting_primary": "person", + "median_weighting_note": "HBAI convention ranks individuals (person-weighted); pe-uk's in_relative_poverty_ahc uses household-weighted medians \u2014 both recorded, person-weighted used for all lines here", + "results": { + "floating": { + "with_limit": { + "line_gbp_year": 20515.13203125, + "all": { + "rate": 0.23298984026069908, + "count": 16294514.372394413, + "population": 69936587.59610294 + }, + "u16": { + "rate": 0.3341678225294723, + "count": 4521835.423247635, + "population": 13531630.271938667 + }, + "u18": { + "rate": 0.3364532579020019, + "count": 5057541.576392353, + "population": 15031929.272818789 + }, + "hbai_dep": { + "rate": 0.33582958572177674, + "count": 5075353.906113207, + "population": 15112884.992562756 + } + }, + "without_limit": { + "line_gbp_year": 20515.13203125, + "all": { + "rate": 0.22778059178483795, + "count": 15930197.310052484, + "population": 69936587.59610294 + }, + "u16": { + "rate": 0.31680746914383723, + "count": 4286921.539843023, + "population": 13531630.271938667 + }, + "u18": { + "rate": 0.32028047932865245, + "count": 4814433.512732804, + "population": 15031929.272818789 + }, + "hbai_dep": { + "rate": 0.3197434404371944, + "count": 4832245.842453659, + "population": 15112884.992562756 + } + }, + "removal_effect": { + "all": { + "count_change": -364317.0623419285, + "rate_change_pp": -0.5209248475861128 + }, + "u16": { + "count_change": -234913.88340461254, + "rate_change_pp": -1.7360353385635074 + }, + "u18": { + "count_change": -243108.06365954876, + "rate_change_pp": -1.6172778573349478 + }, + "hbai_dep": { + "count_change": -243108.06365954876, + "rate_change_pp": -1.6086145284582354 + } + } + }, + "fixed_with_limit": { + "with_limit": { + "line_gbp_year": 20515.13203125, + "all": { + "rate": 0.23298984026069908, + "count": 16294514.372394413, + "population": 69936587.59610294 + }, + "u16": { + "rate": 0.3341678225294723, + "count": 4521835.423247635, + "population": 13531630.271938667 + }, + "u18": { + "rate": 0.3364532579020019, + "count": 5057541.576392353, + "population": 15031929.272818789 + }, + "hbai_dep": { + "rate": 0.33582958572177674, + "count": 5075353.906113207, + "population": 15112884.992562756 + } + }, + "without_limit": { + "line_gbp_year": 20515.13203125, + "all": { + "rate": 0.22778059178483795, + "count": 15930197.310052484, + "population": 69936587.59610294 + }, + "u16": { + "rate": 0.31680746914383723, + "count": 4286921.539843023, + "population": 13531630.271938667 + }, + "u18": { + "rate": 0.32028047932865245, + "count": 4814433.512732804, + "population": 15031929.272818789 + }, + "hbai_dep": { + "rate": 0.3197434404371944, + "count": 4832245.842453659, + "population": 15112884.992562756 + } + }, + "removal_effect": { + "all": { + "count_change": -364317.0623419285, + "rate_change_pp": -0.5209248475861128 + }, + "u16": { + "count_change": -234913.88340461254, + "rate_change_pp": -1.7360353385635074 + }, + "u18": { + "count_change": -243108.06365954876, + "rate_change_pp": -1.6172778573349478 + }, + "hbai_dep": { + "count_change": -243108.06365954876, + "rate_change_pp": -1.6086145284582354 + } + } + }, + "fixed_without_limit": { + "with_limit": { + "line_gbp_year": 20515.13203125, + "all": { + "rate": 0.23298984026069908, + "count": 16294514.372394413, + "population": 69936587.59610294 + }, + "u16": { + "rate": 0.3341678225294723, + "count": 4521835.423247635, + "population": 13531630.271938667 + }, + "u18": { + "rate": 0.3364532579020019, + "count": 5057541.576392353, + "population": 15031929.272818789 + }, + "hbai_dep": { + "rate": 0.33582958572177674, + "count": 5075353.906113207, + "population": 15112884.992562756 + } + }, + "without_limit": { + "line_gbp_year": 20515.13203125, + "all": { + "rate": 0.22778059178483795, + "count": 15930197.310052484, + "population": 69936587.59610294 + }, + "u16": { + "rate": 0.31680746914383723, + "count": 4286921.539843023, + "population": 13531630.271938667 + }, + "u18": { + "rate": 0.32028047932865245, + "count": 4814433.512732804, + "population": 15031929.272818789 + }, + "hbai_dep": { + "rate": 0.3197434404371944, + "count": 4832245.842453659, + "population": 15112884.992562756 + } + }, + "removal_effect": { + "all": { + "count_change": -364317.0623419285, + "rate_change_pp": -0.5209248475861128 + }, + "u16": { + "count_change": -234913.88340461254, + "rate_change_pp": -1.7360353385635074 + }, + "u18": { + "count_change": -243108.06365954876, + "rate_change_pp": -1.6172778573349478 + }, + "hbai_dep": { + "count_change": -243108.06365954876, + "rate_change_pp": -1.6086145284582354 + } + } + } + }, + "absolute_ahc_continuity_check": { + "with_limit": { + "all": 13308574.643841207, + "u16": 3823821.647847593, + "u18": 4274117.985204399, + "hbai_dep": 4282418.631839693 + }, + "without_limit": { + "all": 13028998.553302944, + "u16": 3642525.343844831, + "u18": 4087835.8398367763, + "hbai_dep": 4094797.2934226394 + }, + "removal_count_change": { + "all": -279576.0905382633, + "u16": -181296.30400276184, + "u18": -186282.14536762238, + "hbai_dep": -187621.33841705322 + } + }, + "uc_cost_of_removal_gbp": 1104248292.8024673, + "external_pentagon": { + "_discipline": "legs are NOT same-concept; per-leg basis verbatim; no win/replication language", + "ifs": { + "value": -540000, + "basis": "two-child-limit removal alone, steady-state (fully rolled-in), fixed-line rel AHC" + }, + "govt_hmt": { + "value": -450000, + "basis": "'taking 450,000 children out of poverty' embedded in HMT B2025 scorecard two-child-limit measure name; horizon per govt materials (~2029-30)" + }, + "resolution_foundation": { + "value": -420000, + "basis": "LSO 2026: year-over-year child-poverty fall 33%->30% 2025-26 to 2026-27, Budget-package-driven (2CL-dominated), fixed-line rel AHC, IPPR tax-benefit model; NOT a pure 2CL-only leg" + }, + "ukmod_cempa_3_26": { + "value_children_2026": -13193, + "basis": "NET Autumn-Budget package (freezes + 2CL removal + WFA + PC cuts) child fixed-AHC count change FY2026/27 \u2014 freezes offset the 2CL gain; NOT comparable as 2CL-only; per-measure split not in staged rows" + }, + "pe": { + "basis": "2CL removal alone, 2026, actual partially-rolled-in law (born<2017 exempt), fixed baseline line (moot: line static), HBAI-dep-proxy children, calibrated take-up", + "comparable_leg": "fixed_with_limit removal_effect hbai_dep" + } + }, + "divergence_hypotheses_at_compute": [ + "roll_in_vintage: PE 2026 grandfathering (born<2017 exempt) = partially rolled-in law; IFS -540k is steady-state -> PE expected BELOW IFS magnitude", + "data_lineage: populace_uk_2023 (FRS 2023-24 base, calibrated) vs IFS/RF FRS vintages+own calibrations", + "takeup: PE UC take-up assumptions vs RF's UC 80% / IFS TAXBEN full-entitlement basis (registry axis)", + "median_construction: person- vs household-weighted median moves the line (both computed)", + "child_definition: hbai_dep proxy lacks HBAI marital/living-arrangement conditions (16-19 slice only)" + ] +} \ No newline at end of file diff --git a/sources/campaign-20260802/uk_runs/two_child_fixed_line_fulltakeup_2026.json b/sources/campaign-20260802/uk_runs/two_child_fixed_line_fulltakeup_2026.json new file mode 100644 index 0000000..f96a4a5 --- /dev/null +++ b/sources/campaign-20260802/uk_runs/two_child_fixed_line_fulltakeup_2026.json @@ -0,0 +1,360 @@ +{ + "reform_key": "two_child_limit_removal_fixed_line", + "year": 2026, + "takeup_mode": "fulltakeup", + "worlds": { + "with_limit": { + "world": "with_limit", + "year": 2026, + "mode": "fulltakeup", + "forced_flags": [ + "would_claim_uc", + "would_claim_housing_benefit", + "would_claim_child_benefit", + "would_claim_council_tax_reduction", + "would_claim_CTC", + "would_claim_WTC", + "would_claim_IS", + "claims_all_entitled_benefits" + ], + "construction": "gov.dwp.universal_credit.elements.child.limit.child_count: inf -> 2 (reinstate; born-pre-2017 exemption active)", + "reform_json": "{\"gov.dwp.universal_credit.elements.child.limit.child_count\": {\"2026-01-01.2028-12-31\": 2}}", + "hbai_dependent_child_proxy": "is_child_or_qualifying_young_person_for_child_tax_credit: under-16 OR 16-19 qualifying young person in full-time non-advanced education, excl. looked-after children (closest installed analogue of the HBAI dependent-child definition)", + "bundle": { + "bundle_id": "uk-5.0.1", + "country_id": "uk", + "policyengine_version": "5.0.1", + "model_package": "policyengine-uk", + "model_version": "2.89.2", + "data_package": "populace-data", + "data_version": "0.1.0", + "default_dataset": "populace_uk_2023", + "default_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_artifact_sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833", + "data_build_model_version": "2.89.2", + "data_build_model_git_sha": "None", + "data_build_fingerprint": "None", + "compatibility_basis": "exact_build_model_version", + "certified_by": "None", + "runtime_dataset": "populace_uk_2023", + "runtime_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "runtime_dataset_source": "/Users/maxghenis/.cache/huggingface/hub/datasets--policyengine--populace-uk-private/snapshots/a75a9a831d6b07aaffbd09713f2a1124f5c0f08f/populace_uk_2023.h5", + "managed_by": "policyengine.py" + }, + "aggregates_gbp": { + "universal_credit": 53429818141.101036, + "household_net_income": 1803220878970.0093, + "gov_spending": 497880464939.9005 + } + }, + "without_limit": { + "world": "without_limit", + "year": 2026, + "mode": "fulltakeup", + "forced_flags": [ + "would_claim_uc", + "would_claim_housing_benefit", + "would_claim_child_benefit", + "would_claim_council_tax_reduction", + "would_claim_CTC", + "would_claim_WTC", + "would_claim_IS", + "claims_all_entitled_benefits" + ], + "construction": "baseline (limit abolished in current law)", + "reform_json": "baseline", + "hbai_dependent_child_proxy": "is_child_or_qualifying_young_person_for_child_tax_credit: under-16 OR 16-19 qualifying young person in full-time non-advanced education, excl. looked-after children (closest installed analogue of the HBAI dependent-child definition)", + "bundle": { + "bundle_id": "uk-5.0.1", + "country_id": "uk", + "policyengine_version": "5.0.1", + "model_package": "policyengine-uk", + "model_version": "2.89.2", + "data_package": "populace-data", + "data_version": "0.1.0", + "default_dataset": "populace_uk_2023", + "default_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_artifact_sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833", + "data_build_model_version": "2.89.2", + "data_build_model_git_sha": "None", + "data_build_fingerprint": "None", + "compatibility_basis": "exact_build_model_version", + "certified_by": "None", + "runtime_dataset": "populace_uk_2023", + "runtime_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "runtime_dataset_source": "/Users/maxghenis/.cache/huggingface/hub/datasets--policyengine--populace-uk-private/snapshots/a75a9a831d6b07aaffbd09713f2a1124f5c0f08f/populace_uk_2023.h5", + "managed_by": "policyengine.py" + }, + "aggregates_gbp": { + "universal_credit": 55279919145.339645, + "household_net_income": 1804948205172.6, + "gov_spending": 499729028736.36316 + } + } + }, + "median_equiv_hbai_ahc_gbp_year": { + "with_limit": { + "person": 34427.55078125, + "household": 35764.1796875 + }, + "without_limit": { + "person": 34427.55078125, + "household": 35764.1796875 + } + }, + "median_weighting_primary": "person", + "median_weighting_note": "HBAI convention ranks individuals (person-weighted); pe-uk's in_relative_poverty_ahc uses household-weighted medians \u2014 both recorded, person-weighted used for all lines here", + "results": { + "floating": { + "with_limit": { + "line_gbp_year": 20656.53046875, + "all": { + "rate": 0.22032138557925557, + "count": 15408525.881858379, + "population": 69936587.59610294 + }, + "u16": { + "rate": 0.3100496618050528, + "count": 4195477.389485598, + "population": 13531630.271938667 + }, + "u18": { + "rate": 0.31366318749573424, + "count": 4714962.849922776, + "population": 15031929.272818789 + }, + "hbai_dep": { + "rate": 0.31302277508584303, + "count": 4730677.199925184, + "population": 15112884.992562756 + } + }, + "without_limit": { + "line_gbp_year": 20656.53046875, + "all": { + "rate": 0.21438922546870368, + "count": 14993650.846652657, + "population": 69936587.59610294 + }, + "u16": { + "rate": 0.2908677068310521, + "count": 3935914.266884446, + "population": 13531630.271938667 + }, + "u18": { + "rate": 0.2955064650136516, + "count": 4442032.281745911, + "population": 15031929.272818789 + }, + "hbai_dep": { + "rate": 0.29467505544873185, + "count": 4453390.2231737375, + "population": 15112884.992562756 + } + }, + "removal_effect": { + "all": { + "count_change": -414875.03520572186, + "rate_change_pp": -0.5932160110551893 + }, + "u16": { + "count_change": -259563.12260115147, + "rate_change_pp": -1.918195497400066 + }, + "u18": { + "count_change": -272930.5681768656, + "rate_change_pp": -1.8156722482082666 + }, + "hbai_dep": { + "count_change": -277286.9767514467, + "rate_change_pp": -1.8347719637111182 + } + } + }, + "fixed_with_limit": { + "with_limit": { + "line_gbp_year": 20656.53046875, + "all": { + "rate": 0.22032138557925557, + "count": 15408525.881858379, + "population": 69936587.59610294 + }, + "u16": { + "rate": 0.3100496618050528, + "count": 4195477.389485598, + "population": 13531630.271938667 + }, + "u18": { + "rate": 0.31366318749573424, + "count": 4714962.849922776, + "population": 15031929.272818789 + }, + "hbai_dep": { + "rate": 0.31302277508584303, + "count": 4730677.199925184, + "population": 15112884.992562756 + } + }, + "without_limit": { + "line_gbp_year": 20656.53046875, + "all": { + "rate": 0.21438922546870368, + "count": 14993650.846652657, + "population": 69936587.59610294 + }, + "u16": { + "rate": 0.2908677068310521, + "count": 3935914.266884446, + "population": 13531630.271938667 + }, + "u18": { + "rate": 0.2955064650136516, + "count": 4442032.281745911, + "population": 15031929.272818789 + }, + "hbai_dep": { + "rate": 0.29467505544873185, + "count": 4453390.2231737375, + "population": 15112884.992562756 + } + }, + "removal_effect": { + "all": { + "count_change": -414875.03520572186, + "rate_change_pp": -0.5932160110551893 + }, + "u16": { + "count_change": -259563.12260115147, + "rate_change_pp": -1.918195497400066 + }, + "u18": { + "count_change": -272930.5681768656, + "rate_change_pp": -1.8156722482082666 + }, + "hbai_dep": { + "count_change": -277286.9767514467, + "rate_change_pp": -1.8347719637111182 + } + } + }, + "fixed_without_limit": { + "with_limit": { + "line_gbp_year": 20656.53046875, + "all": { + "rate": 0.22032138557925557, + "count": 15408525.881858379, + "population": 69936587.59610294 + }, + "u16": { + "rate": 0.3100496618050528, + "count": 4195477.389485598, + "population": 13531630.271938667 + }, + "u18": { + "rate": 0.31366318749573424, + "count": 4714962.849922776, + "population": 15031929.272818789 + }, + "hbai_dep": { + "rate": 0.31302277508584303, + "count": 4730677.199925184, + "population": 15112884.992562756 + } + }, + "without_limit": { + "line_gbp_year": 20656.53046875, + "all": { + "rate": 0.21438922546870368, + "count": 14993650.846652657, + "population": 69936587.59610294 + }, + "u16": { + "rate": 0.2908677068310521, + "count": 3935914.266884446, + "population": 13531630.271938667 + }, + "u18": { + "rate": 0.2955064650136516, + "count": 4442032.281745911, + "population": 15031929.272818789 + }, + "hbai_dep": { + "rate": 0.29467505544873185, + "count": 4453390.2231737375, + "population": 15112884.992562756 + } + }, + "removal_effect": { + "all": { + "count_change": -414875.03520572186, + "rate_change_pp": -0.5932160110551893 + }, + "u16": { + "count_change": -259563.12260115147, + "rate_change_pp": -1.918195497400066 + }, + "u18": { + "count_change": -272930.5681768656, + "rate_change_pp": -1.8156722482082666 + }, + "hbai_dep": { + "count_change": -277286.9767514467, + "rate_change_pp": -1.8347719637111182 + } + } + } + }, + "absolute_ahc_continuity_check": { + "with_limit": { + "all": 12406764.190788925, + "u16": 3453040.589262724, + "u18": 3882981.4342074394, + "hbai_dep": 3887640.5123000145 + }, + "without_limit": { + "all": 11985518.698836744, + "u16": 3187144.298489094, + "u18": 3604883.245787859, + "hbai_dep": 3607718.511481762 + }, + "removal_count_change": { + "all": -421245.49195218086, + "u16": -265896.29077363014, + "u18": -278098.18841958046, + "hbai_dep": -279922.00081825256 + } + }, + "uc_cost_of_removal_gbp": 1850101004.2386093, + "external_pentagon": { + "_discipline": "legs are NOT same-concept; per-leg basis verbatim; no win/replication language", + "ifs": { + "value": -540000, + "basis": "two-child-limit removal alone, steady-state (fully rolled-in), fixed-line rel AHC" + }, + "govt_hmt": { + "value": -450000, + "basis": "'taking 450,000 children out of poverty' embedded in HMT B2025 scorecard two-child-limit measure name; horizon per govt materials (~2029-30)" + }, + "resolution_foundation": { + "value": -420000, + "basis": "LSO 2026: year-over-year child-poverty fall 33%->30% 2025-26 to 2026-27, Budget-package-driven (2CL-dominated), fixed-line rel AHC, IPPR tax-benefit model; NOT a pure 2CL-only leg" + }, + "ukmod_cempa_3_26": { + "value_children_2026": -13193, + "basis": "NET Autumn-Budget package (freezes + 2CL removal + WFA + PC cuts) child fixed-AHC count change FY2026/27 \u2014 freezes offset the 2CL gain; NOT comparable as 2CL-only; per-measure split not in staged rows" + }, + "pe": { + "basis": "2CL removal alone, 2026, actual partially-rolled-in law (born<2017 exempt), fixed baseline line (moot: line static), HBAI-dep-proxy children, calibrated take-up", + "comparable_leg": "fixed_with_limit removal_effect hbai_dep" + } + }, + "divergence_hypotheses_at_compute": [ + "roll_in_vintage: PE 2026 grandfathering (born<2017 exempt) = partially rolled-in law; IFS -540k is steady-state -> PE expected BELOW IFS magnitude", + "data_lineage: populace_uk_2023 (FRS 2023-24 base, calibrated) vs IFS/RF FRS vintages+own calibrations", + "takeup: PE UC take-up assumptions vs RF's UC 80% / IFS TAXBEN full-entitlement basis (registry axis)", + "median_construction: person- vs household-weighted median moves the line (both computed)", + "child_definition: hbai_dep proxy lacks HBAI marital/living-arrangement conditions (16-19 slice only)" + ] +} \ No newline at end of file diff --git a/sources/campaign-20260802/uk_runs/two_child_limit_removal_2026.json b/sources/campaign-20260802/uk_runs/two_child_limit_removal_2026.json new file mode 100644 index 0000000..a1ce08e --- /dev/null +++ b/sources/campaign-20260802/uk_runs/two_child_limit_removal_2026.json @@ -0,0 +1,47 @@ +{ + "reform_key": "two_child_limit_removal", + "year": 2026, + "reform_hint": "Remove the UC two-child limit", + "pe_construction": "gov.dwp.universal_credit.elements.child.limit.child_count: inf -> inf", + "reform_json": "{\"gov.dwp.universal_credit.elements.child.limit.child_count\": {\"2026-01-01.2028-12-31\": Infinity}}", + "bundle": { + "bundle_id": "uk-5.0.1", + "country_id": "uk", + "policyengine_version": "5.0.1", + "model_package": "policyengine-uk", + "model_version": "2.89.2", + "data_package": "populace-data", + "data_version": "0.1.0", + "default_dataset": "populace_uk_2023", + "default_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_artifact_sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833", + "data_build_model_version": "2.89.2", + "data_build_model_git_sha": "None", + "data_build_fingerprint": "None", + "compatibility_basis": "exact_build_model_version", + "certified_by": "None", + "runtime_dataset": "populace_uk_2023", + "runtime_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "runtime_dataset_source": "/Users/maxghenis/.cache/huggingface/hub/datasets--policyengine--populace-uk-private/snapshots/a75a9a831d6b07aaffbd09713f2a1124f5c0f08f/populace_uk_2023.h5", + "managed_by": "policyengine.py" + }, + "aggregates_gbp": { + "income_tax": 421891913533.19946, + "national_insurance": 61450306465.09366, + "ni_employer": 185481157065.2179, + "child_benefit": 17434702263.490685, + "universal_credit": 39887838277.66961, + "vat": 219622883998.86896, + "household_net_income": 1791280163555.2764, + "gov_tax": 1046803930669.7205, + "gov_spending": 485663250574.56665 + }, + "poverty": { + "var": "in_poverty_ahc", + "rate_all": 0.18629731591349413, + "count_all": 13028998.553302944, + "rate_child_u16": 0.26918599390042075, + "count_child_u16": 3642525.343844831 + } +} \ No newline at end of file diff --git a/sources/campaign-20260802/uk_runs/two_child_reinstate_2026.json b/sources/campaign-20260802/uk_runs/two_child_reinstate_2026.json new file mode 100644 index 0000000..4f6956f --- /dev/null +++ b/sources/campaign-20260802/uk_runs/two_child_reinstate_2026.json @@ -0,0 +1,47 @@ +{ + "reform_key": "two_child_reinstate", + "year": 2026, + "reform_hint": "Reinstate the UC two-child limit (pre-AB2025 counterfactual)", + "pe_construction": "gov.dwp.universal_credit.elements.child.limit.child_count: inf -> 2", + "reform_json": "{\"gov.dwp.universal_credit.elements.child.limit.child_count\": {\"2026-01-01.2028-12-31\": 2}}", + "bundle": { + "bundle_id": "uk-5.0.1", + "country_id": "uk", + "policyengine_version": "5.0.1", + "model_package": "policyengine-uk", + "model_version": "2.89.2", + "data_package": "populace-data", + "data_version": "0.1.0", + "default_dataset": "populace_uk_2023", + "default_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_artifact_sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833", + "data_build_model_version": "2.89.2", + "data_build_model_git_sha": "None", + "data_build_fingerprint": "None", + "compatibility_basis": "exact_build_model_version", + "certified_by": "None", + "runtime_dataset": "populace_uk_2023", + "runtime_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "runtime_dataset_source": "/Users/maxghenis/.cache/huggingface/hub/datasets--policyengine--populace-uk-private/snapshots/a75a9a831d6b07aaffbd09713f2a1124f5c0f08f/populace_uk_2023.h5", + "managed_by": "policyengine.py" + }, + "aggregates_gbp": { + "income_tax": 421891913533.19946, + "national_insurance": 61450306465.09366, + "ni_employer": 185481157065.2179, + "child_benefit": 17434702263.490685, + "universal_credit": 38783589984.86714, + "vat": 219622883998.86896, + "household_net_income": 1790266784216.2012, + "gov_tax": 1046803930669.7205, + "gov_spending": 484560539496.0421 + }, + "poverty": { + "var": "in_poverty_ahc", + "rate_all": 0.19029488142459497, + "count_all": 13308574.643841207, + "rate_child_u16": 0.28258395854764634, + "count_child_u16": 3823821.647847593 + } +} \ No newline at end of file diff --git a/sources/campaign-20260802/uk_runs/uk_scorecard_first.csv b/sources/campaign-20260802/uk_runs/uk_scorecard_first.csv new file mode 100644 index 0000000..13474a7 --- /dev/null +++ b/sources/campaign-20260802/uk_runs/uk_scorecard_first.csv @@ -0,0 +1,11 @@ +reform,pe_gbp_m,hmrc_gbp_m,ratio,note +basic_rate_1p,7278,6900,1.05, +higher_rate_1p,3230,1600,2.02,TIE (milder) +additional_rate_1p,1869,145,12.89,"TIE: HMRC behavioural, PE static" +pa_100,-899,-810,1.11, +employee_ni_1pp,6034,5350,1.13, +employer_ni_1pp,10661,11150,0.96,pe-uk wage incidence: IT+NI spillover -4450m +class4_1pp,584,440,1.33, +cb_first_1pw,-441,-335,1.32, +vat_1pp,10813,8800,1.23, +two_child_limit_removal_vs_preAB2025,1104,,,"children lifted 181,296; PE 2026 baseline already abolishes (AB2025 encoded)" diff --git a/sources/campaign-20260802/uk_runs/uprating_check_april2026.json b/sources/campaign-20260802/uk_runs/uprating_check_april2026.json new file mode 100644 index 0000000..c5dfee7 --- /dev/null +++ b/sources/campaign-20260802/uk_runs/uprating_check_april2026.json @@ -0,0 +1,144 @@ +{ + "check": "april_2026_uprating_tree_vs_rf_staged", + "date_run": "2026-08-02", + "tree_package": "policyengine-uk (installed, .venv-pe)", + "windows": { + "before": "2025-06-01", + "after": "2026-06-01" + }, + "rf_staged_claims": { + "inflation_linked_benefits": 0.038, + "state_pension_triple_lock_earnings": 0.048, + "uc_standard_allowance": 0.062, + "uc_standard_allowance_u25": 0.068, + "uc_health_element_existing": 0.015, + "lha_frozen": 0.0 + }, + "tree_changes": { + "uc_standard_single_25plus": { + "path": "gov.dwp.universal_credit.standard_allowance.amount.SINGLE_OLD", + "before": 400.14, + "after": 424.9, + "pct": 0.061878342580096835 + }, + "uc_standard_single_u25": { + "path": "gov.dwp.universal_credit.standard_allowance.amount.SINGLE_YOUNG", + "before": 316.98, + "after": 338.58, + "pct": 0.06814310051107308 + }, + "uc_standard_couple_25plus": { + "path": "gov.dwp.universal_credit.standard_allowance.amount.COUPLE_OLD", + "before": 628.1, + "after": 666.97, + "pct": 0.06188505015124979 + }, + "uc_standard_couple_u25": { + "path": "gov.dwp.universal_credit.standard_allowance.amount.COUPLE_YOUNG", + "before": 497.55, + "after": 528.34, + "pct": 0.06188322781629996 + }, + "uc_child_element": { + "path": "gov.dwp.universal_credit.elements.child.amount", + "before": 292.81, + "after": 303.94, + "pct": 0.03801099689218268 + }, + "child_benefit_eldest": { + "path": "gov.hmrc.child_benefit.amount.eldest", + "before": 26.05, + "after": 27.05, + "pct": 0.03838771593090207 + }, + "child_benefit_additional": { + "path": "gov.hmrc.child_benefit.amount.additional", + "before": 17.25, + "after": 17.9, + "pct": 0.03768115942028971 + }, + "state_pension_new": { + "path": "gov.dwp.state_pension.new_state_pension.amount", + "before": 230.25, + "after": 241.3, + "pct": 0.0479913137893595 + }, + "state_pension_basic": { + "path": "gov.dwp.state_pension.basic_state_pension.amount", + "before": 176.45, + "after": 184.9, + "pct": 0.0478889203740438 + }, + "uc_lcwra_element": { + "path": "gov.dwp.universal_credit.elements.disabled.amount", + "before": 423.27, + "after": 217.26, + "pct": -0.4867106102487774 + }, + "pension_credit_mig_single": { + "path": "gov.dwp.pension_credit.guarantee_credit.minimum_guarantee.single", + "error": "KeyError: 'single'" + } + }, + "notes": [ + "tree-only check; no sim. Paths that error are recorded verbatim (vocabulary gaps or different parameter layout \u2014 fail loud, no guessing).", + "LHA rates are data-driven per BRMA in pe-uk; freeze verification needs the LHA parameter/dataset mechanism \u2014 recorded as follow-up if paths error.", + "UC health element AB2025 new/existing split may be structural rather than a single amount parameter; error here means map the encoding first." + ], + "findings": { + "concordant": { + "uc_standard_25plus": { + "pe": 0.0619, + "rf": 0.062 + }, + "uc_standard_single_u25": { + "pe": 0.0681, + "rf": 0.068 + }, + "inflation_linked (uc child element)": { + "pe": 0.038, + "rf": 0.038 + }, + "child_benefit": { + "pe": "0.0377-0.0384 (5p rounding)", + "rf": 0.038 + }, + "state_pension_new_and_basic": { + "pe": "0.0479-0.0480", + "rf": 0.048 + } + }, + "flags": [ + { + "id": "uc_couple_u25_uprating", + "severity": "low", + "note": "pe-uk couple-U25 standard allowance +6.19% while single-U25 +6.81%; RF staged a single U25 figure (6.8%). Verify against the DWP 2026-27 rates order which couple-young rate applies." + }, + { + "id": "lcwra_halving_applied_to_stock", + "severity": "RESOLVED_FALSE_ALARM", + "class": "verification_method", + "evidence": "parameters/gov/dwp/universal_credit/elements/disabled/amount.yaml: 2026-04-01: 217.26 (=\u00a350/wk) replacing 423.27; variables/.../uc_LCWRA_element.py pays flat p.amount to every uc_limited_capability_for_WRA person \u2014 no new/existing-claimant split anywhere in the disability_element tree.", + "external_basis": "RF staged: UC health element EXISTING recipients +1.5% April 2026 (new claimants halved to \u00a350/wk); HMT B2025 measure name: \"Changes to the standard allowance and health element to protect existing claimants\".", + "implication": "PE 2026+ understates UC for the existing LCWRA stock by ~\u00a32.5k/yr each; depresses disabled-family incomes in ALL 2026 UK results this session (both two-child worlds share it; deltas mostly net out).", + "action": "file upstream policyengine-uk issue; note in every 2026 UK result until fixed.", + "resolution": "policyengine_uk/simulation.py applies universal_credit_july_2025_reform.simulation_modifier UNCONDITIONALLY at baseline build (line ~177): per year 2026-29 it stochastically tags post-2025 claimants (2026: 11%, WPI/Trussell shares, rng seed 43) at the new-claimant \u00a3217.26 rate and set_inputs the CPI-protected combined-award value for the existing stock (PR #1567, closed issue #1389). The certified baseline USED IN ALL THIS SESSION'S UK RUNS therefore models the existing-claimant protection.", + "method_lesson": "tree+variable-formula reading is insufficient for parameters overlaid by simulation-level modifiers; any tree-only uprating check must cross-check scenarios/ and simulation.py build hooks before flagging.", + "residual": "implied existing-claimant health-element growth in the modifier is CPI-combined-minus-uplifted-SA, consistent with RF's +1.5% staged figure; stochastic new-claimant share (11% 2026) is an assumptions-registry row (WPI Economics/Trussell, admin PIP data 2025)." + }, + { + "id": "param_step_conventions_mixed", + "severity": "info", + "note": "standard allowance/state pension carry Jan-1-stepped projected values to 2041; disabled amount.yaml steps at real April dates. Year-on-year (June-June) windows capture both." + }, + { + "id": "pension_credit_mig_path", + "severity": "info", + "note": "gov.dwp.pension_credit.guarantee_credit.minimum_guarantee.single KeyError \u2014 layout differs; map before checking MIG uprating." + } + ], + "assumptions_registry_rows": [ + "pe-uk UC rebalancing: post-2025-claimant share by year {2026: 0.11, 2027: 0.13, 2028: 0.16, 2029: 0.22} (WPI Economics for Trussell Trust, admin PIP data 2025), stochastic rng seed 43, applied at build" + ] + } +} \ No newline at end of file diff --git a/sources/campaign-20260802/uk_runs/vat_1pp_2026.json b/sources/campaign-20260802/uk_runs/vat_1pp_2026.json new file mode 100644 index 0000000..d351685 --- /dev/null +++ b/sources/campaign-20260802/uk_runs/vat_1pp_2026.json @@ -0,0 +1,40 @@ +{ + "reform_key": "vat_1pp", + "year": 2026, + "reform_hint": "Change standard rate by 1 percentage point (VAT)", + "pe_construction": "gov.hmrc.vat.standard_rate: 0.2 -> 0.21000000000000002", + "reform_json": "{\"gov.hmrc.vat.standard_rate\": {\"2026-01-01.2028-12-31\": 0.21000000000000002}}", + "bundle": { + "bundle_id": "uk-5.0.1", + "country_id": "uk", + "policyengine_version": "5.0.1", + "model_package": "policyengine-uk", + "model_version": "2.89.2", + "data_package": "populace-data", + "data_version": "0.1.0", + "default_dataset": "populace_uk_2023", + "default_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_build_id": "populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "certified_data_artifact_sha256": "f17306ccb2aad7ff0130be3589b560afb2e2a12a943570911cd0c77f07934833", + "data_build_model_version": "2.89.2", + "data_build_model_git_sha": "None", + "data_build_fingerprint": "None", + "compatibility_basis": "exact_build_model_version", + "certified_by": "None", + "runtime_dataset": "populace_uk_2023", + "runtime_dataset_uri": "hf://policyengine/populace-uk-private/populace_uk_2023.h5@populace-uk-2023-dd68c73-4aa4b14-20260619T023711Z", + "runtime_dataset_source": "/Users/maxghenis/.cache/huggingface/hub/datasets--policyengine--populace-uk-private/snapshots/a75a9a831d6b07aaffbd09713f2a1124f5c0f08f/populace_uk_2023.h5", + "managed_by": "policyengine.py" + }, + "aggregates_gbp": { + "income_tax": 421891913533.19946, + "national_insurance": 61450306465.09366, + "ni_employer": 185481157065.2179, + "child_benefit": 17434702263.490685, + "universal_credit": 39887838277.66961, + "vat": 230436219162.37634, + "household_net_income": 1780466827149.559, + "gov_tax": 1057617265773.3811, + "gov_spending": 485663250574.56665 + } +} \ No newline at end of file diff --git a/sources/harvest-uk-2026-08-02/COLLATION.md b/sources/harvest-uk-2026-08-02/COLLATION.md new file mode 100644 index 0000000..51f3640 --- /dev/null +++ b/sources/harvest-uk-2026-08-02/COLLATION.md @@ -0,0 +1,76 @@ +## pwbm — DONE (first to finish) +717 validated claims (382 revenue_change + proposed: pct_change_after_tax_income 161, primary_deficit_change 66, avg_* 108); 43 manifested artifacts, 103 extracted tables, re-runnable extract/stage scripts. OBBBA fully captured (signed conv $3,211B / dyn $3,631B — spot-checked vs prose; House variants; distribution 2027/2030/2033 × 9 groups). INGEST GOTCHAS: (1) some tables score vs TCJA-extension baseline → conditions.baseline_policy=tcja_extension — needs a non-current-law baseline ReformRef; (2) OBBBA "Table 3" = primary_deficit_change not revenue; (3) PWBM distribution concept = after-tax-AND-transFER income (conditions.income_concept); (4) tariff xlsx units inferred (rows flagged UNITS INFERRED). Best PE-runnable: SS-benefits-tax elimination, Keep Your Pay Act, WATCA surtax, top-rate options. +## tax_foundation — DONE +665 validated claims (491 revenue_change + 174 pct_change_after_tax_income), conv/dyn never mixed, zero unparseable cells, reproducible stage_claims.py. Crawl respected their robots (sitemap-driven, 5s AI-bot delay, contact UA). Headliners: OBBBA final law canonical page (conv −$5,168.4B / dyn −$4,331.1B, 2025–2034, cross-verified) + provision-level XLSX (40 provisions; TCJA-permanence with conv AND dyn per provision, e.g. SALT cap +$1,020.4B/+$782.7B) + Tariff Tracker July-2026 vintage. INGEST GOTCHAS: calendar-vs-fiscal UNSTATED on OBBBA/TCJA revenue tables (per-row note — don't assume FY vs CBO/JCT); tariff tables mix subtotal/component/total rows (no naive sums); state/district tables are Datawrapper embeds (CSV-endpoint follow-up); pct_change_after_tax_income recurs → deliberate Metric extension. NOTE cross-source: TF OBBBA conv −$5,168B vs PWBM signed conv −$3,211B — different conventions/scopes, adjudication material for the diagnosis loop. +## budget_lab — DONE +1,247 validated claims (644 revenue_change + 603 pct_change_after_tax_income; 861 high-confidence; zero dup keys; per-row value_raw + normalization + sign convention). Best data-per-artifact of the fleet: "TBL Data" XLSX ships with nearly every analysis. Jewels: reconciliation distributional workbook (% change after-tax-and-transfer income by quintile × {Medicaid, SNAP, Taxes, Net} × bill version — the TRANSFER-side complement nobody else publishes), 16-scenario CTC options workbook under two baselines (430 rows — ideal reform-score validation), provision-level House-vs-Senate distribution (279 rows). Poverty metrics: honestly zero (they publish income effects, not poverty). INGEST GOTCHAS: per-workbook unit chaos (fractions vs percent — normalized per row, caught via cross-workbook cell check); one workbook dropped for provably mislabeled headers; hidden right-side panels needed panel-aware parsing. Out-of-vocab held back: %GDP, $/household, share-of-tax-cut columns. +## cpsp — DONE +1,033 claims (534 poverty_rate + 318 rate_change + 149 count_change + 32 proposed levels; 961 construct clean vs models.py). The poverty complement to the tax scorers. Jewels: CTC counterfactual tables 2023/2024 (No-CTC/TCJA/OBBBA/AFA at explicit 100% take-up, no behavior — DIRECTLY expressible as policyengine_us reforms, the cleanest reform-validation surface of the night); monthly SPM series 2024-01→2025-12 (project ENDED Dec 2025, Gates funding — no 2026 monthlies will ever exist; Oct 2025 blank from the shutdown CPS); SNAP TFP-revocation all-state tables (change-validation; levels on pooled 2015-19 TRIM base, data_vintage flagged). Access: Cloudflare challenge NOT bypassed — static /sites/ files live w/ honest UA, pages via Wayback (recorded). BONUS: caught an ERRATUM in their 2024 historical brief (key-findings 16.6% vs body+math 11.4% — staged 11.4%, flagged) — external_issue diagnosis material before any comparison ran. Annual SPM levels ≈ Census → flag possible consumed_as_target reclass at ingest. +## cbo — DONE +931 claims (929 baseline + 2 reform; 317 pre-marked consumed_as_target VERIFIED against policyengine-us/parameters/calibration/gov/cbo/ — staging-time honesty labels). Program coverage: Medicaid 155, SSI 121, SNAP 68 (outlays+participation+avg benefit), UI 55, CHIP 44, + 330-row individual-income-tax detail (the sleeper: calendar-year AGI→liability walk, directly PE-tax-unit comparable). Caught a CBO WORKBOOK LABEL BUG (SNAP header says billions, values are millions — cross-verified to 6 sig figs). SSI sheet rows reproduce PE calibration yaml exactly. EITC/CTC: no dedicated workbook exists — composite line staged; Treasury refundable-credit accounts = follow-up lead. OBBBA cost-estimate PDFs retrieved but mostly period-ranged (2025-2034 windows) → verbatim pointers, only 2 single-year claims staged (SNAP avg benefit $213 reform vs $227 baseline, 2034). BLOCKERS: cbo.gov is DataDome-403 (no bypass; used local downloads + Wayback); 5 artifacts unretrieved incl. the June-2026 spending refresh — one click each in a real browser. Schema note: period-RANGE claims (10-year windows) don't fit int period → needs period_start/period_end or a window condition at ingest. +## tpc — DONE +1,486 claims from 35 of 54 harvested T-series tables (revenue_change 425 in-vocab; avg_tax_change 228, pct_change_ATI 198, share_with_tax_cut 167 proposed; 468 benefit-family rows flagged droppable). Coverage: full Senate-OBBBA distribution block, CTC options set (T25-0209/0213/0215 — parametric, but BASELINE = current law + Senate OBBBA Title VII, captured as baseline_hint per row), American Family Act T26-0029..31, June-2026 current-law baseline distribution block (mode-1 level validation once vocab extends), 3 tariff tables (independent comparator for the tariff-parity lane). Values verbatim + TPC's unrounded twin as value_unrounded; income axes verbatim incl. dollar-year. ACCESS RECIPE (documented for re-harvest): TPC Cloudflare-blocks curl at TLS-fingerprint level → browser-pane routing; Drupal pages throttle ~1/30-50s BUT static /sites/default/files/ XLS paths are unthrottled = the unlock; HTML tables are GIFs so XLS is the ONLY parseable artifact; page-slug vs file-id mismatches → key off file-internal table id. +## jct — DONE (largest haul) +6,771 claims across 7 conventional revenue tables — per-provision × FY2025-34, every row passing exact column-count validation + a horizontal checksum (years must sum to the printed span total), NET TOTALs matched to published figures, 5 random cells re-grepped. Jewels: JCX-35-25 enacted-OBBBA Title VII (−$4,474,972M ✓ the published $4.475T), JCX-26-25R House-passed (−$3,798,248M — enables per-provision House-vs-Senate cross-validation), JCX-29-25 scored vs CURRENT-POLICY baseline (conditions.baseline distinguishes twins — third source tonight exercising non-current-law baselines). Access: jct.gov TLS-fingerprint 403s everything non-browser → original bytes via Wayback at 1 req/3.5s (no bypass). FOLLOW-UPS: JCX-34-25 binary never archived (SPN 5xx tonight; correct URL in NOTES); 2026 JCX index needs a live-browser pass; JCX-45-25 tax-expenditure report downloaded but UNstaged (needs coordinate-aware parser + tax_expenditure metric). + +# FLEET SUMMARY — 2026-08-02 overnight +7/7 harvesters complete. **12,850 staged claims** (JCT 6,771 · TPC 1,486 · Budget Lab 1,247 · CPSP 1,033 · CBO 931 · PWBM 717 · Tax Foundation 665), 246 manifested artifacts, all sha256'd, per-row provenance, verbatim values only, zero bot-mitigation bypasses (Wayback/static-path/browser-pane recipes documented per site). + +INGEST WORKLIST (deliberate schema decisions, then adapters): +1. Metric extensions that RECUR: pct_change_after_tax_income (4 sources), avg_tax_change_usd (3), share_with_tax_cut, primary_deficit_change, tax_expenditure. +2. period ranges (10-yr windows: JCT/PWBM/TF totals, CBO cost estimates) → period_start/period_end. +3. Baseline variants are LOAD-BEARING: TCJA-extension (PWBM), current-policy (JCX-29-25), current-law+Senate-Title-VII (TPC CTC set) → non-current-law baseline ReformRefs, never conditions-only. +4. conditions vocab to standardize: income_group + income_axis, scoring (conventional|dynamic), income_concept, baseline_policy, option, month, data_vintage. +5. calibration_relationship: CBO rows pre-verified vs pe-us calibration params (317 consumed); CPSP annual SPM ≈ Census → review. +DIAGNOSIS SEEDS ALREADY IN HAND: CPSP erratum (16.6 vs 11.4), CBO SNAP workbook label bug (billions/millions), TF-vs-PWBM OBBBA conventional gap (−5,168 vs −3,211 $B — scope/convention decomposition), JCT-vs-TF-vs-PWBM enacted-OBBBA triangle. +FOLLOW-UP FETCH QUEUE (one click each in a real browser): 5 CBO artifacts incl. June-2026 refresh; JCX-34-25; 2026 JCX index; TF state/district Datawrapper CSVs. + +# UK FLEET — dispatched 2026-08-02 +Staging at ~/scorecard-harvest/uk_{source}/. UK conventions for ingest: values GBP (proposed unit gbp — UnitConcept lacks it, extend deliberately); UK fiscal year Apr–Mar (time_basis fiscal_year + fy label in conditions); geography labels UK/GB/England/Wales/Scotland/NI verbatim; income_concept BHC|AHC + equivalisation are LOAD-BEARING conditions on every distribution row; devolved variation (Scottish income tax) in conditions. + +# ⚠️ INGEST ROUTING RULE (Max 8/2): admin facts → LEDGER, model claims → SCORECARD +Administrative caseload/expenditure/receipts OUTTURN rows (DWP benefit expenditure & caseload tables, HMRC outturn statistics, CBO historical rows) are populace CALIBRATION material → route to Ledger source packages (target-profile or validation_comparator facts), NOT scorecard external_scores. Scorecard holds MODEL claims only (Urban/TPC/PWBM/JCT/TF/BL/CPSP/IFS/RF/UKMOD + CBO projections + OBR forecasts — a forecast is a model speaking). Routing key = the per-row basis tag (outturn|forecast) the harvesters already stage. Scorecard rows referencing admin facts do so via ledger_fact pointers, never copies. Applies retroactively to the CBO baseline staging (projection rows stay scorecard-side; outturn rows → Ledger). +## uk_hmt — DONE +1,368 staged claims (1,218 exchequer_impact + 150 median_gross_income; 31 suppressed incl. verbatim negligible/blank-cell footnotes), 16 manifested artifacts, all sha256, zero bot mitigation (plain curl + honest UA; gov.uk search/content APIs for discovery). All 3 events: AB2024 (Table 5.1 XLSX, 70 measures + subtotals), Budget 2025 (Table 4.1 XLSX, 88 measures — Nov event is titled plain "Budget 2025"), SS2025 (Table 3.1 parsed from PDF text layer, 33 measures — no XLSX published). Checksums: sum(measures) vs Total rows within ±£30m everywhere; Employer NICs +23,770m cross-verified scorecard↔costings note. Spring Statement 2026 (3 Mar): forecast-only, NO costings/DA publications exist. Metric: proposed exchequer_impact NOT revenue_change (deliberate: footnote says Tax/Spend classification is by LARGEST impact, rows mix heads); sign convention verbatim-stated only at SS2025 (incl. HMT typo "postive"), observed+cross-checked for the XLSXs. DA income concept captured verbatim: equivalised net household income BHC, modified OECD (HBAI-consistent), IGOTM on pooled LCF 2017-18..2019-20 — on every distribution row. 24 verbatim costing-methodology notes (behavioural adjustments incl.) in NOTES.md as assumptions-registry material. BIGGEST GAP: per-decile policy-impact values (Figures 1.A/1.B) are chart graphics only — no published numbers anywhere (PDF, HTML, annex); only annex Table 2.C (median gross income by decile × composition) is numeric. DIAGNOSIS SEED: B2025 scorecard row embeds "taking 450,000 children out of poverty" in the two-child-limit measure name = testable government poverty claim. UNSTAGED: Tables 5.2/4.2 (previously-announced measures, downloaded). +## uk_ukmod_jrf — DONE +1,782 staged claims (ukmod 1,392 / jrf 390), 5 artifacts, zero bypasses (ISER open; JRF crawl-delay 20s honored). THE SAME-CLASS JEWEL: UKMOD Country Report 2023-2030 (CeMPA WP 8/26, Apr 2026) Section-4 validation block staged in full — Tables 4.5/4.6 caseloads+expenditure with UKMOD-simulated AND official-estimate columns side by side (38 instruments × 2023-2030, incl. Scottish income tax by band), 4.7 income distribution and 4.8 poverty rates × {UKMOD, Input Data, HBAI} — another microsimulation's self-validation, conditions.series distinguishes sides; official cells are second-hand DWP/HMRC/OBR → dedup vs first-hand lanes at ingest, delta = diagnosis material. Reform surface: CeMPA WP 3/26 Autumn Budget assessment (threshold freezes + UC two-child-limit removal + WFA restriction + PC cuts; reform_hint verbatim) — fiscal by year+nation, fixed-AHC poverty counts base/reform/change, child poverty by nation, Gini/S80S20 AHC+BHC. JRF: UK Poverty 2026 data workbook (81 sheets, machine-readable, HBAI-derived, UNROUNDED headline AHC series 1994/95-2023/24) — OT1/GT1/DDT1/OG1/FAST2/A1T1 staged; MIS 2025 Table 2 (88 cells, AHC/BHC-comparable totals). INGEST GOTCHAS: (1) UKMOD validation poverty/distribution = BHC, JRF headline = AHC — income_concept load-bearing everywhere; (2) proposed gbp units + value_kind currency_gbp extension; (3) UKMOD take-up priors frozen since 2021 (their own health warning) — expect drift in projected years; (4) CeMPA 3/26 title says Autumn Budget 2026, cover says 2025 (= Nov-2025 Budget measures); (5) MIS 2024 couples erratum (missing mobile phone, corrected 2025); (6) PDF header typo "2029 2029" on continuation pages, mapped positionally. ADAPTER-PATTERN VERDICT: yes — the EUROMOD/UKMOD country-report validation block (simulated vs official vs input-data columns, instrument × policy-year) is a standardized format ACROSS the whole EUROMOD family; one adapter keyed on (instrument, series, policy_year) generalizes to every EUROMOD country report and to prior UKMOD vintages (cempa2-25 = 2022-2029 available for drift analysis). +## uk_resolution_foundation — DONE +71 staged claims, 15 manifested artifacts (all sha256), zero bypasses (robots = blanket Allow; honest UA; ~3-4s delay). RF = third UK microsim lineage (IPPR Tax Benefit Model on FRS/HBAI 2023-24 — every distribution figure credits it) vs IFS TAXBEN and HMT IGOTM. Jewels: LSO 2026 poverty projections (child 33%→30% relative AHC 2025-26→2026-27, −420k children; working-age 19.9%→19.5%; pensioner 16.0% — and footnote 21 says DWP's Feb-2026 projections give the IDENTICAL 33→30 path = ready-made same-concept triangle with the DWP lane); LSO 2025 prior vintage (central 34% by 2029-30 = 4.8m children; policy scenario w/ 2CL repeal = 31% — pre-Budget counterfactual vs LSO 2026 post-Budget actual = vintage-pair for diagnosis); Stairway to headroom Budget-2025 decile block (2CL £3,570/extra-child-element, poorest fifth +£360; threshold freeze −£540 richest fifth vs −£64 poorest; mansion tax; 64% of poorest decile gain / 96% of richest decile lose — RF models 2029-30 vs HMT DA's 2028-29, scope = 52% of tax measures, both verbatim in NOTES); April-2026 uprating parameter set (3.8 CPI / 4.8 SP / 6.2 UC / 6.8 U25-UC / 1.5 UC-health-existing / 0 LHA — pure policyengine-uk parameter checks). 26 rows carry reform_hint (2CL repeal, UC CPI+2.3%, UC-health halving, freeze extension, mansion tax, EV per-mile). 8 rows attribution-flagged = RF citing government (HMT 4.1 costings £2.4bn→£3.1bn, DWP IA 510k/£4,560, govt −450k children) — dedup vs uk_hmt's first-hand Table-4.1 rows at ingest; RF's −420k (own model) vs govt's −450k embedded in the HMT scorecard row = the fleet's cleanest cross-model poverty-claim pair. INGEST GOTCHAS: (1) NO chart-data downloads exist anymore — RF pages ship PDF only (probed; site "Data" nav = 2 dashboards), so vigintile curves are labelled-points-only; (2) source TYPO in Catching up? "£1.85 million" = £1.85bn (flagged in-row); (3) £800m vs £810m vs £330m-net UC-uprating costs = three scopes/vintages, not contradictions; (4) changes-not-levels: RF applies modelled CHANGES to HBAI 2023-24 outturn, so levels inherit outturn error (their words, NOTES verbatim); (5) take-up assumptions UC 80% / PC 65→70% + full-UC-rollout-by-2026-27 in NOTES for the assumptions registry. UNMINED: Low Pay Britain 2025 (minwage), State of the nations (devolved; SCP figures are ScotGov-model, left unstaged), LSO 2025 Annex per-nation table, It's-personal-taxation (pdftotext yields 0 lines — OCR next pass). + +# UK FLEET SUMMARY — 2026-08-02, 7/7 complete +**33,943 UK staged claims** (OBR 25,558 · HMRC 2,842 · DWP 2,054 · UKMOD/JRF 1,782 · HMT 1,368 · IFS 268 · RF 71), ~100 manifested artifacts. Combined US+UK: **46,793 staged claims, 14 sources** (+ Urban's 30,004 already in DB). Zero bot-mitigation bypasses fleet-wide (Turnstile seen at OBR and NOT clicked; Wayback originals + static-path unlocks documented per site). + +UK INGEST ADDITIONS to the worklist: +1. Vocab: gbp unit (recurring everywhere), exchequer_impact (HMT/OBR — Tax/Spend heads mix, mapping = deliberate ingest decision), poverty_count, unclaimed_expenditure, revenue_level, policy_parameter_level, taxpayer_count (shared with CBO), income_percentile_point etc. (HMRC). +2. FY convention: staging uses END-year in places, pe-uk-data maps START-year — conditions.fy disambiguates; normalize deliberately at ingest. +3. LEDGER ROUTING (Max's rule) applies hardest here: DWP BECL outturn rows + HMRC outturn statistics → Ledger; BECL/HMRC forecast rows (OBR-consistent) + everything think-tank → scorecard. pe-uk-data consumption VERIFIED in-session by the DWP agent (targets/sources/obr.py + dwp.py) → consumed_as_target reclasses pre-evidenced. +4. Take-up: DWP PC rows pre-marked seed_source (PE-UK pension_credit takeup.yaml cites this exact series — verified); DWP ~85% HB-pensioner take-up vs PE-UK takeup=1 = a direct pe_gap seed; IFS TAXBEN = deliberate full-take-up (entitlements basis, verbatim guide) = registry axis on every UK poverty comparison. +UK DIAGNOSIS SEEDS: HBAI FYE2025 admin-linked restatement (same year/publisher, BHC relative 17.23%→15.18% — ~2pp methodology gap, paired editions staged); two-child-limit PENTAGON (IFS −540k steady-state · RF −420k · HMT/govt −450k · UKMOD assessment · PE-UK = fifth leg); OBR self-revision surface (EFO 3.17: freezes £24.3bn certified → £49.1bn latest); UKMOD take-up priors frozen since 2021 (their own §4.3 warning); BECL FY-average vs UC point-in-time (definitional, pre-adjudicated). +FOLLOW-UP FETCH QUEUE (browser one-clicks): OBR March-2026 policy/expenditure tables + Nov-2025 policy tables; IFS taxlab revenue spreadsheets; HMT Tables 5.2/4.2; Stat-Xplore detail (auth = Max's call); RF vigintile series (correspondence = Max only). + +# FIRST UK COMPARISONS COMPUTED — 2026-08-02 (results/uk/ + comparison/uk_scorecard_first.csv) +9 HMRC ready-reckoner rows vs PE-UK static (populace_uk_2023 @ dd68c73 via pe.py, FY2026): basic_rate 1.05 · pa_100 1.11 · employee_ni 1.13 · employer_ni 0.96 (on ni_employer; pe-uk wage-incidence spillover −£4.45bn IT+NI recorded — pe-uk NOT purely static on this margin) · vat 1.23 · class4 1.33 · cb 1.32 (HICBC netting hypothesis) · higher 2.02 · additional 12.9 — the TIE gradient 1.05→2.02→12.9 IS the taxable-income-elasticity ladder, assumption-registry linkable. TWO-CHILD LIMIT: PE 2026 baseline ALREADY abolishes (child_count 2→inf at 2026 — AB2025 encoded); removal measured vs reinstated counterfactual = £1.10bn UC cost, −1.34pp child poverty, 181k children — NOT yet pentagon-comparable: two named construction deltas (floating-line relative AHC vs external FIXED-line; u16 vs HBAI dependent children) + single-year vs steady-state roll-in. Fixed-line rerun = next compute item before any adjudication. + +# US YEAR GRID COMPLETE — 2026-08-02 +baseline+fullpart now computed at 2024/2025/2026 (comparison/pe_{baseline,fullpart}[_YYYY].csv, monthly-aware flag forcing throughout). Unlocks: CBO FY2025/26 projection joins (exploit item 7 — respect outlays-vs-benefits concepts per cbo/NOTES.md row map) and CPSP 2024 comparisons. Campaign chip task_68d35783 staged; CAMPAIGN.md = driver. + +# COMPUTE BATCH — 2026-08-02 afternoon (campaign session, CAMPAIGN.md driver) +**UK two-child fixed-line rerun (exploit 3) ✅**: PE −243,108 HBAI-dep children (−1.61pp), 2026, fixed baseline relative-AHC line, calibrated take-up (results/uk/two_child_fixed_line_2026.json). Findings: (1) line convention contributes EXACTLY ZERO — person-weighted medians identical to 5 decimals between worlds (UC changes never touch the median household), so floating-vs-fixed was a null delta all along; (2) child-definition delta u16→HBAI-dep only +8k; (3) pe-uk's in_relative_poverty_ahc uses HOUSEHOLD-weighted median vs HBAI person-weighted convention (upstream note-worthy; both computed, person-weighted used); (4) prior run's in_poverty_ahc was ABSOLUTE AHC (parameter threshold), not relative — abs-line continuity check reproduces 181k u16 exactly; (5) grandfathering verified in code (born<2017 exempt) → PE reinstated world = actual partially-rolled-in 2026 law. Pentagon discipline: legs NOT same-concept (IFS −540k = 2CL-only steady-state; govt −450k horizon ~2029-30; RF −420k = Budget-package YoY; UKMOD CeMPA = NET package −13k children FY2026/27, freezes offset 2CL). Fulltakeup (IFS-entitlements-comparable) world pair queued — take-up is the live hypothesis for PE −243k vs IFS −540k. +**CPSP CTC counterfactuals 2024 (exploit 2) 🔄→✅**: runner cpsp_ctc.py, every gov.irs.credits.ctc.* path pinned against installed tree before construction. 2023 legs = not_computed WITH REASON (certified populace_us single-period 2024; 2023 weighted population = 0; year-mismatched comparison declined) — results/us/cpsp_ctc/NOT_COMPUTED_2023.json. 2024 landed so far: no_ctc 21.15% u18 (CPSP 16.6), obbba 16.74% (CPSP 13.3). LEVELS gap ~+3.4-4.5pp is DATASET LINEAGE not take-up: forcing credit flags moves PE only ~0.2pp (year-grid unforced 16.97% vs forced ~16.7%); CPSP≈Census 13.3-13.4. → dataset_construction diagnosis seed for populace calibration (ECPS sparse build measures child SPM high). Changes directionally consistent; full report when tcja/afa land. AFA construction: 2024-brief params deflated 2025→2024 (CPI ratio 0.97154, recorded assumption incl. 2025-CPI-vintage caveat); named deltas: newborn payment omitted, birth-month proration, refundable-ODC. +**TPC CTC/toprate/AFA batch (exploit 4) 🔄**: 16 sims in flight. T25-0209 full specs extracted from XLSX (3 CTC legs + 3 toprate legs at exact thresholds + totals); toprate legs runnable via gov.contrib.additional_tax_bracket structural reform (in_effect switch; slots 1-7 mirrored from live tree at runtime — contrib defaults are stale pre-OBBBA, mirroring is load-bearing). T26-0029 AFA vs current law INCLUDES TPC microdynamic response (named axis vs static PE); AFA floor ambiguity (bill $2,000 vs OBBBA $2,200 mid-tier) bounded by running BOTH constructions. FY-cash vs CY-liability convention named; CTC legs run at 2025 AND 2026 (FY2026 ≈ TY2025 refund settle-up for CTC). +**Random audit draw #1 (explore) ✅**: seed 20260802, universe 76,797 (14 staged files + urban DB read-only), 100 drawn, ALL outcomes published + hand-reviewed (results/audit/). Reviewed counts: computed_prior 6 · compute_candidate {reform 14, baseline 3, subgroup 24} · out_of_model {scope 22, admin 9, static 1, geo-pool 1, missing-axis 2} · vocab_pending 9 · vintage 2 (+3 modelable-in-kind) · needs_concept_map 2 · ledger_routed 1 · needs_review 1. BIGGEST UNLOCK: the 24 Urban subgroup slices (race/age/earners) need ONE subgroup-aware rerun of year-grid concepts (race + is_hispanic verified present in pe-us; locale/metro axis verified ABSENT → 2 rows honestly out_of_model_missing_axis). JCT draws are provision-level revenue staged under proposed_metric — reclassed compute_candidate (exploit-5 lane). +**RULING UPDATE (Max, 8/2, via calibration session — supersedes the batch note above)**: the CPSP/Census child-SPM LEVEL gap is RECLASSIFIED from dataset_construction seed to **by_design** (new diagnosis class, issue #9): Census SPM is not a target; populace deliberately departs from ASEC SPM attributes (calculated-vs-reported benefits, recalibration, threshold treatment — populace PR#32/census #9081 lineage). Level rows vs ASEC-anchored series carry by_design; adjudication text = design-rationale decomposition, never convergence language. CTC world CHANGE comparisons unchanged (same_assumptions test). cpsp_ctc_report.py + CAMPAIGN.md item 2 updated accordingly. +**REGISTER REFINEMENT (Max, 8/2, supersedes the by_design note above)**: scorecard is DESCRIPTIVE BY DEFAULT. (1) by_design → **methodological_difference**, strictly descriptive (both sides' choices documented via registry links; no defended-departure or convergence framing either direction — SPM level rows state Populace calculates benefits + recalibrates where ASEC carries reported attributes, and stop). (2) **pe_gap / external_issue require a citable known issue in action_link** (populace#593, CPSP 16.6/11.4 erratum qualify; divergence alone never does). (3) Compute-time hypotheses default explanation-shaped; verdict-shaped only on known-issue rows. Applied to cpsp_ctc_report.py + CAMPAIGN.md. Full ruling: issue #9 latest comment. + +# CALIBRATION-SESSION EXCHANGE + TPC FIRST DELTAS — 2026-08-02 later afternoon +**#593/#9081 citations now grounded**: (a) populace#593 scope verified by calibration session — pe_gap valid for early_head_start-affected poverty/net-income rows (EHS at engine-default 100% take-up, 5.16M/$112.3B, flows INSIDE household_net_income) + CHIP program aggregates only; added to cpsp_ctc_report hypotheses with action_link. (b) DWP HB take-up issue NOW FILED (policyengine-uk#1813) — HB rows may carry pe_gap under the gating rule. (c) **spm-calculator finding**: certified .venv-pe runs 0.3.1 — the version policyengine-us#9081 flags. Ground truth extracted from the PR#32 branch data (BLS workbook sha256 e7931a1f…): at sim-year 2024, 0.3.1 values EXACTLY equal the pre-correction published series (39430/39068/32586), so the 2019-2023 hand-entry errors (≤8%) are moot for everything computed this session; only the BLS 2026-07-17 correction applies at 2024 (renter −0.53% / owner+m +0.42% / owner-o +0.90%). Threshold-channel decomposition leg queued (threshold_channel.py: value-pinned swap to corrected series on the CPSP tcja basis; differenced vs tcja_2024 → descriptive channel magnitude). CPSP-2023 artifact question: DEFER per calibration shepherd (revisit trigger = populace multi-year artifacts). +**TPC first deltas (CY-liability vs FY-cash, per-leg)**: AFA-onto-OBBBA **−132.5B vs TPC −133.9B (ratio 0.99)** — and TPC's number includes microdynamic response. ctc_opt2 −15.4B vs −22.8B (0.68; consistent with CY2025 leg −15.1B and the implied-from-total −15.4B — internally consistent three ways). toprate opt2 +3.6B vs +12.2B (0.29) / opt3 +4.4B vs +13.1B (0.34) BUT opt3−opt2 difference +0.85B vs TPC +0.9B — explanation-shaped reading: PE tracks the marginal band ($1.56M→1.72M threshold move) closely while the far-tail (>$2M taxable) level runs ~⅓ of TPC's — top-tail income mass in the sparse ECPS build is the leading explanation channel (FY-vs-CY timing pushes the true gap LARGER, strengthening it). total_opt2 −11.8 vs −10.6 (1.12): the two legs' gaps OFFSET in the net — totals-only comparisons would have hidden both; per-leg decomposition is the product. Interaction term ≈0.05B (total ≈ ctc+toprate exactly). + +# VOLUME LANE FIRST RETURNS — 2026-08-02 evening +**UK free joins (16 rows, zero sims beyond the one aggregates harvest)** — results/uk/free_joins.csv. Coherent two-cluster read (explanation-shaped): (1) TAX SIDE systematically ~1.14-1.23 vs OBR FY2026-27 receipts across FIVE independent heads (IT 1.173 · NICs 1.167-1.228 · VAT 1.170 · CGT 1.165 · council tax 1.139) — uniformity points at a COMMON level factor (2023-artifact income mass uprated to 2026; FY/CY + cash-vs-accrual are few-% and partly wrong-signed) rather than per-head modeling; consistent with tranche-1 reckoner delta ratios (1.05-1.13). Candidate name: uk_income_level_calibration. (2) BENEFIT SIDE program-specific: state_pension 0.993 · pension_credit 0.932 (both calibrated) · UC 0.504 (the 0.55 stochastic take-up in-data; fulltakeup world queued tests it directly) · child_benefit 1.347 (universal-claiming vs real opt-outs + HICBC netting; matches cb reckoner 1.32) · PIP 0.721 / DLA 0.765 / AA 0.557 (receipt under-capture/take-up). fuel duty 0.527 = household-incidence share only (scope note on row). uk_aggregates.py = 33 totals, 0 absent — the whole BECL/OBR/HMRC surface is now joinable each release. +**US free joins**: SNAP participants 1.487 (annual-ever vs avg-monthly — expected direction, churn-plausible), SSI 0.840 (low-churn program → genuine undercount signal). Dollar rows unlock as pass2 lands. +**PWBM SS-tax elimination**: PE CY2025 −102.1B, construction verified (taxable SS = 0.0 exactly); coherent with PWBM FY2025 −60B / FY2026 −116B under CY↔FY mapping; senior-deduction baseline vintage = named axis. 2026 leg queued. +**AFA floor bound complete**: −130.7B (bill $2,000 floor) to −132.5B (onto-OBBBA $2,200) vs TPC FY2026 −133.9B — ratios 0.976-0.989, ambiguity width 1.8B, and TPC includes microdynamics. The AFA reform family now has poverty (CPSP) + revenue (TPC) legs from one construction set. +**OBR measure sample**: 10 reversal legs queued (obr_measures.py) — HICBC SB2024, ee-NI 2p/4p, class4 stack, class2 reinstate, employer AB2024, ART AS2022, dividends AB2021, CGT AB2024, PT/LPL SS2022 (low-confidence flag). Residential-CGT SB2024 skipped: no residential split in pe-uk cgt params (verified). +**TWO-CHILD TAKE-UP DECOMPOSITION COMPLETE (exploit 3 fully closed)**: entitlements-basis pair (all would_claim_* + claims_all_entitled_benefits forced) → removal effect −277,287 dep children (−1.83pp) / UC cost £1.85bn, vs calibrated −243,108 (−1.61pp) / £1.10bn. Ordered channel ledger for the pentagon: line convention 0 · child definition +8k · TAKE-UP +34k (quantified this run) · residual vs IFS −540k / govt −450k = roll-in vintage (PE 2026 keeps born-pre-2017 exemptions; IFS steady-state removes them) + model/data lineage. Full-take-up baseline child rate 31.3% vs calibrated 33.6% (take-up alone = 2.3pp of measured child poverty). Cost triangle: PE calibrated £1.10bn · PE entitlements £1.85bn · HMT costing £2.4bn FY2026-27 (incl legacy-CTC scope + OBR-certified take-up response) — coherent ordering, named scopes. results/uk/two_child_fixed_line{,_fulltakeup}_2026.json. +**CPSP CTC COUNTERFACTUALS 2024 COMPLETE (exploit 2 closed)**: all four worlds computed on CPSP's stated basis; report + staged rows at results/us/cpsp_ctc/. CHANGES (the same_assumptions surface): obbba_vs_tcja PE −0.03pp vs CPSP 0.00pp u18 — both models agree the OBBBA CTC parameter change is poverty-null; no_ctc_vs_tcja PE +4.38pp vs +3.30pp; afa_vs_tcja PE −6.12pp vs −4.50pp — near-constant PE/CPSP delta scaling (1.33×/1.36×) across scenarios = single density-at-threshold factor, not scenario-specific construction. LEVELS +3.5-4.6pp uniformly = methodological_difference (descriptive; SPM_NOTES.md; pe_gap sub-cite populace#593 EHS-in-net-income). 2023 = not_computed + DEFER recorded. Diagnosis classes per the 8/2 descriptive register throughout. diff --git a/sources/harvest-uk-2026-08-02/uk_dwp/NOTES.md b/sources/harvest-uk-2026-08-02/uk_dwp/NOTES.md new file mode 100644 index 0000000..bd3636c --- /dev/null +++ b/sources/harvest-uk-2026-08-02/uk_dwp/NOTES.md @@ -0,0 +1,177 @@ +# uk_dwp harvest notes — 2026-08-02 + +Target: DWP statistics on gov.uk. All fetches via gov.uk content API + +assets.publishing.service.gov.uk with honest UA +(`PolicyEngine-Scorecard-harvester/0.1 ... contact: max@maxghenis.com`). +No bot-mitigation encountered; no bypasses; Stat-Xplore NOT touched (auth-gated, +per instructions). + +**2,054 staged claims** in `claims_staged.jsonl` (concatenated by +`validate_and_concat.py` from per-source files, all re-runnable): +- `claims_takeup.jsonl` — 805 rows (stage_takeup.py) +- `claims_becl.jsonl` — 204 rows (stage_becl.py) +- `claims_hbai.jsonl` — 992 rows (stage_hbai.py) +- `claims_hbai_prior.jsonl` — 48 rows (stage_hbai_prior.py) +- `claims_uc.jsonl` — 5 rows (stage_uc.py) + +Validation (validate_and_concat.py, against scorecard_db/models.py): all rows +in closed vocab or proposed_*; conditions str->str; **zero duplicate claim +keys**; 48 suppressed rows (all FYE 2021 take-up, `[x]` in source, staged with +status=suppressed per the model contract). + +## Conventions used (UK FLEET rules) +- **period = FY ENDING calendar year** (DWP "FYE 2024" = Apr 2023–Mar 2024 → + period 2024), `time_basis=fiscal_year`, verbatim `conditions.fy` + ("FYE 2024" for take-up, "2023/24" for BECL/HBAI, matching each source's own + label). ⚠️ policyengine-uk-data maps FY to its STARTING year (FY 2025-26 → + 2025) — ingest must reconcile via conditions.fy, not period. +- **GBP**: `proposed_unit: "gbp"` (UnitConcept lacks it), values normalized to + absolute GBP with per-row `conversion` (e.g. "£ million x 1e6"), `value_raw` + verbatim. value_kind "gbp" (analogue of usd). +- Rates staged as shares (/100), unrounded where the source is unrounded + (HBAI gives 12+ significant figures — ideal for exact comparison). +- Counts: thousands x 1000, millions x 1e6, documented per row. +- Geography verbatim: gb / uk / england_wales per the source's own coverage + statements (see devolution below). + +## (1) Income-related benefits: estimates of take-up — 805 rows +Editions staged: **FYE 2024** (latest, published 2025-10-30) full series +FYE 2010 + FYE 2013–FYE 2024; **FYE 2023** (prior, published 2024-10-10) +headline year only. `conditions.edition` distinguishes (cross-edition revision +checks; FYE 2023 central caseload take-up identical across editions = no +revision). +- Coverage (benefits × editions): **Pension Credit** (PC1–PC10) and **Housing + Benefit for pensioners** (HB1–HB2) in BOTH editions. Income-related ESA/JSA: + **not published in either edition** (discontinued from the series — FYE 2022 + restart covers PC + HB-pensioners only). So the benefits×editions matrix is + 2×2, complete. +- Structure per benefit: caseload table (recipients; entitled non-recipients; + caseload take-up %) + expenditure table (amount claimed £m; amount unclaimed + £m; expenditure take-up %). Central/lower/upper staged as separate rows, + `conditions.bound`; both rates share metric=participation_rate with + `conditions.takeup_basis: caseload|expenditure` (per task spec). +- PC breakdowns: entitlement_group (all / guarantee_credit / + savings_credit_only) all years; family_type (PC3) and age_group (PC7) + caseload take-up for FYE 2024 only. +- Units: caseload figures are thousands of benefit units → unit_concept + families. Expenditure-basis take-up rows carry proposed_unit gbp (share of + entitled money claimed). +- Metrics: participant_count, participation_gap_count (entitled + non-recipients — in-vocab!), participation_rate; benefit_cost (amount + claimed); proposed_metric **unclaimed_expenditure** (amount unclaimed, with + bounds — the £ take-up gap; recurs 168x, worth a deliberate Metric + extension). +- FYE 2021: suppressed `[x]` in source (COVID FRS), staged status=suppressed. +- calibration: PC rows = **seed_source** — policyengine-uk + gov/dwp/pension_credit/takeup.yaml (0.7 from 2015) cites this publication + series (verified this session). HB rows = held_out (PE-UK HB takeup is + definitionally 1 — "no new claims"; DWP's measured HB-pensioner take-up + ~85% is a genuine external comparator for that assumption). +- Not staged (available in artifacts): mean/median weekly amounts + claimed/unclaimed (PC2/HB2), expenditure take-up by family type/age + (PC4/6/8/10). + +## (2) Benefit expenditure and caseload tables (BECL) — 204 rows +Artifact: Outturn and forecast tables, **Spring Forecast 2026** (published +2026-04-14; OBR Spring 2026 forecast-consistent). XLSX parsed cell-exact +(spot-verified 5 cells to full precision). +- Staged: FY 2019/20 → 2030/31 (outturn through 2024/25, forecast 2025/26+, + designation read from the workbook's own header row → + `conditions.basis: outturn|forecast`). +- Benefits: state_pension (exp + caseload), universal_credit (exp + household + caseload), uc_and_equivalents (exp), pension_credit (exp + caseload), dla, + pip, attendance_allowance (exp + caseload, total and in_payment), + child_benefit (exp; BECL line is "Child Benefit, One Parent Benefit & + Guardian's Allowance" — component condition records this), personal_tax_credits (exp). + Child Benefit has **no caseload row** in BECL (expenditure only, Non-DWP + Welfare sheet) — HMRC Child Benefit statistics are the caseload source + (→ uk_hmrc lane). +- ⚠️ Devolution (verbatim from Notes tab): DLA/PIP/AA figures are + **England & Wales only from FY 2020/21** (Scottish transfer 1 April 2020) — + staged geography=england_wales for those years, gb for 2019/20, with + per-row geography_note. All other benefits GB. +- ⚠️ Caseload semantics (verbatim Notes): "Caseload figures represent an + average over the full financial year" — per-row time_note. Explains e.g. + UC households 5.473M (FY 2024/25 average) vs 7.2M (Feb 2026 point-in-time + from the UC release). +- calibration: staged held_out with a VERIFIED note — pe-uk-data + targets/sources/obr.py consumes benefit expenditure and caseload forecasts + from the OBR March 2026 EFO; BECL is OBR-consistent → likely + consumed_as_target reclass at ingest for matching benefits. + +## (3) HBAI headline poverty — 992 + 48 rows +Artifact: HBAI summary results ODS, FYE 2025 edition (published 2026-03-26). +- Staged: tables 1.3a/b (all individuals), 1.4a/b (children), 1.5a/b + (working-age adults), 1.6a/b (pensioners): rates AND counts, full series + FYE 1995–FYE 2025, relative & absolute × BHC & AHC (income_concept and + poverty_measure MANDATORY conditions on every row). Rates unrounded + percentages → shares; counts millions → persons. poverty_rate in-vocab; + counts as proposed_metric **poverty_count** (496 rows — Metric extension + candidate). +- equivalisation condition verbatim-grounded: FYE 2025 methodology report — + "The main equivalence scales now used in HBAI are the modified OECD scales"; + AHC uses the OECD companion scale → equivalisation=modified_oecd / + modified_oecd_companion_ahc. +- ⚠️ **Absolute line re-anchor** (Notes sheet Note 3, verbatim): from the + 2024/25 publication the absolute fixed reference year is **FYE 2025 for + 2021/22–2024/25**; years before 2021/22 remain anchored at **FYE 2011**; + from summer 2026 DWP will re-anchor 2018/19–2020/21 too. Per-row + `conditions.poverty_line_anchor: fye_2025|fye_2011`. (Consequence: absolute + = relative exactly in FYE 2025, both 15.911572...% BHC.) +- ⚠️ **Break in series / admin-linkage** (sheet 1_3a header note): from + 2021/22 HBAI uses integrated survey + benefit admin data → those rows carry + data_vintage=admin_linked_frs + series_note. +- **Cross-edition methodology divergence (diagnosis seed)**: prior edition + (FYE 2024, published 2025-03-27, survey-only) staged for FYE 2022–2024 + rates (48 rows, edition=fye_2024, data_vintage=survey_frs). Same year, same + measure, same publisher: all-individuals BHC relative FYE 2024 = **17.23% + (survey-only) vs 15.18% (admin-linked restatement)** — a ~2pp + methodology-not-policy gap; the direct UK analogue of a vintage diagnosis. + populace-UK is FRS-based, so which vintage PE matches is itself diagnostic. +- Geography: FRS (GB) for FYE 1995–2002, FRS (UK) from FYE 2003 (col-0 series + markers) → geography per row. +- calibration: held_out with note — HBAI and PE-UK share FRS microdata; + agreement is same-input replication, not independent validation. +- Headline spot-checks vs main report HTML: individuals BHC FYE 2025 16% + (report) vs 15.91% staged (unrounded) ✓; child AHC relative 27.4%, + pensioner AHC 13.9%. +- Not staged (in artifacts): material deprivation & combined low-income tables + (1.4c–h, 1.5c–h, 1.6c), disability splits (1.7a–h), Gini/quintile medians + (1.2b), full data-tables zip (not downloaded; summary ODS suffices for + headlines). + +## (4) UC statistics — 5 rows +Latest release: "Universal Credit quarterly statistics, 29 April 2013 to +12 February 2026" (published 2026-05-12). Detailed tables are on Stat-Xplore +(auth — not attempted). Headline counts staged verbatim from release text +(rounded 0.1M, conversion noted): households on UC Feb 2026 = 7.2M; households +with payment = 6.7M (93%); people on UC Feb 2026 = 8.3M, Feb 2025 = 7.5M; +people on UC in employment Jan 2026 = 3.1M. GB. point_in_time with +conditions.month. Households series produced three months in arrears; recent +months provisional. + +## Proposed vocabulary (recurring, for the deliberate-extension worklist) +- proposed_unit **gbp** (500 rows) — per UK FLEET convention. +- proposed_metric **poverty_count** (496) — level counts (Metric has only + poverty_count_change). +- proposed_metric **unclaimed_expenditure** (168) — take-up gap in money. +- Conditions vocab introduced: bound (central|lower|upper), takeup_basis + (caseload|expenditure), edition, entitlement_group, family_type, age_group, + basis (outturn|forecast), fy, income_concept (bhc|ahc), poverty_measure, + poverty_line_anchor, equivalisation, data_vintage, subgroup, component, + month. + +## Blockers / follow-ups +- Stat-Xplore: households-on-UC by month/region/family-type tables need the + guest/auth API — not attempted per instructions. Release-text headlines + staged instead. +- HBAI full data-tables zip (69MB-ish, directional/regional detail) not + pulled — summary ODS covers all headline needs. +- Income-related ESA/JSA take-up: genuinely not published anymore (not a + fetch failure). +- BECL prior vintage (Autumn/2025 edition) not staged — Spring 2026 is the + current baseline analogue; add if forecast-vintage comparisons wanted. +- Pension Credit weekly amounts + take-up by marital/tenure axes available in + artifacts, unstaged (time box). +- period-int convention clash with pe-uk-data (ending vs starting year) — + resolve once at ingest via conditions.fy. diff --git a/sources/harvest-uk-2026-08-02/uk_dwp/claims_staged.jsonl.gz b/sources/harvest-uk-2026-08-02/uk_dwp/claims_staged.jsonl.gz new file mode 100644 index 0000000..4a0ac1d Binary files /dev/null and b/sources/harvest-uk-2026-08-02/uk_dwp/claims_staged.jsonl.gz differ diff --git a/sources/harvest-uk-2026-08-02/uk_dwp/manifest.jsonl b/sources/harvest-uk-2026-08-02/uk_dwp/manifest.jsonl new file mode 100644 index 0000000..3e50111 --- /dev/null +++ b/sources/harvest-uk-2026-08-02/uk_dwp/manifest.jsonl @@ -0,0 +1,15 @@ +{"url": "https://assets.publishing.service.gov.uk/media/68ff856abcb10f6bf9bef927/pension_credit_tables_fye_2324.ods", "title": "Pension Credit tables: financial year ending 2024 (Income-related benefits: estimates of take-up)", "date": "2025-10-30", "sha256": "35896df8ec2efdc04439d5e2b55732a007f50439b9bd10dd37a7f12673ae4c93", "local_path": "downloads/pension_credit_tables_fye_2324.ods", "doc_type": "ods", "size_bytes": 58962, "fetched": "2026-08-02", "fetch_mode": "live", "source": "uk_dwp", "publisher": "Department for Work and Pensions"} +{"url": "https://assets.publishing.service.gov.uk/media/68ff8659d81972ecd2df5db4/housing_benefit_tables_fye_2324.ods", "title": "Housing Benefit for pensioners tables: financial year ending 2024 (Income-related benefits: estimates of take-up)", "date": "2025-10-30", "sha256": "f8545d4b2d563cc8364f1d86c30f241ac23a177dda4892aa8c1911e0c4317c18", "local_path": "downloads/housing_benefit_tables_fye_2324.ods", "doc_type": "ods", "size_bytes": 22626, "fetched": "2026-08-02", "fetch_mode": "live", "source": "uk_dwp", "publisher": "Department for Work and Pensions"} +{"url": "https://assets.publishing.service.gov.uk/media/670680e4e84ae1fd8592f094/pension-credit-tables-fye-2023.ods", "title": "Pension Credit: tables financial year ending 2023 (Income-related benefits: estimates of take-up)", "date": "2024-10-10", "sha256": "c77ae81278bfa0377f0ee2892cd060b1f2a5a4d3b57800ec5f9b06b596a91217", "local_path": "downloads/pension-credit-tables-fye-2023.ods", "doc_type": "ods", "size_bytes": 55213, "fetched": "2026-08-02", "fetch_mode": "live", "source": "uk_dwp", "publisher": "Department for Work and Pensions"} +{"url": "https://assets.publishing.service.gov.uk/media/670680fd366f494ab2e7b5bc/housing-benefit-tables-fye-2023.ods", "title": "Housing Benefit for pensioners: tables financial year ending 2023 (Income-related benefits: estimates of take-up)", "date": "2024-10-10", "sha256": "7a67804915a876be365c3817c24b19b2fe4c7ca140242046eff41d7c0fb83927", "local_path": "downloads/housing-benefit-tables-fye-2023.ods", "doc_type": "ods", "size_bytes": 22320, "fetched": "2026-08-02", "fetch_mode": "live", "source": "uk_dwp", "publisher": "Department for Work and Pensions"} +{"url": "https://assets.publishing.service.gov.uk/media/69dcdc8c6b695d635c34dcc4/outturn-and-forecast-tables-spring-forecast-2026.xlsx", "title": "Benefit expenditure and caseload tables 2026: Outturn and forecast tables, Spring Forecast 2026", "date": "2026-04-14", "sha256": "11a591e4a2144ed6a686be6a9ded4e5d5b3b8d4887bd57c1ff0632bd251009de", "local_path": "downloads/outturn-and-forecast-tables-spring-forecast-2026.xlsx", "doc_type": "xlsx", "size_bytes": 1707003, "fetched": "2026-08-02", "fetch_mode": "live", "source": "uk_dwp", "publisher": "Department for Work and Pensions"} +{"url": "https://assets.publishing.service.gov.uk/media/69c28ffcb920af63be1c7767/summary-hbai-1994-95-2024-25-tables.ods", "title": "HBAI summary results FYE 1995 to FYE 2025 (Households below average income)", "date": "2026-03-26", "sha256": "38586ace5e06ca0029f9b5345a6047c54143ee03c644a2c0553d77813ca27a21", "local_path": "downloads/summary-hbai-1994-95-2024-25-tables.ods", "doc_type": "ods", "size_bytes": 414500, "fetched": "2026-08-02", "fetch_mode": "live", "source": "uk_dwp", "publisher": "Department for Work and Pensions"} +{"url": "https://www.gov.uk/api/content/government/statistics/income-related-benefits-estimates-of-take-up-financial-year-ending-2024/income-related-benefits-estimates-of-take-up-financial-year-ending-2024", "title": "Income-related benefits: estimates of take-up: FYE 2024 (main report, HTML via content API)", "date": "2025-10-30", "sha256": "160e8e3ea2f0eabe6af9eb7b56fba364bad651881af2bdbb71d43eaf97d92ff0", "local_path": "downloads/takeup_fye2024_main_report.json", "doc_type": "html_json", "size_bytes": 60434, "fetched": "2026-08-02", "fetch_mode": "live", "source": "uk_dwp", "publisher": "Department for Work and Pensions"} +{"url": "https://www.gov.uk/api/content/government/statistics/income-related-benefits-estimates-of-take-up-financial-year-ending-2023/income-related-benefits-estimates-of-take-up-financial-year-ending-2023", "title": "Income-related benefits: estimates of take-up: FYE 2023 (main report, HTML via content API)", "date": "2024-10-10", "sha256": "9f415f98bf20dbdc03a934dc630de9cbd9e13a21db5b23428c1745c70bf0f0f4", "local_path": "downloads/takeup_fye2023_main_report.json", "doc_type": "html_json", "size_bytes": 56307, "fetched": "2026-08-02", "fetch_mode": "live", "source": "uk_dwp", "publisher": "Department for Work and Pensions"} +{"url": "https://www.gov.uk/api/content/government/statistics/universal-credit-quarterly-statistics-29-april-2013-to-12-february-2026/universal-credit-quarterly-statistics-29-april-2013-to-12-february-2026", "title": "Universal Credit quarterly statistics, 29 April 2013 to 12 February 2026 (main release, HTML via content API)", "date": "2026-05-12", "sha256": "d875423157c82ca3fc1bf41c8b6cc95721eaa5b4e944d9284deb05746e934223", "local_path": "downloads/uc_quarterly_feb2026_main_release.json", "doc_type": "html_json", "size_bytes": 89403, "fetched": "2026-08-02", "fetch_mode": "live", "source": "uk_dwp", "publisher": "Department for Work and Pensions"} +{"url": "https://www.gov.uk/api/content/government/statistics/households-below-average-income-for-financial-years-ending-1995-to-2025/households-below-average-income-an-analysis-of-the-uk-income-distribution-fye-1995-to-fye-2025", "title": "Households Below Average Income: analysis of the UK income distribution FYE 1995 to FYE 2025 (main report, HTML via content API)", "date": "2026-03-26", "sha256": "efab81aea290d07414f90d01a39d112993c1e0af50fbf31df97e21b4aa2dd296", "local_path": "downloads/hbai_fye2025_main_report.json", "doc_type": "html_json", "size_bytes": 183380, "fetched": "2026-08-02", "fetch_mode": "live", "source": "uk_dwp", "publisher": "Department for Work and Pensions"} +{"url": "https://assets.publishing.service.gov.uk/media/67e2b5915698d84e39cfdac6/HBAI_summary_results.ods", "title": "HBAI summary results FYE 1995 to FYE 2024 (prior edition, Households below average income)", "date": "2025-03-27", "sha256": "c279143511996da429ffa67f925049ab0af441af4ceb9c63f7496a0e1740c77e", "local_path": "downloads/HBAI_summary_results_fye2024_edition.ods", "doc_type": "ods", "size_bytes": 397545, "fetched": "2026-08-02", "fetch_mode": "live", "source": "uk_dwp", "publisher": "Department for Work and Pensions"} +{"url": "https://assets.publishing.service.gov.uk/media/69c290be7e02b81c0d1c7763/directory-of-tables-hbai-2024-2025.ods", "title": "HBAI directory of tables FYE 2025 (guide to the data tables)", "date": "2026-03-26", "sha256": "5de22f450860fea1aad91204181171ecc905f172a816c92c3b90b76ea22011c1", "local_path": "downloads/directory-of-tables-hbai-2024-2025.ods", "doc_type": "ods", "size_bytes": 30875, "fetched": "2026-08-02", "fetch_mode": "live", "source": "uk_dwp", "publisher": "Department for Work and Pensions"} +{"url": "https://www.gov.uk/api/content/government/statistics/income-related-benefits-estimates-of-take-up-financial-year-ending-2024/quick-guide-to-tables-and-results-for-financial-year-ending-2024", "title": "Quick guide to tables and results for FYE 2024 (Income-related benefits: estimates of take-up)", "date": "2025-10-30", "sha256": "e7f0c259d2413c0c4d2773bbc8fe13a46244f2f97f009838f02bf222095dacac", "local_path": "downloads/takeup_fye2024_quick_guide.json", "doc_type": "html_json", "size_bytes": 12764, "fetched": "2026-08-02", "fetch_mode": "live", "source": "uk_dwp", "publisher": "Department for Work and Pensions"} +{"url": "https://www.gov.uk/api/content/government/statistics/income-related-benefits-estimates-of-take-up-financial-year-ending-2024/background-information-and-methodology-for-financial-year-ending-2024", "title": "Background information and methodology for FYE 2024 (Income-related benefits: estimates of take-up)", "date": "2025-10-30", "sha256": "a0a7b4dce9fb8584953a4a759afd8035813c6619b96ff55ed76b76275201ab8c", "local_path": "downloads/takeup_fye2024_methodology.json", "doc_type": "html_json", "size_bytes": 159397, "fetched": "2026-08-02", "fetch_mode": "live", "source": "uk_dwp", "publisher": "Department for Work and Pensions"} +{"url": "https://www.gov.uk/api/content/government/statistics/households-below-average-income-for-financial-years-ending-1995-to-2025/households-below-average-income-background-information-and-methodology-report-fye-2025", "title": "HBAI Background Information and Methodology report FYE 2025 (HTML via content API)", "date": "2026-03-26", "sha256": "b243a8d3b6a22054877f456d04c351ba1d4150487529d26c6d562ae7fb9443c0", "local_path": "downloads/hbai_fye2025_methodology.json", "doc_type": "html_json", "size_bytes": 375957, "fetched": "2026-08-02", "fetch_mode": "live", "source": "uk_dwp", "publisher": "Department for Work and Pensions"} diff --git a/sources/harvest-uk-2026-08-02/uk_hmrc/NOTES.md b/sources/harvest-uk-2026-08-02/uk_hmrc/NOTES.md new file mode 100644 index 0000000..7df74f5 --- /dev/null +++ b/sources/harvest-uk-2026-08-02/uk_hmrc/NOTES.md @@ -0,0 +1,124 @@ +# uk_hmrc harvest notes — 2026-08-02 + +**2,842 staged claims** from 11 manifested artifacts (10 ODS + 1 bulletin HTML), all +sha256'd, verbatim values only, per-row provenance (workbook/sheet/row_index), +zero bot-mitigation bypasses. gov.uk is fully curl-friendly with honest UA +(`PolicyEngine-Scorecard-Harvest/1.0 (research data collection; contact +max@maxghenis.com)`); discovery via the gov.uk content API +(`/api/content/government/statistics/`) and search API — no scraping needed. +All ODS parsed with `ods_rows.py` (pure-stdlib parser, handles repeated +cols/rows); staging scripts `stage_{rr,itl,cb,tc,cgt,spi}.py` are re-runnable. + +## Claims by source file +| file | claims | what | +|---|---|---| +| claims_rr.jsonl | 225 | Ready reckoner: 73 illustrative changes x FY2026-27/27-28/28-29 (8 suppressed "Neg") | +| claims_itl.jsonl | 1,151 | Income Tax liabilities July 2026 edn: 2.1 (UK by band/sex/age 2010-11+), 2.2 (13 countries/regions x band, 2023-24..2026-27), 2.5 (liability x income range x band, 4 years) | +| claims_cb.jsonl | 515 | Child Benefit Aug 2025: families/children in receipt by geo 2013+, take-up rate (Table 15), HICBC (Table 16), opt-outs (Table 9) | +| claims_tc.jsonl | 453 | Tax credits finalised awards 2022-23 (FINAL edition): caseloads by family type 2018-19+, entitlement GBP, award-band distribution | +| claims_cgt.jsonl | 138 | CGT Aug 2025: annual taxpayers/gains/tax 2008-09..2023-24 + 2023-24 by country/region | +| claims_spi.jsonl | 360 | SPI 2023-24: income percentile points before/after tax (3.1 named pctiles 2015-16+; 3.1a full 1-99 for 2023-24) | + +## UK-FLEET conventions applied +- `proposed_unit: "gbp"` on every money row; conversions per-row in `unit_note` + (GBP millions x 1e6, thousands x 1e3; verbatim printed string kept in `value_raw`). +- `time_basis: fiscal_year` + `conditions.fy` ("2026-27") for Apr–Mar years; + Child Benefit August/May snapshots are `point_in_time` + `conditions.as_of`. +- `conditions.basis`: outturn | projected | provisional, from each table's own + markers (see per-source gotchas). Geography labels verbatim; ONS area codes + carried as `conditions.area_code` where printed. +- proposed metrics (recur across sheets, several match the CBO harvest): + `taxpayer_count` (909), `tax_liability` (214), `income_aggregate` (48), + `income_percentile_point` (360), `average_tax_rate` (48, staged as ODS + fraction, e.g. 0.015 for printed "1.5%"), `average_tax_amount` (48), + `chargeable_gains` (46). In-vocab: revenue_change, caseload, + participant_count, participation_rate, benefit_cost. + +## Per-source notes and gotchas + +### Ready reckoner (the reform-score surface) +- June 2025 edition (published 2025-06-24) is the LIVE latest; covers + FY2026-27..2028-29. No 2026 edition existed on the live page at harvest time. +- Sign semantics are LOAD-BEARING (staged per row as + `conditions.direction_semantics` + `sign_convention`): rows suffixed + "(cost)" report a positive number as a cost, "(yield)" as a yield; bulletin + note 33: "negative values for costs indicate net yield and negative values + for yields are a net costs". CGT/SDLT-additional-dwellings rows go NEGATIVE + (behavioural loss from a rate rise) — HMRC's estimates INCLUDE behavioural + response, so static PE-UK scores will legitimately diverge on + additional-rate, CGT and SDLT rows (diagnosis material, not error). +- "Neg" = "larger than zero but would round down to zero" (verbatim sheet + note) — 8 cells staged as status=suppressed with value_raw="Neg". +- Non-linearity warning (bulletin): allowance/limit changes don't scale + linearly; 1p rate changes roughly do. + +### Income Tax liabilities (July 2026 edition — post-cutoff fresh) +- SPI 2023-24 outturn; 2024-25..2026-27 projected per footnote 10 on "economic + assumptions consistent with the OBR's March 2026 Economic and Fiscal + Outlook" — carried as basis=projected. +- Scottish band-classification footnotes (8/9/11) matter for band counts: + Scottish taxpayers are classified against UK-government limits by income, + not Scottish marginal rate. `conditions.band` values are verbatim column + heads (Savers/Basic/Higher/Additional rate). +- Table 2.5 "[no estimate]" cells skipped (no value printed). Numbers + independently rounded to 3 s.f.; All-Ranges totals cross-check (36,700k + taxpayers, GBP 274,000m liability 2023-24 ✓ = Table 2.1 / receipts scale). +- NOT staged (in the same workbook, parse-ready): 2.4 percentile shares of + income/tax, 2.6 liability by income source. + +### Child Benefit (data at August 2025) +- Internal consistency verified: 7,552,330 registered − 684,635 opted out + = 6,867,695 in receipt (Aug 2025, UK) ✓. +- Table 15 is a genuine TAKE-UP rate (participation_rate): % of eligible + children for whom CB is claimed INCLUDING opted-out claims — All Ages + 86.6% May 2025, series back to 2011; per-age staged for May 2025 only. +- Table 16 HICBC: exact-GBP fiscal-year series; 2024-25 row provisional + + rounded to nearest 10k/GBP 10m (note 6) — basis=provisional. +- Charge-threshold regime note for comparisons: HICBC threshold rose to + £60k (taper to £80k) from April 2024. + +### Tax credits (finalised awards 2022-23) +- 2022-23 is the FINAL finalised-awards edition — no 2023-24 publication + exists on gov.uk (404; program ended 5 April 2025). Historic-validation + surface only (UC migration collapse visible: 339k out-of-work families). +- WORKBOOK STORES NUMBERS AS TEXT (no ODS office:values) incl. "1.4m" + shorthand — parse_cell() in stage_tc.py handles both; other workbooks are + numeric. +- Counts are annual AVERAGES of recipient families + (`count_basis=average_number`); entitlement rows are finalised annual + entitlement GBP. Table 2_3 bands are ANNUAL-ENTITLEMENT bands (not income). + +### CGT (August 2025 edition) +- 2021-22 onwards provisional (table header, staged basis=provisional); + 2023-24 first appears here: 378k taxpayers, GBP 65,937m gains, + GBP 12,086m tax (individuals+trusts). +- Staged from 2008-09 only: footnote 2 — taper relief pre-2008 makes gains + non-comparable. +- Trusts detail columns and Tables 2 (size of gain), 3 (gain x income) are + downloaded + manifested but unstaged (follow-up; Table 3's gain-x-taxable- + income grid is the most PE-comparable of the three). + +### SPI personal incomes (2023-24, March 2026 release) +- Percentile points are of the TAXPAYER income distribution (SPI covers only + individuals above the PA threshold) — carried verbatim in + conditions.population; do NOT compare against all-adult percentiles. +- 3.1 vs 3.1a overlap rows agree exactly (median before-tax 2023-24 + GBP 29,700 in both) — cross-check passed. +- NOT staged (manifested, parse-ready): 3.2-3.11 (age/sex/source + distributions) and the second workbook Collated_Tables_3_12_to_3_15a_2324.ods + (region/country/LA-level income + tax) — biggest remaining SPI value. + +## Blockers / follow-ups +1. No blockers hit: no Cloudflare/DataDome anywhere on gov.uk or + assets.publishing.service.gov.uk; every fetch was a clean 200. +2. Unstaged-but-downloaded: ITL 2.4/2.6; CGT Tables 2/3 (+ Table 4 BADR, + 6-9 not downloaded); SPI 3.2-3.11 + regional workbook; CB small-area file + and Tables 2-8/10-14/17 detail. +3. Not fetched (deliberate, out of 30-artifact budget): ITL tables 2.7-2.11 + (separate publications), historic 2.1a/2.5a, Child Benefit August 2026 + release (not yet published; annual ~Aug), HMRC receipts monthly bulletin + (harvest-obr/hmt overlap), UK income dynamics/NICs tables. +4. Ready reckoner June 2026 edition: watch the live page — the June 2025 + ODS is current as of today. +5. Ingest schema: same gbp UnitConcept extension as the rest of the UK fleet; + percentile/band/fy/basis/as_of condition keys to standardize. diff --git a/sources/harvest-uk-2026-08-02/uk_hmrc/claims_staged.jsonl.gz b/sources/harvest-uk-2026-08-02/uk_hmrc/claims_staged.jsonl.gz new file mode 100644 index 0000000..e9ab465 Binary files /dev/null and b/sources/harvest-uk-2026-08-02/uk_hmrc/claims_staged.jsonl.gz differ diff --git a/sources/harvest-uk-2026-08-02/uk_hmrc/manifest.jsonl b/sources/harvest-uk-2026-08-02/uk_hmrc/manifest.jsonl new file mode 100644 index 0000000..d68fcec --- /dev/null +++ b/sources/harvest-uk-2026-08-02/uk_hmrc/manifest.jsonl @@ -0,0 +1,11 @@ +{"url": "https://assets.publishing.service.gov.uk/media/68552862b46781eacfd71d71/June_2025_TRR_ODS__1_.ods", "title": "Direct effects of illustrative tax changes (June 2025)", "date": "2013-10-28", "publication_title": "Direct effects of illustrative tax changes", "publication_url": "https://www.gov.uk/government/statistics/direct-effects-of-illustrative-tax-changes", "updated": "2025-06-24", "sha256": "1201953391d6201d1df8df4d60288c9094b43e0679ebf285e82ad3c912d476c1", "local_path": "downloads/June_2025_TRR_ODS__1_.ods", "doc_type": "statistics_table", "bytes": 8236} +{"url": "https://assets.publishing.service.gov.uk/media/6a5a49b47eb057103bd946a4/Collated_Income_Tax_liabilities_statistics_tables_-_2.1_to_2.6.ods", "title": "Collated Tables 2.1 to 2.6", "date": "2026-07-15", "publication_title": "Income Tax liabilities statistics: tax year 2023 to 2024 to tax year 2026 to 2027", "publication_url": "https://www.gov.uk/government/statistics/income-tax-liabilities-statistics-tax-year-2023-to-2024-to-tax-year-2026-to-2027", "updated": "2026-07-15", "sha256": "40e1c7bb75d484132e8329fcac75f16e1a96305302fc422ee446a688d52bdbc2", "local_path": "downloads/Collated_Income_Tax_liabilities_statistics_tables_-_2.1_to_2.6.ods", "doc_type": "statistics_table", "bytes": 93036} +{"url": "https://assets.publishing.service.gov.uk/media/69f1f12d2fae53a03709682f/Collated_Tables_3_1_to_3_11_2324.ods", "title": "Personal Income Statistics Tables 3.1 to 3.11 for the tax year 2023 to 2024", "date": "2026-04-29", "publication_title": "Personal Incomes Statistics for the tax year 2023 to 2024", "publication_url": "https://www.gov.uk/government/statistics/personal-incomes-statistics-for-the-tax-year-2023-to-2024", "updated": "2026-04-29", "sha256": "ad063b06b2bdeef8600dbbb09d48153337a4966f8c7eea50df7a2e0304ebd73e", "local_path": "downloads/Collated_Tables_3_1_to_3_11_2324.ods", "doc_type": "statistics_table", "bytes": 166693} +{"url": "https://assets.publishing.service.gov.uk/media/69f1f17cc42061e837e3ac3b/Collated_Tables_3_12_to_3_15a_2324.ods", "title": "Personal Incomes Statistics Tables 3.12 to 3.15a for the tax year 2023 to 2024", "date": "2026-04-29", "publication_title": "Personal Incomes Statistics for the tax year 2023 to 2024", "publication_url": "https://www.gov.uk/government/statistics/personal-incomes-statistics-for-the-tax-year-2023-to-2024", "updated": "2026-04-29", "sha256": "f70e210eb2931d9a6da5f8b6fa184b902b51ef9e2c9fb3588323907647d7672c", "local_path": "downloads/Collated_Tables_3_12_to_3_15a_2324.ods", "doc_type": "statistics_table", "bytes": 926081} +{"url": "https://assets.publishing.service.gov.uk/media/69e5f48c3e3b4e9340cc92b5/Child_Benefit_August_2025_Main_Tables.ods", "title": "Child Benefit August 2025 Main Tables", "date": "2026-04-23", "publication_title": "Child Benefit Statistics: annual release, August 2025", "publication_url": "https://www.gov.uk/government/statistics/child-benefit-statistics-annual-release-august-2025", "updated": "2026-04-23", "sha256": "c2064c6cc03af2ea60f21129e5531d957556bb67423e89bdd8b1d074ac5819c1", "local_path": "downloads/Child_Benefit_August_2025_Main_Tables.ods", "doc_type": "statistics_table", "bytes": 396039} +{"url": "https://assets.publishing.service.gov.uk/media/6878ac497ea209168636386e/Table_1_2025_Taxpayer_numbers_gains_and_tax_liabilities.ods", "title": "Table 1: Estimated number of taxpayers, amounts of gains and tax liabilities by year of disposal", "date": "2013-10-31", "publication_title": "Capital Gains Tax statistics", "publication_url": "https://www.gov.uk/government/statistics/capital-gains-tax-statistics", "updated": "2025-07-24", "sha256": "95c1bb1548483cb0ed0090e820a1fba129d725ade418cf64e5f85793655e92a1", "local_path": "downloads/Table_1_2025_Taxpayer_numbers_gains_and_tax_liabilities.ods", "doc_type": "statistics_table", "bytes": 10002} +{"url": "https://assets.publishing.service.gov.uk/media/6878ac562bad77c3dae4dcef/Table_2_2025_Size_of_gain.ods", "title": "Table 2: Estimated number of taxpayers, amounts of gains and tax liabilities by size of gain", "date": "2013-10-31", "publication_title": "Capital Gains Tax statistics", "publication_url": "https://www.gov.uk/government/statistics/capital-gains-tax-statistics", "updated": "2025-07-24", "sha256": "696456114f408edd84c004fbe6175d918c5a511b6aaa7a53a95ca8936db22491", "local_path": "downloads/Table_2_2025_Size_of_gain.ods", "doc_type": "statistics_table", "bytes": 10658} +{"url": "https://assets.publishing.service.gov.uk/media/6878ac62760bf6cedaf5bd93/Table_3_2025_Size_of_gain_by_income.ods", "title": "Table 3: Estimated number of individual taxpayers by size of gain and taxable income", "date": "2013-10-31", "publication_title": "Capital Gains Tax statistics", "publication_url": "https://www.gov.uk/government/statistics/capital-gains-tax-statistics", "updated": "2025-07-24", "sha256": "8e75c00bab949348a7238fea6d995f626c85e5d02813b46606dd7fea85e9d0c3", "local_path": "downloads/Table_3_2025_Size_of_gain_by_income.ods", "doc_type": "statistics_table", "bytes": 11996} +{"url": "https://assets.publishing.service.gov.uk/media/6878ac7c760bf6cedaf5bd95/Table_5_2025_Regional_and_country_statistics.ods", "title": "Table 5: Estimated number of taxpayers, amounts of gains and tax liabilities by UK country and region", "date": "2013-10-31", "publication_title": "Capital Gains Tax statistics", "publication_url": "https://www.gov.uk/government/statistics/capital-gains-tax-statistics", "updated": "2025-07-24", "sha256": "4e9a064ac51e0e88f7608fea3a62ed7293c4089bf948fef043784331c7187b05", "local_path": "downloads/Table_5_2025_Regional_and_country_statistics.ods", "doc_type": "statistics_table", "bytes": 7439} +{"url": "https://assets.publishing.service.gov.uk/media/669a503a0808eaf43b50d2e4/Finalised_Awards_2023_Main.ods", "title": "Child and Working Tax Credits Finalised Annual Awards 2022 to 2023 Main Tables", "date": "2024-07-24", "publication_title": "Child and Working Tax Credits statistics: Finalised Annual Awards \u2013 2022 to 2023", "publication_url": "https://www.gov.uk/government/statistics/child-and-working-tax-credits-statistics-finalised-annual-awards-2022-to-2023", "updated": "2024-07-24", "sha256": "c746a7ad7d8c206ffe0ed1ac0060d2f60d4529de6dd57a72a15a8ffa78e911bf", "local_path": "downloads/Finalised_Awards_2023_Main.ods", "doc_type": "statistics_table", "bytes": 25122} +{"url": "https://www.gov.uk/government/statistics/direct-effects-of-illustrative-tax-changes/direct-effects-of-illustrative-tax-changes-bulletin-january-2025", "title": "Direct effects of illustrative tax changes bulletin (June 2025)", "date": "2025-06-24", "publication_title": "Direct effects of illustrative tax changes", "publication_url": "https://www.gov.uk/government/statistics/direct-effects-of-illustrative-tax-changes", "sha256": "d53c7f490b36a665ee6c507ebff703efa18c32ea5fa21118d7925449ad596ddd", "local_path": "downloads/rr_bulletin_june2025.html", "doc_type": "html_bulletin", "bytes": 54074, "access": "govspeak body extracted from gov.uk content API JSON"} diff --git a/sources/harvest-uk-2026-08-02/uk_hmt/NOTES.md b/sources/harvest-uk-2026-08-02/uk_hmt/NOTES.md new file mode 100644 index 0000000..313895b --- /dev/null +++ b/sources/harvest-uk-2026-08-02/uk_hmt/NOTES.md @@ -0,0 +1,1601 @@ +# uk_hmt harvest — HM Treasury fiscal events (gov.uk) + +Harvested 2026-08-02 (overnight UK fleet). Access: all direct `curl` with honest UA +`PolicyEngine-Scorecard-Harvester/1.0 (research; contact: max@policyengine.org)` — gov.uk and +assets.publishing.service.gov.uk served everything without any bot mitigation. Zero bypasses. Discovery +via the gov.uk search + content APIs (`/api/search.json`, `/api/content/...`). + +## Coverage + +Three fiscal events, per the tasking (Autumn Budget 2024; Spring Statement 2025; Budget 2025 — the +Nov-2025 event is titled "Budget 2025" on gov.uk, not "Autumn Budget 2025"). For each event: policy +costings document, distributional analysis ("Impact on households"), data-sources document, the fiscal +event document (Red Book), and the machine-readable scorecard XLSX where published (AB2024 Table 5.1 + +5.2; B2025 Table 4.1 + 4.2; SS2025 published no XLSX — its scorecard is Table 3.1 inside the Spring +Statement PDF, parsed from the text layer). + +**Spring Statement 2026: no fiscal-event publications exist.** A Spring Statement occurred 3 March 2026 +(HMT published "GDP deflators ... March 2026 (Spring Statement)" and the Debt Management Report 2026-27 +that day), but gov.uk search/content APIs surface NO Spring Statement 2026 document, policy costings, or +distributional analysis — consistent with a forecast-only statement with no scorecard. Any March-2026 +measures would appear in the OBR March 2026 EFO (harvest-obr's territory). + +## Staged claims: 1368 rows + +| block | rows | +|---|---| +| Autumn Budget 2024 — exchequer_impact | 450 | +| Autumn Budget 2024 — median_gross_income | 50 | +| Budget 2025 — exchequer_impact | 546 | +| Budget 2025 — median_gross_income | 50 | +| Spring Statement 2025 — exchequer_impact | 222 | +| Spring Statement 2025 — median_gross_income | 50 | + +Blocks: +1. **Scorecard per-measure Exchequer impacts** (proposed_metric `exchequer_impact`, proposed_unit `gbp`): + AB2024 Table 5.1 (70 measures + 5 total/subtotal lines, FY2024-25..2029-30, from XLSX); + B2025 Table 4.1 (88 measures + 3 totals, FY2025-26..2030-31, from XLSX); + SS2025 Table 3.1 (33 measures incl. 2 `o/w` sub-lines + 4 totals, FY2024-25..2029-30, from PDF text layer). + reform_hint = verbatim measure name. Values £m as printed (value_raw), converted ×1e6 to GBP. +2. **Distributional-analysis annex Table 2.C** (proposed_metric `median_gross_income`, proposed_unit `gbp`): + median gross income by decile × household composition, one table per event (AB2024: 2025-26; + SS2025 and B2025: 2028-29). 10 deciles × 5 compositions × 3 events = 150 rows (blank cells staged + suppressed with the verbatim small-sample footnote). + +## Conventions (LOAD-BEARING — read before ingest) + +- **Sign, SS2025 (STATED verbatim, incl. HMT's typo):** "Costings reflect the OBR's latest economic and + fiscal determinants. Figures given as fiscal impacts, postive numbers showing savings and negative + numbers costs." (Table 3.1 footnote 1.) +- **Sign, AB2024/B2025 XLSX:** no explicit legend in the workbooks. OBSERVED convention matches SS2025: + announced giveaways/spending increases carry negative values (e.g. AB2024 line 1 "Investing in Public + Services: Funding..." = −26,450 in 2024-25), takeaways positive (Employer NICs +23,770 in 2025-26, + cross-checked against the AB2024 policy-costings note's "+23,770m"). Recorded per row as sign_note. +- **Fiscal years Apr–Mar.** period = int(first year of the FY label); time_basis = fiscal_year; + conditions.fiscal_year carries the verbatim label ("2025-26"). +- **Metric choice:** staged as proposed_metric `exchequer_impact`, NOT `revenue_change`, deliberately. + The tables' concept is total Exchequer impact on PSNB (National Accounts basis, OBR-certified), and + scorecard footnote (verbatim): "Many measures have both tax and spend impacts. Measures are identified + as tax or spend on the basis of their largest impact." So even head=Tax rows can include spend-side + effects. Mapping Tax-head rows to Metric.REVENUE_CHANGE is an ingest decision; conditions.head carries + the verbatim Tax/Spend classification (Table 5.1/4.1 only — Table 3.1 has no head column; its totals + split into "Total spending impact" and "Total tax & fees impact" rows instead). +- **OBR certification (verbatim, AB2024 costings intro):** "These costings are all submitted to the + independent Office for Budget Responsibility (OBR) for their certification. All measures were + certified." And: "All costings are presented on a National Accounts basis." The scorecard XLSX + footnote: "Costings reflect the OBR's latest economic and fiscal determinants." These ARE the + OBR-certified Red Book scorecard tables (Table 4.1-style of the tasking). +- **B2025 scorecard exclusions (verbatim footnote 2):** "Measures with no net increase to borrowing are + not set out on this presentational scorecard. These are increases to levies (Economic Crime Levy, + Financial Conduct Authority levies, Immigration Skills Charge, International Student Levy) to fund + spending on government priorities, reclassification of spend for Mayoral Combined Authorities and + police & fire pensions. AME and tax costings with an impact of less than ±£10 million in every year are + excluded from the scorecard." +- **Rounding:** "Totals may not sum due to rounding." Verified: sum(measures) vs Total row differs by + ≤£30m per column in every table (measures rounded to £5m). + +## Distributional analysis — income concept and equivalisation (VERBATIM, AB2024 §2.7–2.8; SS2025 §2.7 and B2025 §2.7 confirmed to carry the same "before housing costs" + "modified OECD" definitions) + +``` +2.7 This distributional analysis uses equivalised net household +income, before housing costs, as the main indicator by which to rank +households from lowest income to highest income. This indicator is +comprised of several components: +• ‘Equivalised’: equivalisation is a process that adjusts a household’s + net income to take into account the fact that larger households will + require a higher net income to achieve the same standard of living + as a household with fewer members. The equivalisation factors used + in the analysis are the modified OECD factors (as also used in DWP’s + Households Below Average Income publication) + +• ‘Net’: household incomes are ranked after deductions from direct + taxes, and after additions from welfare benefits. Deductions from + indirect taxes, or additions through benefits-in-kind from public + services, are not used to rank households + +• ‘Household’: incomes are assessed in aggregate at the household, + not individual level. Comparing household, rather than individual, + incomes reduces the subjectivity of this analysis, ensuring that no + assumptions are made about how incomes or expenditure are + shared between separate individuals within the household + +• ‘Before housing costs’: housing costs such as rent or the cost of + servicing a mortgage are not deducted from household incomes +2.8 The household income distribution is created by ranking +households from the lowest equivalised net income to the highest +equivalised net income, and then dividing this ranking into ten equally +sized groups called deciles, across which the analysis is produced. + + + + +4 DWP, Income Dynamics: Movements between quintiles: 2010 to 2022, March 2024. + + 13 +``` + +Model basis (verbatim, AB2024 §2.11): + +``` +2.11 Where possible, tax and welfare policy changes are analysed +using HM Treasury’s Intra-Governmental Tax and Benefit +Microsimulation model (IGOTM), which is underpinned by data from +the ONS’s Living Costs and Food (LCF) survey. The sample size of the +LCF means that in order to produce robust analysis three years of data +have been pooled together, specifically 2017-18 to 2019-206. This data is +then projected forward to reflect the financial year being modelled, +using historical Annual Survey of Hours and Earnings data on earnings +growth at different points across the income distribution as well as the +latest Office for Budget Responsibility average earnings and inflation +forecasts. The model generally makes no changes to the underlying +demographics, employment levels or expenditure patterns in the base +data. +``` + +So for every distributional row: income_concept = equivalised net household income, **BHC** (before +housing costs); equivalisation = **modified OECD** (HBAI-consistent); model = HMT IGOTM on pooled LCF +2017-18 to 2019-20. The annex Table 2.C cells themselves are **unequivalised household GROSS income** +medians ("pre-tax private income including earnings, private pensions, savings and investments, plus +benefit income") within deciles that are DEFINED by equivalised net BHC income — both facts are in each +row's conditions. + +## Gaps and blockers + +1. **Decile impact values (Figures 1.A/1.B/1.C) are chart graphics only.** No data labels in the PDF + text layer, no underlying data table in the PDF or the gov.uk HTML rendition (checked SS2025 HTML: + its only numeric table is annex Table 2.C). HMT does not publish the chart data. Staging them would + require chart digitization = NOT verbatim, so not staged. This is the biggest gap: the per-decile + % - of - net - income policy impacts (the headline UK distributional claims) have no published numbers. + Options for the platform: (a) FOI/correspondence for the underlying data; (b) digitize with an + explicit non-verbatim flag and generous error bars; (c) validate only the published qualitative + statements (e.g. AB2024: "all but the richest 10% of households will benefit as a percentage of + income from policy decisions in 2025-26"). +2. **Table 5.2 / Table 4.2 (previously-announced measures) downloaded but NOT staged** — same £m-by-FY + shape as 5.1/4.1; a rerun of the stager with their column layout covers them. +3. **SS2025 Table 2.1 (defence/ODA £bn table) not staged** (DEL plans, not tax-benefit measures). +4. **B2025 Red Book / AB2024 Red Book** downloaded for provenance; their Chapter tables duplicate the + staged XLSXs. +5. Costings-document per-measure "Exchequer impact (£m)" tables equal the scorecard rows (spot-checked + Employer NICs; both +23,770m for 2025-26) — not double-staged. The SS2025 costings PDF uses a + 2-column note layout; its 25 notes parse but with more layout noise (parse_confidence would be + medium) — scorecard numbers were taken from Table 3.1 instead. + +## PolicyEngine-UK-runnable measures (scorecard rows → parametric reforms) + +Directly expressible (measure → PE-UK lever): +- **AB2024 Employer NICs** (rate 13.8→15%, secondary threshold →£5,000, Employment Allowance →£10,500, + cap removed) — the headline £23.8-25.7bn/yr line. +- **AB2024 CGT main rates 18/24%** (+BADR/IR 14%→18% steps). +- **AB2024 IHT**: threshold freeze to 2030; pensions into estates (2027); APR/BPR £1m 100%→50% reform. +- **AB2024 VAT on private school fees** (20% from Jan 2025) + business-rates relief removal. +- **AB2024 SDLT higher rates** 3→5ppt (additional dwellings). +- **AB2024 Fuel duty** 5p-cut extension + no RPI uprating 2025-26. +- **AB2024 Winter Fuel Payments** restriction to Pension Credit recipients. +- **AB2024 Carer's Allowance earnings limit** to 16h @ NLW. +- **AB2024 abolition of non-dom regime** (4-year FIG) — partially modellable. +- **SS2025 PIP 4-point requirement** (from Nov 2026) and **UC health element** (50% cut for new claims, + freeze) + **UC standard allowance CPI+5% path** — PE-UK parameter set covers UC rates; PIP assessment + change needs an eligibility-share assumption (methodology note captured). +- **B2025 threshold freeze extension to April 2031** (PA £12,570, HRT £50,270, ART £125,140 + NICs + equivalents) — the single biggest B2025 line. +- **B2025 property/savings/dividend rate rises (+2ppt each, staged years)**. +- **B2025 salary-sacrifice pension NICs cap (£2,000/yr from April 2029)**. +- **B2025 removal of the UC two-child limit** (from April 2026) — the child-poverty headline. +- **B2025 High Value Council Tax Surcharge** (£2m+ homes, from 2028-29) — needs property-value data. +- **B2025 Winter Fuel Payment targeting** (taxable income ≤£35,000). +- **B2025 fuel duty** cancel-uprating. +Comparisons: HMT/OBR-certified totals vs PE-UK microsimulation of the same parametric change; +divergences decompose into behavioural adjustments (HMT includes them; captured verbatim in the +methodology notes below), coverage, and data vintage. + +## Assumptions registry — verbatim costing methodology notes + +Each note below is the full verbatim text (title, measure description, tax/cost base, costing incl. +behavioural adjustments, Exchequer impact table, uncertainty) from the event's Policy Costings document +(pdftotext -layout extraction; £m table alignment may wobble but numbers are verbatim). + +### [Autumn Budget 2024] Employer National Insurance contributions: + +``` +Employer National Insurance contributions: +Increase rate by 1.2 ppts to 15%, cut the Secondary +Threshold to £5,000 until 5 April 2028 and uprate +with CPI thereafter, increase Employment +Allowance to £10,500, remove the £100,000 +Employment Allowance eligibility threshold +Measure description +This measure introduces a number of changes to Employer National +Insurance Contributions (NICs), including: + +• Reducing the Secondary Threshold (ST) from £9,100 annual equivalent to + £5,000 annual equivalent, then increasing it in line with CPI from 2028-29; + +• Increasing the Employer NICs (ER NICs) rate from 13.8% to 15% (over the ST); + +• Increasing the Employment Allowance (EA) from £5,000 to £10,500; + +• Removing the Employment Allowance cap, meaning employers with ER + NIC liabilities over £100,000 in the previous tax year (but which are + otherwise eligible) are able to claim the full £10,500 Employment + Allowance. +This measure will be effective from 6th April 2025. + +The tax base +The tax base includes all employers paying ER NICs from April 2025. This is +estimated using HMRC’s Personal Tax Model based on the 2021-22 Survey of +Personal Incomes, projected forward using OBR’s Autumn Budget 2024 +economic determinants. + +For the Employment Allowance, the tax base consists of eligible ER NIC +liabilities between their current Employment Allowance claim and £10,500. + +Costing +The static costing is estimated by applying the pre- and post-measure tax +regimes to the tax base described above. + +The costing also accounts for changes to future incorporations of businesses. + +Exchequer impact (£m) + 2024-25 2025-26 2026-27 2027-28 2028-29 2029-30 + + Exchequer +0m +23,770m +23,690m +24,170m +24,930m +25,710m + impact + + +Areas of uncertainty +The main uncertainties in this costing relate to the size of the tax base and +behavioural response. + + + + + 38 +``` + +### [Autumn Budget 2024] Capital Gains Tax: Increase the main rates of CGT + +``` +Capital Gains Tax: Increase the main rates of CGT +to 18% and 24% from 30 October 2024, and the +Business Asset Disposal Relief (BADR) and +Investors' Relief (IR) rate to 14% from 6 April 2025 +and to 18% from 6 April 2026 +Measure description +This measure will increase the Capital Gains Tax (CGT) main rates to 18% and +24% for the lower and higher rate respectively, to be aligned with the +existing rates on residential property. + +This measure will be effective from 30 October 2024. + +The Business Asset Disposal Relief (BADR) and Investors’ Relief (IR) rate will +also increase to 14% from 6 April 2025 and 18% from 6 April 2026. + +The tax base +The tax base consists of all CGT liable main rate assets and BADR and IR +eligible assets disposed of during the scorecard period. The tax base is grown +over that horizon by using the OBR’s Capital Gains Tax forecast. + +Costing +The costing is estimated by applying the pre- and post-measure tax regimes +to the tax base described above. + +The costing then accounts for behavioural responses, such as changing the +timing of disposals. + +Exchequer impact (£m) + 2024-25 2025-26 2026-27 2027-28 2028-29 2029-30 + + Exchequer +90m +1,440m +1,370m +1,350m +2,180m +2,490m + impact + + +Areas of uncertainty +The main uncertainties in this costing relate to the size of the tax base and +the behavioural response. + + + + + 39 +``` + +### [Autumn Budget 2024] Inheritance Tax: Include unused pension funds + +``` +Inheritance Tax: Include unused pension funds +and death benefits payable from a pension in the +value of estates from 6 April 2027 +Measure description +This measure brings unused pension funds and death benefits payable from +a pension into a person’s estate for Inheritance Tax (IHT) purposes. + +This measure will be effective from 6 April 2027. + +The tax base +The tax base consists of death estates that contain unused pension funds +and death benefits. It is estimated using a combination of HMRC +administrative data and data from the Wealth and Assets Survey. + +The tax base is grown over the scorecard period in line with the OBR forecast +for equity prices. + +Costing +The static costing is estimated by applying the pre- and post-measure tax +regimes to the tax base described above. + +The costing accounts for a behavioural response whereby individuals +restructure their estates by increasing the rate at which they draw down +their unused pensions, or by making greater use of other available reliefs and +exemptions. + +Exchequer impact (£m) + 2024-25 2025-26 2026-27 2027-28 2028-29 2029-30 + + Exchequer +0m +0m +0m +640m +1,340m +1,460m + impact + + +Areas of uncertainty +The main uncertainties in this costing relate to the size of the tax base and +the behavioural response. + + + + + 40 +``` + +### [Autumn Budget 2024] Inheritance Tax: Reform agricultural property + +``` +Inheritance Tax: Reform agricultural property +relief and business property relief from 6 April +2026 by maintaining 100% relief for the first £1m of +combined assets and 50% relief thereafter, and +50% relief for “not listed” shares on the markets of +a recognised stock exchange +Measure description +This measure reforms Agricultural Property Relief (APR) and Business +Property Relief (BPR). In addition to existing nil-rate bands and exemptions, +the current 100% rates of relief will continue for the first £1 million of +combined agricultural and business property. The rate of relief will be 50% +thereafter, and in all circumstances for shares designated as “not listed” on +the markets of recognised stock exchanges, such as the Alternative +Investment Market (AIM). + +This measure will be effective from 6 April 2026. + +The tax base +The tax base consists of all estates subject to IHT that are projected to claim +APR or BPR across the scorecard period. The tax base is estimated using +HMRC administrative data. + +The tax base is grown over the forecast in line with the OBR’s forecast for IHT +receipts. + +Costing +The static costing is estimated by applying the pre- and post-measure tax +regimes to the tax base described above. + +The costing accounts for a behavioural response whereby individuals +restructure their estates by making greater use of other available reliefs and +exemptions. + +Exchequer impact (£m) + 2024-25 2025-26 2026-27 2027-28 2028-29 2029-30 + + Exchequer +0m +0m +230m +495m +520m +520m + impact + + +Areas of uncertainty +The main uncertainties in this costing relate to the size of the tax base and +the behavioural response. + + + + + 41 +``` + +### [Autumn Budget 2024] Inheritance Tax: Maintain thresholds at current + +``` +Inheritance Tax: Maintain thresholds at current +levels for a further two years until 6 April 2030 +Measure description +This measure fixes the Nil-Rate Band and Residence Nil-Rate Band +thresholds at £325,000 and £175,000 respectively for tax years 2028-29 and +2029-30. It also fixes the Residence Nil-Rate Band taper at the current level of +£2 million. + +This measure will be effective from 6 April 2028. + +The tax base +The tax base consists of Inheritance Tax (IHT) liable estates estimated using +HMRC administrative data and projected using OBR economic +determinants. + +Costing +The difference between the baseline IHT forecast and the forecast with these +changes, using the tax base above, gives the estimated static yield of the +threshold changes. + +The costing accounts for a behavioural response whereby some estates +respond to the change in threshold relative to the pre-measures baseline. + +Exchequer impact (£m) + 2024-25 2025-26 2026-27 2027-28 2028-29 2029-30 + + Exchequer +0m +0m +0m +0m +110m +355m + impact + + +Areas of uncertainty +The main uncertainties in this costing relate to the size of the tax base and +sensitivity to the CPI forecast. + + + + + 42 +``` + +### [Autumn Budget 2024] VAT: Applying the standard rate (20%) to + +``` +VAT: Applying the standard rate (20%) to +education and boarding services provided by +private schools from 1 January 2025 +Measure description +This measure introduces VAT on independent school fees at the Standard +Rate of 20%. + +This measure will be effective for school terms commencing on or after 1 +January 2025. + +The tax base +The tax base is the total fee income of private schools. This is estimated by +multiplying numbers of pupils at independent schools by average fees per +pupil. Pupil numbers are taken from the DfE school census and devolved +governments’ data. Average fees for member schools of the Independent +Schools Council (ISC) are taken from the ISC’s 2024 Census, and for other +schools are estimated using data from sampling. + +The tax base is projected over the forecast period by applying forecast +growth in average earnings with an uplift based on observed historic growth +in fees. + +Costing +Additional output VAT is calculated at 20% of the tax base above. This is then +reduced by estimated input VAT on purchases to arrive at the static costing. + +The costing accounts for a behavioural response whereby schools absorb +part of the VAT liability through reserves and cost reductions, and pass on +the remainder as fee increases. An elasticity of demand is then applied to the +resulting average increase in fees. The demand effect is then phased over +the forecast period based on the expected timing of pupil movements. The +costing further assumes that expenditure displaced to or from spending on +school fees, from fee increases or departures from private schools, will partly +be displaced from or to other Standard Rated expenditure. + +Exchequer impact (£m) + 2024-25 2025-26 2026-27 2027-28 2028-29 2029-30 + + Exchequer +460m +1,505m +1,560m +1,610m +1,665m +1,725m + impact + + +Areas of uncertainty +The main uncertainties in this costing relate to the size of the tax base and +behavioural responses. + + + + + 34 +``` + +### [Autumn Budget 2024] Stamp Duty Land Tax (SDLT): Increase the Higher + +``` +Stamp Duty Land Tax (SDLT): Increase the Higher +Rate of Additional Dwelling (HRAD) of SDLT by +2ppts from 3% to 5% from 31 October 2024 +Measure description +This measure will increase the Higher Rates for Additional Dwellings (the +higher rates) surcharge on Stamp Duty Land Tax (SDLT) by 2 percentage +points from 3% to 5%. It will also increase the single rate of SDLT that is +charged on the purchase of dwellings costing more than £500,000 by +corporate bodies from 15% to 17%. + +This measure will be effective from 31 October 2024. + +The tax base +The tax base reflects property transactions that currently attract the higher +rates surcharge and single rate for corporate bodies. It is estimated using +HMRC’s SDLT microsimulation model, based on transactions in the financial +year 2022-23, and is grown in line with the OBR’s forecast of residential +property prices and transactions. + +Costing +The static costing is estimated by applying the pre- and post-measure tax +regimes to the tax base described above. + +The costing accounts for a behavioural response, including impacts on +residential property transactions liable to the higher rates and the single rate +for corporate bodies, and on residential property prices. The costing assumes +that a proportion of the disincentivised higher rates transactions will be +displaced by primary residence transactions. + +Exchequer impact (£m) + 2024-25 2025-26 2026-27 2027-28 2028-29 2029-30 + + Exchequer +115m +90m +170m +255m +280m +310m + impact + + +Areas of uncertainty +The main uncertainties in this costing relate to the size of the tax base and +behavioural response. + + + + + 37 +``` + +### [Autumn Budget 2024] Fuel duty: One year extension to the 5p cut in + +``` +Fuel duty: One year extension to the 5p cut in +rates and no RPI increase in 2025-26 +Measure description +This measure freezes the rate of fuel duty for a further 12 months. This +includes maintaining the 5 pence per litre (ppl) cut, which was first +implemented on 23 March 2022, on rates for heavy oil (diesel and kerosene), +unleaded petrol, and light oil, with a proportionate percentage cut +(equivalent to 5ppl from the main fuel duty rate of 57.95ppl) in other lower +rates and the rates for rebated fuels where practical. +The cut is currently due to expire on 23 March 2025 but will be extended to +22 March 2026. + +The tax base +The tax base is all taxable fuel that is made available for use in the UK. The +projected volumes of taxable fuel are taken directly from the HMRC fuel duty +forecasting model. + +Costing +The costing is calculated by taking the forecast baseline and applying the +difference in the forecast and policy duty rates. +Behavioural responses are included to account for changes in consumption +in response to this measure. + +Exchequer impact (£m) + 2024-25 2025-26 2026-27 2027-28 2028-29 2029-30 + + Exchequer -45m -3,015m -880m -890m -900m -890m + impact + + +Areas of uncertainty +The main uncertainties in this costing relate to the size of the tax base and +the behavioural response. + + + + + 60 +``` + +### [Autumn Budget 2024] Winter Fuel Payments: Target payments at + +``` +Winter Fuel Payments: Target payments at +recipients of Pension Credit and certain other +means-tested benefits from winter 2024-25 +Measure description +This measure targets Winter Fuel Payments to pensioner households in +receipt of Pension Credit, Universal Credit, income-related Employment and +Support Allowance (ESA), income-based Jobseeker’s Allowance (JSA), +Income Support, Child Tax Credit or Working Tax Credit. Winter Fuel +Payments are devolved to the Scottish Government and the Northern +Ireland Executive. All figures are on a UK-wide basis, reflecting the Scottish +Government’s Block Grant Adjustment and Northern Ireland Executive +funding changes. + +This measure will be effective from Winter 2024-25. + +The cost base +The cost base is estimated using benefit caseload, expenditure forecasts and +official statistics from the DWP publication ‘Income-related benefits: +estimates of take-up’. + +Costing +The costing is estimated by applying the pre- and post-measure benefit +regimes to the cost base described above. + +A behavioural adjustment is made to account for changes in Pension Credit +take-up. + +Exchequer impact (£m) + 2024-25 2025-26 2026-27 2027-28 2028-29 2029-30 + + Exchequer +1,450m +1,510m +1,555m +1,580m +1,605m +1,655m + impact + + +Areas of uncertainty +The main uncertainties in this costing relate to the size of the behavioural +response. + + + + + 50 +``` + +### [Autumn Budget 2024] Carer’s Allowance: Increasing the earnings limit to + +``` +Carer’s Allowance: Increasing the earnings limit to +the equivalent of 16 hours at the National Living +Wage from April 2025 +Measure description +This measure will raise the Carer’s Allowance Weekly Earnings Limit from +£151 to the equivalent of 16 hours per week at the National Living Wage +(£196). The Weekly Earnings Limit will then increase in line with future +National Living Wage increases. + +This measure will be effective from 7 April 2025. + +The cost base +The cost base is DWP’s forecast caseload for Carer’s Allowance and OBR +projections for increases in the National Living Wage. + +Costing +The costing is calculated by measuring the potential group of new claimants +who fall between the previously assumed earnings limits and the projected +new earnings limit. This group has been estimated by using weighted labour +market data. + +Exchequer impact (£m) + 2024-25 2025-26 2026-27 2027-28 2028-29 2029-30 + + Exchequer +0m -25m -70m -105m -135m -165m + impact + + +Areas of uncertainty +The main uncertainties in this costing relate to the size of the behavioural +response in relation to levels of take-up of Carer’s Allowance amongst newly +eligible individuals. Additionally, the precise earnings distribution for carers +in employment is not known. + + + + + 64 +``` + +### [Autumn Budget 2024] Abolition of non-domicile tax status and + +``` +Abolition of non-domicile tax status and +introduction of a residence-based regime: remove +the 50% discount on foreign income in 2025/26; +apply inheritance tax; set Capital Gains Tax +rebasing date at 5 April 2017; and extend the +Temporary Repatriation Facility from two to three +years +Measure description +The remittance basis of taxation for non-UK domiciled individuals is being +abolished and replaced with a simpler residence-based regime. Individuals +opting into the regime will not pay UK tax on foreign income and gains (FIG) +for the first four years of tax residence, provided they have been non-tax +resident for the previous 10 years. + +This measure introduces a residence-based system for Inheritance Tax and +the planned 50% reduction in foreign income subject to tax in the first year +will be scrapped. For Capital Gains Tax purposes, current and past +remittance basis users will be able to rebase personally held foreign assets to +5 April 2017 on disposal where certain conditions are met. + +Overseas Workday Relief will be extended to a four-year period and will be +subject to an annual financial limit of the lower of £300,000 or 30% of net +employment income. This measure also extends the previously announced +Temporary Repatriation Facility to three years and expands the scope to +trust structures. + +This measure will be effective from 6 April 2025. + +The tax base +The tax base is made up of the foreign assets, income and gains of UK +residents from HMRC administrative data and is grown over the forecast +horizon using the OBR forecast for world equity prices. + +Costing +The static costing is estimated by applying the pre- and post-measure tax +regimes to the tax base described above. + +The costing accounts for behavioural responses including migration and tax +planning. + +Exchequer impact (£m) + 2024-25 2025-26 2026-27 2027-28 2028-29 2029-30 + + Exchequer +0m * +4,170m +5,895m +2,545m +95m + impact + + +Areas of uncertainty +The main uncertainties in this costing relate to the size of the tax base and +behavioural response. + + + 32 +``` + +### [Spring Statement 2025] Personal Independence Payment (PIP): Change + +``` +Personal Independence Payment (PIP): Change +the PIP assessment so claimants must score four +points in any one activity from 2026-27 +Measure description +This measure will require those claiming the Personal Independence +Payment (PIP) to score a minimum of 4 points in at least one activity to +qualify for a daily living award. + +This measure will be effective for new claims from November 2026 and for +existing claimants at their next award review following this date. + +The cost base +The cost base for this measure is estimated from current and forecasted PIP +cases and those of passported benefits like Carer’s Allowance and Universal +Credit Carer’s Element. + +Costing +The costing accounts for AME savings to DWP by estimating the number of +daily living claims that will no longer meet the new requirement to score a +minimum of four points in an activity. + +The costing also accounts for changes in claimant behaviour as the policy +becomes more widely known, with varying reductions in volumes impacted +by the changes over different cohorts. + +Exchequer impact (£m) + 2024-25 2025-26 2026-27 2027-28 2028-29 2029-30 + + Exchequer + +0m +0m +210m +1,755m +3,365m +4,515m + impact + + +Areas of uncertainty +The main uncertainty in this costing relates to the size of the behavioural +response. Additionally, the composition and timing of new claims and award +reviews could vary compared to the forecast, which is based on recent +trends. + + + + + 8 + Personal Independence Payment (PIP): Increase +capacity for processing award reviews from April +2026 +``` + +### [Spring Statement 2025] Work Capability Assessment: Do not proceed with + +``` +Work Capability Assessment: Do not proceed with +Autumn Statement 2023 descriptor reforms +Measure description +This measure will cancel the implementation of the reforms to the Work +Capability Assessment (WCA) announced at Autumn Statement 2023 that +were due to take effect this year. + +The cost base +The cost base for this measure is the OBR Spring Statement 2025 forecast for +Employment and Support Allowance (ESA) and Universal Credit Health +Element (UCHE) spending. This forecast incorporates the estimated impact +of removing the descriptor reforms as announced at Autumn Statement +2023. + +Costing +The impact of reversing the decision to remove the reformed descriptors is +estimated using the same methodology as the original decision scored at +Autumn Statement 2023, with updates for latest forecasts and other data. + +Exchequer impact (£m) + 2024-25 2025-26 2026-27 2027-28 2028-29 2029-30 + + Exchequer + +0m +0m -200m -730m -1,205m -1,645m + impact + + +Areas of uncertainty +The main uncertainty in this costing relates to the size of the behavioural +response. + + + + + 10 +``` + +### [Spring Statement 2025] Universal Credit Health Element: Maintain at 2025- + +``` +Universal Credit Health Element: Maintain at 2025- +26 rate until 2029-30, reduce rate by 50% for new +claimants from April 2026 and maintain until +2029-30 +Measure description +This measure will reduce the gap between the Universal Credit Standard +Allowance (UCSA) and Health Element (UCHE). From 2026-27, the award rate +of UCHE will be frozen for existing claimants and new claimants will receive a +lower award, set at 50% of the Limited Capability for Work- and Work- +Related Activity (LCWRA) rate for 2026/27. This will be frozen over the +forecast. + +This measure will be effective from 1 April 2026 + +The cost base +The cost base for this measure for this measure is the OBR forecast for +Employment and Support Allowance (ESA) and UCHE spending at Spring +Statement 2025. + +Costing +The savings from existing claimants are calculated by applying the frozen +UCHE weekly rate against the counterfactual CPI-uprated weekly rate. For +new claimants the savings are calculated by applying the 50% rate, against +the counterfactual current rate uprated by CPI. To find total savings, these +counterfactuals are applied to the proportion of the caseload which are new +claims, and which are existing claims, in each year. + +Exchequer impact (£m) + 2024-25 2025-26 2026-27 2027-28 2028-29 2029-30 + + Exchequer + +0m +0m +750m +1,535m +2,295m +3,005m + impact + + +Areas of uncertainty +The main uncertainty in this costing relates to the size of the behavioural +response. + + + + + 12 +``` + +### [Spring Statement 2025] Work Capability Assessment: Do not proceed with + +``` +Work Capability Assessment: Do not proceed with +Autumn Statement 2023 descriptor reforms +Measure description +This measure will cancel the implementation of the reforms to the Work +Capability Assessment (WCA) announced at Autumn Statement 2023 that +were due to take effect this year. + +The cost base +The cost base for this measure is the OBR Spring Statement 2025 forecast for +Employment and Support Allowance (ESA) and Universal Credit Health +Element (UCHE) spending. This forecast incorporates the estimated impact +of removing the descriptor reforms as announced at Autumn Statement +2023. + +Costing +The impact of reversing the decision to remove the reformed descriptors is +estimated using the same methodology as the original decision scored at +Autumn Statement 2023, with updates for latest forecasts and other data. + +Exchequer impact (£m) + 2024-25 2025-26 2026-27 2027-28 2028-29 2029-30 + + Exchequer + +0m +0m -200m -730m -1,205m -1,645m + impact + + +Areas of uncertainty +The main uncertainty in this costing relates to the size of the behavioural +response. + + + + + 10 +``` + +### [Budget 2025] Property Income: Introduce separate tax rates for + +``` +Property Income: Introduce separate tax rates for +property income at 22% for the property basic +rate, 42% for the property higher rate and 47% for +the property additional rate, from 6 April 2027 +Measure description +This measure creates a separate income tax rate for property rental income +which increases tax on property income for unincorporated landlords by +adding 2 percentage points to the basic rate, higher rate, and additional rate. + +This measure will be effective from 6 April 2027. + +The tax base +The tax base consists of all individuals and partnerships that receive property +income. It is estimated using HMRC administrative data from the 2023/24 +Self-Assessment returns. + +The tax base is grown over the forecast horizon using the OBR’s forecast for +growth in land and property income. + +Costing +The costing is estimated by applying the pre- and post-measure tax regimes +to the tax base described above. + +The costing accounts for a behavioural response whereby some landlords +choose to operate through a company structure rather than as an +unincorporated business to avoid the increased property income taxation, +though this response is expected to be limited. +The costing also accounts for the impact of this measure on rental prices and +house prices. + +Exchequer impact (£m) + 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 + + Exchequer +0m +0m +5m +590m +435m +445m + impact + + +Areas of uncertainty +The main uncertainties in this costing relate to the size of the behavioural +response. + + + + + 44 +``` + +### [Budget 2025] Savings Income: Increase tax rates on savings + +``` +Savings Income: Increase tax rates on savings +income by 2ppts at the basic, higher and +additional rate from 6 April 2027 and maintain the +Starting Rate of Savings limit at £5000 from April +2026 to April 2031 +Measure description +This measure increases the Basic, Higher and Additional Income Tax rates on +savings income by 2 percentage points. It applies to taxable savings income, +excluding Individual Savings Account returns and savings income covered +by the Personal Allowance, Personal Savings Allowance, or the Starting Rate +for Savings. + +This measure will be effective from 6 April 2027. + +The tax base +The tax base consists of taxable savings income held by individuals. This is +estimated using HMRC’s Personal Tax Model, drawing on administrative data +from the 2022–23 Survey of Personal Incomes. + +The tax base is grown over the forecast horizon using the OBR’s forecast for +growth in savings income. + +Costing +The costing is estimated by applying the pre- and post-measure tax regimes +to the tax base described above + +The costing accounts for a behavioural response whereby some individuals +shift their savings into tax-advantaged products such as Individual Savings +Accounts (ISAs). + +Exchequer impact (£m) + 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 + + Exchequer +0m +5m +55m +525m +470m +505m + impact + + +Areas of uncertainty +The main uncertainties in this costing relate to the size of the tax base, +behavioural response, and forecast of future returns to savings. + + + + + 46 +``` + +### [Budget 2025] Dividend Income: Increase tax rates on dividend + +``` +Dividend Income: Increase tax rates on dividend +income by 2ppts at the ordinary and upper rate +from 6 April 2026 +Measure description +This measure increases the ordinary and upper rate of dividend tax by two +percentage points. + +This measure will be effective from 6 April 2026. + +The tax base +The tax base consists of all taxable dividend income received by individuals. +This is estimated using HMRC’s Personal Tax Model, using data from the +2022–23 Survey of Personal Incomes. + +The tax base is grown over the forecast horizon using the OBR’s forecast for +growth in dividend income. + +Costing +The costing is estimated by applying the pre- and post-measure tax regimes +to the tax base described above. + +The costing accounts for a behavioural response whereby individuals reduce +their taxable dividend income, bring dividend income forward (forestalling), +or change their decision to incorporate businesses in response to the rate +increase. + +Exchequer impact (£m) + 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 + + Exchequer +0m +280m +985m +1,160m +1,325m +1,390m + impact + + +Areas of uncertainty +The main uncertainties in this costing relate to the size of the behavioural +response. + + + + + 45 +``` + +### [Budget 2025] Salary Sacrifice: Limit the value of salary sacrificed + +``` +Salary Sacrifice: Limit the value of salary sacrificed +pension contributions that can receive employee +and employer NICs relief to £2,000 per year from 6 +April 2029 +Measure description +This measure applies Class 1 Employee (Primary) and Employer (Secondary) +National Insurance Contributions (NICs) to “salary sacrificed” pension +contributions above an annual cap of £2,000, effective from 6 April 2029. The +policy aims to restrict the incentive for employers and employees to use salary +sacrifice arrangements for pension contributions to access additional NICs +savings. + +Tax base and data +The tax base consists of salary sacrifice and bonus sacrifice pension +contributions above the £2,000 annual cap. + + • The main data source is the 2024 ONS Annual Survey of Hours and + Earnings (ASHE), from which estimates of the number of employees + using salary sacrifice and the value of employee pension contributions + are made. + + • The tax base is projected in line with the historic trends and the OBR’s + forecast for employment and wage growth. +In 2024, it is estimated £32bn of pensions contributions used salary sacrifice +pension arrangements, with the value of contributions predominantly from +higher and additional rate taxpayers. + +Static costing +The static Exchequer impact is calculated by applying the pre- and post- +measure tax regimes to the tax base described above. This results in the +following static costing: + +Static Exchequer impact (£m) + + 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 + + Exchequer + +0m +0m +0m +0m +4,870m +5,070m + impact + +Post-behavioural costing +The costing includes various behavioural responses, two key ones have been +set out below: + + Behaviour Description + + + + + 47 + Employers may react The costing assumes that employers put 5% of + to these reforms by pay growth of the affected population towards + changing how they employer contributions. + compensate staff to + replicate some of the + Furthermore, the costing assumes a reduction in + savings afforded by + the tax base of 5% rising to 10% by the end of the + the existing salary + forecast reflects other formalisation + sacrifice regime. + arrangements. + + + The extent of the adjustment made reflects + HMRC and OBR judgement. + Employees may The costing assumes an overall 5% reduction in + smooth their the tax base from this behaviour. + contributions + between pay periods + This adjustment reflects HMRC and OBR + to make efficient use + judgement. + of NICs exemption on + contributions under + £2k. +The OBR also assume employers will seek to pass through some costs to +wages. A behavioural adjustment has been made for this in the costing. The +OBR's pass-through assumptions are detailed in their Economic and Fiscal +Outlook. + +The costing also accounts for other behaviours, including: + + • Forestalling prior to the implementation of the measure (the bringing + forward of contributions + • Shifting towards other schemes (i.e. ‘net pay arrangements’ or ‘relief at + source’) + • Increased contributions to meet auto-enrolment minimums + • Reduction in contributions by individuals in DC schemes + +The table below sets out the post-behavioural costing + +Post-behavioural Exchequer impact (£m) + + 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 + Exchequer + +0m -40m -55m -75m +4,845m +2,585m + impact + +Areas of uncertainty +The main uncertainties relate to behavioural responses, the use of ASHE +sample data, population growth, and economic factors such as wage growth. +The extent to which employers and employees will adapt their behaviour in +response to the measure is particularly uncertain. + + + + + 48 +``` + +### [Budget 2025] High Value Council Tax Surcharge: Introduce a + +``` +High Value Council Tax Surcharge: Introduce a +surcharge on owners of residential properties +valued over £2m in England from 1 April 2028 +Measure description +The High Value Council Tax Surcharge (HVCTS) introduces a new annual +charge on owners of properties in England valued at £2.0 million and above, +taking effect from April 2028. The charge will be based on a targeted +revaluation exercise carried out by the Valuation Office, on the basis of +property values in 2026. It will apply in addition to existing Council Tax. Among +other areas the government will consult on the criteria for and mechanism +through which to deliver support, reliefs, exemptions and appeals. + +Tax base and data +The tax base comprises properties in England valued above £2 million in 2026. +Estimates combine commercial valuation data, Council Tax statistics, SDLT +transaction data, and Valuation Office data. Further adjustments, including for +social housing, reduce the base by 2.5%. OBR property price forecasts and +new-build assumptions are used to project property prices and volumes, +resulting in an estimated 165,000 properties subject to the tax in 2028–29. + +Static costing +Static costing multiplies projected properties by band charges, uprated by CPI +from 2029–30. + +Static Exchequer impact (£m) + + 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 + Exchequer +0m +0m +0m +605 +620m +635m + impact + +Post-behavioural costing +The costing includes two main behavioural responses, which have been set +out below: + + Behaviour Description + Based on a range of studies2, 100% capitalisation is + Price assumed, phased in over 3 years. The net present value + (NPV) of the annual charge is calculated, assuming it + Capitalisation + continues in perpetuity and using a discount rate of 5%. The + price adjustment is phased in gradually: one-third in the + + + + +2 Giertz, S.H., Ramezani, R. and Beron, K.J. (2021). Property tax capitalization, a case study of Dallas County. Regional + + Science and Urban Economics, 89, p.103680. doi:https://doi.org/10.1016/j.regsciurbeco.2021.103680. + +Coste, J. (2024). Capitalization of Property Tax Incentives: Evidence From Philadelphia. FHFA Staff Working Papers. + Available at: https://ideas.repec.org/p/hfa/wpaper/24-01.html. + +Smith, O., Palmon, O. and Smith, B.A. (2025). New Evidence on Property Tax Capitalization. Journal of Political Economy, + 106(5), pp.1099–1128. DOI:http://dx.doi.org/10.1086/250041 + + 51 + first year, two-thirds in the second, and full pass-through + from the third year onwards. + Drawing on research into SDLT notches3, the costing + assumes relatively lower demand for properties at values + just above band thresholds. Bunching elasticities of 1.0 to 1.5 + are used. These are adjusted downward compared to the + SDLT empirical evidence to reflect the smaller impact on + Bunching + credit constraints of a recurring tax compared to an upfront + transaction tax. The elasticities are used to estimate a value + range above a threshold for which properties would see + price effects additional to the capitalisation effect, using the + net present value of the tax. + +The costing also includes a small adjustment for changes to the growth in the +stock of impacted properties. + +The costing includes adjustments for compliance, appeals and an assumed +support scheme: + + • Non-payment: The assumption reflects the Council Tax non-payment + rate uplifted to account for the owners, rather than occupiers, being + liable for the tax. + + • Appeals: Successful appeals are assumed based on Council Tax and + Business Rates appeal success rates. + + • Support scheme and inability to pay: The Wealth and Assets Survey is + used to estimate the share of households who may be unable to pay + the charge, including those who may qualify for a support scheme, + which is to be consulted on. + +The costing also accounts for impacts on other tax heads. Price capitalisation +affects SDLT, CGT, IHT, and ATED receipts. Transaction impacts include +temporary reductions pre-implementation and increases in churn post- +implementation, impacting SDLT and CGT receipts. + +Post-behavioural Exchequer impact (£m) + + 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 + Exchequer + -60m -120m -155m +400m +430m +435m + impact + + +Areas of uncertainty +The main uncertainties in this costing surround the size of the tax base, +behavioural and compliance effects and resultant impacts on other tax heads. + + + + +3 Best, M.C. and Kleven, H.J. (2017). Housing Market Responses to Transaction Taxes: Evidence From Notches and + + Stimulus in the U.K. The Review of Economic Studies, 85(1), pp.157–193. doi:https://doi.org/10.1093/restud/rdx032. + + 52 +``` + +### [Budget 2025] Universal Credit Child Element: Remove the two + +``` +Universal Credit Child Element: Remove the two +child limit from April 2026, taking 450,000 +children out of poverty +Measure description +The measure will remove the limit on the number of children a household on +Universal Credit can claim the child element for. + +Cost base and data +The cost base is the Universal Credit expenditure forecast before removal of +the two-child limit. +The main data sources are the Family Resources Survey (FRS) on which +DWP’s Policy Simulation Model (PSM) based, the UC forecasts and the OBR’s +economic assumptions, which are both incorporated into the model. UC +administrative data is also used to account for exceptions to the current +policy, which are not modelled in the PSM. + +Static costing +The static Exchequer impact is calculated by comparing the baseline +Universal Credit expenditure forecast before the policy change to +expenditure after removal of the two-child limit for households with third +and subsequent children born after April 2017. + +Static Exchequer impact (£m) + + 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 + + Exchequer + +0m -2,055m -2,250m -2,445m -2,715m -2,850m + impact + + +Post-behavioural costing +The costing includes one key behavioural response, which is set out below: + + Behaviour Description + + Some eligible + Estimated using the Policy Simulation Model (PSM) and + households may + Family Resources Survey data. An additional take up rate is + begin claiming + applied at 11% for those newly entitled and 22% for + due to the higher + previously entitled but non-claiming households. This + entitlement or + estimate is uncertain and reflects judgement as to how + increased + people will respond to the change. + publicity + + + +The costing assumes no significant impacts assumed for other benefits. The +PSM modelling accounts for interactions between the policy and the benefit +cap. +After applying the behavioural responses above, this results in the following +post-behavioural costing + + + 15 + Post-behavioural Exchequer impact (£m) + + 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 + + Exchequer +0m -2,365m -2,590m -2,815m -3,095m -3,235m + impact + + + +Areas of uncertainty +The main uncertainties in this costing are on behavioural assumptions. The +estimate for increased take-up is highly uncertain, and the actual response +may differ. Costs are also sensitive to wider demographic and +macroeconomic trends. + + + + + 16 +``` + +### [Budget 2025] Winter Fuel Payment: Target to pensioners with + +``` +Winter Fuel Payment: Target to pensioners with +taxable income below or equal to £35,000 from +Winter 2025 +Measure description +This measure targets Winter Fuel Payments in England and Wales to +pensioners with a taxable income below or equal to £35,000. The Winter Fuel +Payment will be made to all eligible pensioners who do not opt-out and the +full value of the payment will be recovered via HMRC for individuals with +taxable incomes exceeding £35,000 and not in receipt of Pension Credit, +Universal Credit, income-related Employment and Support Allowance (ESA), +income-based Jobseeker’s Allowance (JSA), Income Support, Child Tax Credit +or Working Tax Credit. This measure will be effective from Winter 2025-26. + +Inclusion of devolved government funding implications is without prejudice +decisions made by those governments. Figures are presented on a UK-wide +basis for transparency and consistency. Winter heating assistance is +devolved in Scotland, and Winter Fuel Payments are a transferred matter in +Northern Ireland. All figures reflect the UK government’s policy impact on +England and Wales, as well as resulting changes to the Scottish Block Grant +Adjustment and Northern Ireland Executive funding. + +The cost base +The cost base is estimated using benefit caseload, expenditure forecasts and +official statistics from the DWP publication ‘Income-related benefits: +estimates of take-up’. + +The tax base for the tax charge consists of all pensioners in England and +Wales with total income above £35,000 who are in receipt of the Winter Fuel +Payment. This is estimated using HMRC’s Personal Tax Model, based on +administrative data from the 2022–23 Survey of Personal Incomes. The tax +base is grown over the forecast horizon using the OBR’s forecast for growth +in pensioner incomes. + +Costing +The costing is estimated by applying the pre- and post-measure benefit +regimes to the cost base described above and accounts for behavioural +responses of increased Winter Fuel Payment opt outs for those eligible for +the HMRC recovery. + +Exchequer impact (£m) + 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 + + Exchequer + -1,785m -1,390m -910m -1,330m -1,340m -1,325m + impact + + +Areas of uncertainty +The main uncertainties in this costing relate to the size of the behavioural +response. + + + 84 + Universal Credit: Changes to the standard +allowance and health element to protect existing +claimants and new health element claimants who +meet the Severe Conditions Criteria from April +2026 +``` + +### [Budget 2025] Fuel Duty: Cancel uprating for 2026-27; extend the + +``` +Fuel Duty: Cancel uprating for 2026-27; extend the +5p cut in rates to 31 August 2026, then increase by +1p from 1 September 2026, 2p from 1 December +2026, and 2p from 1 March 2027 +Measure description +This measure extends the temporary 5 pence per litre (ppl) cut in fuel duty, +which was first implemented on 23 March 2022, from 23 March 2026 to 31 +August 2026 on rates for heavy oil (diesel and kerosene), unleaded petrol, +and light oil, with a proportionate percentage cut (equivalent to 5ppl from +the main fuel duty rate of 57.95ppl) in other lower rates and the rates for +rebated fuels where practical. + +Rates will then gradually return to early 2022 levels in three stages: for main +rates, by 1p on 1 September 2026, 2p on 1 December 2026, and 2p on 1 March +2027, returning to 57.95 pence per litre at that point. The planned increase in +line with inflation for 2026/27 is also cancelled. + +From 1 April 2027, fuel duty rates will be uprated annually in line with the +Retail Price Index. + +This measure will be effective from 23 March 2026. + +The tax base +The tax base is every litre of taxable fuel made available for use in the UK. +Projected volumes are taken from the fuel duty forecasting model. + +Costing +The costing is calculated by taking the forecast baseline and applying the +difference in the forecast and policy duty rates. + +The static costing is estimated by applying the pre- and post-measure tax +regimes to the tax base. Behavioural responses are accounted for by +measuring changes in consumption in response to changes in pump prices, +with separate elasticities for petrol and diesel reflecting short and long-run +effects. + +Exchequer impact (£m) + 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 + +Exchequer -45m -2,370m -855m -855m -850m -840m +impact + + + +Areas of uncertainty +The main uncertainties in this costing relate to the size of the tax base and +the behavioural response. + + + + + 14 +``` + +### [Budget 2025] Personal Tax: Maintain the personal income tax + +``` +Personal Tax: Maintain the personal income tax +and equivalent national insurance thresholds at +current levels for a further three years until April +2031 +Measure description +This measure maintains the income tax Personal Allowance at £12,570 and +the higher rate threshold at £50,270; and the additional rate threshold at +£125,140, all from April 2028 to April 2031. The Personal Allowance threshold +applies UK-wide. + +The higher rate threshold for non-savings, dividend and property income +and for property income will apply to taxpayers in England, Wales, and +Northern Ireland, and for savings and dividend income it will apply UK-wide. + +This measure maintains the NICs Primary Threshold (PT) and Lower Profits +Limit (LPL) at £12,570 from April 2028 until April 2031. The NICs Upper +Earnings Limit (UEL) and Upper Profits Limit (UPL) will be maintained at +£50,270 from April 2028 to April 2031. The Upper Secondary Threshold and +Apprentices Upper Secondary Threshold will stay fixed at £50,270 per annum +until April 2031, to remain aligned with the UEL and UPL. + +This measure will be implemented on 06 April 2028. + +Tax base and data +The tax base is an estimate of the income in excess of the thresholds. This is +estimated using HMRCs Personal Tax Model. The costing reflects the +following data sources: + + • The main source of data is from the 2022-23 Survey of Personal + Incomes. + + • The tax base is projected using the Office for Budget Responsibility + (OBR) economic forecast. +The overall estimate of the tax base in 2028-29 is around £2 trillion of income. + +Static costing +The static exchequer impact is calculated by applying the pre- and post- +measure tax regimes to the tax base described above. This results in the +following static costing: + +Static Exchequer impact (£m) + + 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 + + Exchequer + +0m +0m +0m +3,325m +7,650m +11,890m + impact + + +Post-behavioural costing +This costing builds in behavioural effects for individuals with income taxable +at the higher and additional rates of tax. Estimates of the behavioural effects +of the individuals outlined above are based on the Taxable Income + 40 + Elasticities, which estimates how taxable income changes in response to +changes in tax rates. These behavioural effects reduce the static costing by +£180m (1.3%) in 2030-31. + +The costing is also adjusted to reflected Tax Motivated Incorporations (TMIs) +as a result of this measure. + +The OBR also expect workers to shift part of the incidence of the tax increase +onto employers, by bargaining for a higher nominal wage. The impact of this +on nominal wages and profits is captured in a behavioural adjustment to the +costing. More detail on the OBR’s assessment is set out in the EFO. + +Post-behavioural Exchequer impact (£m) + + 2025-26 2026-27 2027-28 2028-29 2029-30 2030-31 + + Exchequer + +0m +0m -25m +3,365m +7,780m +12,435m + impact1 + + +Areas of uncertainty +The main uncertainties in this costing surround CPI growth as well as the +size of the tax base towards the end of the costing period, and the +behavioural response. + + + + +1 A slightly higher yield from Personal Tax Threshold Freezes is presented in the OBR’s EFO due to an error identified in + + the calculation of the shift of some of the incidence of the tax increase being passed onto employers after the forecast + had closed. + + 41 +``` + +## Bonus diagnosis seed + +The B2025 Table 4.1 scorecard row for the two-child limit carries HMT's poverty claim inside the verbatim +measure name: "Universal Credit Child Element: Remove the two child limit from April 2026, taking 450,000 +children out of poverty" (line 6, Spend, −£2,365m in 2026-27). That 450,000-children figure is a +government poverty_count_change claim directly testable in PolicyEngine-UK (poverty metric + income +concept unstated in the scorecard itself — the DA documents define HMT's income concepts; DWP's +HBAI/absolute-vs-relative choice for the 450k is NOT stated here, flag concept_mismatch risk). diff --git a/sources/harvest-uk-2026-08-02/uk_hmt/claims_staged.jsonl.gz b/sources/harvest-uk-2026-08-02/uk_hmt/claims_staged.jsonl.gz new file mode 100644 index 0000000..7225ab2 Binary files /dev/null and b/sources/harvest-uk-2026-08-02/uk_hmt/claims_staged.jsonl.gz differ diff --git a/sources/harvest-uk-2026-08-02/uk_hmt/manifest.jsonl b/sources/harvest-uk-2026-08-02/uk_hmt/manifest.jsonl new file mode 100644 index 0000000..4db221b --- /dev/null +++ b/sources/harvest-uk-2026-08-02/uk_hmt/manifest.jsonl @@ -0,0 +1,16 @@ +{"url": "https://assets.publishing.service.gov.uk/media/6721d2c54da1c0d41942a8d2/Policy_Costing_Document_-_Autumn_Budget_2024.pdf", "title": "Autumn Budget 2024: policy costings", "date": "2024-10-30", "sha256": "3f90469f1717f7cfe68cc2a369023eb02afe549090606d1078fc8a52afb8ebef", "local_path": "downloads/AB2024_Policy_Costings.pdf", "doc_type": "policy_costings", "access": "direct curl, honest UA (PolicyEngine-Scorecard-Harvester/1.0, contact max@policyengine.org)", "bytes": 637631, "publication_page": "https://www.gov.uk/government/publications/autumn-budget-2024"} +{"url": "https://assets.publishing.service.gov.uk/media/672156834da1c0d41942a8c9/Impact_on_households.pdf", "title": "Impact on households: distributional analysis to accompany Autumn Budget 2024", "date": "2024-10-30", "sha256": "7ab80cab82fefc9956ac8c4f232424e2a3d6337c5e6601aa95a9fe28a40fa193", "local_path": "downloads/AB2024_Impact_on_households.pdf", "doc_type": "distributional_analysis", "access": "direct curl, honest UA (PolicyEngine-Scorecard-Harvester/1.0, contact max@policyengine.org)", "bytes": 197082, "publication_page": "https://www.gov.uk/government/publications/autumn-budget-2024"} +{"url": "https://assets.publishing.service.gov.uk/media/67222f364da1c0d41942a9b2/Table_5.1_-_Autumn_Budget_2024_Policy_Decisions.xlsx", "title": "Table 5.1 Autumn Budget 2024 Policy Decisions", "date": "2024-10-30", "sha256": "6249ec5be2634b738be2da1b15fa45fc59afd239ad5ec8c221960428d30d6a37", "local_path": "downloads/AB2024_Table_5.1_Policy_Decisions.xlsx", "doc_type": "scorecard_table", "access": "direct curl, honest UA (PolicyEngine-Scorecard-Harvester/1.0, contact max@policyengine.org)", "bytes": 66977, "publication_page": "https://www.gov.uk/government/publications/autumn-budget-2024"} +{"url": "https://assets.publishing.service.gov.uk/media/6721557c10b0d582ee8c4846/Table_5.2_-_Measures_announced_at_Spring_Budget_2024_or_earlier_that_will_take_effect_from_October_2024_or_later.xlsx", "title": "Table 5.2 Measures announced at Spring Budget 2024 or earlier that will take effect from October 2024 or later", "date": "2024-10-30", "sha256": "3a4b93bce1b78ee1e4a71934f5a7c5d0d8eb52f1e45c487cdedf9877afb6d6fd", "local_path": "downloads/AB2024_Table_5.2_Previously_Announced.xlsx", "doc_type": "scorecard_table", "access": "direct curl, honest UA (PolicyEngine-Scorecard-Harvester/1.0, contact max@policyengine.org)", "bytes": 92179, "publication_page": "https://www.gov.uk/government/publications/autumn-budget-2024"} +{"url": "https://assets.publishing.service.gov.uk/media/6722236e4da1c0d41942a986/Autumn_Budget_2024_-_Data_Sources__1_.pdf", "title": "Autumn Budget 2024: data sources", "date": "2024-10-30", "sha256": "dc9c1fa1a6b2e9d353b9038fd78ac3b04f9fd70b5d979011e8e9dd66942eee5b", "local_path": "downloads/AB2024_Data_Sources.pdf", "doc_type": "data_sources", "access": "direct curl, honest UA (PolicyEngine-Scorecard-Harvester/1.0, contact max@policyengine.org)", "bytes": 376841, "publication_page": "https://www.gov.uk/government/publications/autumn-budget-2024"} +{"url": "https://assets.publishing.service.gov.uk/media/672b9695fbd69e1861921c63/Autumn_Budget_2024_Accessible.pdf", "title": "Autumn Budget 2024 (web) [Red Book, HC 295]", "date": "2024-10-30", "sha256": "8a635ccf89c0fabf6d5c1cbd3bbb416e065ba4629db772fcea137b3e13f7b249", "local_path": "downloads/AB2024_Red_Book.pdf", "doc_type": "budget_document", "access": "direct curl, honest UA (PolicyEngine-Scorecard-Harvester/1.0, contact max@policyengine.org)", "bytes": 1384047, "publication_page": "https://www.gov.uk/government/publications/autumn-budget-2024"} +{"url": "https://assets.publishing.service.gov.uk/media/67e562fc33afcd62e4ca4c9e/SS25_Published_Costing_Document.pdf", "title": "Spring Statement 2025: Policy Costings", "date": "2025-03-26", "sha256": "f3ad1f7cb249010d9db38a769dcc5713f056fcfc0e3fd81d9ceab4a6190ecc39", "local_path": "downloads/SS2025_Policy_Costings.pdf", "doc_type": "policy_costings", "access": "direct curl, honest UA (PolicyEngine-Scorecard-Harvester/1.0, contact max@policyengine.org)", "bytes": 347628, "publication_page": "https://www.gov.uk/government/publications/supporting-documents-for-spring-statement-2025"} +{"url": "https://assets.publishing.service.gov.uk/media/67e31bdadcd2d93561195bbb/Impact_on_households_-_SS25_FINAL.pdf", "title": "Impact on households: distributional analysis to accompany Spring Statement 2025", "date": "2025-03-26", "sha256": "67f7d72bc11cff4f4eb846d41028eb7dd0fab5aa68fe591b34993d3acf91630b", "local_path": "downloads/SS2025_Impact_on_households.pdf", "doc_type": "distributional_analysis", "access": "direct curl, honest UA (PolicyEngine-Scorecard-Harvester/1.0, contact max@policyengine.org)", "bytes": 148923, "publication_page": "https://www.gov.uk/government/publications/supporting-documents-for-spring-statement-2025"} +{"url": "https://assets.publishing.service.gov.uk/media/67e2fb4e5698d84e39cfdb3f/Spring_Statement_2025_-_Data_Sources.pdf", "title": "Spring Statement 2025: Data Sources", "date": "2025-03-26", "sha256": "8b2b8678f4bb9f5e32ad4b37d01ae5676a2d7acd9d3b02b46aad8759024c63a5", "local_path": "downloads/SS2025_Data_Sources.pdf", "doc_type": "data_sources", "access": "direct curl, honest UA (PolicyEngine-Scorecard-Harvester/1.0, contact max@policyengine.org)", "bytes": 162950, "publication_page": "https://www.gov.uk/government/publications/supporting-documents-for-spring-statement-2025"} +{"url": "https://assets.publishing.service.gov.uk/media/67e3ec2df356a2dc0e39b488/E03274109_HMT_Spring_Statement_Mar_25_Web_Accessible_.pdf", "title": "Spring Statement 2025 (web) [contains Table 3.1 policy decisions scorecard]", "date": "2025-03-26", "sha256": "0864d916ba65e647a437730896db938ad3e6492a7666de83fa0cf095366e94de", "local_path": "downloads/SS2025_Document.pdf", "doc_type": "fiscal_event_document", "access": "direct curl, honest UA (PolicyEngine-Scorecard-Harvester/1.0, contact max@policyengine.org)", "bytes": 6766507, "publication_page": "https://www.gov.uk/government/publications/spring-statement-2025-document"} +{"url": "https://assets.publishing.service.gov.uk/media/692872fd2a37784b16ecf676/Budget_2025-Policy_Costings.pdf", "title": "Budget 2025: Policy costings", "date": "2025-11-26", "sha256": "e4b87104f1a6cd1aeb7081e7815b604a7aa9ff1b760668e4a4c2e4719477fda4", "local_path": "downloads/B2025_Policy_Costings.pdf", "doc_type": "policy_costings", "access": "direct curl, honest UA (PolicyEngine-Scorecard-Harvester/1.0, contact max@policyengine.org)", "bytes": 817945, "publication_page": "https://www.gov.uk/government/publications/supporting-documents-for-budget-2025"} +{"url": "https://assets.publishing.service.gov.uk/media/69269c6222424e25e6bc31bb/Impact_on_households.pdf", "title": "Impact on households: distributional analysis to accompany Budget 2025", "date": "2025-11-26", "sha256": "9f7e68f3e44349c8a6a4a89b9e1427cc23f1691771902b154ef67cadd33480ea", "local_path": "downloads/B2025_Impact_on_households.pdf", "doc_type": "distributional_analysis", "access": "direct curl, honest UA (PolicyEngine-Scorecard-Harvester/1.0, contact max@policyengine.org)", "bytes": 198938, "publication_page": "https://www.gov.uk/government/publications/supporting-documents-for-budget-2025"} +{"url": "https://assets.publishing.service.gov.uk/media/69269df29fd433badebc31b3/Table_4.1_-_Budget_2025_Policy_Decisions.xlsx", "title": "Table 4.1 Budget 2025 Policy Decisions", "date": "2025-11-26", "sha256": "cf68c672e022a23b4327e8f863380cdd47c286081986a6515ac2ee1e85435921", "local_path": "downloads/B2025_Table_4.1_Policy_Decisions.xlsx", "doc_type": "scorecard_table", "access": "direct curl, honest UA (PolicyEngine-Scorecard-Harvester/1.0, contact max@policyengine.org)", "bytes": 87653, "publication_page": "https://www.gov.uk/government/publications/supporting-documents-for-budget-2025"} +{"url": "https://assets.publishing.service.gov.uk/media/692622272945773cf12dd0a0/Table_4.2_-_Measures_announced_at_Spring_Statement_2025_or_earlier_that_will_take_effect_from_27_November_2025_or_later.xlsx", "title": "Table 4.2 Measures announced at Spring Statement 2025 or earlier that will take effect from 27 November 2025 or later", "date": "2025-11-26", "sha256": "0d0e2ca695065fbece681ac5d80f17d2d5a8ebd6a179399a93418c111919d70d", "local_path": "downloads/B2025_Table_4.2_Previously_Announced.xlsx", "doc_type": "scorecard_table", "access": "direct curl, honest UA (PolicyEngine-Scorecard-Harvester/1.0, contact max@policyengine.org)", "bytes": 47159, "publication_page": "https://www.gov.uk/government/publications/supporting-documents-for-budget-2025"} +{"url": "https://assets.publishing.service.gov.uk/media/6926ce2fb3b9afff34e95fec/Budget_2025_-_Data_Sources.pdf", "title": "Budget 2025: Data Sources", "date": "2025-11-26", "sha256": "20296a884709230ed28c5261a8864bffedcfb7c9e01cc12fd758bb0cf33a96b3", "local_path": "downloads/B2025_Data_Sources.pdf", "doc_type": "data_sources", "access": "direct curl, honest UA (PolicyEngine-Scorecard-Harvester/1.0, contact max@policyengine.org)", "bytes": 377280, "publication_page": "https://www.gov.uk/government/publications/supporting-documents-for-budget-2025"} +{"url": "https://assets.publishing.service.gov.uk/media/6929b353345e31ab14ecf735/E03444720_Budget_2025_Web_Accessible.pdf", "title": "Budget 2025 (web) [Red Book]", "date": "2025-11-26", "sha256": "fc112784bdcfccfd1dc362202dbcc7c54d4f17c2969dafae244e2edead7c468a", "local_path": "downloads/B2025_Red_Book.pdf", "doc_type": "budget_document", "access": "direct curl, honest UA (PolicyEngine-Scorecard-Harvester/1.0, contact max@policyengine.org)", "bytes": 4330185, "publication_page": "https://www.gov.uk/government/publications/budget-2025-document"} diff --git a/sources/harvest-uk-2026-08-02/uk_ifs/NOTES.md b/sources/harvest-uk-2026-08-02/uk_ifs/NOTES.md new file mode 100644 index 0000000..48b04d1 --- /dev/null +++ b/sources/harvest-uk-2026-08-02/uk_ifs/NOTES.md @@ -0,0 +1,145 @@ +# uk_ifs harvest notes — 2026-08-02 + +268 staged claims from 16 manifested artifacts. All rows source_model **ifs_taxben** +(research-institute lane), calibration_relationship held_out, values verbatim +(normalizations declared per row). GBP via `proposed_unit: gbp` / `gbp_per_year`; +UK fiscal years staged as `time_basis: fiscal_year`, `period` = start year, +`conditions.fy` label ("2029-30"). + +## Access recipe (documented for re-harvest) +- ifs.org.uk Drupal **page routes are Cloudflare-403** ("Just a moment") for curl AND + WebFetch — challenge pages kept as evidence (doc_type blocked_403_challenge_html). + robots.txt itself is permissive (standard Drupal disallows only /core/, /admin/ etc.). +- **Unlock: static `/sites/default/files/...` paths serve 200 to plain curl with honest + UA** (TPC-style). PDFs and data xlsx all came from there, live. +- Page HTML (to discover file URLs + provenance): **Wayback snapshots** (availability + API → snapshot; `id_` suffix for original bytes). No bot-mitigation bypassed. +- **IFS charts are Flourish embeds**: `public.flourish.studio/visualisation//embed` + carries the full data JSON (`_Flourish_data`) + settings (title, £ prefix, axis + titles, footer note). This is how the Budget 2025 decile chart was captured + numerically. Data-item pages name the viz id. Recipe generalizes to every IFS + data-item. +- Drupal `/media//download` routes (Taxlab spreadsheets) are 403 live and mostly + NOT in Wayback → the one-click browser follow-up list. +- Old `output_url_files/` paths (pre-migration) 404 live; Wayback has original bytes. + +## What was staged +1. **Budget 2025 decile chart** (22 rows, `avg_change_household_net_income`, + gbp_per_year): 2026-27 and 2030-31, deciles Poorest..Richest + All, from Flourish + viz 26495404. Scope note verbatim on every row — package includes two-child-limit + scrapping, fuel duty freeze + 5p-cut-removal delay, three more years of threshold + freezes, high-value council tax surcharge; EXCLUDES savings/dividend/property-income + rises, salary-sacrifice reform, some energy reforms ("Including these would make the + 2030-31 picture more progressive"). **Excludes Scotland.** + ⚠️ Income concept: x-axis is "Household income decile"; equivalisation and BHC/AHC + are NOT stated in the captured chart or deck — flagged per row, do not assume until + the underlying report states it. +2. **Green Budget 2025 Table 4.1** (28 revenue_change rows incl. deck £13bn): 27 + costed tax rises for 2029-30 (income tax, NICs, freezes, VAT, CT, capital, pensions, + IHT, council tax [England only], fuel duty). "£6 billion" for abolishing the + residence nil-rate band **visually verified** against rendered p.157. + ⚠️ These are a MIX of sources (per table source line, carried verbatim in every + row's `costing_basis`): HMRC Ready Reckoner projected to 2029-30 with OBR nominal + GDP growth is the usual starting point; employer NICs + threshold-freeze rows + combine HMRC estimates with TAXBEN; several rows from HMRC/OBR/MHCLG/Advani-Sturrock + (per-row `row_source_note`). NOT pure TAXBEN, NOT administrative fact. +3. **Waters Budget-2025 deck claims** (5 rows): freeze extension £13bn by 2030-31 + (with verbatim uncertainty: ~25% chance >£21bn, ~25% <£8bn); freeze-as-a-whole + taxpayer counts (5.2m into income tax, 4.8m into higher rate by 2030-31); two-child + limit scrap £3.2bn cost 2029-30 + 560,000 families gaining (attribution flagged: + may restate official costing — triangulation candidate). +4. **GB2024 Ch.6 Table 6.5** (109 rows): 12 child-poverty policy packages × {annual + cost, 3 spending-share splits, child abs-poverty count & ppt reduction, cost per + child lifted out, overall count & ppt} + the 23% simulated baseline rate. + **Pure TAXBEN** ("Authors' calculations using Family Resources Survey 2022-23 and + TAXBEN"). Steady-state at full two-child-limit rollout (staged period=2035 with + explicit time_note — treat as counterfactual marker, not forecast year). NI + excluded. Poverty reductions staged as NEGATIVE changes with printed magnitudes in + value_raw. Headliner: remove two-child limit = £2,450m, −540k children (−4ppt), + £4,510/child. +5. **GB2024 Fig 6.1 workbook** (104 rows, poverty_rate levels): child poverty + 1997-98..2022-23 × {relative, absolute} × {AHC, BHC}, full float precision from + xlsx. Equivalisation/thresholds verbatim in every row (modified OECD; rel = 60% + contemporaneous median; abs = 60% of 2010-11 median; ≤2003-04 excludes NI). + ⚠️ These are FRS/HBAI-consistent calculations, NOT TAXBEN simulations — flagged + per row; likely overlap DWP HBAI series → dedup vs uk_dwp at ingest. + +## TAXBEN assumptions registry (#10) — verbatim from the 2021 guide +(TAXBEN_Guide_2021.pdf, sha256 b19a90c7…, retrieved via Wayback; full text in +downloads/TAXBEN_Guide_2021.txt. Quotes exact.) +- Static default: "TAXBEN calculates what the impact of policy reforms would be on + households' finances if those households did not change their behaviour in response." +- Take-up: "TAXBEN analysis is usually done on an 'entitlements basis' — that is, we + measure what net incomes would be if individuals claimed all the benefits that they + are entitled to." (vs 'reported take-up basis' option; entitlements basis will + "overstate … the impact of benefit reforms on actual incomes".) +- Taxes: "we analyse taxes on a 'liabilities basis' — we calculate what net incomes + would be on the assumption that individuals do not evade tax." +- Incidence: "In TAXBEN analysis, we generally look at what would happen to incomes if + all changes to taxes and benefits were fully incident on the directly affected + households. This includes taxes such as VAT or employer National Insurance + contributions." +- Top of the distribution: "tax reforms which only affect top earners cannot generally + be modelled reliably using the survey data … Instead, for distributional analysis, we + use the survey datasets … to estimate the frequency with which affected individuals + appear in different deciles … We then use that frequency to break the official + costing of the policy (before behavioural response, wherever that is available) into + different deciles." ⚠️ IFS decile charts for top-end measures EMBED official costings. +- Disability & contributory benefits: "modell[ed] … on a reported take-up basis: only + those who say that they claim are modelled as entitled." +- Scope: models income tax, NICs (employer and employee), council tax, VAT, most + duties ("about three quarters of total government tax revenue" in 2017-18), almost + all benefits/tax credits/state pensions. Does NOT model capital taxes (CGT, IHT, + stamp duty), business taxes (corporation tax, business rates), or public services. +- Data: FRS (~20k households/yr, main source), LCFS (~5k, indirect taxes), + Understanding Society/BHPS (panel). Systems since 1975 simulable. +- Aggregation: "into 'deciles', where we calculate the effect of reform on average + incomes in the bottom 10% …" (deciles of household income; the guide does not state + the equivalisation scale — GB2024 Fig 6.1 note separately confirms modified OECD for + poverty analysis). +- Employer-NICs incidence in Budget-2025 deck (separate, verbatim slide note): + "Assumes rise in employer NICs is incident on employees". +- Green Budget costings caveat (GB2025 Table 4.1 note): HMRC Ready Reckoner "typically + incorporates the direct impact of a measure on the tax base to which it is being + applied, or to closely related tax bases [but not] effects on other tax bases and + wider economic factors"; most other sources "purely 'mechanical' estimates". + +## Triangulation set (IFS vs OBR/HMT, same measures) +- **Two-child limit scrapping** — IFS deck: £3.2bn cost 2029-30, 560k families; IFS + GB2024 steady state: £2,450m, −540k children. vs OBR Autumn Budget 2025 policy + costing + HMT distributional analysis + DWP poverty estimate (deck cites "Gov't + estimates … 450,000 / 3.1ppt" — NOT staged, it's the government's number). +- **Threshold freeze extension to April 2031** — IFS £13bn by 2030-31 (w/ uncertainty + band) vs OBR's certified costing of the same measure. IFS £10.4bn (GB2025, freeze to + April 2030, pre-Budget hypothetical) is a variant, not the enacted measure. +- **Fuel duty** — Budget package includes freeze + 5p-cut delay (in decile rows); + GB2025 has 10% rise = £2.4bn hypothetical. vs OBR fuel-duty costings. +- **High value council tax surcharge** — in IFS decile package; OBR/HMT costed it. +- **Employer NICs / VAT / CT ready-reckoner rows** overlap HMRC's own Ready Reckoner + (uk_hmrc lane) — expected NEAR-DUPES by construction (IFS projects HMRC numbers + forward); adjudicate as vintage/projection differences, not model disagreement. +- **Fig 6.1 poverty levels** overlap DWP HBAI (uk_dwp) — same-microdata restatement. + +## Gaps / follow-ups (one click each in a real browser) +- Taxlab **revenue composition spreadsheet** (/media/9899/download) + IFS Fiscal Facts + parameter workbooks — Cloudflare-403, not in Wayback. P4 (mode-1 levels) therefore + UNFILLED except via other lanes (OBR/HMRC cover the same levels with better + provenance). +- **Indirect & capital taxes deck** downloaded but not staged (mostly charts; needs + the same Flourish-id hunt via its data-items). +- GB2025 full report has more parsable tables (Ch.3 public finances; Ch.8 disability + benefits) — full-report text is in downloads/ for a second pass. +- Two-child-limit standalone pieces ("The two-child limit: poverty, incentives and + cost", Mar 2025 comment; 670k-children projection) — pages archived in Wayback, + not yet pulled. +- IFS **data-items index** (ifs.org.uk/data-items) would enumerate every Flourish viz + id → systematic numeric capture of all IFS budget/event charts. Needs browser or + Wayback crawl. +- Autumn Budget 2025 decile chart: pin down equivalisation/BHC-AHC from the underlying + IFS budget-analysis report when accessible. + +## Parse confidence +High throughout: Flourish values machine-read from embed JSON; Table 4.1 from layout +text with one visual verification (RNRB £6bn); Table 6.5 all 12 rows column-checked +against prose restatements (540k/£4,510/£2.5bn long-run figure cross-consistent); +Fig 6.1 machine-read from xlsx at full float precision. No OCR anywhere. diff --git a/sources/harvest-uk-2026-08-02/uk_ifs/claims_staged.jsonl.gz b/sources/harvest-uk-2026-08-02/uk_ifs/claims_staged.jsonl.gz new file mode 100644 index 0000000..265ef55 Binary files /dev/null and b/sources/harvest-uk-2026-08-02/uk_ifs/claims_staged.jsonl.gz differ diff --git a/sources/harvest-uk-2026-08-02/uk_ifs/manifest.jsonl b/sources/harvest-uk-2026-08-02/uk_ifs/manifest.jsonl new file mode 100644 index 0000000..9f50510 --- /dev/null +++ b/sources/harvest-uk-2026-08-02/uk_ifs/manifest.jsonl @@ -0,0 +1,16 @@ +{"url": "https://ifs.org.uk/sites/default/files/2025-10/Final_The_IFS_Green_Budget_2025_full_report_amended%202.pdf", "title": "The IFS Green Budget: October 2025 (full report, amended)", "date": "2025-10", "sha256": "6a15b57847cdfe3ab7f77205b56ea0c6f29438a4ad429c534226d1587e8f57a1", "bytes": 5575529, "local_path": "~/scorecard-harvest/uk_ifs/downloads/GreenBudget2025_full_report.pdf", "doc_type": "report_pdf", "note": "fetched LIVE from static path with honest UA (static /sites/default/files/ not Cloudflare-challenged)"} +{"url": "https://ifs.org.uk/sites/default/files/2025-12/Personal_tax_and_benefits_TW.pdf", "title": "Personal tax and benefits - IFS Autumn Budget 2025 analysis presentation (Tom Waters)", "date": "2025-11-27", "sha256": "086dbafacfcc336faf48c944233c1d0f3b49c0310361d3f8c8785c17746c7031", "bytes": 174553, "local_path": "~/scorecard-harvest/uk_ifs/downloads/Budget2025_Personal_tax_and_benefits_TW.pdf", "doc_type": "presentation_pdf", "note": "fetched LIVE from static path"} +{"url": "https://ifs.org.uk/sites/default/files/2025-11/The_public_finances_more_of_everything_NR.pdf", "title": "The public finances: more of everything - IFS Autumn Budget 2025 analysis presentation", "date": "2025-11-27", "sha256": "7b3f7dab9e2d78d0c1aef19985a954d1263b6d36aa3ee1a275d0f525ba224b00", "bytes": 230343, "local_path": "~/scorecard-harvest/uk_ifs/downloads/Budget2025_public_finances_NR.pdf", "doc_type": "presentation_pdf", "note": "fetched LIVE from static path"} +{"url": "https://ifs.org.uk/sites/default/files/2025-12/Indirect_%26_capital_taxes_ID_Dec-2025.pdf", "title": "Indirect & capital taxes - IFS Autumn Budget 2025 analysis presentation (Isaac Delestre)", "date": "2025-11-27", "sha256": "8458c4c8ac229366bf7567246b4a00d562d6aab95a10a9704630084799cfb86c", "bytes": 676059, "local_path": "~/scorecard-harvest/uk_ifs/downloads/Budget2025_indirect_capital_taxes_ID.pdf", "doc_type": "presentation_pdf", "note": "fetched LIVE from static path; NOT yet staged (follow-up)"} +{"url": "https://public.flourish.studio/visualisation/26495404/embed", "title": "Flourish viz 26495404: Distributional impact of Budget 2025 reforms by household income decile in 2026-27 and in 2030-31", "date": "2025-11", "sha256": "a0efe5972bcc891c2db5b201d7adb65013ba281ad0faa065b1e592b0ed9a0ac1", "bytes": 848475, "local_path": "~/scorecard-harvest/uk_ifs/downloads/flourish_26495404_budget2025_decile.html", "doc_type": "chart_embed_html_with_data_json", "note": "public Flourish embed carrying full data JSON + settings (title, £ prefix, 'Per year', scope note)"} +{"url": "https://ifs.org.uk/sites/default/files/2024-10/Child-poverty-trends-and-policy-options_1.pdf", "title": "Child poverty: trends and policy options (IFS Green Budget 2024, Chapter 6)", "date": "2024-10", "sha256": "00ae204c55a32cdb2bc3d86c749b898a622e35eaf1ba44e350ce95e2ec427ec9", "bytes": 698368, "local_path": "~/scorecard-harvest/uk_ifs/downloads/GB2024_ch6_child_poverty.pdf", "doc_type": "report_pdf", "note": "fetched LIVE from static path"} +{"url": "https://ifs.org.uk/sites/default/files/2024-10/IFS-Green-Budget-2024-Chapter-6-Child-poverty-trends-and-policy-options-data.xlsx", "title": "GB2024 Chapter 6 figure data workbook (Figs 6.1-6.8)", "date": "2024-10", "sha256": "70a39f225151706a4d1dc5de93d4b70420978771c8eb07fdd10912fe80882590", "bytes": 34287, "local_path": "~/scorecard-harvest/uk_ifs/downloads/GB2024_ch6_child_poverty_data.xlsx", "doc_type": "data_xlsx", "note": "fetched LIVE from static path"} +{"url": "https://ifs.org.uk/sites/default/files/output_url_files/TAXBEN%2520Guide%2520-%2520UPDATE%2525202021.pdf", "title": "TAXBEN: The IFS tax and benefit microsimulation model (guide, 2021 update)", "date": "2021", "sha256": "b19a90c73cebf2a3e3befc1729f164b1b6bf025f3ced97edaf637eb4f3baec5e", "bytes": 101516, "local_path": "~/scorecard-harvest/uk_ifs/downloads/TAXBEN_Guide_2021.pdf", "doc_type": "methodology_pdf", "note": "live path 404s (both URL decodings); original bytes via Wayback 20240411152959id_; 4pp methodology guide"} +{"url": "http://web.archive.org/web/20251224082200/https://ifs.org.uk/data-items/distributional-impact-budget-2025-reforms-household-income-decile-2026-27-and-2030-31", "title": "IFS data-item page: Budget 2025 decile chart (Wayback snapshot 2025-12-24)", "date": "2025-11", "sha256": "3f453183169cdc434d4c56a1a16f2e5521edff9c6bfed7d08900913e96225837", "bytes": 195547, "local_path": "~/scorecard-harvest/uk_ifs/downloads/wayback__data_item_budget2025_decile.html", "doc_type": "page_html_wayback"} +{"url": "http://web.archive.org/web/20260304035045/https://ifs.org.uk/events/autumn-budget-2025-ifs-analysis", "title": "IFS event page: Autumn Budget 2025 - IFS analysis (Wayback snapshot 2026-03-04)", "date": "2025-11-27", "sha256": "590439d2881e51921e6072678e2f22c2f6dbf4c29c6e031f6588a8b03ab96775", "bytes": 216967, "local_path": "~/scorecard-harvest/uk_ifs/downloads/wayback__event_autumn_budget_2025.html", "doc_type": "page_html_wayback"} +{"url": "http://web.archive.org/web/20251016133912/https://ifs.org.uk/publications/green-budget-2025-full-report", "title": "IFS publication page: Green Budget 2025 full report (Wayback snapshot 2025-10-16)", "date": "2025-10", "sha256": "36ff91a5056c853a704c8035dfdae57723a6114985145d57d7458b11f8775e34", "bytes": 313298, "local_path": "~/scorecard-harvest/uk_ifs/downloads/wayback__gb2025_landing.html", "doc_type": "page_html_wayback"} +{"url": "http://web.archive.org/web/20251126145445/https://ifs.org.uk/publications/child-poverty-trends-and-policy-options", "title": "IFS publication page: Child poverty trends and policy options (Wayback snapshot 2025-11-26)", "date": "2024-10", "sha256": "75f3a25ecd67d237cbaba40be802b6736f3a52a3b79efedd0eabd32ee5cd34b2", "bytes": 531245, "local_path": "~/scorecard-harvest/uk_ifs/downloads/wayback__child_poverty_report_page.html", "doc_type": "page_html_wayback"} +{"url": "http://web.archive.org/web/20250827221416/https://ifs.org.uk/publications/taxben-ifs-tax-and-benefit-microsimulation-model", "title": "IFS publication page: TAXBEN model (Wayback snapshot 2025-08-27)", "date": "2021", "sha256": "39a9da21dec33ea574cb5895059cad28e456620df295f2771268eb509f7350b1", "bytes": 207067, "local_path": "~/scorecard-harvest/uk_ifs/downloads/wayback__taxben_pub_page.html", "doc_type": "page_html_wayback"} +{"url": "http://web.archive.org/web/20260216115321/https://ifs.org.uk/taxlab/taxlab-data-item/ifs-revenue-composition-spreadsheet", "title": "IFS Taxlab data-item page: revenue composition spreadsheet (Wayback snapshot 2026-02-16)", "date": "2026", "sha256": "cc4f31e36f2de73e7a5f5b3e252ee80bd0aa4fc303184a4a987aa1cc116bb010", "bytes": 33268, "local_path": "~/scorecard-harvest/uk_ifs/downloads/wayback__revenue_composition_item.html", "doc_type": "page_html_wayback", "note": "download route /media/9899/download is Cloudflare-403 live and NOT in Wayback - xlsx unretrieved (browser follow-up)"} +{"url": "https://ifs.org.uk/data-items/distributional-impact-budget-2025-reforms-household-income-decile-2026-27-and-2030-31", "title": "LIVE fetch evidence: Cloudflare 403 challenge page for data-item route", "date": "2026-08-02", "sha256": "845501f8b826bb8483911d1bfd69d1ccffef66f2ef0ca665d016ec078760e783", "bytes": 6009, "local_path": "~/scorecard-harvest/uk_ifs/downloads/page__data_item_budget2025_decile.html", "doc_type": "blocked_403_challenge_html"} +{"url": "https://ifs.org.uk/publications/green-budget-2025-full-report", "title": "LIVE fetch evidence: Cloudflare 403 challenge page for publication route", "date": "2026-08-02", "sha256": "a3c083f1f4fe9b46890b52191c8105d2a8ee378bb4885db53f0e5d72fbb12971", "bytes": 5783, "local_path": "~/scorecard-harvest/uk_ifs/downloads/page__green_budget_2025_full_report.html", "doc_type": "blocked_403_challenge_html"} diff --git a/sources/harvest-uk-2026-08-02/uk_obr/NOTES.md b/sources/harvest-uk-2026-08-02/uk_obr/NOTES.md new file mode 100644 index 0000000..68f3219 --- /dev/null +++ b/sources/harvest-uk-2026-08-02/uk_obr/NOTES.md @@ -0,0 +1,131 @@ +# uk_obr harvest notes (2026-08-02) + +Source: Office for Budget Responsibility (obr.uk). Publisher slug used in rows: `obr`. + +## Access route (no bypasses) +obr.uk is Cloudflare-protected: curl and WebFetch get 403 with an honest UA, and +the live site served an **interactive Turnstile checkbox** in the browser pane — +NOT clicked, per the no-CAPTCHA rule. All bytes came from archives: +- **Wayback Machine original bytes** (`/web/id_/` URLs, honest harvester UA) — + all 16 artifacts. Per-file snapshot URL in `manifest.jsonl` (`wayback_snapshot`). +- UK Government Web Archive (webarchive.nationalarchives.gov.uk) was probed and + works for obr.uk *pages* but had not captured the target xlsx files. +- Wayback SPN (save-page-now) rejected anonymous saves (520) — could not force + captures of the missing March 2026 files. +- Discovery recipe: archived `/data/` and EFO pages -> `/download//` + links; Wayback replay of a `/download/` slug follows the stored 302 to the + real file under `obr.uk/docs/...`; plus a domain-wide CDX query filtered to + `.xlsx` (2026 window) which surfaced newer vintages than the archived data + page linked (November 2025 PMD, uncertainty ratings, Spring 2026 HOFD). + +## Artifacts (16, all sha256'd in manifest.jsonl) +Costings core: Policy measures database **November 2025** (latest vintage; its +Tax Summary includes Autumn Budget 2025 — vintage confirmed from content) and +**March 2025** vintage; Uncertainty ratings database November 2025; Policy +risks database November 2025; EFO Oct 2024 policy tables (Autumn Budget 2024 +scorecard as published in the EFO). +Forecast tables: EFO March 2026 receipts (latest); EFO Nov 2025 receipts / +expenditure / aggregates; EFO Oct 2024 receipts; EFO Mar 2025 expenditure; +EFO Mar 2026 chapter 3 charts+tables. +Databases: Historical official forecasts database Spring 2026 + March 2025; +March 2025 ready reckoner; Welfare trends report Oct 2024 charts+tables. + +## claims_staged.jsonl — 25,558 rows +| block | rows | metric | notes | +|---|---|---|---| +| PMD Tax Measures | 12,773 | `revenue_change` | 2,579 measure×tax-head rows, 84 fiscal events, Budget 1970 -> Autumn Budget 2025 | +| PMD Spending Measures | 11,531 | proposed `exchequer_impact` | 1,954 rows, June Budget 2010 -> Autumn Budget 2025 | +| EFO Mar 2026 3.4 + 3.8 | 490 | proposed `revenue_level` | income tax/NICs detail + tax-by-tax cash receipts, 2024-25 outturn + forecast to 2030-31 | +| EFO Nov 2025 4.9 + 4.11 | 441 | `benefit_cost` | welfare spending by program (UC elements, PIP, DLA, AA, carer's, child benefit, HB, JSA/ESA, state pension block) | +| EFO Mar 2026 3.17 | 95 | `revenue_change` | latest re-estimated yield of personal tax measures (PA/HRT freezes, ART cut, NICs thresholds) — reform_hint per measure | +| EFO Mar 2026 3.18 | 99 | proposed `taxpayer_count` (persons) | taxpayers with/without indexation, brought into tax / higher rate | +| EFO Mar 2026 3.19 | 129 | proposed `policy_parameter_level` | actual (frozen) vs with-indexation counterfactual PA/HRT/NICs thresholds, £ | + +Conventions on every row: value normalized to GBP (proposed unit `gbp`; +UnitConcept lacks it — extend deliberately), `value_raw` = verbatim cell, +`normalization` documents ×1e6 (£m) or ×1e9 (£bn); `period` = FY start year, +`time_basis` fiscal_year, `conditions.fy` = "1970-71"-style label; +`conditions.basis` outturn|forecast from the workbook's own Outturn/Forecast +marker row (`unstated` where the table has no marker — 3.17/3.19). + +### PMD staging decisions (the load-bearing ones) +- **Units/sign, verbatim from the Notes sheet**: "All the figures in this + database are in £ million… We use the Treasury scorecard convention that a + positive sign implies a gain to the Exchequer, and so reduces borrowing." + Tax rows: that convention coincides with revenue_change semantics (tax rise + = +). Spending rows: a positive value = *reduced* borrowing (e.g. the + June-2010 CPI-indexation switch and DLA gateway show +) — so it is NOT a + spending change; staged untransformed as proposed `exchequer_impact` with + `conditions.sign_convention=positive_gain_to_exchequer` and + `conditions.impact_channel=spending_measure`. +- **Extension cells excluded**: OBR extends costings beyond the original + scorecard using nominal GDP growth and shades those cells; the shading is + machine-readable (solid fill FFE1E9EE). Staged only original-scorecard + cells (24,304); skipped 48,902 extended cells (`costing_phase= + original_scorecard` on every staged row). Extended values remain available + in the artifact if ever wanted. +- Pre-June-2010 events are Treasury scorecard numbers (2-year horizons, + £5m rounding, £50m publication threshold); post-2010 are OBR-scrutinised + 5-year costings (£1m rounding since Budget 2018). source_model = + `hmt_scorecard_obr_database` for all; the fiscal_event condition dates each row. +- **March 2025 PMD vintage downloaded but not staged**: the database carries + original costings unchanged across vintages (per its own notes), so + re-staging would duplicate ~everything minus the two 2025 events; kept for + vintage diffing at ingest. +- Measures hitting both receipts and spending appear on both sheets (e.g. + Warm Homes Plan: Environmental levies on tax side, PSGI in CDEL on spending + side) — both staged, distinguished by tax_head/spending_head conditions. + +### Spot-checks passed +- AB2024 "Employer National Insurance contributions: Increase rate by 1.2 ppts + to 15%…" = +£24.17bn (2027-28), non-dom abolition +£5.73bn — match the + published scorecard magnitudes. +- 4.11 incapacity spending 2024-25 outturn £29.4bn; 3.4 income tax (gross) + 2024-25 outturn £305.9bn — right scales. +- All 25,558 rows JSON-clean, conditions strictly str->str, 0 failures. + +## uncertainty_ratings.jsonl — 1,179 rows (sidecar, not claims) +Final rating + data/behavioural/modelling sub-ratings per measure per event, +Autumn Statement 2014 -> Autumn Budget 2025 (23 events). Join to PMD rows at +ingest on (fiscal_event exact, measure name fuzzy) to populate +`conditions.costing_certainty`. Names differ slightly between the two +workbooks — do the fuzzy join deliberately, not automatically. + +## PolicyEngine-UK-runnable costings (best validation surface) +Directly parametric in policyengine_uk: +- **PA + HRT freezes** — 3.17 gives the OBR yield path (£24.3bn 2024-25 -> + £49.1bn 2029-30) AND 3.19 gives the exact counterfactual thresholds to + encode the uprated baseline. Cleanest possible reform-validation pair. +- Employer NICs rate 13.8->15% + Secondary Threshold £9,100->£5,000 (AB2024). +- Additional rate threshold £150k->£125,140; employee NICs main-rate cuts + (AS2023 12->10%, SB2024 10->8%); NICs primary threshold July-2022 rise. +- HICBC threshold changes; two-child-limit removal (AB2025, spending side); + UC taper 63%->55% + work allowances (AB2021); state pension triple-lock + upratings; VAT on private school fees (AB2024). +- 3.18 taxpayer counts (brought into tax / higher rate by freezes) are + PE-computable headcounts. +Level validation: 4.9/4.11 welfare benefit_cost by program × year vs PE UK +program totals; 3.4/3.8 receipts levels vs PE income tax/NICs aggregates. + +## Blockers / follow-up fetch queue (one click each in a real browser) +- EFO **March 2026** detailed tables: **policy** (Spring 2026 event costings), + **expenditure** (latest welfare tables), aggregates — never archived; + live URLs (pattern confirmed from siblings): + `https://obr.uk/docs/d055fbf02d5b3g6jq8l2/efo-march-2026-detailed-forecast-tables-{policy,expenditure,aggregates}.xlsx` + (also available via `https://obr.uk/download/march-2026-economic-and-fiscal-outlook-detailed-forecast-tables-zip-file/`). +- EFO Nov 2025 policy tables (Autumn Budget 2025 scorecard as published): + not found in archives under any tried name. +- Policy measures database **post-AB2025 refresh**: as of the June-2026 + archived data page the linked PMD was still the March-2025 slug; the Nov + 2025 file is the newest archived. Check live site for a Spring-2026 update. +- Welfare trends report Oct 2024: artifact retained, tables not yet staged + (overlaps 4.9-style content at an older vintage) — parse at ingest if wanted. +- Ready reckoner staged as artifact only: it is determinant-sensitivity + (earnings/employment scenarios), not policy levers. + +## Parse confidence +High for everything staged: units read from each table's own unit row +("£ billion"/"£ million"/"Million"/"£"), basis from each table's own marker +row, extension flags from the workbook's own shading key. No inferred +mechanics. Re-runnable scripts: stage_pmd.py, stage_efo_tables.py, +stage_receipts_measures.py, stage_uncertainty.py. diff --git a/sources/harvest-uk-2026-08-02/uk_obr/claims_staged.jsonl.gz b/sources/harvest-uk-2026-08-02/uk_obr/claims_staged.jsonl.gz new file mode 100644 index 0000000..c75fbe5 Binary files /dev/null and b/sources/harvest-uk-2026-08-02/uk_obr/claims_staged.jsonl.gz differ diff --git a/sources/harvest-uk-2026-08-02/uk_obr/manifest.jsonl b/sources/harvest-uk-2026-08-02/uk_obr/manifest.jsonl new file mode 100644 index 0000000..b1dddf8 --- /dev/null +++ b/sources/harvest-uk-2026-08-02/uk_obr/manifest.jsonl @@ -0,0 +1,16 @@ +{"url": "https://obr.uk/docs/dlm_uploads/Policy_measures_database_November_2025_.xlsx", "title": "Policy measures database (November 2025, to Autumn Budget 2025)", "date": "2025-11", "sha256": "76fb24ac780364949e5537563a70f8fbbe30cad6c652195704ea5d72b32ea619", "local_path": "downloads/Policy_measures_database_November_2025_.xlsx", "doc_type": "costings_database", "access": "wayback_machine_original_bytes", "wayback_snapshot": "https://web.archive.org/web/20260102175529id_/https://obr.uk/docs/dlm_uploads/Policy_measures_database_November_2025_.xlsx", "bytes": 2032302} +{"url": "https://obr.uk/docs/Policy_measures_database_March_2025.xlsx", "title": "Policy measures database (March 2025 vintage)", "date": "2025-03", "sha256": "57874784264dd98f1df222a2983fa11fba88d461ef6bbf040f189673756a40e6", "local_path": "downloads/Policy_measures_database_March_2025.xlsx", "doc_type": "costings_database", "access": "wayback_machine_original_bytes", "wayback_snapshot": "https://web.archive.org/web/20251208224944id_/https://obr.uk/docs/Policy_measures_database_March_2025.xlsx", "bytes": 1926258} +{"url": "https://obr.uk/docs/dlm_uploads/Uncertainty_ratings_database_November_2025_.xlsx", "title": "Policy costings uncertainty ratings database (November 2025)", "date": "2025-11", "sha256": "06610ebceb159d8fd29bda91261699783b5ca3ec8cb8a4a9d38a9a5913596947", "local_path": "downloads/Uncertainty_ratings_database_November_2025_.xlsx", "doc_type": "costings_uncertainty_database", "access": "wayback_machine_original_bytes", "wayback_snapshot": "https://web.archive.org/web/20260209105233id_/https://obr.uk/docs/dlm_uploads/Uncertainty_ratings_database_November_2025_.xlsx", "bytes": 322126} +{"url": "https://obr.uk/docs/dlm_uploads/Policy_risks_database_November_2025.xlsx", "title": "Policy risks database (November 2025)", "date": "2025-11", "sha256": "e78a20542bb7e5fbf2d21bcbcc805b0bcaa54650711ba5893e71c206bb8db825", "local_path": "downloads/Policy_risks_database_November_2025.xlsx", "doc_type": "policy_risks_database", "access": "wayback_machine_original_bytes", "wayback_snapshot": "https://web.archive.org/web/20260129111151id_/https://obr.uk/docs/dlm_uploads/Policy_risks_database_November_2025.xlsx", "bytes": 159023} +{"url": "https://obr.uk/docs/dlm_uploads/Policy_Detailed_forecast_tables_October_2024.xlsx", "title": "EFO October 2024 detailed forecast tables: policy (Autumn Budget 2024 costings)", "date": "2024-10", "sha256": "473a17635357a51a5da2260c7ff918ff68a609b589c2620f05a84304255cd182", "local_path": "downloads/Policy_Detailed_forecast_tables_October_2024.xlsx", "doc_type": "efo_policy_tables", "access": "wayback_machine_original_bytes", "wayback_snapshot": "https://web.archive.org/web/20260608022059id_/https://obr.uk/docs/dlm_uploads/Policy_Detailed_forecast_tables_October_2024.xlsx", "bytes": 115740} +{"url": "https://obr.uk/docs/d055fbf02d5b3g6jq8l2/efo-march-2026-detailed-forecast-tables-receipts.xlsx", "title": "EFO March 2026 detailed forecast tables: receipts", "date": "2026-03", "sha256": "f65b6cb7f96931d4abd85940794eb60f6f65afca8bbf16c74a4548bf92766a28", "local_path": "downloads/efo-march-2026-detailed-forecast-tables-receipts.xlsx", "doc_type": "efo_receipts_tables", "access": "wayback_machine_original_bytes", "wayback_snapshot": "https://web.archive.org/web/20260316163140id_/https://obr.uk/docs/d055fbf02d5b3g6jq8l2/efo-march-2026-detailed-forecast-tables-receipts.xlsx", "bytes": 187899} +{"url": "https://obr.uk/docs/dlm_uploads/Receipts_Detailed_forecast_tables_November_2025.xlsx", "title": "EFO November 2025 detailed forecast tables: receipts", "date": "2025-11", "sha256": "dee9347861cf38e422a8827e6999acac477f07bbb9602a3850915b1d4f212a1f", "local_path": "downloads/Receipts_Detailed_forecast_tables_November_2025.xlsx", "doc_type": "efo_receipts_tables", "access": "wayback_machine_original_bytes", "wayback_snapshot": "https://web.archive.org/web/20260107133932id_/https://obr.uk/docs/dlm_uploads/Receipts_Detailed_forecast_tables_November_2025.xlsx", "bytes": 1480077} +{"url": "https://obr.uk/docs/dlm_uploads/Receipts_Detailed_forecast_tables_October_2024.xlsx", "title": "EFO October 2024 detailed forecast tables: receipts", "date": "2024-10", "sha256": "16d69c0981f45e5b7fe3fa35d08bfe09e6170440231d546f374a9f4d48191991", "local_path": "downloads/Receipts_Detailed_forecast_tables_October_2024.xlsx", "doc_type": "efo_receipts_tables", "access": "wayback_machine_original_bytes", "wayback_snapshot": "https://web.archive.org/web/20260122155048id_/https://obr.uk/docs/dlm_uploads/Receipts_Detailed_forecast_tables_October_2024.xlsx", "bytes": 315349} +{"url": "https://obr.uk/docs/dlm_uploads/Expenditure_Detailed_forecast_tables_November_2025.xlsx", "title": "EFO November 2025 detailed forecast tables: expenditure (incl. welfare 4.9/4.11)", "date": "2025-11", "sha256": "ad05ec74e16c6874c0b559e494c55a5e4327676a02e5a9276c23605ec37f8115", "local_path": "downloads/Expenditure_Detailed_forecast_tables_November_2025.xlsx", "doc_type": "efo_expenditure_tables", "access": "wayback_machine_original_bytes", "wayback_snapshot": "https://web.archive.org/web/20260316163307id_/https://obr.uk/docs/dlm_uploads/Expenditure_Detailed_forecast_tables_November_2025.xlsx", "bytes": 2120899} +{"url": "https://obr.uk/docs/dlm_uploads/Expenditure_Detailed_forecast_tables_March_2025.xlsx", "title": "EFO March 2025 detailed forecast tables: expenditure", "date": "2025-03", "sha256": "b5ae257aca0cf9cc9e581509080e2c0220ec1f8f591f1cc24527fcd21bcadc11", "local_path": "downloads/Expenditure_Detailed_forecast_tables_March_2025.xlsx", "doc_type": "efo_expenditure_tables", "access": "wayback_machine_original_bytes", "wayback_snapshot": "https://web.archive.org/web/20260113025043id_/https://obr.uk/docs/dlm_uploads/Expenditure_Detailed_forecast_tables_March_2025.xlsx", "bytes": 247780} +{"url": "https://obr.uk/docs/dlm_uploads/Aggregates_Detailed_forecast_tables_November_2025.xlsx", "title": "EFO November 2025 detailed forecast tables: aggregates", "date": "2025-11", "sha256": "a165cd1cc714b3bb1d5435d637556aeee4c22002cf2196411135de20f738a7b8", "local_path": "downloads/Aggregates_Detailed_forecast_tables_November_2025.xlsx", "doc_type": "efo_aggregates_tables", "access": "wayback_machine_original_bytes", "wayback_snapshot": "https://web.archive.org/web/20260217103318id_/https://obr.uk/docs/dlm_uploads/Aggregates_Detailed_forecast_tables_November_2025.xlsx", "bytes": 221485} +{"url": "https://obr.uk/docs/d055fbf02d5b3g6jq8l2/efo-march-2026-charts-and-tables-chapter-3.xlsx", "title": "EFO March 2026 chapter 3 (fiscal outlook) charts and tables", "date": "2026-03", "sha256": "c3f923ae8f68e523f7addc0916f5f2767f3e422cc67943799cd75588dc7fc7b6", "local_path": "downloads/efo-march-2026-charts-and-tables-chapter-3.xlsx", "doc_type": "efo_charts_tables", "access": "wayback_machine_original_bytes", "wayback_snapshot": "https://web.archive.org/web/20260316163315id_/https://obr.uk/docs/d055fbf02d5b3g6jq8l2/efo-march-2026-charts-and-tables-chapter-3.xlsx", "bytes": 241933} +{"url": "https://obr.uk/docs/dlm_uploads/Historical_official_forecasts_database_Spring_2026.xlsx", "title": "Historical official forecasts database (Spring 2026)", "date": "2026-03", "sha256": "e00b17cb7ec8dfddc4bfd4d212c1e93362147fff81d74a10480e599b26e634db", "local_path": "downloads/Historical_official_forecasts_database_Spring_2026.xlsx", "doc_type": "forecasts_database", "access": "wayback_machine_original_bytes", "wayback_snapshot": "https://web.archive.org/web/20260328182841id_/https://obr.uk/docs/dlm_uploads/Historical_official_forecasts_database_Spring_2026.xlsx", "bytes": 2298283} +{"url": "https://obr.uk/docs/Historical_official_forecasts_database_March_2025.xlsx", "title": "Historical official forecasts database (March 2025)", "date": "2025-03", "sha256": "d69fa5112266c71fff0c74bffe416b7c7c0f663b44e0b87e7a82899d09ba39d5", "local_path": "downloads/Historical_official_forecasts_database_March_2025.xlsx", "doc_type": "forecasts_database", "access": "wayback_machine_original_bytes", "wayback_snapshot": "https://web.archive.org/web/20250404155002id_/https://obr.uk/docs/Historical_official_forecasts_database_March_2025.xlsx", "bytes": 2350760} +{"url": "https://obr.uk/docs/dlm_uploads/March_2025_Economic_and_fiscal_outlook_ready_reckoner.xlsx", "title": "EFO March 2025 ready reckoner (economic determinant sensitivities)", "date": "2025-03", "sha256": "a78726f6456c1084827899aca9576e53b730de392c3f5b2990eaf8219439de2c", "local_path": "downloads/March_2025_Economic_and_fiscal_outlook_ready_reckoner.xlsx", "doc_type": "ready_reckoner", "access": "wayback_machine_original_bytes", "wayback_snapshot": "https://web.archive.org/web/20250911101221id_/https://obr.uk/docs/dlm_uploads/March_2025_Economic_and_fiscal_outlook_ready_reckoner.xlsx", "bytes": 258727} +{"url": "https://obr.uk/docs/dlm_uploads/Welfare-trends-report-October-2024-charts-and-tables.xlsx", "title": "Welfare trends report October 2024 - charts and tables", "date": "2024-10", "sha256": "9ae1a378e51fc311eadd4b487246f99b6ef7631987a9d1e5cf73a0bfe454ed24", "local_path": "downloads/Welfare-trends-report-October-2024-charts-and-tables.xlsx", "doc_type": "welfare_trends_data", "access": "wayback_machine_original_bytes", "wayback_snapshot": "https://web.archive.org/web/20241108163941id_/https://obr.uk/docs/dlm_uploads/Welfare-trends-report-October-2024-charts-and-tables.xlsx", "bytes": 1083754} diff --git a/sources/harvest-uk-2026-08-02/uk_resolution_foundation/NOTES.md b/sources/harvest-uk-2026-08-02/uk_resolution_foundation/NOTES.md new file mode 100644 index 0000000..cccec65 --- /dev/null +++ b/sources/harvest-uk-2026-08-02/uk_resolution_foundation/NOTES.md @@ -0,0 +1,178 @@ +# Resolution Foundation harvest — 2026-08-02 + +Source slug: `resolution_foundation` (research institute; source_model +"resolution_foundation", never administrative fact). Underlying engine for +their distributional/projection work: **the IPPR Tax Benefit Model** run on +DWP FRS/HBAI microdata (every distributional figure sources "RF projections +including use of the IPPR Tax Benefit Model"). RF is therefore a *third* +UK microsimulation lineage alongside IFS (TAXBEN) and government (Policy +Simulation Model / IGOTM) — good triangulation value. + +## Coverage +15 artifacts manifested (all sha256'd, honest UA, robots.txt fully +permissive `Allow: /`, ~3-4s politeness delay, zero bypasses needed). +71 staged claims from 5 publications: + +| pub | date | staged | +|---|---|---| +| Living Standards Outlook 2026 | 2026-02-10 | 27 | +| The Living Standards Outlook 2025 | 2025-06-26 | 14 | +| Stairway to headroom (Autumn Budget 2025 response) | 2025-11-27 | 12 | +| Catching up? (April 2026 uprating spotlight) | 2025-10-22 | 8 | +| Happy new tax year 2026 | 2026-04-02 | 10 | + +Downloaded but not claim-mined (context/coverage): Black holes and +consolidations (pre-Budget briefing), Low Pay Britain 2025 (minimum wage +flagship), State of the nations (devolved social security), Delivering +dignity (Scotland ADP), Measuring household income (RHDI-vs-HBAI +methodology), New Year Outlook 2026, Credit where credit's due (mortgage +rules — NOT a UC report despite the title), Bye bye baby (birth rates), +Much ado about PuFins (public financial institutions), It's personal +(taxation) (PDF extracts 0 text lines via pdftotext -layout — needs OCR or +-raw retry; valid Word-produced PDF). + +## Chart-data downloads: none (site practice changed) +The task expected chart-data downloads. Current RF report pages ship **PDF +only** — no per-report chart-data xlsx/zip anywhere on the 15 pages +fetched (checked hrefs for xlsx/zip/csv/"chart data"; probed obvious +upload-path names → 404). The site-wide "Data" nav item points to just two +standing dashboards (housing-indicators; RTI-based employment estimates). +All staged values were transcribed verbatim from PDF text (pdftotext +-layout), mostly from prose + printed chart labels, so axis-only chart +series (e.g. full vigintile growth curves in LSO Figure 6, full vigintile +gain/loss bars in HNTY Figure 1 / Stairway Figure 19) could NOT be +extracted — only the labelled points and prose-stated group aggregates. + +## Conventions used in claims_staged.jsonl +- Fiscal years Apr–Mar: `period` = start year (2026-27 → 2026), + `time_basis` fiscal_year, `conditions.fy` verbatim. +- GBP values: `proposed_unit: "gbp"` (UnitConcept lacks it). value_kind + "usd" is the closed-vocab currency kind — flagged here, not renamed. +- Income concept: RF poverty and income-growth work is **equivalised + household disposable income, after housing costs (AHC)** — stamped on + every distribution row (`income_concept`, `equivalisation`). LSO 2026 + Figure 15 title says "relative poverty after housing costs" explicitly; + LSO 2025 Figure 15 note defines relative poverty as below 60% of + median in the given year. +- Geography verbatim: UK for LSO/HNTY headline rows; **GB** for the + two-child-limit impact-assessment counts (DWP IA covers GB); Scotland + rows labelled Scotland. +- `attribution` field (8 rows): values RF **cites from government** (HMT + Budget 2025 Table 4.1 costings; DWP final-stage impact assessment + 510k families/£4,560; government −450k child-poverty estimate; UC + rebalancing net cost £330m/−£210m; EV charge £1.9bn) — these are NOT + RF-model outputs; ingest should either reroute to the government source + or keep with the attribution tag. Everything without `attribution` is + RF's own modelling. +- `reform_hint` (26 rows): plain-language mapping to a PE-runnable reform + (two-child limit repeal Apr 2026; UC standard allowance CPI+2.3% + Apr 2026 (+£6/wk, phased to +4.8% vs CPI-only by 2029-30); UC health + element halved+frozen for new claims (£50/wk); IT/NICs threshold freeze + extension to Apr 2030; mansion tax; EV per-mile charge). + +## Methodology (verbatim extracts, LSO 2026 Annex 1, pp.34-37) — for the assumptions registry +- Base data: "nowcasting and forecasting the latest household income data + (DWP's Family Resources Survey and Households Below Average Income + statistics, 2023-24) to the years from 2024-25 through to 2029-30." +- Reweighting: "We reweight the population to match ONS forecasts for + demographic change by age and gender" ("reweight2" in Stata; ONS + 2022-based projections, **migration category variant**); labour force + participation from "the OBR's March 2025 outlook". +- Earnings: "all employee and self-employed earnings are uprated equally + in each year. Overall wage growth is constrained to match ONS figures + for the outturn period and OBR figures for the projection period"; + wage floor modelled each year with "some 'spillover effect' for those + just above the wage floor"; NLW extension to 21-22 in 2024-25 and + "(provisionally) to those aged 18-20 by 2029-30"; "the wage floor + beyond 2025-26 rises in line with average earnings." +- Take-up: "We model incomplete take-up of the main means-tested + benefits. For example, we assume **80 per cent take-up of Universal + Credit**... we assume a rise in **Pension Credit take-up from 65 per + cent to 70 per cent** following Winter Fuel Payment reform." +- UC rollout: "We assume that full roll-out of Universal Credit is + completed in 2026-27." +- Two-child limit: "applied to children born from April 2017, and so + affects a growing proportion of the caseload each year. It is removed + from April 2026 in line with Government policy." +- Deflator: "we create a specific deflator for 'after housing costs' + income, in line with DWP definitions" (removes housing costs from CPI); + OBR November 2025 CPI forecast is the starting point. +- Rents: ONS Price Index of Private Rents for nowcast; "Beyond September + 2025, private rents are assumed to rise in line with average earnings, + with a 12-month lag." +- **Changes-not-levels discipline**: "we apply income growth rates (and + absolute changes in poverty and inequality metrics) from our modelling + to the 2023-24 outturn data, rather than directly using the projected + levels." → RF projected *levels* inherit any error in HBAI 2023-24; + treat RF rows as changes-anchored-to-outturn when comparing. +- Not modelled: benefit sanctions; mixed-age-couple Pension Credit + transitional protection ("We instead use the new eligibility rules for + everyone, in every year"); detailed migration; tenure change; Council + Tax Support variation by LA. +- PIP: "We model receipt of Personal Independence Payment based on future + caseload projections." +- Deductions: benefit deductions modelled "consistent with the 2025 Fair + Repayment Rate reform" (15% cap on UC deductions, down from 25%). + +Stairway to headroom Box 2 (distributional-analysis scope, pp.37-39): +models "just over half (52 per cent) of the total tax changes announced +since Autumn Budget 2024 and the majority (85 per cent) of the total +welfare spending changes; we model £20 billion of the total £34 billion"; +RDEL analysis covers "70 per cent" (£47bn of £67bn); "our distribution +analysis of changes to tax and benefits and our distributional analysis of +changes to public spending cannot sensibly be combined"; Treasury's +Budget-2025 distributional analysis models 2028-29 while RF models +2029-30 — direct RF-vs-HMT comparisons must adjust for this. + +## Diagnosis seeds / errata +1. **Source typo in Catching up? (p.3)**: "cost the Government £800m in + 2026-27, rising to **£1.85 million** in 2029-30" — plainly £1.85bn. + Staged 2026-27 only, typo flagged in the row note. +2. **Cross-publication cost drift**: same UC over-indexation measure + costed £800m (Catching up?, Oct 2025) vs £810m (HNTY, Apr 2026) for + 2026-27; LSO 2026 reports the *net* rebalancing package (uplift + + health-element cut) at £330m net cost 2026-27 → −£210m saving 2029-30. + Three different scopes — do not treat as contradictions. +3. **Same-group different-vintage gains**: poorest-fifth average gain from + two-child-limit removal is **£290** (HNTY, 2026-27 impact) vs **£360** + (Stairway, 2029-30 impact in 2025-26 prices) — year and price base + differ, both staged with conditions. +4. RF flags (LSO 2025, p.31) that HBAI outturns are "expected to be + revised in March 2026 as part of a welcome stats overhaul using + administrative data", with "a likely consequence... an (even) lower + pensioner poverty rate" — vintage risk on any pre-2026 RF level. + +## UK triangulation (overlap with IFS / OBR / DWP on the same measures) +- **Child poverty projections**: RF LSO 2026 (33% → 30% relative AHC, + −420k children in 2026-27) vs **DWP's own February 2026 projections** + ("also project a fall in child poverty from 33 per cent in 2025-26 to + 30 per cent in 2026-27" — RF footnote 21) vs IFS's living-standards + projections. Three-way UK poverty triangle on identical + concept/period. +- **Two-child limit repeal**: RF (£2.4bn 2026-27 → £3.1bn 2029-30, HMT + scorecard; 510k families; £4,560 avg gain; govt −450k children) — IFS + and JRF publish rival costings/poverty impacts of the same reform; + PE-runnable as a parametric UK reform. +- **Budget 2025 decile impacts**: RF Stairway (2029-30, AHC deciles) vs + **HM Treasury's own distributional analysis** (2028-29) vs IFS + post-Budget analysis — same event, three models, documented scope + difference (52% of tax measures modelled). +- **April 2026 uprating rates** (3.8% CPI-linked / 4.8% State Pension / + 6.2% UC / 6.8% under-25 UC / 1.5% existing UC-health / 0% LHA): pure + parameter checks against policyengine-uk uprating parameters; also + OBR EFO Nov 2025 carries the same UC Act 2025 path. +- **RHDI vs HBAI**: Measuring-household-income spotlight (2026-07-31) + reconciles ONS RHDI with DWP HBAI — useful when Scorecard compares + OBR (RHDI-based) with RF/IFS (HBAI-based) income-growth rows. + +## Blockers / follow-ups +- No chart-data files exist to fetch (see above) — full decile/vigintile + series would need RF correspondence or figure digitisation. +- It's personal (taxation) PDF yields no text via pdftotext; retry with + `-raw`/OCR next pass. +- Annex 1 of LSO 2025 has per-nation child poverty projections (table not + parsed this pass — PDF table extraction needed). +- Low Pay Britain 2025 (minimum wage bite/coverage) downloaded but + unmined; State of the nations Scotland section cites Scottish + Government cumulative impact assessment (SCP −10pp/−100k children in + 2026-27) — government-model numbers, left unstaged deliberately. diff --git a/sources/harvest-uk-2026-08-02/uk_resolution_foundation/claims_staged.jsonl.gz b/sources/harvest-uk-2026-08-02/uk_resolution_foundation/claims_staged.jsonl.gz new file mode 100644 index 0000000..530dc19 Binary files /dev/null and b/sources/harvest-uk-2026-08-02/uk_resolution_foundation/claims_staged.jsonl.gz differ diff --git a/sources/harvest-uk-2026-08-02/uk_resolution_foundation/manifest.jsonl b/sources/harvest-uk-2026-08-02/uk_resolution_foundation/manifest.jsonl new file mode 100644 index 0000000..bfe6d14 --- /dev/null +++ b/sources/harvest-uk-2026-08-02/uk_resolution_foundation/manifest.jsonl @@ -0,0 +1,15 @@ +{"url": "https://www.resolutionfoundation.org/app/uploads/2026/02/LSO-2026.pdf", "title": "Living Standards Outlook 2026", "date": "2026-02-10", "sha256": "4e6db7089e6d8d53fd318708a1e98733016661546dca9c6941718b7cb0e16c5d", "local_path": "downloads/LSO-2026.pdf", "doc_type": "report", "landing_page": "https://www.resolutionfoundation.org/publications/living-standards-outlook-2026/", "retrieved": "2026-08-02", "publisher": "Resolution Foundation"} +{"url": "https://www.resolutionfoundation.org/app/uploads/2025/06/LivingStandardsOutlook2025.pdf", "title": "The Living Standards Outlook 2025", "date": "2025-06-26", "sha256": "3742252d929e1c2fe5a78bcf13ab996f95dfc7d5621c588447305441663e013f", "local_path": "downloads/LivingStandardsOutlook2025.pdf", "doc_type": "report", "landing_page": "https://www.resolutionfoundation.org/publications/the-living-standards-outlook-2025/", "retrieved": "2026-08-02", "publisher": "Resolution Foundation"} +{"url": "https://www.resolutionfoundation.org/app/uploads/2025/11/Stairway-to-headroom.pdf", "title": "Stairway to headroom: Putting the Autumn Budget 2025 decisions on tax, spending and borrowing into context", "date": "2025-11-27", "sha256": "341d885311647e48e0d76bf6df5d8513ea479cd37185b19a9ecafd9db9e0d812", "local_path": "downloads/Stairway-to-headroom.pdf", "doc_type": "briefing", "landing_page": "https://www.resolutionfoundation.org/publications/stairway-to-headroom/", "retrieved": "2026-08-02", "publisher": "Resolution Foundation"} +{"url": "https://www.resolutionfoundation.org/app/uploads/2025/11/Black-holes-and-consolidations.pdf", "title": "Black holes and consolidations", "date": "2025-11-04", "sha256": "187997881f7fc49f872ee17b7667e50a88fa224b402d49c75f4ee3c118fff184", "local_path": "downloads/Black-holes-and-consolidations.pdf", "doc_type": "briefing", "landing_page": "https://www.resolutionfoundation.org/publications/black-holes-and-consolidations/", "retrieved": "2026-08-02", "publisher": "Resolution Foundation"} +{"url": "https://www.resolutionfoundation.org/app/uploads/2025/10/Benefit-uprating-spotlight-sept-2025-final.pdf", "title": "Catching up? Benefit uprating policy for April 2026", "date": "2025-10-22", "sha256": "47922aa9a9ca6eeb8d87b5583e0a9fec6ac4e8340c1dff77e6e5aaf9c26a4c2e", "local_path": "downloads/Catching-up-benefit-uprating.pdf", "doc_type": "spotlight", "landing_page": "https://www.resolutionfoundation.org/publications/catching-up/", "retrieved": "2026-08-02", "publisher": "Resolution Foundation"} +{"url": "https://www.resolutionfoundation.org/app/uploads/2026/03/Credit-where-credits-due-2.pdf", "title": "Credit where credit's due? Unpacking the distributional impact of Britain's mortgage lending rules", "date": "2026-03-26", "sha256": "2d10296d8028b4180fa4b87ccea19e3956a926e16fd444bba609441c7c3d23f2", "local_path": "downloads/Credit-where-credits-due.pdf", "doc_type": "briefing", "landing_page": "https://www.resolutionfoundation.org/publications/credit-where-credits-due/", "retrieved": "2026-08-02", "publisher": "Resolution Foundation"} +{"url": "https://www.resolutionfoundation.org/app/uploads/2026/03/Bye-bye-baby.pdf", "title": "Bye bye baby: Assessing Britain's falling birth rate since the early 2010s", "date": "2026-04-01", "sha256": "86486f8cedc73c4b21ac227d4cea5ea63c1ab25aeb6ef013d31a388bdd447fee", "local_path": "downloads/Bye-bye-baby.pdf", "doc_type": "briefing", "landing_page": "https://www.resolutionfoundation.org/publications/bye-bye-baby/", "retrieved": "2026-08-02", "publisher": "Resolution Foundation"} +{"url": "https://www.resolutionfoundation.org/app/uploads/2025/10/Personal-tax-levels-spotlight.pdf", "title": "It's personal (taxation)", "date": "2025-10-27", "sha256": "40d67bf0466c9115045ee96d4ddcbfc21722928fa02ce1a9befe97262de86e01", "local_path": "downloads/Its-personal-taxation.pdf", "doc_type": "spotlight", "landing_page": "https://www.resolutionfoundation.org/publications/its-personal-taxation/", "retrieved": "2026-08-02", "publisher": "Resolution Foundation"} +{"url": "https://www.resolutionfoundation.org/app/uploads/2026/04/HNTY-2026.pdf", "title": "Happy new tax year 2026: Putting tax and social security changes in the context of rising energy bills", "date": "2026-04-02", "sha256": "41246352692f75ddf3d0bc4ddfb80b8ec986978f43ed12ed2906d25f1f670080", "local_path": "downloads/Happy-new-tax-year-2026.pdf", "doc_type": "spotlight", "landing_page": "https://www.resolutionfoundation.org/publications/happy-new-tax-year-2026/", "retrieved": "2026-08-02", "publisher": "Resolution Foundation"} +{"url": "https://www.resolutionfoundation.org/app/uploads/2025/07/Low-Pay-Britain-2025.pdf", "title": "Low Pay Britain 2025", "date": "2025-07-03", "sha256": "225c9037b9c9d1e5d64b6411a2e465cfcfb95e75b2fbe315d86cea6e3ea5c2eb", "local_path": "downloads/Low-Pay-Britain-2025.pdf", "doc_type": "report", "landing_page": "https://www.resolutionfoundation.org/publications/low-pay-britain-2025/", "retrieved": "2026-08-02", "publisher": "Resolution Foundation"} +{"url": "https://www.resolutionfoundation.org/app/uploads/2025/12/Delivering-dignity-2.pdf", "title": "Delivering dignity? Early lessons from the introduction of Adult Disability Payment in Scotland", "date": "2025-12-08", "sha256": "68c78d17f585b302e9016911ba9e6de988daa5b9e70d8919e5e76b618b52f30b", "local_path": "downloads/Delivering-dignity.pdf", "doc_type": "spotlight", "landing_page": "https://www.resolutionfoundation.org/publications/delivering-dignity/", "retrieved": "2026-08-02", "publisher": "Resolution Foundation"} +{"url": "https://www.resolutionfoundation.org/app/uploads/2026/07/Much-ado-about-puffins.pdf", "title": "Much ado about PuFins: How the UK's public financial institutions can unlock billions for investment", "date": "2026-07-20", "sha256": "cd9cebbef6288e2410e20dd46bd085c7399a8b46807fe1e2bf460d36857b413d", "local_path": "downloads/Much-ado-about-PuFins.pdf", "doc_type": "briefing", "landing_page": "https://www.resolutionfoundation.org/publications/much-ado-about-pufins/", "retrieved": "2026-08-02", "publisher": "Resolution Foundation"} +{"url": "https://www.resolutionfoundation.org/app/uploads/2026/07/Measuring-household-income.pdf", "title": "Measuring household income: Explaining the differences between RHDI and HBAI", "date": "2026-07-31", "sha256": "01b6a8265b19e01529695fdefadf1d641a66b39114bda370e971f2d2753616af", "local_path": "downloads/Measuring-household-income.pdf", "doc_type": "spotlight", "landing_page": "https://www.resolutionfoundation.org/publications/measuring-household-income/", "retrieved": "2026-08-02", "publisher": "Resolution Foundation"} +{"url": "https://www.resolutionfoundation.org/app/uploads/2026/05/State-of-the-nations-final.pdf", "title": "The state of the nations: Devolution and social security", "date": "2026-05-21", "sha256": "ed9437e76bc40db346c65a72ce05aff6534fbf43f65289c97cd3dc2a356e70ba", "local_path": "downloads/State-of-the-nations.pdf", "doc_type": "report", "landing_page": "https://www.resolutionfoundation.org/publications/the-state-of-the-nations/", "retrieved": "2026-08-02", "publisher": "Resolution Foundation"} +{"url": "https://www.resolutionfoundation.org/app/uploads/2026/01/NYO2026.pdf", "title": "New Year Outlook 2026", "date": "2026-01-05", "sha256": "0d56ea5890d54dbbae5cd52a0b163afdf30e921b6aab7bf5eea168d80538d7f0", "local_path": "downloads/New-Year-Outlook-2026.pdf", "doc_type": "briefing", "landing_page": "https://www.resolutionfoundation.org/publications/new-year-outlook-2026/", "retrieved": "2026-08-02", "publisher": "Resolution Foundation"} diff --git a/sources/harvest-uk-2026-08-02/uk_ukmod_jrf/NOTES.md b/sources/harvest-uk-2026-08-02/uk_ukmod_jrf/NOTES.md new file mode 100644 index 0000000..4c1d0e7 --- /dev/null +++ b/sources/harvest-uk-2026-08-02/uk_ukmod_jrf/NOTES.md @@ -0,0 +1,139 @@ +# uk_ukmod_jrf — coverage, quirks, parse confidence (2026-08-02) + +Two targets in one lane: **UKMOD** (ISER/Essex tax-benefit microsimulation, CeMPA +working papers) and **JRF** (Joseph Rowntree Foundation). 1,782 staged claims +(ukmod 1,392 / jrf 390), 5 manifested artifacts, zero bot-mitigation bypasses. + +## Robots compliance +- iser.essex.ac.uk: `User-agent: *` allow-all. ukmod.iser.essex.ac.uk: no robots.txt. +- jrf.org.uk: `Crawl-delay: 20` honored — jrf.org.uk requests spaced >20s (3 total: + robots, landing page, MIS PDF). The data workbook is served from + jrf-jrht-brand.frontify.com (their brand-asset CDN; the landing page's own + download link). Honest UA with contact email on every request. +- microsimulation.ac.uk: blocks only named commercial crawlers; not needed beyond search. + +## UKMOD side (source "ukmod") + +### CeMPA WP 8/26 — UKMOD Country Report 2023-2030 (van de Ven & Popova, Apr 2026) +UKMOD B2026.01, FRS 2023/24 input (HBAI-adjusted weights/incomes), forecasts from 2025. +Staged the full Section-4 validation block — **another microsimulation's published +self-validation, simulated and official columns side by side**: +- **Table 4.5** caseloads (thousands): 38 rows × (8 UKMOD policy years 2023-2030 + + 8 official-estimate years). Benefits → metric `caseload`; income tax/NIC payers → + proposed `taxpayer_count`. Caseload unit per table note: families except + (c) children, (h) households, (i) individuals; NIC/tax rows are people. +- **Table 4.6** expenditure/revenue (£m): 38 rows. Benefits → `benefit_cost` + (proposed_unit gbp); taxes/NIC → proposed `tax_revenue`. +- **Table 4.7** income distribution (BHC, modified-OECD, individual unit): Gini, + mean/median £/month, quintile medians and shares × {UKMOD 2023-2030, Input Data + 2023, HBAI 2023}. +- **Table 4.8** poverty rates below 50/60/70% median **BHC** (NB: UKMOD's validation + poverty is BHC; JRF headline is AHC — never cross-compare without the flag) for + all/children/over-SPA/men/women × same 10 series. +- `conditions.series` = `ukmod_simulated` | `official_estimate` | `input_data` | `hbai`. + Official-estimate cells are SECOND-HAND transcriptions of DWP/HMRC/SSS/OBR/SFC + numbers as cited by UKMOD (full citation string on each row + + `official_sources_note`); first-hand twins arrive via the dwp/hmrc/obr lanes — + dedup at ingest, and the (UKMOD-cited vs first-hand) delta is itself diagnosis + material. +- Parse method: anchor on UKMOD variable names (bch_s, tin12_s, …) in the + pdftotext -layout text; scoped label anchors for income-tax band sub-rows; + 10 hard-coded spot-check cells asserted on every run (`stage_claims.py`). +- **PDF quirks (verbatim in source):** continuation-page year headers on Tables + 4.5/4.6 print "… 2029 2029" where page 1 prints "… 2029 2030" — columns mapped + positionally per the page-1 header. Table 4.6's source line is garbled + ("Source: UKMOD and , and Scottish Government statistics…"). WFA 2024 collapse + (12,057k → 1,583k simulated; 11,626k → 1,268k official) is the real + winter-fuel-payment restriction, not a parse error. +- Report's own health warnings (§4.3, worth quoting at diagnosis time): take-up + probabilities other than Scotland/pension-age **not updated since 2021**; IS + over-simulated / ESA under-simulated (limited-capability-for-work imputation); + child poverty understates HBAI (take-up assumptions); tax credits understate + admin data (prior-year income + finalised awards); UKMOD policy year = Apr-Mar + fiscal year (report §2, "financial year … April to March") → period = start + year, conditions.fy = "YYYY/YY". +- NOT staged (available in the PDF for a second pass): Annex 6.6 FRS-only twins + of all four tables (Tables 6.10-6.15) — useful for input-data-sensitivity + diagnosis; Table 4.2 earnings by subgroup; COVID-era shock tables. + +### CeMPA WP 3/26 — Autumn Budget policy assessment (Frimpong, Feb 2026) +UKMOD static scoring of the Autumn Budget package (income tax threshold freezes, +UC two-child limit removal, WFA restrictions, Pension Credit reductions); +reform_hint verbatim on every row. Staged: Table 1 (UK fiscal overview 2026-2030: +revenue/expenditure levels baseline+reform, revenue_change, expenditure_change, +net_fiscal_impact), Table 1.2 (by nation + per-capita), Table 2 (fixed-line AHC +poverty counts baseline/reform/change by group, 2026+2030), Table 2.1 (poverty +count change by nation, all years), Table 2.4 (child poverty rate baseline→reform +by nation + count change), Tables 3a/3b (Gini + S80/S20, AHC and BHC, +baseline/reform/change). Every transcribed raw string machine-verified to appear +in the extracted text. NOT staged: Tables 4/4.1 (income shares by decile), +5/5.1 (mean income by decile), gainers/losers §8 — in the PDF, second pass. +- **Title-year quirk:** WP title says "Autumn Budget Statement 2026", inner cover + says "…2025". Measures match the Nov-2025 Autumn Budget (two-child limit + removal etc.) analyzed over 2026-2030. Kept the WP title verbatim in + publication; flagged here. +- Baseline is UKMOD's pre-Budget system; `conditions.scenario` = + baseline | reform | reform_minus_baseline. No executable reform dict staged — + ingest should build the PE-UK parametric reform from the hint. + +## JRF side (source "jrf") + +### UK Poverty 2026 data workbook (published 2026-01-27) +81-sheet xlsx behind the landing page's download button — fully machine-readable, +many series **unrounded** (e.g. OG1 poverty rates to 15 decimals). Underlying data +per sheet's own Source row — mostly **HBAI 2023/24 (DWP)**; DDT1 is Understanding +Society. JRF headline measure = relative poverty, **below 60% median AHC** +(deep = 50%, very deep = 40%; persistent = AHC relative poverty in 3+ of last 4 +years — definitions sheet A1T2). +Staged: OT1 (headline counts+rates, 12 groups, 2023/24), GT1 (14 nations/regions, +3-year average 2021-2024 per table title), DDT1 (persistent poverty + persistent +very deep poverty, 17 groups, 2022-23), OG1 (headline AHC rate time series +1994/95-2023/24 × 5 groups, 150 obs, unrounded; UK from 2002/03, GB before), +FAST2 (child poverty by family size/parents/age, 13 subgroups), A1T1 (poverty/ +deep/very-deep thresholds + median by 5 family types, weekly unrounded + annual +rounded; income concept not stated on-sheet — flagged in conditions). +- Rate cells mix fractions (0.21) and percents (21) across sheets — deterministic + rule value>1 ⇒ /100, normalization recorded per row. +- `calibration_relationship` left `held_out` BUT: these are HBAI-derived numbers. + Whether policyengine-uk consumes HBAI poverty stats as calibration targets was + NOT verified this session — audit against policyengine-uk calibration configs + at ingest before any "held-out validation" claim. +- NOT staged (clean, high-value second pass): EXG2/DDG1 poverty-depth composition + time series; GM2 child poverty by Westminster constituency (local-area + validation surface); SSG2/SST1 poverty by benefit receipt; HOT1/HOG1 by tenure; + WG1-4 work status; EG1-3 ethnicity; A3G1 median income BHC/AHC series. + +### Minimum Income Standard 2025 (JRF / CRSP Loughborough) +Table 2 weekly budgets, April 2025, 4 household types × 16 components + 6 totals +(incl. AHC-comparable and BHC-comparable totals) = 88 cells, all verified against +extracted text. proposed_metric `minimum_income_standard_budget`. MIS is a +consensus budget standard, NOT HBAI-derived — noted in publication.vintage. +- **Erratum seed:** 2024 MIS working-age couple budgets omitted one mobile phone + (~£3/wk); corrected in 2025 (report note). Any 2024-vintage MIS comparison + should expect this. + +## Schema / ingest worklist for this lane +- proposed_unit **gbp** (+ gbp_per_week/_year/_month/_person) everywhere monetary — + UnitConcept has USD only. value_kind used: count | share | **currency_gbp** + (extension needed). +- proposed_metric recurring: tax_revenue, taxpayer_count, poverty_count, + government_revenue/expenditure, expenditure_change, net_fiscal_impact(_per_capita), + gini_coefficient(_change), s80_s20_ratio(_change), income_share, + mean/median_equivalised_disposable_income, median_income, poverty_threshold, + persistent_poverty_rate, minimum_income_standard_budget. +- Load-bearing conditions on every distribution row: income_concept (BHC for + UKMOD validation; AHC for JRF headline + CeMPA fixed-poverty; both in 3a/3b), + equivalisation, series, scenario, fy (Apr-Mar). +- Period: UK fiscal year start-year int + conditions.fy label; GT1 carries a + 3-year window condition; DDT1 a 4-wave window. + +## Blockers / follow-ups +- None hard. ISER fully open (no Cloudflare); JRF fine at 20s spacing; frontify + CDN unrestricted. +- ukmod.iser.essex.ac.uk itself (the model's own site) not needed for tables this + round — country report carries the validation block. If a "UKMOD statistics + release" page exists separately, it wasn't needed; CeMPA WP index at + iser.essex.ac.uk is the canonical feed (cempa2-25 = prior-year country report + 2022-2029, available for vintage-drift analysis). +- Second-pass queue above (annex FRS twins; deciles/gainers tables; ~10 more JRF + sheets incl. constituency map data). diff --git a/sources/harvest-uk-2026-08-02/uk_ukmod_jrf/claims_staged.jsonl.gz b/sources/harvest-uk-2026-08-02/uk_ukmod_jrf/claims_staged.jsonl.gz new file mode 100644 index 0000000..027f55a Binary files /dev/null and b/sources/harvest-uk-2026-08-02/uk_ukmod_jrf/claims_staged.jsonl.gz differ diff --git a/sources/harvest-uk-2026-08-02/uk_ukmod_jrf/manifest.jsonl b/sources/harvest-uk-2026-08-02/uk_ukmod_jrf/manifest.jsonl new file mode 100644 index 0000000..65954b9 --- /dev/null +++ b/sources/harvest-uk-2026-08-02/uk_ukmod_jrf/manifest.jsonl @@ -0,0 +1,5 @@ +{"url": "https://www.iser.essex.ac.uk/wp-content/uploads/files/working-papers/cempa/cempa8-26.pdf", "title": "UKMOD Country Report 2023-2030 (CeMPA WP 8/26, van de Ven & Popova)", "date": "2026-04", "sha256": "82ba4ef13b7a4cfc18136231fb8e908a8e60e0b23d8e6a917fda422051d05a42", "local_path": "downloads/cempa8-26-UKMOD-country-report-2023-2030.pdf", "doc_type": "pdf", "size_bytes": 2026848, "fetched": "2026-08-02", "fetch_mode": "live", "source": "ukmod", "publisher": "CeMPA / ISER, University of Essex"} +{"url": "https://www.iser.essex.ac.uk/wp-content/uploads/files/working-papers/cempa/cempa3-26.pdf", "title": "Policy Impact Assessment: Autumn Budget Statement 2026. UK-Wide Distributional Analysis 2026-2030 (CeMPA WP 3/26, Frimpong)", "date": "2026-02", "sha256": "7c3f48bda8f213f933b153482c50be58c5e0d8a86b49257359876c64dec6097a", "local_path": "downloads/cempa3-26-autumn-budget-2026-assessment.pdf", "doc_type": "pdf", "size_bytes": 1247968, "fetched": "2026-08-02", "fetch_mode": "live", "source": "ukmod", "publisher": "CeMPA / ISER, University of Essex"} +{"url": "https://jrf-jrht-brand.frontify.com/api/asset/eyJjbGllbnRJZCI6ImNsaWVudC1tenFieWtsc2Z0ZHpoN3V3IiwiaWQiOjI0NDUyLCJ0aW1lc3RhbXAiOjE3ODE4NTc5MTIsInZlcnNpb24iOjE3Njg5MjU5NDV9:joseph-rowntree-foundation:lCOFPB72sNUxVL9cJueQm6qxfegel_BrtdF3Y3Ku-iM/download", "title": "UK Poverty 2026 data tables workbook (81 sheets; linked from report page as its download asset)", "date": "2026-01-27", "sha256": "3c694c572264db1c36cb7f1e398d8f7e00ae0095fa8a9ae72e34b43a43140e09", "local_path": "downloads/jrf-uk-poverty-2026-download.xlsx", "doc_type": "xlsx", "size_bytes": 4891183, "fetched": "2026-08-02", "fetch_mode": "live", "source": "jrf", "publisher": "Joseph Rowntree Foundation"} +{"url": "https://www.jrf.org.uk/uk-poverty-2026-the-essential-guide-to-understanding-poverty-in-the-uk", "title": "UK Poverty 2026: The essential guide to understanding poverty in the UK (landing page)", "date": "2026-01-27", "sha256": "48abe893f666b224cabc572d243293dc0057d4c02165eb6c5fe794dab49b822e", "local_path": "pages/jrf-uk-poverty-2026.html", "doc_type": "html", "size_bytes": 116403, "fetched": "2026-08-02", "fetch_mode": "live", "source": "jrf", "publisher": "Joseph Rowntree Foundation"} +{"url": "https://www.jrf.org.uk/sites/default/files/pdfs/a-minimum-income-standard-for-the-united-kingdom-in-2025-291bb2358c87345923b9bb56d12124a9.pdf", "title": "A Minimum Income Standard for the United Kingdom in 2025", "date": "2025", "sha256": "1097b57784364a1710109cb620c43b8cde025e296295c87c6093bd0c22a6613d", "local_path": "downloads/jrf-minimum-income-standard-uk-2025.pdf", "doc_type": "pdf", "size_bytes": 786301, "fetched": "2026-08-02", "fetch_mode": "live", "source": "jrf", "publisher": "Joseph Rowntree Foundation / CRSP Loughborough"}