PolicyEngine / PolicyEngine/microcosm

US: store years_since_us_entry from PEINUSYR (blocked on engine ICHIA option)

Open
#776 0 comments 0 reactions 0 assignees View on GitHub

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.