Skip to content
Open
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_entry.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
- bump: patch
changes:
added:
- Add historical TANF parameter data for DE, MO, RI, SD (pre-2018 values).
- Add PA TANF Work Expense Reimbursement (WER) for 2009-2020 era.
- Add PA TANF work expense mechanism toggle (uses_deduction parameter).
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
description: Delaware uses this share of the deficit to calculate the grant remainder under the Temporary Assistance for Needy Families program.

values:
2024-10-01: 0.5
2011-10-01: 0.5

metadata:
unit: /1
Expand All @@ -10,5 +10,7 @@ metadata:
reference:
- title: 16 Del. Admin. Code SS 4000-4008.1.1 Step 3 TANF GRANT COMPUTATION
href: https://www.law.cornell.edu/regulations/delaware/16-Del-Admin-Code-SS-4000-4008
- title: Delaware TANF State Plan 2011 - Exhibit 1 and Exhibit 2
href: https://dhss.delaware.gov/wp-content/uploads/sites/11/dss/pdf/tanf_ffy2012_stateplan.pdf#page=7
- title: Delaware TANF State Plan 2017 - Exhibit 1 and Exhibit 2
href: https://dhss.delaware.gov/wp-content/uploads/sites/11/dss/pdf/detanfstateplan2017.pdf#page=7
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
description: Missouri does not issue TANF payments below this amount.

values:
2024-01-01: 10
# Rule originated April 22, 1948 with AFDC; carried forward to TANF
2002-01-01: 10

metadata:
unit: currency-USD
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
description: Pennsylvania deducts this amount from countable earned income for work expenses under the Temporary Assistance for Needy Families program.
# Work Expense Deduction (WED) - applied after 50% earned income disregard
# Replaced the Work Expense Reimbursement (WER) in September 2020

values:
2020-10-01: 200

metadata:
unit: currency-USD
period: month
label: Pennsylvania TANF work expense deduction amount
reference:
- title: PA DHS TANF State Plan 2024
href: https://www.pa.gov/content/dam/copapwp-pagov/en/dhs/documents/services/assistance/documents/tanf/tanf-state-plan-effective-october-1-2024.pdf#page=13
- title: PA DHS Cash Assistance Handbook Section 160.22, Work Expense Deduction
href: http://services.dpw.state.pa.us/oimpolicymanuals/cash/index.htm#t=160_Income_Deductions%2F160_2_TANF_Earned_Income_Deductions.htm
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
description: Pennsylvania provides this amount as a work expense reimbursement under the Temporary Assistance for Needy Families program.
# Work Expense Reimbursement (WER) - flat bonus added to TANF grant
# Active March 2009 to September 2020, then replaced by Work Expense Deduction (WED)

values:
2009-04-01: 50

metadata:
unit: currency-USD
period: month
label: Pennsylvania TANF work expense reimbursement amount
reference:
- title: PA DHS Cash Assistance Handbook Section 137.4, Work Expense Reimbursement
href: http://services.dpw.state.pa.us/oimpolicymanuals/cash/137_Cash_Initiatives/137.4_Work_Expense_Reimbursement.htm
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
description: Pennsylvania uses a work expense deduction (true) or reimbursement (false) under the Temporary Assistance for Needy Families program.
# Before 2020: Work Expense Reimbursement (WER) - $50/month added to benefit
# After 2020: Work Expense Deduction (WED) - $200/month deducted from income

values:
2009-04-01: false
2020-10-01: true

metadata:
unit: bool
period: month
label: Pennsylvania TANF uses work expense deduction
reference:
- title: PA DHS Cash Assistance Handbook Section 137.4, Work Expense Reimbursement
href: http://services.dpw.state.pa.us/oimpolicymanuals/cash/137_Cash_Initiatives/137.4_Work_Expense_Reimbursement.htm
- title: PA DHS TANF State Plan 2024, Work Expense Deduction
href: https://www.pa.gov/content/dam/copapwp-pagov/en/dhs/documents/services/assistance/documents/tanf/tanf-state-plan-effective-october-1-2024.pdf#page=13
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,18 @@ metadata:
reference:
- title: 218-RICR-20-00-2.15.5(B)(2) Dependent Care Deduction
href: https://www.law.cornell.edu/regulations/rhode-island/218-RICR-20-00-2.15
- title: R.I. Gen. Laws Chapter 40-5.2 - Rhode Island Works Act of 2008
href: http://webserver.rilin.state.ri.us/Statutes/TITLE40/40-5.2/INDEX.htm
- title: Rhode Island Works Program Eligibility
href: https://dhs.ri.gov/programs-and-services/ri-works-program/eligibility-how-apply

