PolicyEngine / PolicyEngine/policyengine-us
Fix TANF application-month income and assistance-unit modeling in CPS baseline
- Dominant language
- Python
- Stars
- 163
- Forks
- 213
- Avg merge
- 3d 3h
- Merged PRs (30d)
- 96
Description
## Problem
After fixing TANF resource inputs and re-profiling full-takeup caseloads against FY2024 ACF targets, the remaining worst states are structural TANF eligibility misses rather than takeup-prior issues:
- Oregon modeled average monthly TANF recipients: `0` vs admin target `18,196`
- Kansas modeled average monthly TANF recipients: `0` vs admin target `2,933`
- Maryland modeled average monthly TANF recipients: `4,852` vs admin target `12,919`
- New York modeled average monthly TANF recipients: `97,049` vs admin target `128,335`
DC was separately fixed by removing work-requirement compliance as an upfront TANF eligibility gate; that brought DC from `0` to `4,852` vs admin `5,056`.
## Findings
### 1. TANF is being screened on SPM-unit structure rather than narrower TANF need-group / assistance-unit concepts
Oregon is the clearest example. In the CPS baseline:
- Oregon weighted demographic-eligible TANF units: `354,227`
- Oregon weighted income-eligible TANF units: `126,163`
- Oregon weighted top-level eligible TANF units: `0`
The demographic-eligible and income-eligible sets are disjoint. Income-eligible units are only size 1-2, while nearly all child-family TANF cases are size 3+.
This suggests current formulas are applying TANF income limits to whole SPM units, not a narrower need group / assistance unit.
### 2. TANF monthly income tests are using CPS annual-income constructs rather than a defensible application-month proxy
For Oregon demographic-eligible units, the weighted median current TANF countable income is on the order of `$8k-$10k` per month against TANF payment standards under `$1k`, which is implausibly high for a caseload program.
This is driven by feeding monthly TANF rules with annual CPS income constructs. A quick counterfactual using current-hours/current-wage proxies materially restores plausible Oregon eligibility counts, but a naive shared replacement was not stable enough to land yet.
### 3. Kansas gross-income screen remains binding after other screens
Kansas still has zero modeled recipients even though there are weighted units that pass demographic, resource, and net-income screens before the gross-income gate.
## Next steps
- Add a TANF-specific current-month earned-income proxy for CPS baseline construction or in-model TANF screening.
- Audit TANF formulas that should use assistance-unit / need-group structure rather than raw SPM-unit size and income.
- Re-profile implied state takeup rates after the above before introducing state-specific TANF takeup priors.
## Context
This came out of the TANF calibration / asset hookup audit and ACF FY2024 caseload comparison.
Contributor guide
Research direction
Start with CPS baseline construction and the TANF eligibility formulas, focusing on the application-month income proxy and the assistance-unit or need-group structure described in the issue. Compare Oregon and Kansas screening results with the FY2024 ACF caseload targets, then re-profile implied state takeup rates after the structural changes. Done means the affected states produce plausible TANF eligibility and caseload results without relying on state-specific takeup priors.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- data
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100