PolicyEngine / PolicyEngine/microcosm
US: humanitarian immigration statuses absent from the imputation — H.R.1 §71109/§71302 eligibility channels compute ≈$0
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 0
- Forks
- 4
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 94
Description
Evidence
On the certified US release (populace-us-2024 Build P, read through policyengine.py 5.0.1), immigration_status carries variation but no records in the categories H.R.1 removes from program eligibility:
| status | records |
|---|---|
| CITIZEN | 153,491 |
| UNDOCUMENTED | 6,682 |
| LEGAL_PERMANENT_RESIDENT | 5,702 |
| CUBAN_HAITIAN_ENTRANT | 226 |
| DACA | 220 |
| REFUGEE / ASYLEE / DEPORTATION_WITHHELD / CONDITIONAL_ENTRANT / PAROLED_ONE_YEAR / TPS | 0 |
years_since_us_entry is populated (100% nonzero).
Why it matters
Three enacted H.R.1 eligibility channels key off exactly these categories and therefore compute ≈$0 on this file:
- Medicaid — §71109 narrows qualified immigrants to LPR + Cuban/Haitian entrants + COFA, effective 2026-10-01. Encoded in policyengine-us (
gov/hhs/medicaid/eligibility/eligible_immigration_statuses, 2026-10-01 value). - CHIP — same §71109, same date (KFF summary of the law). Not yet encoded in policyengine-us (filed separately), but the data gap binds regardless.
- ACA PTC — §71302: below-FPL lawfully-present exception repealed from 2026;
ineligible_immigration_statusesadds TPS/REFUGEE/ASYLEE/DEPORTATION_WITHHELD/PAROLED_ONE_YEAR from 2027-01-01. Encoded in policyengine-us.
CBO scores §71109 alone at −$6B federal Medicaid over 10 years and +100k uninsured by 2034. Any distributional analysis of the law on this file silently zeroes all three channels. Context: the IARIW OBBBA paper (PolicyEngine/obbba-paper) discloses this as a data boundary in its methods; the multi-year extension needs it fixed.
Ask
Carry humanitarian/temporary-protection statuses in the imputation so eligibility rules can see them. Design options, not mutually exclusive:
- Impute the missing categories onto the CPS base — reassign a calibrated share of current LPR/citizen records (or model directly from ACS/SIPP citizenship + entry-year + origin) to REFUGEE / ASYLEE / DEPORTATION_WITHHELD / PAROLED_ONE_YEAR / TPS / CONDITIONAL_ENTRANT, targeted to external stocks (DHS/ORR admissions, KFF/ASPE coverage counts of refugees-asylees on Medicaid/CHIP).
- A stored eligibility-check surface: alongside
takes_up_*_if_eligible, a data-level flag family (e.g.,passes_immigration_eligibility_check_{program}) that rules engines respect — so eligibility shocks flow to Medicaid, CHIP, and PTC coherently rather than being program-dollar overrides. This generalizes beyond immigration (verification/redetermination churn could use the same surface). - Interim (consumer-side, documented in the OBBBA repo): a seeded reform-level reassignment of statuses in the right proportions — acceptable for sensitivity work, not for certified estimates.
Acceptance criteria
immigration_statusdistribution on the release includes the humanitarian categories with weighted totals validated against a stated external source.- The three H.R.1 channels above produce nonzero, sign-correct effects when toggled on a certified release.
- Certification notes state the imputation source and target for each category.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing how immigration_status is imputed in the certified populace-us-2024 release and inspect policyengine-us's gov/hhs/medicaid/eligibility/eligible_immigration_statuses entry point and the ACA ineligible_immigration_statuses rule. Compare weighted category totals with the stated external sources and run certified-release scenarios; done means humanitarian categories are present, all three channels show nonzero sign-correct effects, and certification notes record sources and targets.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- data
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100