Skip to content

Fix ACA family tier premiums for older dependents#8238

Merged
MaxGhenis merged 1 commit intomainfrom
codex/fix-aca-ny-vt-dependent-tiers
May 7, 2026
Merged

Fix ACA family tier premiums for older dependents#8238
MaxGhenis merged 1 commit intomainfrom
codex/fix-aca-ny-vt-dependent-tiers

Conversation

@MaxGhenis
Copy link
Copy Markdown
Contributor

@MaxGhenis MaxGhenis commented May 7, 2026

Summary

  • Count premium-paying ACA tax dependents under age 26 as dependent children for family-tier states when there is a covered adult family-tier anchor.
  • Treat New York tax-dependent children ages 26 through 29 as dependent children using the NY Age 29 child tier rate, while avoiding NY Child Only pricing for covered age-26-through-29 dependents without a covered adult.
  • Add extra adult benchmark premiums when NY/VT tax units have more than two premium-paying adults, including older adult dependents.
  • Apply the same family-tier logic to SLCSP and lowest-cost bronze plan premiums.

Policy Sources

Root Cause

NY and VT use family-tier premiums instead of age curves, but the model reused the under-21 age-rating child cutoff and collapsed all adult counts above two into the two-adult tier. That treated 21-25 tax dependents as adults, missed NY's separate age-26-through-29 child tier, and dropped premium costs for older adult dependents.

Review Notes

A secondary review found two issues. This revision fixes the Child Only edge case for NY age-26-through-29 dependents without a covered adult and avoids applying the NY Age 29 child factor to extra older-adult premiums. The remaining precision limitation is that NYSOH publishes exact SLCSP amounts by county and family type, while the current model stores NY benchmark inputs by rating area/base adult premium; this PR keeps the existing family-tier multiplier approach and adds the Age 29 factor within that framework.

Tests

  • uv run ruff check policyengine_us/variables/gov/aca/slspc/is_aca_family_tier_dependent_child.py policyengine_us/variables/gov/aca/slspc/is_aca_ny_age_29_dependent_child.py policyengine_us/variables/gov/aca/slspc/slcsp_family_tier_category.py policyengine_us/variables/gov/aca/lcbp/lcbp_family_tier_category.py policyengine_us/variables/gov/aca/slspc/slcsp_family_tier_multiplier.py policyengine_us/variables/gov/aca/lcbp/lcbp_family_tier_multiplier.py
  • uv run python -m policyengine_core.scripts.policyengine_command test policyengine_us/tests/policy/baseline/gov/aca/slcsp/family_tier_category.yaml -c policyengine_us
  • uv run python -m policyengine_core.scripts.policyengine_command test policyengine_us/tests/policy/baseline/gov/aca/slcsp/family_tier_integration.yaml -c policyengine_us
  • uv run python -m policyengine_core.scripts.policyengine_command test policyengine_us/tests/policy/baseline/gov/aca/lcbp/lcbp_family_tier_amount.yaml -c policyengine_us
  • uv run python -m policyengine_core.scripts.policyengine_command test policyengine_us/tests/policy/baseline/gov/aca -c policyengine_us

@codecov
Copy link
Copy Markdown

codecov Bot commented May 7, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (623a65c) to head (aa16a7e).
⚠️ Report is 136 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff            @@
##              main     #8238   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files           12         6    -6     
  Lines          173       148   -25     
  Branches         4         0    -4     
=========================================
- Hits           173       148   -25     
Flag Coverage Δ
unittests 100.00% <100.00%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@MaxGhenis MaxGhenis force-pushed the codex/fix-aca-ny-vt-dependent-tiers branch from 83ee3d6 to 87c7ce0 Compare May 7, 2026 02:58
@MaxGhenis MaxGhenis force-pushed the codex/fix-aca-ny-vt-dependent-tiers branch from 87c7ce0 to aa16a7e Compare May 7, 2026 10:17
@MaxGhenis MaxGhenis marked this pull request as ready for review May 7, 2026 19:16
@MaxGhenis MaxGhenis enabled auto-merge (squash) May 7, 2026 19:17
@MaxGhenis MaxGhenis merged commit 39fe46d into main May 7, 2026
25 checks passed
@MaxGhenis MaxGhenis deleted the codex/fix-aca-ny-vt-dependent-tiers branch May 7, 2026 19:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant