-
Notifications
You must be signed in to change notification settings - Fork 10
Description
Summary
@daphnehanse11 analyzed the impact of Utah HB 15 (Medicaid expansion repeal) and uncovered multiple data and model issues that significantly affect Medicaid category-level accuracy. The model produces ~172k expansion adults in Utah vs ~83k in admin data — more than 2x the actual figure — while disabled and pregnant categories are severely undercounted or missing entirely.
These findings are related to #555, which independently identified inflated income aggregates from the same calibration pipeline. Both issues share an underlying theme: the calibration-produced income distribution is inaccurate, and the calibration lacks sufficient program-level constraints.
Model vs Admin Data: Utah Medicaid Enrollment by Category
| Category | Model Estimate | MACPAC Admin Data | Difference |
|---|---|---|---|
| Children | ~215k | 233k | -8% |
| Expansion Adults | ~172k | 83k | +107% |
| Other Adults | ~7k | 46k | -85% |
| Disabled | ~14k | 49k | -71% |
| Aged | ~19k | 26k | -27% |
Issue 1: Income distribution — too many adults below 138% FPL
The core driver of the expansion overcount. The calibration pipeline only targets total Medicaid enrollment at the state level; no category-level targets exist to constrain the expansion vs non-expansion split. Because the calibrated income distribution places too many adults below 138% FPL, the model overassigns people to the expansion category.
This is directly related to #555, where the same calibration pipeline was found to produce distorted income distributions (inflated aggregates).
Issue 2: Disabled adult undercount
- Model: ~14k disabled Medicaid enrollees in Utah
- MACPAC admin: 49k
The only pathway into is_ssi_disabled_for_medicaid is ssi > 0 via is_ssi_recipient_for_medicaid. This misses:
- Medically needy disabled individuals
- Section 1619(b) participants (working disabled who retain Medicaid)
- State-specific disability categories
Only ~12.5k non-senior adults have SSI in the Utah dataset, creating a hard ceiling well below the actual disabled Medicaid population.
Issue 3: Zero pregnancy data
is_pregnant is False for every person in both national and state-level datasets. The CPS does not collect pregnancy status, and it is not imputed in the data pipeline.
This affects 57 files in policyengine-us spanning Medicaid, CHIP, WIC, SNAP, TANF, and Early Head Start eligibility logic. Pregnant women either fall into the ADULT expansion category (if income-eligible) or don't qualify at all, rather than receiving the higher income thresholds and categorical eligibility that pregnancy confers.
Issue 4: Zero monthly_hours_worked
monthly_hours_worked is always zero despite people having positive employment income. Weekly hours are computed from CPS data but never converted to monthly.
This silently activates the OBBBA Medicaid work requirements (effective 2027), which filter out adults working fewer than 80 hours/month. With monthly_hours_worked = 0 for everyone, the work requirement removes ~145k expansion adults — a massive and incorrect reduction.
Issue 5: How the original ~84k estimate was accidentally "right"
Before PR PolicyEngine/policyengine-us#7272 fixed the medicaid_category ordering bug, the model's expansion count was artificially inflated by the category priority logic. That inflation was partially offset by the work requirements filtering (Issue 4), and the two errors approximately cancelled out, landing near the ~83k admin figure by coincidence. After fixing #7272 without simultaneously addressing the work requirements bug, the expansion count jumped to ~172k.
Next Steps
- Add category-level Medicaid enrollment targets to the calibration pipeline
- Investigate income distribution calibration (related to Uncapped PUF incomes + calibration weights produce ~19x inflated state-level aggregates #555)
- Add a pathway for disability-based Medicaid beyond SSI receipt
- Impute pregnancy status from fertility rates or ACS PUMS data
- Fix
monthly_hours_workedcomputation (convert weekly → monthly)