PolicyEngine / PolicyEngine/policyengine-us
Federal noncitizen eligibility rules omit the veteran and active-duty exception (8 USC 1612(a)(2)(C), 1612(b)(2)(C), 1613(b)(2))
- Dominant language
- Python
- Stars
- 162
- Forks
- 212
- Avg merge
- 3d 3h
- Merged PRs (30d)
- 97
Description
## Summary
PRWORA carves veterans, active-duty service members, and their spouses and unmarried dependent children out of the qualified-alien restrictions on federal benefits. PolicyEngine's federal immigration-status eligibility variables do not model this exception in any program.
Statutory text (all three read "an alien who is lawfully residing in any State and is (i) a veteran ... with a discharge characterized as an honorable discharge and not on account of alienage ... (ii) on active duty (other than active duty for training) in the Armed Forces ... or (iii) the spouse or unmarried dependent child of [such an individual] or the unremarried surviving spouse"):
- [8 U.S.C. 1612(a)(2)(C)](https://uscode.house.gov/view.xhtml?req=granuleid:USC-prelim-title8-section1612&num=0&edition=prelim): exception to the SSI and SNAP qualified-alien restrictions. For SSI this waives the 40-qualifying-quarter requirement for lawful permanent residents.
- [8 U.S.C. 1612(b)(2)(C)](https://uscode.house.gov/view.xhtml?req=granuleid:USC-prelim-title8-section1612&num=0&edition=prelim): states may not exclude these individuals from TANF, Medicaid, or SSBG.
- [8 U.S.C. 1613(b)(2)](https://uscode.house.gov/view.xhtml?req=granuleid:USC-prelim-title8-section1613&num=0&edition=prelim): exception to the five-year bar on federal means-tested public benefits (Medicaid, CHIP, TANF, SNAP, SSI).
## Where the model diverges
| Program | Variable / parameter | Current behavior | Missing |
|---|---|---|---|
| SSI | `is_ssi_qualified_noncitizen` (`gov/ssa/ssi/eligibility/status/`) | LPRs must meet `qualifying_quarters_threshold` (40 quarters) | 1612(a)(2)(C) waives the quarters test for veteran/active-duty LPRs and their spouses/children |
| Medicaid | `is_medicaid_immigration_status_eligible`; `gov/hhs/medicaid/eligibility/bar_exempt_immigration_statuses.yaml` | Five-year bar exempt list is REFUGEE, ASYLEE, CUBAN_HAITIAN_ENTRANT, DEPORTATION_WITHHELD | 1613(b)(2) exempts veteran/active-duty families of any qualified-alien status (e.g., an LPR veteran within five years of entry) |
| TANF | `gov/hhs/tanf/bar_exempt_immigration_statuses.yaml` (used by `wa_tanf_immigration_status_eligible`) | Same list; the file's comment already lists 1613(b)(2) as "NOT modeled" | Same as Medicaid |
| SNAP | `is_snap_immigration_status_eligible`; `gov/usda/snap/eligibility/eligible_immigration_statuses.yaml` | Status-only list; no five-year bar and no veteran test | Before 2025-07 (P.L. 119-21 § 10108), an LPR veteran within five years of entry was eligible via 1612(a)(2)(C) while the model's list already admitted all LPRs, so the gap is only relevant to a future five-year-bar implementation. After OBBBA, 7 U.S.C. 2015(f) limits SNAP to citizens, LPRs, Cuban/Haitian entrants, and COFA residents regardless of the 1612 exceptions, so no change is needed for current law. |
The largest practical effects are SSI (LPR veterans and their families without 40 quarters) and Medicaid/TANF (LPR veterans and their families inside the five-year bar).
## Why it is not a one-line fix
The exception cuts across `ImmigrationStatus` values, so it cannot be expressed in the existing status lists. It needs a veteran/active-duty signal at the person level plus a family link (spouse, dependent child, surviving spouse). The only veteran signal today is `is_veteran`, defined as `veterans_benefits > 0`:
- a veteran or active-duty member who receives no VA payment is invisible;
- spouses and children of a veteran are not identifiable from a benefit amount;
- `veterans_benefits` pools pension, compensation, DIC, and education benefits (see #5238).
A minimal implementation would make `is_veteran` an input with the current formula as its default, add an `is_active_duty`-style input or fold it into the same flag, and derive the family exception from `is_veteran` on the spouse or parent within the marital/tax unit. Whether to add such inputs is a design decision; this issue records the gap.
## Related
- #4754 (closed): SSI qualified-noncitizen rules; its body listed veteran status among the exceptions it left out.
- #5238: consolidate `is_veteran`.
- #8296: COFA status, another 1613(b) exemption the enum cannot represent.
- #9388: Lifeline Veterans and Survivors Pension route, which also needs a veteran signal that `veterans_benefits` cannot provide.
Contributor guide
Research direction
Start by reading the SSI eligibility/status variables, Medicaid's bar_exempt_immigration_statuses.yaml, TANF's corresponding YAML, and the SNAP immigration-status eligibility variable. Review #5238 and the existing is_veteran definition before resolving the person-level, active-duty, and family-link input design. Done should represent the statutory veteran and active-duty exceptions in the applicable programs while preserving SNAP's current-law behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100