PolicyEngine / PolicyEngine/policyengine-us

Marketplace enrollees under the filing threshold lose the PTC but keep the premium (tax_unit_is_filer)

Open
#9,479 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
162
Forks
212
Avg merge
3d 3h
Merged PRs (30d)
97

Description

**Observed** (API, 2026): a childless married couple in Illinois, ages 30, on an `employment_income` axis $24,000–$36,000:

| earnings | `tax_unit_is_filer` | `premium_tax_credit` | `spm_unit_medical_out_of_pocket_expenses` | net income − MOOP |
|---|---|---|---|---|
| $27,000 | false | 0 | 0 (Medicaid) | $24,740 |
| $30,000 | **false** | **0** | **$19,870** | **$6,914** |
| $33,000 | true | $18,392 | $1,478 | $27,843 |

With `tax_unit_is_filer: true` forced on the tax unit, $30,000 gives PTC $18,779, MOOP $1,090, $25,694 — the phantom $18,780 cliff disappears.

**Cause**: `aca_ptc` multiplies by `tax_unit_is_filer`. Between the end of the childless EITC (~$26,800) and the joint filing threshold ($32,200) the unit is "not a filer", so the credit is zeroed while `pays_aca_premium` stays true and the unit is charged the full benchmark premium. The same happens to any unit with no EITC below its filing threshold (childless couples under 25; couples on non-taxable SSDI plus small wages).

**Expected**: a household that takes APTC must file a return (26 U.S.C. §36B(f); Form 8962), so PTC eligibility should not depend on the filing-threshold test — treat marketplace enrollees as filers, or gate `pays_aca_premium` on subsidy eligibility. In a 51-state sweep of a childless-couple archetype this artifact is the largest "cliff" in 45 states (Vermont $30,647, Wyoming $22,372, Utah $21,962, West Virginia $21,890).

**Repro**: the household above with `state_name: IL`, requesting `tax_unit_is_filer`, `premium_tax_credit`, `spm_unit_medical_out_of_pocket_expenses`; then the same with `tax_unit_is_filer: {"2026": true}` on the tax unit.

Contributor guide

Open the contributing guide

Research direction

Start by tracing the aca_ptc and pays_aca_premium calculations using the Illinois household reproduction, requesting tax_unit_is_filer, premium_tax_credit, and spm_unit_medical_out_of_pocket_expenses. Compare the normal case with the forced tax_unit_is_filer case, then verify that marketplace enrollees no longer lose the credit while retaining the full premium and that the reported income cliff is removed.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.