Skip to content

Add lcbp (Lowest Cost Bronze Plan) variable #8145

@daphnehanse11

Description

@daphnehanse11

Summary

Add an lcbp variable (Lowest Cost Bronze Plan) as a rating-area-level companion to slcsp. This would enable accurate computation of out-of-pocket bronze plan costs for ACA marketplace enrollees, symmetric with how silver costs are currently modeled.

Motivation

slcsp gives the Second Lowest Cost Silver Plan premium, age-curve adjusted by rating area. There is currently no equivalent for bronze. selected_marketplace_plan_benchmark_ratio defaults to 1.0 (silver benchmark) and policyengine-us-data PR #801 imputes it from CPS reported premiums — but there is no rules-based way to ask "what would this household pay for the lowest bronze plan?"

~35% of marketplace enrollees choose bronze (per CMS OEP data). Without lcbp, tools that want to show bronze plan costs must fall back to state-level average ratios, which don't account for rating area or age variation.

Proposed implementation

Mirror the slcsp variable structure exactly:

  • lcbp_age_0 — household-level, MONTH period. Looks up the base (age-0) lowest cost bronze plan premium by state + rating area from a parameter table (p.gov.aca.lcbp.state_rating_area_cost[state_code][rating_area]), same shape as the existing slcsp parameter tables.
  • lcbp_age_curve_amount_person — person-level, MONTH period. Multiplies lcbp_age_0 by the ACA age curve multiplier. Since ACA regulations mandate uniform age rating across all metal tiers, this reuses the existing p.gov.aca.age_curves parameters unchanged.
  • lcbp — tax-unit-level, MONTH period. adds = ["lcbp_age_curve_amount_person", "lcbp_family_tier_amount"] (family tier logic identical to silver).

The parameter data (rating-area-level age-0 bronze premiums) comes from the same CMS SLCSP/plan premium PUFs used to build the silver tables.

Relationship to policyengine-us-data

policyengine-us-data PR #618 added state-level CMS bronze enrollment targets, and PR #801 imputes selected_marketplace_plan_benchmark_ratio from CPS-reported premiums against the age-adjusted slcsp. The imputed ratio correctly captures metal tier choice because both numerator and denominator are age-adjusted. lcbp would give the rules-based complement — a computable bronze premium for any simulated household, not just CPS microdata households.

Usage

Once available:

bronze_net = max(0, lcbp - premium_tax_credit)

The PTC is unchanged by metal tier choice (it is always computed against the SLCSP benchmark), so net bronze cost is simply lcbp - ptc, floored at zero.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions