PolicyEngine / PolicyEngine/policyengine-us
Reconcile reported Medicaid coverage when modeled eligibility is false
- Dominant language
- Python
- Stars
- 162
- Forks
- 212
- Avg merge
- 3d 3h
- Merged PRs (30d)
- 97
Description
## Problem
PolicyEngine has separate inputs for reported Medicaid coverage (`has_medicaid_health_coverage_at_interview`, `receives_medicaid`) and modeled Medicaid enrollment (`medicaid_enrolled`). Outside narrow state-specific cases such as California continuous coverage, a person can report Medicaid at baseline while `is_medicaid_eligible=false` and `medicaid_enrolled=false`.
In SSI asset-limit reform analysis, these records then show up as newly Medicaid-enrolled when SSI receipt turns on, which can overstate the incremental Medicaid coverage/cost effect if the baseline report reflects real Medicaid, a limited-benefit Medicaid category, or a missing modeled eligibility pathway.
## Audit evidence
Run context:
- Dataset: rebuilt enhanced CPS 2024 H5 from `policyengine-us-data` SIPP/SSI work: `/Users/maxghenis/.codex-worktrees/us-data-sipp-ssi-sga-income-filter-20260524/policyengine_us_data/storage/enhanced_cps_2024.h5`
- Model: `policyengine-us==1.705.16`
- Audit files in `/Users/maxghenis/PolicyEngine/ssi-asset-limits`:
- `.local-results/net-fiscal/ten_twenty_2026_new_medicaid_record_audit_peus_1_705_16.csv`
- `.local-results/net-fiscal/no_limit_2026_new_medicaid_record_audit_peus_1_705_16.csv`
Among people who become SSI recipients and newly Medicaid-enrolled in the model:
- $10k/$20k SSI asset limit: **4.5k weighted people** outside the already-identified MI/MS gaps reported baseline Medicaid but had no modeled full-Medicaid pathway; modeled Medicaid cost increase about **$88M**.
- No SSI asset limit: **88.4k weighted people** reported baseline Medicaid but had no modeled full-Medicaid pathway; modeled Medicaid cost increase about **$1.22B**.
Top no-limit states in this reported-coverage/model-ineligible bucket included roughly:
| state | weighted people | examples |
|---|---:|---|
| AL | 45.5k | one large-weight aged/disabled Medicare/QMB case with high resources |
| TN | 31.4k | several disabled adults reporting Medicaid, many with resources above SSI/ABD caps |
| MD | 3.6k | aged Medicare records reporting Medicaid but modeled ineligible |
| FL | 2.2k | disabled/aged records reporting Medicaid but modeled ineligible |
| TX | 1.8k | disabled records reporting Medicaid but modeled ineligible |
| PA | 1.5k | disabled records reporting Medicaid but modeled ineligible |
## Why this matters
For baseline fiscal and reform analysis, the model should not silently treat a reported Medicaid-covered person as having no baseline Medicaid cost unless we are confident the report is not full Medicaid or the person is legally ineligible. The current behavior makes SSI receipt appear to create Medicaid coverage for some people who say they already have it.
This is especially important for reforms that change categorical eligibility, like SSI asset-limit changes, because missing baseline Medicaid pathways convert directly into reform-driven Medicaid cost increases.
## Suggested approach
Do not simply force every reported Medicaid record into full Medicaid enrollment. Instead, add an explicit reconciliation strategy, for example:
- Add a diagnostic variable for `reported_medicaid_but_not_modeled_eligible`.
- Decide whether `receives_medicaid` should preserve baseline enrollment more broadly than the current CA-specific continuous-coverage logic, at least for baseline/current-law simulations.
- Distinguish full-benefit Medicaid from limited-benefit Medicaid/MSP/QMB where data allow.
- Add tests showing how `medicaid_enrolled`, `medicaid_cost`, and health-benefit totals behave when a person reports Medicaid but no modeled eligibility category applies.
- Document the intended treatment so data pipelines can calibrate or filter these records consistently.
## Acceptance criteria
- Reported Medicaid/model-ineligible conflicts are visible in outputs or diagnostics.
- Baseline reported Medicaid does not silently become a reform-induced new Medicaid cost without a deliberate modeling choice.
- Tests cover at least one non-California reported-Medicaid case with no modeled category and one case where a missing legal pathway should be modeled instead of forced enrollment.
Contributor guide
Assessment
This issue has not been assessed yet.