PolicyEngine / PolicyEngine/policyengine-us

Fix TANF application-month income and assistance-unit modeling in CPS baseline

Open
#7,988 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.