Skip to content

Conversation

@hua7450
Copy link
Collaborator

@hua7450 hua7450 commented Jan 5, 2026

Summary

Implements Florida's Temporary Cash Assistance (TCA) program, the state's TANF implementation administered by the Department of Children and Families (DCF).

Closes #6723


Florida TCA Income Rules

Regulatory Authority

  • Florida Statutes 414.095 - Eligibility for temporary cash assistance
  • FAC 65A-4.220 - Amount and Duration of Cash Payment
  • FAC 65A-1.716 - Resource Limits
  • DCF Policy Manual 2620 - Economic Self-Sufficiency Manual

1. INCOME ELIGIBILITY TESTS

Gross Income Test

  • Limit: 185% of Federal Poverty Level (FPL)
  • Definition: Total gross earned income + gross unearned income, prior to any disregards
  • Note: Per DCF Policy Manual 2620.0109.01, no disregards are applied: "The standard earned income disregard, 200 and 1/2 which includes the standard earned income disregard of $90, is not deducted in this test."

Source: FAC 65A-4.220, DCF Policy Manual 2620.0109.01

Net Income Test

After passing the gross income test, countable income (after disregards) must be below the Payment Standard for family size and shelter tier.

Source: Florida Statutes 414.095(12)


2. INCOME DEDUCTIONS & EXEMPTIONS

A. Standard Earned Income Disregard

Deduction Amount
Flat deduction from gross earned income $90

Source: DCF Policy Manual 2620.0111.01

B. Earned Income Disregard ($200 + 50%)

After subtracting the $90 standard disregard:

  1. First $200 of remaining earned income is disregarded
  2. Then 50% of remaining earned income is disregarded

Source: Florida Statutes 414.095(11)

C. Child Care Deduction

Per Florida Statutes 414.095(12)(b): "A deduction may not be allowed for child care payments."


3. INCOME STANDARDS BY FAMILY SIZE

Florida uses a three-tier shelter payment system based on monthly shelter obligations:

Family Size Zero Shelter ($0) Low Shelter ($1-$50) High Shelter (>$50)
1 $95 $153 $180
2 $158 $205 $241
3 $198 $258 $303
4 $254 $309 $364
5 $289 $362 $426
6 $346 $414 $487
7 $392 $467 $549
8 $438 $519 $610
9 $485 $570 $671
10 $534 $623 $733
11 $582 $676 $795
12 $630 $728 $857
13 $678 $781 $919

Source: Florida Statutes 414.095(10)


4. BENEFIT CALCULATION

Formula:

Benefit = Payment Standard − Countable Income

Where Countable Income =

Countable Earned Income + Gross Unearned Income

And Countable Earned Income =

max(max(Gross Earned - $90, 0) - $200, 0) × 50%

Calculation Steps:

  1. Determine gross earned income
  2. Subtract $90 standard disregard
  3. Subtract $200 from remaining
  4. Multiply remainder by 50%
  5. Add gross unearned income = Countable Income
  6. Subtract countable income from Payment Standard = Benefit

Source: FAC 65A-4.220


5. RESOURCE LIMITS

Limit Type Amount
Asset Limit $2,000

Source: FAC 65A-1.716


Not Implemented

The following Florida TCA program elements are not implemented in this PR:

Element Reason
48-month lifetime time limit Time limits not modeled in PolicyEngine
Work participation requirements Behavioral requirements not modeled
Vehicle exemptions ($8,500 limit) Detailed asset categorization not modeled
Child earned income disregard (high school students ≤19) Per Florida Statutes 414.095(11)(b), a child's earned income is fully disregarded if they attend high school and are 19 or younger. Requires tracking school enrollment status.

Files Added

Parameters (10 files)

policyengine_us/parameters/gov/states/fl/dcf/tanf/
├── income/
│   ├── disregard/
│   │   ├── first_amount.yaml           # $200
│   │   ├── remaining_rate.yaml         # 0.5 (50%)
│   │   └── standard_disregard.yaml     # $90
│   └── gross_test/
│       └── gross_income_limit_rate.yaml # 1.85 (185%)
├── payment_standard/
│   ├── high_shelter.yaml               # >$50 shelter tier
│   ├── low_shelter.yaml                # $1-$50 shelter tier
│   └── zero_shelter.yaml               # $0 shelter tier
├── resources/
│   └── asset_limit.yaml                # $2,000
├── max_family_size.yaml                # 13
└── shelter_cost_threshold.yaml         # $50

Variables (9 files)

policyengine_us/variables/gov/states/fl/dcf/tanf/
├── eligibility/
│   ├── fl_tca_eligible.py              # Overall eligibility
│   ├── fl_tca_gross_income_eligible.py # 185% FPL gross test
│   ├── fl_tca_net_income_eligible.py   # Payment standard net test
│   └── fl_tca_resources_eligible.py    # Resource test
├── income/
│   ├── fl_tca_countable_earned_income.py # Earned income after disregards
│   ├── fl_tca_countable_income.py      # Total countable income
│   └── fl_tca_gross_income.py          # Gross income (no disregards)
├── fl_tca_payment_standard.py          # Payment standard by size/shelter
└── fl_tca.py                           # Final benefit calculation

Tests (8 files, 69 tests)

File Tests
fl_tca.yaml 5
fl_tca_countable_earned_income.yaml 15
fl_tca_eligible.yaml 7
fl_tca_gross_income_eligible.yaml 4
fl_tca_net_income_eligible.yaml 4
fl_tca_payment_standard.yaml 11
fl_tca_resources_eligible.yaml 4
integration.yaml 19

