PolicyEngine / PolicyEngine/policyengine-us
Complete `is_aca_eshi_eligible` by modeling disqualifying ESI offers
- Dominant language
- Python
- Stars
- 162
- Forks
- 212
- Avg merge
- 3d 3h
- Merged PRs (30d)
- 96
Description
## Current state
- `is_aca_eshi_eligible` in `policyengine-us` is currently defined as:
- `has_esi`, or
- `offered_aca_disqualifying_esi`
- The `has_esi` part is already populated from CPS ASEC in `policyengine-us-data`.
- The remaining gap is that `offered_aca_disqualifying_esi` is still just an input variable and is not derived from dataset inputs.
## What remains
- Determine whether CPS ASEC contains a usable proxy for being **offered** employer-sponsored insurance even when a person is not enrolled.
- If not, decide whether to:
- keep `offered_aca_disqualifying_esi` as an explicit input (defaulting to `False`), or
- construct a best-effort upstream proxy in `policyengine-us-data`.
- Add legal / regulatory references for the ACA rule that access to disqualifying employer-sponsored coverage makes a person ineligible for ACA PTC.
## Why this issue is still open
The original issue combined two subtasks:
- populate `has_esi`
- populate `offered_aca_disqualifying_esi`
The first is now done. The remaining open work is the offer-based ESI disqualification logic.
## Suggested acceptance criteria
- `has_esi` remains populated from dataset inputs.
- `offered_aca_disqualifying_esi` is either:
- populated from a documented CPS ASEC field or proxy, or
- explicitly documented as unavailable in CPS ASEC and left as a user-supplied input.
- `is_aca_eshi_eligible` documentation cites the relevant ACA eligibility rules.
Contributor guide
Assessment
This issue has not been assessed yet.