Skip to content

Add marketplace_net_premium variable (Marketplace premium net of PTC)#8105

Merged
MaxGhenis merged 1 commit intomainfrom
marketplace-net-premium
Apr 19, 2026
Merged

Add marketplace_net_premium variable (Marketplace premium net of PTC)#8105
MaxGhenis merged 1 commit intomainfrom
marketplace-net-premium

Conversation

@MaxGhenis
Copy link
Copy Markdown
Contributor

Partially addresses #8095.

What

New variable `marketplace_net_premium` = `selected_marketplace_plan_premium_proxy − used_aca_ptc`.

The net out-of-pocket Marketplace premium a tax unit pays after the advance PTC is applied. Rules-based counterpart to the CPS-imputed Marketplace portion of `health_insurance_premiums_without_medicare_part_b`.

Why not wire into SPM MOOP yet

The SPM MOOP wrapper (#8103) swaps imputed Medicare Part B for rules-based Medicare Part B cleanly because there's a dedicated imputed variable (`medicare_part_b_premiums`) that can be subtracted.

For Marketplace, the CPS-imputed Marketplace net premium is commingled inside `health_insurance_premiums_without_medicare_part_b` along with employer-sponsored insurance premiums, small Medicaid/CHIP premium receipts, etc. We can't cleanly subtract the Marketplace share without either:

  1. A per-household "takes up Marketplace" flag in the CPS imputation, or
  2. A reform-delta-only application pattern (only add the difference between reform and baseline computed values).

Either is a us-data-side change. Filing the wiring as a follow-up once the isolation mechanism is in place.

Meanwhile

  • `marketplace_net_premium` is available for consumers that want rules-based Marketplace net cost (cliff calculators, affordability analyses, reform studies). The variable moves with PTC reforms and benchmark changes.

Testing

3/3 tests pass: normal case, no-takeup case, PTC-exceeds-premium zero-floor case.

Test plan

  • Local tests pass
  • `make format` / `ruff check` clean
  • CI passes

Computes the annual out-of-pocket Marketplace premium after the advance
PTC is applied:

    net = selected_marketplace_plan_premium_proxy − used_aca_ptc

Rules-based counterpart to the Marketplace portion of CPS-imputed
health_insurance_premiums_without_medicare_part_b. Not yet wired into
SPM MOOP because the imputed share attributable to Marketplace coverage
isn't cleanly isolable from the combined CPS variable — subtracting it
cleanly would need either a per-household "on Marketplace" flag in the
CPS imputation or a reform-delta-only application. Tracked as follow-up.

Partially addresses #8095 (Marketplace half).
@codecov
Copy link
Copy Markdown

codecov bot commented Apr 19, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (05d5d97) to head (b688a93).
⚠️ Report is 36 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##              main     #8105    +/-   ##
==========================================
  Coverage   100.00%   100.00%            
==========================================
  Files           18         1    -17     
  Lines          353        13   -340     
  Branches         4         0     -4     
==========================================
- Hits           353        13   -340     
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 merged commit a47d589 into main Apr 19, 2026
12 of 15 checks passed
@MaxGhenis MaxGhenis deleted the marketplace-net-premium branch April 19, 2026 20:25
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