PolicyEngine / PolicyEngine/microcosm
US: store years_since_us_entry from PEINUSYR (blocked on engine ICHIA option)
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 0
- Forks
- 4
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 94
Description
Split from #767 (see the design comment there).
The release does not store years_since_us_entry; every person gets the policyengine-us default of 5, i.e. past the federal five-year bar (the engine documents the default as a deliberate pre-bar-preserving choice). The raw signal exists — the immigration stage already parses PEINUSYR arrival-year midpoints — so storing time_period - arrival_year is nearly free and would make the 8 USC 1613 bar machinery real:
- recent-arrival LPRs (arrived <5 years, not bar-exempt) would correctly lose baseline federal Medicaid;
- the §71302 below-FPL PTC exception (repealed 2026) would bind on its main CBO-scored population — recent LPRs inside the bar — rather than only the TPS channel #767 added;
- WA RCA/TANF immigration windows would activate.
Prerequisite (why this is not in #767): policyengine-us models state Medicaid coverage of the undocumented but not the CHIPRA-214/ICHIA lawfully-residing option (~half of states waive the five-year bar for children and pregnant people). is_medicaid_immigration_status_eligible has no ICHIA term, so storing true entry years would strip reported-receipt recent-LPR children in ICHIA states out of baseline Medicaid — a regression against measured CPS receipt. Encode the ICHIA state option in policyengine-us first (file and link a pe-us issue), then store the column.
Also note the statutory wrinkle: the bar runs from qualified-status grant, not entry; entry year is the best available proxy and matches the engine variable's own label. Blast radius when implemented: new person output column on the immigration stage → late-producer/stacked-spine/release-input-coverage registries and pins (see the us-stage checklist), plus medicaid/SNAP-adjacent calibration shifts in the next build lane.
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 with the #767 design comment and the policyengine-us ICHIA prerequisite; then inspect the immigration stage where PEINUSYR is parsed. Trace the us-stage checklist's late-producer, stacked-spine, and release-input-coverage registries and pins. Done means the ICHIA option is available and the new years_since_us_entry output is propagated without the described Medicaid regression.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- data
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100