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
6 changes: 6 additions & 0 deletions changelog.d/fix-disability-input-disconnects.fixed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Align federal disability gates with their governing legal definitions:
- SNAP elderly or disabled member (7 CFR 271.2): qualify by SSI receipt rather than the SSI disability criteria flag.
- SNAP work requirement, work registration, ABAWD, and student rules: recognize disability benefit receipt as unfitness for employment.
- SSI student earned income exclusion: use the SSI disability test rather than the generic disability flag.
- Medicaid work requirement and home equity family exception: recognize the Section 1614 SSI disability definition.
- HUD person-with-disabilities status: recognize the SSI and SSDI disability paths.
11 changes: 9 additions & 2 deletions policyengine_us/parameters/gov/usda/disabled_programs.yaml
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
description: Program participation that qualify individuals as disabled under USDA rules
description: Benefit receipt that qualifies individuals as elderly or disabled members under the Supplemental Nutrition Assistance Program.

values:
2021-01-01:
- is_ssi_disabled
# 7 CFR 271.2 defines "elderly or disabled member" by benefit receipt
# ("receives supplemental security income benefits ... or disability or
# blindness payments"), not by meeting the disability criteria alone.
# Amount entries (ssi, social_security_disability) count when positive.
- receives_ssi
- ssi
- social_security_disability
- is_permanently_disabled_veteran
- is_surviving_spouse_of_disabled_veteran
Expand All @@ -12,3 +17,5 @@ metadata:
reference:
- title: "SNAP Special Rules for the Elderly or Disabled"
href: https://www.fns.usda.gov/snap/eligibility/elderly-disabled-special-rules#Who%20is%20elderly?
- title: 7 CFR 271.2 (definition of elderly or disabled member)
href: https://www.law.cornell.edu/cfr/text/7/271.2
Original file line number Diff line number Diff line change
Expand Up @@ -295,3 +295,63 @@
home_equity: 1_217_001
output:
is_medicaid_long_term_care_home_equity_eligible: false

- name: Case 19, resident adult child meeting the section 1614 SSI disability test triggers the family exception.
period: 2028
input:
people:
person1:
age: 65
receives_medicaid_long_term_care_services: true
home_equity: 1_000_001
person2:
age: 30
is_disabled: false
is_ssi_disabled: true
is_related_to_head_or_spouse: true
tax_units:
tax_unit1:
members: [person1]
tax_unit2:
members: [person2]
households:
household:
members: [person1, person2]
marital_units:
marital_unit1:
members: [person1]
marital_unit2:
members: [person2]
output:
medicaid_home_equity_limit_family_exception: [true, false]
is_medicaid_long_term_care_home_equity_eligible: [true, true]

- name: Case 20, resident adult child not meeting the SSI disability test does not trigger the family exception.
period: 2028
input:
people:
person1:
age: 65
receives_medicaid_long_term_care_services: true
home_equity: 1_000_001
person2:
age: 30
is_disabled: false
is_ssi_disabled: false
is_related_to_head_or_spouse: true
tax_units:
tax_unit1:
members: [person1]
tax_unit2:
members: [person2]
households:
household:
members: [person1, person2]
marital_units:
marital_unit1:
members: [person1]
marital_unit2:
members: [person2]
output:
medicaid_home_equity_limit_family_exception: [false, false]
is_medicaid_long_term_care_home_equity_eligible: [false, true]
Original file line number Diff line number Diff line change
Expand Up @@ -401,3 +401,14 @@
medicaid_community_engagement_pass_through_eligible: false
output:
medicaid_work_requirement_eligible: false

- name: Case 41, meeting the section 1614 SSI disability test exempts without the generic disability flag.
period: 2027
input:
age: 30
monthly_hours_worked: 0
is_disabled: false
is_ssi_disabled: true
medicaid_community_engagement_pass_through_eligible: false
output:
medicaid_work_requirement_eligible: true
Original file line number Diff line number Diff line change
Expand Up @@ -127,3 +127,69 @@
# Both are disabled adults filing separately; only the oldest is
# excluded as the family head, so the younger one is a dependent.
is_hud_dependent: [false, true]

- name: A non-head adult meeting the SSI disability test is a HUD dependent (42 U.S.C. 1437a(b)(3)(E)).
period: 2022
input:
people:
head:
age: 45
is_household_head: true
person:
age: 40
is_disabled: false
is_ssi_disabled: true
tax_units:
tax_unit1:
members: [head]
tax_unit2:
members: [person]
spm_units:
spm_unit:
members: [head, person]
output:
is_hud_dependent: [false, true]

- name: A non-head adult receiving SSDI is a HUD dependent (42 U.S.C. 1437a(b)(3)(E)).
period: 2022
input:
people:
head:
age: 45
is_household_head: true
person:
age: 40
is_disabled: false
social_security_disability: 12_000
tax_units:
tax_unit1:
members: [head]
tax_unit2:
members: [person]
spm_units:
spm_unit:
members: [head, person]
output:
is_hud_dependent: [false, true]

- name: A non-head adult with zero SSDI and no other disability status is not a HUD dependent.
period: 2022
input:
people:
head:
age: 45
is_household_head: true
person:
age: 40
is_disabled: false
social_security_disability: 0
tax_units:
tax_unit1:
members: [head]
tax_unit2:
members: [person]
spm_units:
spm_unit:
members: [head, person]
output:
is_hud_dependent: [false, false]
Original file line number Diff line number Diff line change
Expand Up @@ -63,3 +63,32 @@
members: [parent, dependent]
output:
is_hud_elderly_disabled_family: false

