Skip to content

Make 2025 ACA take-up override state-aware#861

Open
daphnehanse11 wants to merge 2 commits intomainfrom
codex/issue-764-state-aware-aca
Open

Make 2025 ACA take-up override state-aware#861
daphnehanse11 wants to merge 2 commits intomainfrom
codex/issue-764-state-aware-aca

Conversation

@daphnehanse11
Copy link
Copy Markdown
Collaborator

@daphnehanse11 daphnehanse11 commented May 1, 2026

Summary

  • make the 2025 ACA post-calibration take-up override use checked-in state APTC enrollment targets when available
  • when state spending targets are available, select ACA takers by PTC per covered person so the final vector targets both enrollment and assigned PTC spending
  • allow the override to add or remove tax-unit ACA take-up by state, instead of only topping up nationally
  • add policyengine_us_data.calibration.diagnose_aca_state_targets for reusable staging-H5 ACA diagnostics
  • bump policyengine-us to 1.680.0 so generated data includes the Basic Health Program ACA eligibility fix from policyengine-us#8127

Closes #764.

Test plan

  • .venv/bin/python -m pytest tests/unit/test_enhanced_cps.py tests/unit/calibration/test_unified_calibration.py::TestAcaTakeupTargeting -q
  • .venv/bin/python -m ruff check policyengine_us_data/utils/takeup.py policyengine_us_data/datasets/cps/enhanced_cps.py policyengine_us_data/calibration/diagnose_aca_state_targets.py tests/unit/test_enhanced_cps.py tests/unit/calibration/test_unified_calibration.py
  • .venv/bin/python -m ruff format --check policyengine_us_data/utils/takeup.py policyengine_us_data/datasets/cps/enhanced_cps.py policyengine_us_data/calibration/diagnose_aca_state_targets.py tests/unit/test_enhanced_cps.py tests/unit/calibration/test_unified_calibration.py
  • all-state staging diagnostic on cached 1.89.1_a2f3bb36_20260430_205113 state H5s under policyengine-us 1.680.0

Smoke diagnostic

Applied the updated selector to cached staging state H5s under policyengine-us 1.680.0:

State Enrollment target Selected Enrollment error Assigned PTC spending error
NY 118,526 118,542 +0.01% +0.10%
MN 91,520 91,517 -0.004% -2.68%
FL 4,472,539 2,961,537 -33.78% -70.09%
TX 3,713,574 3,713,560 -0.0004% -56.26%

All-state diagnostic output saved locally to /tmp/aca_diag_all_spending_best.csv:

  • 50/51 states completed; NM still fails with an unrelated non-ASCII decode error in the staging H5.
  • Only DC (-3.50%) and FL (-33.78%) are more than 1% off on adjusted enrollment among completed states.
  • FL is a hard support ceiling: the file has 2.96M potential positive-PTC people against a 4.47M enrollment target.
  • NY and MN, the alarming BHP states, are no longer over-allocated after combining policyengine-us#8127 with the state/spending-aware selector.
  • Many states still have low assigned PTC spending even after high-subsidy selection, especially FL/TX/GA. That points to a separate target/model-dollar issue rather than take-up allocation; see Replace per-state CMS APTC target with IRS SOI Net Premium Tax Credit (A11560/N11560) #805 for the target-definition side.

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.

Make the 2025 ACA take-up override state-aware and calibration-consistent

1 participant