Colorado OmniSalud and Washington Cascade Care Savings Group 3 pay $0: the benchmark premium is zero for undocumented members

Open
#9,553 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

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

Research direction

Start by tracing the slcsp calculation, its slcsp_age_curve_amount_person and slcsp_family_tier_amount components, and the pays_aca_premium gate. Compare the co_omnisalud and wa_cascade_care_savings rules with the Group 3 tests, then add cases that compute slcsp rather than supplying it. Done means eligible undocumented members receive the benchmark-based benefit while federal credit eligibility remains unchanged.

Written by the indexing model from the issue text.

Description

Two state programs built for undocumented residents mark the person eligible and then pay nothing, because the benchmark premium they depend on is zero for anyone the federal premium tax credit excludes.

slcsp adds slcsp_age_curve_amount_person and slcsp_family_tier_amount, and slcsp_age_curve_amount_person is defined_for = "pays_aca_premium". pays_aca_premium requires is_aca_ptc_immigration_status_eligible, which is false for an undocumented person. So their slcsp is 0, and:

  • co_omnisalud is adds = ["slcsp"], so it is 0.
  • wa_cascade_care_savings caps the household amount at slcsp - aca_ptc, so Group 3 (undocumented residents, #9513) is capped at 0.

Reproduction

main at 25380edf72, single adult aged 40, tax year 2026. Only immigration_status changes between rows.

State Earnings Status Eligible slcsp Member amount Benefit
CO 10,000 UNDOCUMENTED co_omnisalud_tax_unit_eligible true 0 co_omnisalud 0
WA 32,000 UNDOCUMENTED wa_cascade_care_savings_eligible true 0 3,000 wa_cascade_care_savings 0
WA 32,000 CITIZEN true 7,176.90 660 660

The Washington Group 3 tests pass because they supply slcsp as an input.

Possible fix

Give the benchmark premium a gate that does not depend on federal credit eligibility (age curve, rating area and the no-other-coverage test), and let pays_aca_premium keep the federal status test for the federal credit. Then add one case per program that computes slcsp instead of supplying it.

This interacts with #9506, which adds an income floor to the same gate.

Found while reviewing #9513 and #9506.

Dominant language
Python
Stars
163
Forks
213
Avg merge
2d 20h
Merged PRs (30d)
97

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.

More from PolicyEngine/policyengine-us

All issues in PolicyEngine/policyengine-us

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.