Example Calculations

Example 1: Family of 2 with $500/month earned income, >$50 shelter

  • Gross Test: $500 < $3,151 (185% FPL for 2) ✓ Pass
  • Step 1: $500 - $90 = $410 (after standard disregard)
  • Step 2: $410 - $200 = $210, then × 50% = $105 countable
  • Payment Standard: $241 (size 2, >$50 shelter)
  • Net Test: $105 < $241 ✓ Pass
  • TCA Benefit: $241 - $105 = $136

Example 2: Family of 3 with $25/month shelter, zero income

  • Gross Test: $0 < $3,981 (185% FPL for 3) ✓ Pass
  • Countable Income: $0
  • Payment Standard: $258 (size 3, $1-$50 shelter tier)
  • Net Test: $0 < $258 ✓ Pass
  • TCA Benefit: $258

🤖 Generated with Claude Code

hua7450 and others added 2 commits January 4, 2026 19:36
Closes PolicyEngine#6723

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

Co-Authored-By: Claude <[email protected]>
Implements Florida's TANF program (Temporary Cash Assistance) administered
by the Department of Children and Families (DCF), including:

- Dual income test (185% FPL gross test + payment standard net test)
- Earned income disregard ($200 + 50% of remainder)
- Three-tier shelter-based payment standards
- Resource eligibility ($2,000 limit)
- Comprehensive unit and integration tests

Closes PolicyEngine#6723

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

Co-Authored-By: Claude <[email protected]>
@codecov
Copy link

codecov bot commented Jan 5, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (4d04480) to head (d020ba8).
⚠️ Report is 44 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff            @@
##              main     #7091   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files            8         9    +1     
  Lines          128       119    -9     
=========================================
- Hits           128       119    -9     
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 January 5, 2026 22:25
@PavelMakarchuk
Copy link
Collaborator

PR Review - Florida TCA Implementation

Summary

Overall Assessment: ✅ APPROVE

This is a well-implemented Florida Temporary Cash Assistance (TCA) program. The implementation correctly reflects Florida regulations and follows PolicyEngine coding standards.


🟢 Validation Results

Check Result Details
Regulatory Accuracy ✅ PASS Implementation matches FL Statutes 414.095, FAC 65A-4.220
Reference Quality ✅ PASS All 10 parameters have references
Code Patterns ✅ PASS No hard-coded values, proper vectorization
Test Coverage ✅ PASS 69 tests across 8 files
CI Status ✅ PASS All checks passing

✅ What's Correct

  1. Earned Income Disregard: Formula max(max(gross - $90, 0) - $200, 0) × 50% matches DCF Policy Manual 2620.0111.01
  2. Gross Income Test: 185% FPL limit without disregards per FAC 65A-4.220
  3. Payment Standards: All 39 values (13 sizes × 3 tiers) match FL Statutes 414.095(10)
  4. Asset Limit: $2,000 per FAC 65A-1.716
  5. Benefit Calculation: Payment Standard - Countable Income per FAC 65A-4.220

Test Calculation Verification:

  • $500/month earned → countable = (500-90-200)×0.5 = $105 ✓
  • Size 2, high shelter → payment standard = $241 ✓
  • Benefit = 241 - 105 = $136 ✓

🟡 Suggestions (Optional Improvements)

1. Parameter Description Wording

File: max_family_size.yaml

Change "caps" to "limits" for consistency with PolicyEngine style:

# Current
description: Florida caps family size at this number...

# Suggested
description: Florida limits family size to this number...

2. Reference Specificity

Several parameters cite statute sections (e.g., "414.095(11)") but could include specific paragraph letters (e.g., "414.095(11)(a)") where applicable for easier verification.

3. Date Consistency Note

The payment standard files use different effective dates:

  • high_shelter.yaml and low_shelter.yaml: 1992-01-01
  • zero_shelter.yaml: 1996-01-01

Consider adding a comment explaining this discrepancy if it reflects actual regulatory history.


🟢 Test Coverage Suggestions (Non-Blocking)

The current 69 tests provide excellent baseline coverage. For future enhancement, consider adding:

  1. Missing family sizes: Tests for sizes 4-12 in payment standard tests
  2. Unearned income at boundary: Gross income test with social security income alone
  3. Larger household integration: Size 8+ household end-to-end test

Code Quality Highlights

✓ Uses adds attribute for pure sums (fl_tca_countable_income, fl_tca_gross_income)
✓ Uses add() function correctly for person-level aggregation
✓ Uses add() > 0 pattern for immigration check
✓ Proper max_() and select() for vectorization
✓ No hard-coded values - all numeric values in parameters
✓ Proper use of defined_for attribute
✓ References use tuple format ()
✓ Test values use underscore separators (12_000)


File Summary

Category Files Count
Parameters 10 income disregards, payment standards, limits
Variables 9 eligibility, income, benefit calculation
Tests 8 69 total tests

Conclusion

This is a high-quality, well-documented implementation of Florida TCA. The regulatory research is thorough, the code follows PolicyEngine patterns, and the test coverage is comprehensive.

Recommended Action: Approve and merge.


🤖 Review generated with Claude Code

@PavelMakarchuk PavelMakarchuk merged commit cb9a589 into PolicyEngine:main Jan 9, 2026
9 checks passed
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 Florida TANF (Temporary Assistance for Needy Families)

2 participants