diff --git a/changelog.d/866.md b/changelog.d/866.md new file mode 100644 index 000000000..92256fac4 --- /dev/null +++ b/changelog.d/866.md @@ -0,0 +1 @@ +Add a disability basic income reform option. diff --git a/policyengine_uk/parameters/gov/contrib/disability_basic_income/amount.yaml b/policyengine_uk/parameters/gov/contrib/disability_basic_income/amount.yaml new file mode 100644 index 000000000..dd7816292 --- /dev/null +++ b/policyengine_uk/parameters/gov/contrib/disability_basic_income/amount.yaml @@ -0,0 +1,7 @@ +description: Weekly basic income paid to each person who receives the Disability Living Allowance, Personal Independence Payment, or the Universal Credit limited capability for work-related activity element. Set to 0 to disable. +values: + 2000-01-01: 0 +metadata: + period: week + unit: currency-GBP + label: Disability basic income amount diff --git a/policyengine_uk/tests/policy/baseline/contrib/disability_basic_income/disability_basic_income.yaml b/policyengine_uk/tests/policy/baseline/contrib/disability_basic_income/disability_basic_income.yaml new file mode 100644 index 000000000..4592e250b --- /dev/null +++ b/policyengine_uk/tests/policy/baseline/contrib/disability_basic_income/disability_basic_income.yaml @@ -0,0 +1,72 @@ +- name: Disability basic income disabled by default + period: 2025 + input: + dla_sc: 1_000 + output: + disability_basic_income: 0 + +- name: Disability basic income for DLA recipient + period: 2025 + absolute_error_margin: 0.01 + input: + gov.contrib.disability_basic_income.amount: 100 + dla_sc: 1_000 + output: + disability_basic_income: 5_200 + +- name: Disability basic income for PIP daily living recipient + period: 2025 + absolute_error_margin: 0.01 + input: + gov.contrib.disability_basic_income.amount: 100 + pip_dl_category: STANDARD + output: + disability_basic_income: 5_200 + +- name: Disability basic income for PIP mobility recipient + period: 2025 + absolute_error_margin: 0.01 + input: + gov.contrib.disability_basic_income.amount: 100 + pip_m_category: ENHANCED + output: + disability_basic_income: 5_200 + +- name: Disability basic income for UC LCWRA recipient + period: 2025 + absolute_error_margin: 0.01 + input: + gov.contrib.disability_basic_income.amount: 100 + age: 30 + is_disabled_for_benefits: true + output: + disability_basic_income: 5_200 + +- name: Disability basic income excludes LCWRA flag without UC receipt + period: 2025 + input: + gov.contrib.disability_basic_income.amount: 100 + age: 30 + is_disabled_for_benefits: true + would_claim_uc: false + output: + disability_basic_income: 0 + +- name: Disability basic income non-recipient gets nothing + period: 2025 + input: + gov.contrib.disability_basic_income.amount: 100 + age: 30 + output: + disability_basic_income: 0 + +- name: Disability basic income multiple eligibilities do not stack + period: 2025 + absolute_error_margin: 0.01 + input: + gov.contrib.disability_basic_income.amount: 100 + dla_sc: 1_000 + pip_dl_category: STANDARD + is_disabled_for_benefits: true + output: + disability_basic_income: 5_200 diff --git a/policyengine_uk/variables/contrib/disability_basic_income/disability_basic_income.py b/policyengine_uk/variables/contrib/disability_basic_income/disability_basic_income.py new file mode 100644 index 000000000..10e7aaeed --- /dev/null +++ b/policyengine_uk/variables/contrib/disability_basic_income/disability_basic_income.py @@ -0,0 +1,20 @@ +from policyengine_uk.model_api import * + + +class disability_basic_income(Variable): + label = "Disability basic income" + documentation = "Flat per-week basic income paid to anyone receiving the Disability Living Allowance, Personal Independence Payment, or the Universal Credit limited capability for work-related activity element." + entity = Person + definition_period = YEAR + value_type = float + unit = GBP + + def formula(person, period, parameters): + amount = parameters(period).gov.contrib.disability_basic_income.amount + receives_dla = person("dla", period) > 0 + receives_pip = person("pip", period) > 0 + receives_uc_lcwra = person("uc_limited_capability_for_WRA", period) & ( + person.benunit("universal_credit", period) > 0 + ) + eligible = receives_dla | receives_pip | receives_uc_lcwra + return eligible * amount * WEEKS_IN_YEAR diff --git a/policyengine_uk/variables/contrib/policyengine/pre_budget_change_household_benefits.py b/policyengine_uk/variables/contrib/policyengine/pre_budget_change_household_benefits.py index 479288d0e..10db0ea03 100644 --- a/policyengine_uk/variables/contrib/policyengine/pre_budget_change_household_benefits.py +++ b/policyengine_uk/variables/contrib/policyengine/pre_budget_change_household_benefits.py @@ -33,6 +33,7 @@ "cost_of_living_support_payment", "energy_bills_rebate", "carer_support_payment", + "disability_basic_income", ] diff --git a/policyengine_uk/variables/gov/gov_spending.py b/policyengine_uk/variables/gov/gov_spending.py index 0f860a92e..de9382723 100644 --- a/policyengine_uk/variables/gov/gov_spending.py +++ b/policyengine_uk/variables/gov/gov_spending.py @@ -50,6 +50,7 @@ "dft_subsidy_spending", "nhs_spending", "carer_support_payment", + "disability_basic_income", ] diff --git a/policyengine_uk/variables/household/income/household_benefits.py b/policyengine_uk/variables/household/income/household_benefits.py index 8e2f9f802..77f35aaa7 100644 --- a/policyengine_uk/variables/household/income/household_benefits.py +++ b/policyengine_uk/variables/household/income/household_benefits.py @@ -52,6 +52,7 @@ "two_child_limit_payment", "scottish_child_payment", "carer_support_payment", + "disability_basic_income", ]