Skip to content

Conversation

@hua7450
Copy link
Collaborator

@hua7450 hua7450 commented Dec 10, 2025

Summary

Implements Utah Family Employment Program (FEP) - Utah's TANF program administered by the Department of Workforce Services (DWS).

Closes #6930


Utah FEP Income Rules

Regulatory Authority

  • Utah Admin. Code R986-200 (Family Employment Program)
  • DWS Table 1 (Income Standards and Assistance Amounts)

1. INCOME ELIGIBILITY TESTS

Gross Income Test

  • Limit: 185% of the Standard Needs Budget (SNB)
  • Definition: Total gross earned + unearned income of all assistance unit members

Source: Utah Admin. Code R986-200-239(1)

Net Income Test

  • Limit: Less than 100% of the Standard Needs Budget (SNB)
  • Definition: Countable income after deductions must be less than SNB (strict inequality)

Source: Utah Admin. Code R986-200-239(4)


2. INCOME DEDUCTIONS

A. Work Expense Allowance

  • Amount: $100 per employed person
  • Application: Deducted from each employed person's gross earned income

Source: Utah Admin. Code R986-200-239(2)(a)

B. Earned Income Disregard

  • Amount: 50% of remaining earned income (after work expense deduction)

Source: Utah Admin. Code R986-200-239(2)(b)


3. INCOME STANDARDS BY FAMILY SIZE (October 2022)

Family Size Standard Needs Budget (SNB) Max Gross Income (185%) Payment Standard
1 $329 $608 $383
2 $456 $843 $531
3 $568 $1,050 $662
4 $665 $1,230 $775
5 $757 $1,400 $882
6 $834 $1,542 $972
7 $873 $1,615 $1,017
8 $914 $1,690 $1,065
9+ $957 $1,770 $1,116

Source: DWS Table 1 - Financial Monthly Income Limits and Assistance Amounts


4. RESOURCE LIMIT

  • Limit: $2,000 in countable resources

Source: Utah Admin. Code R986-200-230(5)


5. BENEFIT CALCULATION

Formula:

Benefit = Payment Standard − Countable Income

Where Countable Income =

Gross Unearned Income + Countable Earned Income

And Countable Earned Income =

(Gross Earned Income − $100 Work Expense) × 50%

Calculation Steps:

  1. Determine gross earned income (per person)
  2. Subtract $100 work expense allowance per employed person
  3. Multiply remaining by 50% (earned income disregard)
  4. Sum across all persons = Countable Earned Income
  5. Add gross unearned income = Countable Income
  6. Subtract from Payment Standard = Benefit

Example (Family of 3, $1,000/month earned income)

Step Calculation Result
Gross income $1,000 $1,000
Gross limit (185% × $568) $1,050 → PASS
Work expense $1,000 − $100 $900
50% disregard $900 × 0.50 $450
Countable income $450 + $0 unearned $450
Net limit (100% SNB) $568 → PASS
Payment standard $662
Benefit $662 − $450 $212/month

Source: Utah Admin. Code R986-200-239


🤖 Generated with Claude Code

hua7450 and others added 2 commits December 10, 2025 15:28
Starting implementation of Utah Temporary Assistance for Needy Families (TANF) program.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Implements Utah's Temporary Assistance for Needy Families program under
the Department of Workforce Services (DWF):

Variables:
- ut_tanf: Final benefit calculation
- ut_tanf_payment_standard: Payment standard by family size (87.5% SNB)
- ut_tanf_eligible: Overall eligibility (demographic + income + resources)
- ut_tanf_income_eligible: Combined gross and net income tests
- ut_tanf_gross_income_eligible: Gross income <= 185% SNB
- ut_tanf_net_income_eligible: Countable income < 100% SNB
- ut_tanf_resource_eligible: Resources <= $2,000
- ut_tanf_countable_income: Net countable income
- ut_tanf_earned_income_deduction: Work expense + 50% disregard
- ut_tanf_gross_income: Gross earned + unearned income

Parameters:
- Payment standards by family size (1-8+)
- Gross income limits (185% SNB by family size)
- Net income limits (100% SNB by family size)
- Work expense allowance ($100/employed person)
- Earned income disregard rate (50%)
- Resource limit ($2,000)

Reference: Utah Admin. Code R986-200

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@codecov
Copy link

codecov bot commented Dec 10, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (ba52386) to head (da1d3aa).
⚠️ Report is 42 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##            master     #6929    +/-   ##
==========================================
  Coverage   100.00%   100.00%            
==========================================
  Files            2        11     +9     
  Lines           26       140   +114     
==========================================
+ Hits            26       140   +114     
Flag Coverage Δ
unittests 100.00% <100.00%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@hua7450 hua7450 marked this pull request as ready for review December 12, 2025 18:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement Utah TANF program

1 participant