Skip to content

Commit caa99e4

Browse files
vahid-ahmadiclaude
andcommitted
Add disability basic income reform option (#866)
Introduces `gov.contrib.disability_basic_income.amount` (£/week, default 0) and a new `disability_basic_income` Person variable that pays the configured amount to anyone receiving DLA, PIP, or the UC LCWRA element. Multiple eligibilities do not stack — the payment is per qualifying person, not per qualifying programme. Wires the new variable into `household_benefits`, `gov_spending`, and `pre_budget_change_household_benefits` so it shows up in fiscal aggregates and reform displays. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent be8ca93 commit caa99e4

7 files changed

Lines changed: 90 additions & 0 deletions

File tree

changelog.d/866.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
- Add `disability_basic_income` contrib reform: a flat per-week payment to anyone receiving DLA, PIP, or the Universal Credit limited capability for work-related activity element, controlled by `gov.contrib.disability_basic_income.amount` (default 0).
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
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.
2+
values:
3+
2000-01-01: 0
4+
metadata:
5+
period: week
6+
unit: currency-GBP
7+
label: Disability basic income amount
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
- name: Disability basic income — disabled by default
2+
period: 2025
3+
input:
4+
dla_sc: 1_000
5+
output:
6+
disability_basic_income: 0
7+
8+
- name: Disability basic income — DLA recipient
9+
period: 2025
10+
absolute_error_margin: 0.01
11+
input:
12+
gov.contrib.disability_basic_income.amount: 100
13+
dla_sc: 1_000
14+
output:
15+
disability_basic_income: 5_200
16+
17+
- name: Disability basic income — PIP daily living recipient
18+
period: 2025
19+
absolute_error_margin: 0.01
20+
input:
21+
gov.contrib.disability_basic_income.amount: 100
22+
pip_dl_category: STANDARD
23+
output:
24+
disability_basic_income: 5_200
25+
26+
- name: Disability basic income — PIP mobility recipient
27+
period: 2025
28+
absolute_error_margin: 0.01
29+
input:
30+
gov.contrib.disability_basic_income.amount: 100
31+
pip_m_category: ENHANCED
32+
output:
33+
disability_basic_income: 5_200
34+
35+
- name: Disability basic income — UC LCWRA recipient
36+
period: 2025
37+
absolute_error_margin: 0.01
38+
input:
39+
gov.contrib.disability_basic_income.amount: 100
40+
is_disabled_for_benefits: true
41+
output:
42+
disability_basic_income: 5_200
43+
44+
- name: Disability basic income — non-recipient gets nothing
45+
period: 2025
46+
input:
47+
gov.contrib.disability_basic_income.amount: 100
48+
age: 30
49+
output:
50+
disability_basic_income: 0
51+
52+
- name: Disability basic income — multiple eligibilities do not stack
53+
period: 2025
54+
absolute_error_margin: 0.01
55+
input:
56+
gov.contrib.disability_basic_income.amount: 100
57+
dla_sc: 1_000
58+
pip_dl_category: STANDARD
59+
is_disabled_for_benefits: true
60+
output:
61+
disability_basic_income: 5_200
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
from policyengine_uk.model_api import *
2+
3+
4+
class disability_basic_income(Variable):
5+
label = "Disability basic income"
6+
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."
7+
entity = Person
8+
definition_period = YEAR
9+
value_type = float
10+
unit = GBP
11+
12+
def formula(person, period, parameters):
13+
amount = parameters(period).gov.contrib.disability_basic_income.amount
14+
receives_dla = person("dla", period) > 0
15+
receives_pip = person("pip", period) > 0
16+
receives_lcwra = person("uc_limited_capability_for_WRA", period)
17+
eligible = receives_dla | receives_pip | receives_lcwra
18+
return eligible * amount * WEEKS_IN_YEAR

policyengine_uk/variables/contrib/policyengine/pre_budget_change_household_benefits.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ class pre_budget_change_household_benefits(Variable):
3939
"cost_of_living_support_payment",
4040
"energy_bills_rebate",
4141
"carer_support_payment",
42+
"disability_basic_income",
4243
]
4344

4445
def formula(household, period, parameters):

policyengine_uk/variables/gov/gov_spending.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,4 +56,5 @@ class gov_spending(Variable):
5656
"dft_subsidy_spending",
5757
"nhs_spending",
5858
"carer_support_payment",
59+
"disability_basic_income",
5960
]

policyengine_uk/variables/household/income/household_benefits.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ class household_benefits(Variable):
5858
"two_child_limit_payment",
5959
"scottish_child_payment",
6060
"carer_support_payment",
61+
"disability_basic_income",
6162
]
6263

6364
def formula(household, period, parameters):

0 commit comments

Comments
 (0)