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/uc-claimant-relationships.added.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- Added the is_uc_claimant input to identify Universal Credit claimants and partners from recorded benefit-unit relationships.
1 change: 1 addition & 0 deletions changelog.d/uc-claimant-relationships.fixed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- Fixed Universal Credit claimant classification and work allowances for families with qualifying young people, and excluded claimants from their own ordinary and disability child elements and two-child-limit counts.
Original file line number Diff line number Diff line change
Expand Up @@ -175,6 +175,7 @@
people:
parent:
age: 40
is_parent: true
looked_after_child:
age: 12
is_looked_after_by_local_authority: true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,19 @@
absolute_error_margin: 100
input:
age: 6
is_uc_claimant: false
is_disabled_for_benefits: true
output:
uc_individual_disabled_child_element: 1_902

- name: Case 2, an explicit young claimant receives no disabled child addition for themselves.
period: 2025
absolute_error_margin: 0.01
input:
age: 18
is_in_non_advanced_education: true
is_uc_claimant: true
is_disabled_for_benefits: true
output:
is_child_or_qualifying_young_person_for_universal_credit: true
uc_individual_disabled_child_element: 0
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,18 @@
absolute_error_margin: 100
input:
age: 6
is_uc_claimant: false
is_severely_disabled_for_benefits: true
output:
uc_individual_severely_disabled_child_element: 5_942

- name: Case 2, a fallback young claimant receives no severe child addition for themselves.
period: 2025
absolute_error_margin: 0.01
input:
age: 18
is_in_non_advanced_education: true
is_severely_disabled_for_benefits: true
output:
is_uc_claimant: true
uc_individual_severely_disabled_child_element: 0
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
# The UC child element is for a claimant's dependent child, not the claimant.
# In 2025 the under-25 single allowance is 316.98 * 12 = 3,803.76;
# the amount per child born after April 2017 is 292.81 * 12 = 3,513.72.

- name: Case 1, an explicitly identified young claimant is not their own child.
period: 2025
absolute_error_margin: 0.01
input:
people:
person1:
age: 18
is_in_non_advanced_education: true
is_uc_claimant: true
benunits:
benunit:
members: [person1]
uc_reported_capital: 0
uc_latent_deduction_rate: 0
benefit_cap_reduction: 0
households:
household:
members: [person1]
output:
# The age/education predicate remains unchanged; claim roles exclude it
# from UC child amounts without redefining qualification for other uses.
is_child_or_qualifying_young_person_for_universal_credit: true
uc_child_index: -1
uc_individual_child_element: 0
uc_is_child_limit_affected: false
uc_work_allowance: 0
universal_credit: 3_803.76

# No is_uc_claimant input: evaluating final UC and child ordering exercises
# the fallback through the QYP predicate and detects any dependency cycle.
- name: Case 2, a young parent inferred from source roles receives one child element.
period: 2025
absolute_error_margin: 0.01
input:
people:
person1:
age: 18
is_benunit_head: true
is_parent: true
is_in_non_advanced_education: true
person2:
age: 1
is_benunit_head: false
benunits:
benunit:
members: [person1, person2]
uc_reported_capital: 0
uc_latent_deduction_rate: 0
benefit_cap_reduction: 0
households:
household:
members: [person1, person2]
output:
is_uc_claimant: [true, false]
uc_child_index: [-1, 1]
uc_individual_child_element: [0, 3_513.72]
uc_is_child_limit_affected: [false, false]
uc_work_allowance: 8_208
universal_credit: 7_317.48

- name: Case 3, a young claimant does not use a place under the two-child limit.
period: 2025
absolute_error_margin: 0.01
input:
people:
person1:
age: 18
is_benunit_head: true
is_parent: true
is_in_non_advanced_education: true
person2:
age: 3
is_benunit_head: false
person3:
age: 2
is_benunit_head: false
person4:
age: 1
is_benunit_head: false
benunits:
benunit:
members: [person1, person2, person3, person4]
uc_reported_capital: 0
uc_latent_deduction_rate: 0
benefit_cap_reduction: 0
households:
household:
members: [person1, person2, person3, person4]
output:
is_uc_claimant: [true, false, false, false]
uc_child_index: [-1, 1, 2, 3]
uc_individual_child_element: [0, 3_513.72, 3_513.72, 0]
uc_is_child_limit_affected: [false, false, false, true]
uc_child_element: 7_027.44
universal_credit: 10_831.20

- name: Case 4, disabled dependent additions remain payable beyond the ordinary child limit.
period: 2025
absolute_error_margin: 0.01
input:
people:
person1:
age: 40
is_parent: true
person2:
age: 7
person3:
age: 6
person4:
age: 4
is_disabled_for_benefits: true
person5:
age: 2
is_severely_disabled_for_benefits: true
benunits:
benunit:
members: [person1, person2, person3, person4, person5]
uc_LCWRA_element: 0
output:
# Reg. 24(2) disabled-child additions are separate from the ordinary limit.
# 2025 monthly additions: 158.76 * 12 = 1,905.12; 495.87 * 12 = 5,950.44.
is_uc_claimant: [true, false, false, false, false]
uc_child_index: [-1, 1, 2, 3, 4]
uc_individual_child_element: [0, 3_513.72, 3_513.72, 0, 0]
uc_is_child_limit_affected: [false, false, false, true, true]
uc_individual_disabled_child_element: [0, 0, 0, 1_905.12, 0]
uc_individual_severely_disabled_child_element: [0, 0, 0, 0, 5_950.44]
uc_disability_elements: 7_855.56
Original file line number Diff line number Diff line change
@@ -0,0 +1,215 @@
# Regulations 22 and 36 of SI 2013/376 distinguish claimants from the
# children or qualifying young people for whom they are responsible.
# 2025 annual amounts: single 25+ = 400.14 * 12; couple under 25 =
# 497.55 * 12; first child born before April 2017 = 339 * 12.
# With no housing, the work allowance is 684 * 12. On 12,000 earnings
# below the tax/NI thresholds, the UC reduction is (12,000 - 8,208) * 0.55.