brackets:
# Rhode Island Works established July 1, 2008; amounts based on federal SNAP limits
- threshold:
2019-01-01: 0
2008-07-01: 0
amount:
2019-01-01: 200
2008-07-01: 200
- threshold:
2019-01-01: 2
2008-07-01: 2
amount:
2019-01-01: 175
2008-07-01: 175
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
description: South Dakota uses this amount as the maximum family size in the payment standard table under the Temporary Assistance for Needy Families program.

values:
2023-07-01: 12
2016-09-01: 12

metadata:
unit: person
period: month
label: South Dakota TANF maximum table family size
reference:
- title: ARSD 67:10:05:03 - Payment Standards (2016)
href: https://sdlegislature.gov/api/Rules/Archived/10994.pdf#page=1
- title: ARSD 67:10:05:03 - Payment Standards
href: https://sdlegislature.gov/Rules/Administrative/67:10:05:03
Original file line number Diff line number Diff line change
Expand Up @@ -79,3 +79,46 @@
# Step 1: $250 × 50% = $125 (EID: keep 50%)
# Step 2: $125 - $200 = -$75, clipped to 0 (WED)
pa_tanf_earned_income_after_deductions_person: 0

# Work Expense Reimbursement (WER) era tests - before Sept 2020
# In WER era, no $200 WED deduction is applied

- name: Case 8, WER era, low earnings, enrolled recipient, no WED.
period: 2019-01
input:
employment_income_before_lsr: 12_000
is_tanf_enrolled: true
state_code: PA
output:
# Monthly: $12,000/12 = $1,000
# Step 1: $1,000 × 50% = $500 (EID: keep 50%)
# Step 2: No WED in WER era (pre-2020)
# Countable: $500
pa_tanf_earned_income_after_deductions_person: 500

- name: Case 9, WER era, high earnings, enrolled recipient, no WED.
period: 2019-01
input:
employment_income_before_lsr: 36_000
is_tanf_enrolled: true
state_code: PA
output:
# Monthly: $36,000/12 = $3,000
# Step 1: $3,000 × 50% = $1,500 (EID: keep 50%)
# Step 2: No WED in WER era (pre-2020)
# Countable: $1,500
pa_tanf_earned_income_after_deductions_person: 1_500

- name: Case 10, WER era, deductions would have zeroed income in WED era.
period: 2019-01
input:
employment_income_before_lsr: 2_400
is_tanf_enrolled: true
state_code: PA
output:
# Monthly: $2,400/12 = $200
# Step 1: $200 × 50% = $100 (EID: keep 50%)
# Step 2: No WED in WER era
# In WED era this would be: $100 - $200 = 0
# In WER era: $100 (no deduction)
pa_tanf_earned_income_after_deductions_person: 100
Original file line number Diff line number Diff line change
Expand Up @@ -384,3 +384,101 @@
pa_tanf_maximum_benefit: 403
pa_tanf_countable_income: 550
pa_tanf: 0

# Work Expense Reimbursement (WER) era integration tests - before Sept 2020
# WER: $50 bonus added to benefit (not income deduction)
# WED: $200 deducted from income (not bonus)

- name: Case 14, WER era, family with earned income gets $50 bonus.
period: 2019-01
input:
people:
person1:
age: 35
employment_income_before_lsr: 6_960
person2:
age: 8
person3:
age: 5
spm_units:
spm_unit:
members: [person1, person2, person3]
is_tanf_enrolled: true
households:
household:
members: [person1, person2, person3]
state_code: PA
output:
# Family of 3: FSA = $403/month (same as 2024)
# Person1 monthly: $6,960/12 = $580
# WER era: Only 50% EID applied, no $200 WED
# $580 × 50% = $290 countable
# Base benefit: $403 - $290 = $113
# WER bonus: +$50 (family has earned income)
# Total benefit: $113 + $50 = $163
pa_tanf_maximum_benefit: 403
pa_tanf_countable_income: 290
pa_tanf: 163

