PolicyEngine / PolicyEngine/policyengine-us

Calibrate Marketplace take-up and selected-plan premium ratios

Open
#8,168 0 comments 0 reactions 1 assignee Claimed by @daphnehanse11 View on GitHub
aca-subsidy
Dominant language
Python
Stars
163
Forks
213
Avg merge
3d 3h
Merged PRs (30d)
96

Description

## Problem

After #8163, PolicyEngine-US computes `marketplace_net_premium` for subsidized and unsubsidized Marketplace buyers, but two inputs remain coarse:

- `takes_up_aca_if_eligible` is a tax-unit-level default-true switch used to gate Marketplace premium payment, including unsubsidized buyers.
- `selected_marketplace_plan_benchmark_ratio` defaults to `1.0`, so the selected plan is assumed to cost the same as the SLCSP benchmark unless the user supplies an override.

This is workable for policy mechanics, but it limits baseline calibration and reform analysis. Actual Marketplace enrollees choose bronze, silver, gold, and other plans with selected premiums that can differ substantially from the benchmark. The selected premium determines `marketplace_net_premium`, which feeds health-cost accounting and eventually MOOP/SPM work in #8089 and #8095.

## Desired direction

Define the model/data contract for observed Marketplace coverage and selected plan cost:

- Decide whether `has_marketplace_health_coverage_at_interview` should inform baseline Marketplace take-up, while preserving a reform-responsive simulated take-up path.
- Replace the unconditional `selected_marketplace_plan_benchmark_ratio = 1.0` default with either a calibrated/imputed ratio or a documented explicit-input path.
- Consider calibration by state, income/FPL band, metal tier, age/family structure, or a simpler national/state average if the data cannot support richer variation.
- Keep the result compatible with `marketplace_net_premium`, `used_aca_ptc`, and future MOOP residualization.

## Acceptance criteria

- Documented decision on observed vs simulated Marketplace take-up.
- A calibrated or explicitly user-supplied treatment of `selected_marketplace_plan_benchmark_ratio`.
- Tests covering a benchmark-plan case, a lower-premium selected plan (e.g. bronze-like ratio below 1), and an unsubsidized Marketplace buyer.
- Cross-reference or integration note for #8089 and #8095 so MOOP residualization uses the same selected-premium concept.

## Related

- #8163 — added unsubsidized Marketplace net premium support.
- #8095 — Marketplace net premium and Medicare Part B for reform-responsive MOOP.
- #8089 — broader computed-premium residualization architecture.
- #5963 — ACA eligibility gap around disqualifying ESI offers.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.