Skip to content
Draft
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/snap-abawd-work-program-hours.added.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SNAP ABAWD work requirement support for qualifying work-program hours and workfare participation under 7 CFR 273.24(a)(1).
Original file line number Diff line number Diff line change
Expand Up @@ -461,3 +461,65 @@
state_code: CA
output:
meets_snap_abawd_work_requirements: false

# =====================================================
# Work program and workfare participation —
# 7 U.S.C. 2015(o)(2); 7 CFR 273.24(a)(1)
# =====================================================

# --- 273.24(a)(1)(ii): Work program participation 20+ hrs ---

- name: Case 33, work program participation of 20 hrs meets requirement.
period: 2022
input:
age: 30
weekly_hours_worked_before_lsr: 0
weekly_snap_work_program_hours: 20
is_disabled: false
output:
meets_snap_abawd_work_requirements: true

# --- 273.24(a)(1)(iii): Combination of work and work program hours ---

- name: Case 34, combined work and work program hours of 20 meet requirement.
period: 2022
input:
age: 30
weekly_hours_worked_before_lsr: 10
weekly_snap_work_program_hours: 10
is_disabled: false
output:
meets_snap_abawd_work_requirements: true

- name: Case 35, combined work and work program hours below 20 fail.
period: 2022
input:
age: 30
weekly_hours_worked_before_lsr: 10
weekly_snap_work_program_hours: 9
is_disabled: false
output:
meets_snap_abawd_work_requirements: false

# --- 273.24(a)(1)(iv): Workfare participation ---

- name: Case 36, workfare participant meets requirement regardless of hours.
period: 2022
input:
age: 30
weekly_hours_worked_before_lsr: 0
is_snap_workfare_participant: true
is_disabled: false
output:
meets_snap_abawd_work_requirements: true

- name: Case 37, post-HR1 work program participation of 20 hrs meets requirement.
period: 2027
absolute_error_margin: 0.1
input:
age: 30
weekly_hours_worked_before_lsr: 0
weekly_snap_work_program_hours: 20
is_disabled: false
output:
meets_snap_abawd_work_requirements: true
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
from policyengine_us.model_api import *


class is_snap_workfare_participant(Variable):
value_type = bool
entity = Person
label = "participates in and complies with a SNAP workfare program"
documentation = (
"Whether the person participates in and complies with the "
"requirements of a workfare program under 7 CFR 273.7(m) or a "
"comparable state or local program. Workfare participation "
"satisfies the SNAP ABAWD work requirement regardless of the "
"number of hours, since workfare hours are set by dividing the "
"household benefit by the minimum wage (7 U.S.C. 2015(o)(2)(C); "
"7 CFR 273.24(a)(1)(iv)). Survey data does not capture this "
"input, so it defaults to false; see PolicyEngine/populace#249 "
"for the companion data issue."
)
definition_period = YEAR
reference = (
"https://www.law.cornell.edu/uscode/text/7/2015#o_2_C",
"https://www.law.cornell.edu/cfr/text/7/273.24#a_1_iv",
)
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,22 @@ def formula(person, period, parameters):
p.age_threshold.exempted.calc(age),
p_pre.age_threshold.exempted.calc(age),
)
# Work activity
# Work activity — 7 U.S.C. 2015(o)(2); 7 CFR 273.24(a)(1):
# (i) work 20+ hours per week, (ii) participate in and comply
# with a qualifying work program 20+ hours per week, or
# (iii) any combination of work and work program participation
# totaling 20+ hours per week.
weekly_hours_worked = person("weekly_hours_worked_before_lsr", period.this_year)
is_working = weekly_hours_worked >= p.weekly_hours_threshold
work_program_hours = person("weekly_snap_work_program_hours", period.this_year)
combined_weekly_hours = weekly_hours_worked + work_program_hours
meets_hours_threshold = combined_weekly_hours >= p.weekly_hours_threshold
# (iv) participate in and comply with a workfare program under
# 7 CFR 273.7(m), which satisfies the requirement regardless of
# hours.
is_workfare_participant = person(
"is_snap_workfare_participant", period.this_year
)
is_working = meets_hours_threshold | is_workfare_participant
# (B) Disability — 7 U.S.C. 2015(o)(3)(B)
is_disabled = person("is_disabled", period)
# (C) Parent with qualifying child — 7 U.S.C. 2015(o)(3)(C)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
from policyengine_us.model_api import *


class weekly_snap_work_program_hours(Variable):
value_type = float
entity = Person
label = "average weekly hours of participation in a SNAP qualifying work program"
unit = "hour"
documentation = (
"Average weekly hours of participation in and compliance with a "
"work program qualifying under the SNAP ABAWD work requirement, "
"such as a SNAP Employment and Training program, a program under "
"the Workforce Innovation and Opportunity Act, or a program under "
"section 236 of the Trade Act of 1974 (7 U.S.C. 2015(o)(1)(B); "
"7 CFR 273.24(a)(3)). These hours count toward the 20-hour weekly "
"ABAWD work-activity threshold, alone or combined with hours of "
"employment (7 CFR 273.24(a)(1)(i)-(iii)). Survey data does not "
"capture this input, so it defaults to zero; see "
"PolicyEngine/populace#249 for the companion data issue."
)
definition_period = YEAR
reference = (
"https://www.law.cornell.edu/uscode/text/7/2015#o_2",
"https://www.law.cornell.edu/cfr/text/7/273.24#a_1",
)
Loading