# 42 U.S.C. 1437a(b)(3)(E): the SSA disability standard qualifies alongside
# the generic disability flag.
- name: A one-person non-elderly family meeting the SSI disability test.
period: 2022
input:
age: 48
is_disabled: false
is_ssi_disabled: true
output:
is_hud_elderly_disabled_family: true

- name: A one-person non-elderly family receiving SSDI.
period: 2022
input:
age: 48
is_disabled: false
social_security_disability: 12_000
output:
is_hud_elderly_disabled_family: true

- name: A one-person non-elderly family with zero SSDI and no other disability status.
period: 2022
input:
age: 48
is_disabled: false
social_security_disability: 0
output:
is_hud_elderly_disabled_family: false
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
- name: Not demographic eligible nor student eligible
period: 1974
period: 1975
input:
is_blind: true
is_disabled: false
Expand All @@ -9,7 +9,7 @@
is_ssi_blind_or_disabled_working_student_exclusion_eligible: false

- name: Demographic eligible but not student eligible
period: 1974
period: 1975
input:
is_blind: true
is_disabled: false
Expand All @@ -19,7 +19,7 @@
is_ssi_blind_or_disabled_working_student_exclusion_eligible: false

- name: Student eligible but not demographic eligible
period: 1974
period: 1975
input:
is_blind: false
is_disabled: false
Expand All @@ -29,7 +29,7 @@
is_ssi_blind_or_disabled_working_student_exclusion_eligible: false

- name: Eligible
period: 1974
period: 1975
input:
is_blind: false
is_disabled: true
Expand All @@ -38,3 +38,27 @@
is_full_time_student: true
output:
is_ssi_blind_or_disabled_working_student_exclusion_eligible: true

- name: Eligible student earning above the SGA threshold keeps the exclusion
period: 2026
input:
is_blind: false
is_disabled: false
meets_ssi_disability_criteria: true
employment_income: 30_000
age: 20
is_full_time_student: true
output:
is_ssi_blind_or_disabled_working_student_exclusion_eligible: true

- name: Non-disabled student earning above the SGA threshold never qualifies
period: 2026
input:
is_blind: false
is_disabled: false
meets_ssi_disability_criteria: false
employment_income: 30_000
age: 20
is_full_time_student: true
output:
is_ssi_blind_or_disabled_working_student_exclusion_eligible: false
Original file line number Diff line number Diff line change
@@ -1,20 +1,69 @@
- name: People without any disability flags are not USDA disabled
# 7 CFR 271.2 "elderly or disabled member" item (2): the person must
# *receive* SSI (any category) or disability/blindness payments. Meeting the
# SSI disability criteria without receiving SSI does not qualify.

- name: Case 1, people without any disability flags are not USDA disabled.
period: 2021
input:
age: 30
output:
is_usda_disabled: false

- name: SSI disabled people are USDA disabled
- name: Case 2, reported SSI receipt qualifies.
period: 2021
input:
age: 30
receives_ssi: true
output:
is_usda_disabled: true

- name: Case 3, a reported SSI amount supplied as the ssi input qualifies.
period: 2021
input:
age: 30
ssi: 6_000
output:
is_usda_disabled: true

- name: Case 4, modeled SSI receipt by a person meeting the SSI disability test qualifies.
period: 2021
input:
age: 30
is_ssi_disabled: true
employment_income: 0
output:
is_usda_disabled: true

- name: People receiving SSDI are USDA disabled
- name: Case 5, meeting the SSI disability test without receiving SSI does not qualify.
period: 2021
input:
age: 30
is_ssi_disabled: true
employment_income: 100_000
output:
ssi: 0
is_usda_disabled: false

- name: Case 6, blind SSI recipients qualify.
period: 2021
input:
age: 30
is_blind: true
output:
is_usda_disabled: true

- name: Case 7, aged SSI recipients qualify through SSI receipt and are also USDA elderly.
period: 2021
input:
age: 66
output:
is_usda_disabled: true
is_usda_elderly: true

- name: Case 8, people receiving SSDI are USDA disabled.
period: 2021
input:
age: 30
social_security_disability: 100
output:
is_usda_disabled: true
Original file line number Diff line number Diff line change
Expand Up @@ -282,3 +282,27 @@
state_code: MO
output:
is_snap_ineligible_student: [false, true, false]

- name: Case 18, college student receiving SSDI meets the disability exception without the generic disability flag.
period: 2022
input:
is_full_time_college_student: true
age: 25
is_disabled: false
weekly_hours_worked_before_lsr: 0
is_parent: false
social_security_disability: 12_000
output:
is_snap_ineligible_student: false

- name: Case 19, college student reported to receive SSI meets the disability exception without the generic disability flag.
period: 2022
input:
is_full_time_college_student: true
age: 25
is_disabled: false
weekly_hours_worked_before_lsr: 0
is_parent: false
receives_ssi: true
output:
is_snap_ineligible_student: false
Original file line number Diff line number Diff line change
Expand Up @@ -48,3 +48,25 @@
tanf_person: 500
output:
meets_snap_non_parent_student_exception: true

- name: Student receiving SSDI meets the disability exception without the generic disability flag
period: 2024
input:
is_full_time_college_student: true
age: 25
is_disabled: false
weekly_hours_worked_before_lsr: 0
social_security_disability: 12_000
output:
meets_snap_non_parent_student_exception: true

- name: Student reported to receive SSI meets the disability exception without the generic disability flag
period: 2024
input:
is_full_time_college_student: true
age: 25
is_disabled: false
weekly_hours_worked_before_lsr: 0
receives_ssi: true
output:
meets_snap_non_parent_student_exception: true
Loading