- name: Case 15, WER era vs WED era comparison, same family.
period: 2024-01
input:
people:
person1:
age: 35
employment_income_before_lsr: 6_960
person2:
age: 8
person3:
age: 5
spm_units:
spm_unit:
members: [person1, person2, person3]
is_tanf_enrolled: true
households:
household:
members: [person1, person2, person3]
state_code: PA
output:
# Same family as Case 14 but in WED era (2024)
# Family of 3: FSA = $403/month
# Person1 monthly: $6,960/12 = $580
# WED era: 50% EID + $200 WED deduction
# $580 × 50% = $290; $290 - $200 = $90 countable
# Benefit: $403 - $90 = $313
# No WER bonus in WED era
# WED era benefit ($313) > WER era benefit ($163) by $150
pa_tanf_maximum_benefit: 403
pa_tanf_countable_income: 90
pa_tanf: 313

- name: Case 16, WER era, no earned income, no bonus.
period: 2019-01
input:
people:
person1:
age: 45
employment_income_before_lsr: 0
social_security: 2_400
person2:
age: 10
person3:
age: 7
spm_units:
spm_unit:
members: [person1, person2, person3]
households:
household:
members: [person1, person2, person3]
state_code: PA
output:
# Family of 3: FSA = $403/month
# No earned income, only unearned (SS)
# Unearned monthly: $2,400/12 = $200
# No EID/WED for unearned income
# Countable: $200
# Benefit: $403 - $200 = $203
# No WER bonus (no earned income)
pa_tanf_maximum_benefit: 403
pa_tanf_countable_income: 200
pa_tanf: 203
Original file line number Diff line number Diff line change
Expand Up @@ -51,3 +51,75 @@
pa_tanf_eligible: true
output:
pa_tanf: 636

# Work Expense Reimbursement (WER) era tests - before Sept 2020
# WER adds $50 bonus to benefit for families with earned income

- name: Case 7, WER era, family with earned income gets $50 bonus.
period: 2019-01
input:
people:
person1:
age: 30
tanf_gross_earned_income: 500
spm_units:
spm_unit:
members: [person1]
pa_tanf_maximum_benefit: 316
pa_tanf_countable_income: 100
pa_tanf_eligible: true
households:
household:
members: [person1]
state_code: PA
output:
# Base grant: $316 - $100 = $216
# WER bonus: $50 (family has earned income)
# Total: $216 + $50 = $266
pa_tanf: 266

- name: Case 8, WER era, family without earned income, no bonus.
period: 2019-01
input:
people:
person1:
age: 30
tanf_gross_earned_income: 0
spm_units:
spm_unit:
members: [person1]
pa_tanf_maximum_benefit: 316
pa_tanf_countable_income: 100
pa_tanf_eligible: true
households:
household:
members: [person1]
state_code: PA
output:
# Base grant: $316 - $100 = $216
# No WER bonus (no earned income)
# Total: $216
pa_tanf: 216

- name: Case 9, WED era, family with earned income, no bonus.
period: 2024-01
input:
people:
person1:
age: 30
tanf_gross_earned_income: 500
spm_units:
spm_unit:
members: [person1]
pa_tanf_maximum_benefit: 316
pa_tanf_countable_income: 100
pa_tanf_eligible: true
households:
household:
members: [person1]
state_code: PA
output:
# Base grant: $316 - $100 = $216
# No WER bonus in WED era (2024)
# Total: $216
pa_tanf: 216
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,25 @@ class pa_tanf_earned_income_after_deductions_person(Variable):
)

def formula(person, period, parameters):
p = parameters(period).gov.states.pa.dhs.tanf.income.deductions
p = parameters(period).gov.states.pa.dhs.tanf.income

gross_earned = person("tanf_gross_earned_income", period)
disregard_eligible = person.spm_unit(
"pa_tanf_disregard_eligible", period
)

after_eid = gross_earned * (1 - p.earned_income_disregard.percentage)
after_wed = max_(after_eid - p.work_expense.additional, 0)
# Apply 50% earned income disregard
after_eid = gross_earned * (
1 - p.deductions.earned_income_disregard.percentage
)

# Apply Work Expense Deduction (WED) only when in effect (post-2020)
# Before 2020, Work Expense Reimbursement (WER) was used instead (added to benefit)
wed_amount = where(
p.work_expense.uses_deduction,
p.work_expense.deduction,
0,
)
after_wed = max_(after_eid - wed_amount, 0)

return where(disregard_eligible, after_wed, gross_earned)
Loading