- name: Case 1, lone parent with an 18-year-old qualifying young person.
period: 2025
absolute_error_margin: 0.01
input:
people:
person1:
age: 40
employment_income: 12_000
is_benunit_head: true
is_parent: true
person2:
age: 18
is_benunit_head: false
is_in_non_advanced_education: true
benunits:
benunit:
members: [person1, person2]
uc_reported_capital: 0
uc_latent_deduction_rate: 0
benefit_cap_reduction: 0
households:
household:
members: [person1, person2]
output:
uc_standard_allowance_claimant_type: SINGLE_OLD
uc_standard_allowance: 4_801.68
uc_work_allowance: 8_208
uc_child_element: 4_068
universal_credit: 6_784.08

- name: Case 2, lone parent with a 19-year-old before the qualifying terminal date.
period: 2025
absolute_error_margin: 0.01
input:
people:
person1:
age: 40
employment_income: 12_000
is_benunit_head: true
is_parent: true
person2:
age: 19
is_benunit_head: false
is_in_non_advanced_education: true
age_started_or_accepted_current_education_or_training: 18
is_before_universal_credit_qualifying_young_person_terminal_date: true
benunits:
benunit:
members: [person1, person2]
uc_reported_capital: 0
uc_latent_deduction_rate: 0
benefit_cap_reduction: 0
households:
household:
members: [person1, person2]
output:
uc_standard_allowance_claimant_type: SINGLE_OLD
uc_standard_allowance: 4_801.68
uc_work_allowance: 8_208
uc_child_element: 4_068
universal_credit: 6_784.08

- name: Case 3, genuine couple with an older qualifying child remains a couple.
period: 2025
absolute_error_margin: 0.01
input:
people:
person1:
age: 40
employment_income: 12_000
is_benunit_head: true
is_parent: true
person2:
age: 39
is_benunit_head: false
is_parent: true
person3:
age: 18
is_benunit_head: false
is_in_non_advanced_education: true
benunits:
benunit:
members: [person1, person2, person3]
is_married: false
uc_reported_capital: 0
uc_latent_deduction_rate: 0
benefit_cap_reduction: 0
households:
household:
members: [person1, person2, person3]
output:
uc_standard_allowance_claimant_type: COUPLE_OLD
uc_standard_allowance: 7_537.20
uc_work_allowance: 8_208
universal_credit: 9_519.60

- name: Case 4, cohabiting young claimants do not need a marriage input.
period: 2025
absolute_error_margin: 0.01
input:
people:
person1:
age: 24
person2:
age: 23
benunits:
benunit:
members: [person1, person2]
is_married: false
uc_reported_capital: 0
uc_latent_deduction_rate: 0
benefit_cap_reduction: 0
households:
household:
members: [person1, person2]
output:
uc_standard_allowance_claimant_type: COUPLE_YOUNG
uc_standard_allowance: 5_970.60
uc_work_allowance: 0
universal_credit: 5_970.60

# The existing eligibility formula excludes all under-18 claimants. This case
# fixes claimant classification only; it does not implement the legal exceptions.
- name: Case 5, an under-18 parent is not a couple because adult count is zero.
period: 2025
absolute_error_margin: 0.01
input:
people:
person1:
age: 17
is_benunit_head: true
is_parent: true
person2:
age: 1
is_benunit_head: false
benunits:
benunit:
members: [person1, person2]
uc_reported_capital: 0
uc_latent_deduction_rate: 0
households:
household:
members: [person1, person2]
output:
uc_standard_allowance_claimant_type: SINGLE_YOUNG
uc_standard_allowance: 3_803.76
universal_credit: 0

- name: Case 6, retained nonqualifying child roles do not imply a partner.
period: 2025
absolute_error_margin: 0.01
input:
people:
person1:
age: 40
is_uc_claimant: true
person2:
age: 19
is_uc_claimant: false
benunits:
benunit:
members: [person1, person2]
uc_reported_capital: 0
uc_latent_deduction_rate: 0
benefit_cap_reduction: 0
households:
household:
members: [person1, person2]
output:
# The generic family variable deliberately retains its existing semantics.
family_type: COUPLE_NO_CHILDREN
uc_standard_allowance_claimant_type: SINGLE_OLD
uc_standard_allowance: 4_801.68
uc_work_allowance: 0
uc_child_element: 0
universal_credit: 4_801.68

- name: Case 7, a cohabiting 19-year-old in education is not the partner's child.
period: 2025
absolute_error_margin: 0.01
input:
people:
person1:
age: 24
person2:
age: 19
is_in_non_advanced_education: true
age_started_or_accepted_current_education_or_training: 18
is_before_universal_credit_qualifying_young_person_terminal_date: true
benunits:
benunit:
members: [person1, person2]
uc_reported_capital: 0
uc_latent_deduction_rate: 0
benefit_cap_reduction: 0
households:
household:
members: [person1, person2]
output:
# No role or marriage inputs: two claimants under 25, no dependent children.
# The 2025 monthly couple allowance is 497.55; 497.55 * 12 = 5,970.60.
is_uc_claimant: [true, true]
uc_standard_allowance_claimant_type: COUPLE_YOUNG
uc_standard_allowance: 5_970.60
uc_child_index: [-1, -1]
uc_child_element: 0
uc_work_allowance: 0
universal_credit: 5_970.60
Loading