Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog.d/2370.fixed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- Count statutory sick, maternity and paternity pay in the legacy Income Support means test.
20 changes: 20 additions & 0 deletions policyengine_uk/parameters/gov/dwp/income_support/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,21 @@
# Income Support

The means test includes the claimant's and partner's gross statutory sick,
maternity and paternity pay through the separate `statutory_sick_pay`,
`statutory_maternity_pay` and `statutory_paternity_pay` inputs. These payments
count as other income: [regulation 35(2)(b)](https://www.legislation.gov.uk/uksi/1987/1967/regulation/35)
excludes employer illness and statutory leave pay from earnings, while
[regulation 40(4)(a)](https://www.legislation.gov.uk/uksi/1987/1967/regulation/40)
includes it in income other than earnings. [Schedule 9, paragraphs 1 and 4](https://www.legislation.gov.uk/uksi/1987/1967/schedule/9)
provides for deductions for relevant income tax, primary Class 1 National
Insurance and half of qualifying pension contributions.

The model currently deducts annual income tax, National Insurance and pension
contributions without attributing them to particular payments. It also applies
one claimant-type earnings disregard to combined income. As a result, a case
with statutory pay but unused earnings disregard can have understated assessable
income. Including gross statutory pay does not resolve these existing deduction
and disregard limitations.

The activation parameter turns off on 1 April 2026. The full-year 2027 award is
zero.
Original file line number Diff line number Diff line change
@@ -0,0 +1,343 @@
# IS Regs 1987 reg 35(2)(b) excludes sickness and parental-leave remuneration
# from earnings; reg 40(4)(a) counts it as other income. Schedule 9 paras 1
# and 4 permit tax, primary Class 1 NI and half of pension contributions.
# https://www.legislation.gov.uk/uksi/1987/1967/regulation/40
# https://www.legislation.gov.uk/uksi/1987/1967/schedule/9/paragraph/4
#
# Ordinary earnings independently consume the Schedule 8 disregard in these
# targeted cases: £20 x 52 = £1,040 for lone parents, £10 x 52 = £520 for a
# couple. Statutory pay then counts in full. The existing model applies its
# disregard to all income; statutory-only cases with unused earnings disregard
# require a separate correction and are not asserted here as current law.
# The 2025/26 lone-parent allowance is £92.05 x 52 = £4,786.60 (DWP rates).
# https://www.legislation.gov.uk/uksi/1987/1967/schedule/8/paragraph/5
# https://www.legislation.gov.uk/uksi/1987/1967/schedule/8/paragraph/6
# https://www.gov.uk/government/publications/benefit-and-pension-rates-2025-to-2026/benefit-and-pension-rates-2025-to-2026

- name: Case 1, a claimant's statutory sick pay reduces a lone-parent award.
period: 2025
absolute_error_margin: 0.01
input:
people:
person1:
age: 30
is_parent: true
is_claimant_or_partner: true
income_support_reported: 1_000
hours_worked: 0
employment_income: 1_040
statutory_sick_pay: 1_000
social_security_income: 0
person2:
age: 3
is_claimant_or_partner: false
benunits:
benunit:
members: [person1, person2]
would_claim_IS: true
would_claim_uc: false
income_support_assessable_capital: 0
households:
household:
members: [person1, person2]
output:
# £1,040 earnings - £1,040 earnings disregard + £1,000 SSP = £1,000.
employment_income: [1_040, 0]
statutory_sick_pay: [1_000, 0]
income_tax: [0, 0]
national_insurance: [0, 0]
income_support_tariff_income: 0
income_support_applicable_amount: 4_786.60
income_support_applicable_income: 1_000
income_support_entitlement: 3_786.60
income_support: 3_786.60

- name: Case 2, a claimant's statutory maternity pay reduces a lone-parent award.
period: 2025
absolute_error_margin: 0.01
input:
people:
person1:
age: 30
is_parent: true
is_claimant_or_partner: true
income_support_reported: 1_000
hours_worked: 0
employment_income: 1_040
statutory_maternity_pay: 2_000
social_security_income: 0
person2:
age: 3
is_claimant_or_partner: false
benunits:
benunit:
members: [person1, person2]
would_claim_IS: true
would_claim_uc: false
income_support_assessable_capital: 0
households:
household:
members: [person1, person2]
output:
# £4,786.60 - £2,000 SMP = £2,786.60.
income_support_applicable_income: 2_000
income_support_entitlement: 2_786.60
income_support: 2_786.60

- name: Case 3, a claimant's statutory paternity pay reduces a lone-parent award.
period: 2025
absolute_error_margin: 0.01
input:
people:
person1:
age: 30
is_parent: true
is_claimant_or_partner: true
income_support_reported: 1_000
hours_worked: 0
employment_income: 1_040
statutory_paternity_pay: 300
social_security_income: 0
person2:
age: 3
is_claimant_or_partner: false
benunits:
benunit:
members: [person1, person2]
would_claim_IS: true
would_claim_uc: false
income_support_assessable_capital: 0
households:
household:
members: [person1, person2]
output:
# £4,786.60 - £300 SPP = £4,486.60.
income_support_applicable_income: 300
income_support_entitlement: 4_486.60
income_support: 4_486.60

- name: Case 4, the partner's statutory sick pay counts in the couple's income.
period: 2025
absolute_error_margin: 0.01
input:
people:
person1:
age: 30
is_claimant_or_partner: true
employment_income: 520
social_security_income: 0
person2:
age: 32
is_claimant_or_partner: true
statutory_sick_pay: 1_000
social_security_income: 0
benunits:
benunit:
members: [person1, person2]
income_support_assessable_capital: 0
households:
household:
members: [person1, person2]
output:
# Reg 23(1): £520 ordinary earnings - £520 disregard + £1,000 SSP.
income_support_applicable_income: 1_000

- name: Case 5, statutory payments add across the claimant and partner.
period: 2025
absolute_error_margin: 0.01
input:
people:
person1:
age: 30
is_claimant_or_partner: true
employment_income: 520
statutory_sick_pay: 500
statutory_paternity_pay: 300
social_security_income: 0
person2:
age: 32
is_claimant_or_partner: true
statutory_maternity_pay: 700
social_security_income: 0
benunits:
benunit:
members: [person1, person2]
income_support_assessable_capital: 0
households:
household:
members: [person1, person2]
output:
# £520 - £520 + £500 SSP + £300 SPP + £700 SMP = £1,500.
income_support_applicable_income: 1_500

- name: Case 6, another adult's statutory pay does not reduce the claimant's award.
period: 2025
absolute_error_margin: 0.01
input:
people:
person1:
age: 30
is_parent: true
is_claimant_or_partner: true
income_support_reported: 1_000
hours_worked: 0
employment_income: 1_040
statutory_sick_pay: 1_000
social_security_income: 0
person2:
age: 3
is_claimant_or_partner: false
person3:
age: 38
is_claimant_or_partner: false
statutory_maternity_pay: 1_500
income_tax: 300
national_insurance: 100
pension_contributions: 200
social_security_income: 0
benunits:
benunit:
members: [person1, person2, person3]
would_claim_IS: true
would_claim_uc: false
income_support_assessable_capital: 0
households:
household:
members: [person1, person2, person3]
output:
# Only the claimant and partner count (reg 23(1)); the excluded adult's
# £1,500 SMP and deductions do not change Case 1's income or award.
income_support_applicable_income: 1_000
income_support: 3_786.60

- name: Case 7, zero statutory pay leaves the ordinary earnings disregard unchanged.
period: 2025
absolute_error_margin: 0.01
input:
people:
person1:
age: 30
is_parent: true
is_claimant_or_partner: true
income_support_reported: 1_000
hours_worked: 0
employment_income: 1_040
statutory_sick_pay: 0
statutory_maternity_pay: 0
statutory_paternity_pay: 0
social_security_income: 0
person2:
age: 3
is_claimant_or_partner: false
benunits:
benunit:
members: [person1, person2]
would_claim_IS: true
would_claim_uc: false
income_support_assessable_capital: 0
households:
household:
members: [person1, person2]
output:
income_support_applicable_income: 0
income_support: 4_786.60

- name: Case 8, statutory pay retains the tax NI and half-pension deductions.
period: 2025
absolute_error_margin: 0.01
input:
people:
person1:
age: 30
is_parent: true
is_claimant_or_partner: true
income_support_reported: 1_000
hours_worked: 0
employment_income: 3_040
statutory_sick_pay: 1_000
# Enter actual deductions to isolate the IS calculation. This case
# does not assert how the annual tax and NI models calculate them.
income_tax: 100
national_insurance: 50
pension_contributions: 200
social_security_income: 0
person2:
age: 3
is_claimant_or_partner: false
benunits:
benunit:
members: [person1, person2]
would_claim_IS: true
would_claim_uc: false
income_support_assessable_capital: 0
households:
household:
members: [person1, person2]
output:
# £3,040 + £1,000 - £100 - £50 - (0.5 x £200) - £1,040 = £2,750.
# Ordinary earnings still exceed the disregard after all deductions.
income_support_applicable_income: 2_750
income_support: 2_036.60

- name: Case 9, earnings and statutory sick pay above the allowance leave no award.
period: 2025
absolute_error_margin: 0.01
input:
people:
person1:
age: 30
is_parent: true
is_claimant_or_partner: true
income_support_reported: 1_000
hours_worked: 0
employment_income: 6_040
statutory_sick_pay: 1_000
social_security_income: 0
person2:
age: 3
is_claimant_or_partner: false
benunits:
benunit:
members: [person1, person2]
would_claim_IS: true
would_claim_uc: false
income_support_assessable_capital: 0
households:
household:
members: [person1, person2]
output:
# £6,040 - £1,040 earnings disregard + £1,000 SSP = £6,000.
income_support_applicable_income: 6_000
income_support_entitlement: 0
income_support: 0

- name: Case 10, statutory pay does not reopen Income Support after closure.
# 2027 is wholly after 31 March 2026. This avoids assuming that an annual
# 2026 formula selects the parameter after its 1 April closure boundary.
period: 2027
absolute_error_margin: 0.01
input:
people:
person1:
age: 30
is_parent: true
is_claimant_or_partner: true
income_support_reported: 1_000
hours_worked: 0
employment_income: 1_040
statutory_sick_pay: 1_000
social_security_income: 0
person2:
age: 3
is_claimant_or_partner: false
benunits:
benunit:
members: [person1, person2]
would_claim_IS: true
would_claim_uc: false
income_support_assessable_capital: 0
households:
household:
members: [person1, person2]
output:
income_support: 0
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,19 @@ class income_support_applicable_income(Variable):
label = "Relevant income for Income Support means test"
documentation = (
"The claimant's and partner's income for Income Support, including "
"spousal maintenance. Child maintenance is disregarded."
"statutory sick, maternity and paternity pay and spousal maintenance. "
"Child maintenance is disregarded."
)
definition_period = YEAR
unit = GBP
reference = (
"https://www.legislation.gov.uk/uksi/1987/1967/schedule/8",
"https://www.legislation.gov.uk/uksi/1987/1967/regulation/36",
"https://www.legislation.gov.uk/uksi/1987/1967/regulation/38",
"https://www.legislation.gov.uk/uksi/1987/1967/regulation/35",
"https://www.legislation.gov.uk/uksi/1987/1967/regulation/40",
"https://www.legislation.gov.uk/uksi/1987/1967/schedule/9/paragraph/1",
"https://www.legislation.gov.uk/uksi/1987/1967/schedule/9/paragraph/4",
"https://www.legislation.gov.uk/uksi/1987/1967/schedule/9/paragraph/15",
"https://www.legislation.gov.uk/uksi/1987/1967/schedule/9/paragraph/16",
"https://www.legislation.gov.uk/uksi/1987/1967/schedule/9/paragraph/73",
Expand All @@ -35,6 +39,10 @@ def formula(benunit, period, parameters):
"self_employment_income",
"property_income_after_finance_costs",
"private_pension_income",
# Employer statutory pay counts as other income (reg 40(4)(a)).
"statutory_sick_pay",
"statutory_maternity_pay",
"statutory_paternity_pay",
# Reg 40 and Sch 9 para 15(3)(a): spousal maintenance is
# non-earnings income, even when paid voluntarily. Child
# maintenance (maintenance_income) is disregarded by para 73.
Expand Down
Loading