PolicyEngine / PolicyEngine/policyengine-us

Complete `is_aca_eshi_eligible` by modeling disqualifying ESI offers

Open
#5,963 0 comments 0 reactions 1 assignee Claimed by @daphnehanse11 View on GitHub
aca-subsidy
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.