Skip to content

Commit 1d53465

Browse files
MaxGhenisclaude
andauthored
Zero out Income Support and income-based JSA after managed migration (#1631)
Income Support and income-based Jobseeker's Allowance were abolished on 31 March 2026 (last payments) following DWP's completion of managed migration to Universal Credit. New `gov.dwp.income_support.active` and `gov.dwp.JSA.income.active` bool parameters flip to false from 2026-04-01; the formulas now return zero when inactive. Contribution-based JSA is a separate scheme and remains active. Mirrors the Tax Credits phase-out template (#1619). Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent e04715f commit 1d53465

8 files changed

Lines changed: 162 additions & 6 deletions

File tree

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Zero out Income Support and income-based Jobseeker's Allowance after DWP managed migration completed on 31 March 2026. New parameters `gov.dwp.income_support.active` and `gov.dwp.JSA.income.active` flip to `false` from 2026-04-01, matching the Tax Credits treatment. Contribution-based JSA remains active.
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
description: Whether income-based Jobseeker's Allowance is actively paying awards. Income-based JSA closed to new claims with Universal Credit's rollout, and the remaining legacy caseload was migrated to UC under DWP's managed-migration programme; last payments were made on 31 March 2026. Contribution-based JSA is a separate scheme and remains active.
2+
values:
3+
1996-10-07: true
4+
2026-04-01: false
5+
metadata:
6+
label: Income-based JSA scheme active
7+
unit: bool
8+
reference:
9+
- title: "House of Commons Library: Completing Universal Credit rollout (CBP-9984)"
10+
href: https://commonslibrary.parliament.uk/research-briefings/cbp-9984/
11+
- title: "DWP: Successful DWP campaign leads to closure of historical benefits"
12+
href: https://www.gov.uk/government/news/successful-dwp-campaign-leads-to-closure-of-historical-benefits
13+
- title: "Jobseekers Act 1995"
14+
href: https://www.legislation.gov.uk/ukpga/1995/18/contents
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
description: Whether Income Support is actively paying awards. Income Support closed to new claims with Universal Credit's rollout, and the remaining legacy caseload was migrated to UC (or to Pension Credit for over-State-Pension-age claimants) under DWP's managed-migration programme; last payments were made on 31 March 2026.
2+
values:
3+
1988-04-11: true
4+
2026-04-01: false
5+
metadata:
6+
label: Income Support scheme active
7+
unit: bool
8+
reference:
9+
- title: "House of Commons Library: Completing Universal Credit rollout (CBP-9984)"
10+
href: https://commonslibrary.parliament.uk/research-briefings/cbp-9984/
11+
- title: "DWP: Successful DWP campaign leads to closure of historical benefits"
12+
href: https://www.gov.uk/government/news/successful-dwp-campaign-leads-to-closure-of-historical-benefits
13+
- title: "DWP: Move to Universal Credit — insight on Income Support and Housing Benefit"
14+
href: https://www.gov.uk/government/publications/move-to-universal-credit-insight-on-income-support-and-housing-benefit-and-initial-esa-cohort-activity/move-to-universal-credit-insight-on-income-support-and-housing-benefit-and-initial-esa-cohort-activity
15+
- title: "Social Security Contributions and Benefits Act 1992, Part VII (Income Support)"
16+
href: https://www.legislation.gov.uk/ukpga/1992/4/part/VII

policyengine_uk/tests/policy/baseline/finance/benefit/family/esa_income/esa_income_capital.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@
168168
esa_income_assessable_capital: [18_000, 18_000]
169169

170170
- name: Income-related ESA capital screening can activate the existing Income Support path
171-
period: 2026
171+
period: 2025
172172
absolute_error_margin: 1
173173
input:
174174
people:
@@ -190,4 +190,4 @@
190190
output:
191191
esa_income: 0
192192
income_support_eligible: true
193-
income_support: 5_430.5776
193+
income_support: 5_252.0073
Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
- name: Income Support still paid in 2025 (scheme active until 31 March 2026)
2+
period: 2025
3+
absolute_error_margin: 5
4+
input:
5+
people:
6+
p1:
7+
age: 26
8+
income_support_reported: 3000
9+
c1:
10+
age: 4
11+
is_child: true
12+
benunits:
13+
b1:
14+
members: [p1, c1]
15+
would_claim_IS: true
16+
households:
17+
household:
18+
members: [p1, c1]
19+
savings: 1000
20+
output:
21+
income_support: 5252.0073
22+
23+
- name: Income Support is zero after scheme ended on 31 March 2026
24+
period: 2026
25+
absolute_error_margin: 0
26+
input:
27+
people:
28+
p1:
29+
age: 26
30+
income_support_reported: 3000
31+
c1:
32+
age: 4
33+
is_child: true
34+
benunits:
35+
b1:
36+
members: [p1, c1]
37+
would_claim_IS: true
38+
households:
39+
household:
40+
members: [p1, c1]
41+
savings: 1000
42+
output:
43+
income_support: 0
44+
45+
- name: Income Support remains zero in future years
46+
period: 2030
47+
absolute_error_margin: 0
48+
input:
49+
people:
50+
p1:
51+
age: 26
52+
income_support_reported: 3000
53+
c1:
54+
age: 4
55+
is_child: true
56+
benunits:
57+
b1:
58+
members: [p1, c1]
59+
would_claim_IS: true
60+
households:
61+
household:
62+
members: [p1, c1]
63+
savings: 1000
64+
output:
65+
income_support: 0
66+
67+
- name: Income-based JSA still paid in 2025 (scheme active until 31 March 2026)
68+
period: 2025
69+
absolute_error_margin: 5
70+
input:
71+
people:
72+
p1:
73+
age: 26
74+
jsa_income_reported: 3000
75+
benunits:
76+
b1:
77+
members: [p1]
78+
households:
79+
household:
80+
members: [p1]
81+
savings: 1000
82+
output:
83+
jsa_income: 3000
84+
85+
- name: Income-based JSA is zero after scheme ended on 31 March 2026
86+
period: 2026
87+
absolute_error_margin: 0
88+
input:
89+
people:
90+
p1:
91+
age: 26
92+
jsa_income_reported: 3000
93+
benunits:
94+
b1:
95+
members: [p1]
96+
households:
97+
household:
98+
members: [p1]
99+
savings: 1000
100+
output:
101+
jsa_income: 0
102+
103+
- name: Contribution-based JSA remains active after income-based JSA ends
104+
period: 2026
105+
absolute_error_margin: 0
106+
input:
107+
people:
108+
p1:
109+
age: 26
110+
jsa_contrib_reported: 2500
111+
benunits:
112+
b1:
113+
members: [p1]
114+
households:
115+
household:
116+
members: [p1]
117+
output:
118+
jsa_contrib: 2500
119+
jsa_income: 0

policyengine_uk/tests/policy/baseline/finance/benefit/family/jsa_income/jsa_income_capital.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
jsa_income_assessable_capital: 10_500
2323

2424
- name: Income-based JSA has no tariff income at the lower capital threshold
25-
period: 2026
25+
period: 2025
2626
absolute_error_margin: 0
2727
input:
2828
people:
@@ -41,7 +41,7 @@
4141
jsa_income: 1_000
4242

4343
- name: Income-based JSA tariff income rounds incomplete capital steps up
44-
period: 2026
44+
period: 2025
4545
absolute_error_margin: 0
4646
input:
4747
people:
@@ -60,7 +60,7 @@
6060
jsa_income: 948
6161

6262
- name: Income-based JSA remains eligible at the upper capital limit
63-
period: 2026
63+
period: 2025
6464
absolute_error_margin: 0
6565
input:
6666
people:

policyengine_uk/variables/gov/dwp/income_support.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,8 @@ class income_support(Variable):
88
definition_period = YEAR
99
unit = GBP
1010
defined_for = "would_claim_IS"
11-
adds = ["income_support_entitlement"]
11+
12+
def formula(benunit, period, parameters):
13+
if not parameters(period).gov.dwp.income_support.active:
14+
return benunit.empty_array()
15+
return benunit("income_support_entitlement", period)

policyengine_uk/variables/gov/dwp/jsa_income.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ class jsa_income(Variable):
1313
unit = GBP
1414

1515
def formula(benunit, period, parameters):
16+
if not parameters(period).gov.dwp.JSA.income.active:
17+
return benunit.empty_array()
1618
reported_award = add(benunit, period, ["jsa_income_reported"])
1719
tariff_income = benunit("jsa_income_tariff_income", period)
1820
eligible = benunit("jsa_income_eligible", period)

0 commit comments

Comments
 (0)