health-data sbc consumer-finance

SBC Data Explained: Making Out-of-Pocket Costs Transparent

Mark at Opelyx ·

The premium is the number everyone focuses on when comparing health plans. It shows up in the search results, it’s the thing you pay every month, and it’s the easiest number to compare. A $300/month plan is cheaper than a $450/month plan, right?

Not necessarily. For someone managing a chronic condition, the plan with the $150/month premium difference might cost them $3,000 more annually when you account for what they actually use. This is the core problem that Summary of Benefits and Coverage (SBC) documents exist to address — and it’s the data that powers our oop-estimate endpoint.

What an SBC Is

The ACA mandated that every health plan provide a standardized Summary of Benefits and Coverage document. Before 2011, plan summary documents varied wildly in format, terminology, and the information they included. You couldn’t compare two plans’ cost-sharing structures without reading pages of dense insurance jargon.

The SBC requirement fixed this with a standard 4-page format. Every plan’s SBC answers the same questions in the same order: What’s the deductible? What’s the OOP max? What does a primary care visit cost? What do generic drugs cost?

Critically, CMS also requires the SBC to include cost estimates for two standard medical scenarios:

  • Having a baby (normal delivery)
  • Managing type 2 diabetes for a year

Each scenario includes an estimate of total medical costs and a breakdown of what the member pays vs. what the plan pays. These aren’t hypotheticals — they’re calculated based on actual claim cost distributions and applied to the specific plan’s cost-sharing rules.

Our API exposes both of these SBC scenarios and adds three heuristic usage scenarios — low, medium, and high — for a total of five. The SBC scenarios use CMS-provided cost data specific to each plan. The heuristic scenarios estimate costs based on the plan’s metal level actuarial value and its deductible/MOOP structure, applied to typical annual utilization levels ($1,500 for low, $8,000 for medium, $25,000 for high). This gives developers five realistic lenses on total annual cost, with the SBC scenarios being the most precise because they come directly from each insurer’s benefit calculations.

The Five Scenarios in Detail

Having a baby is the most expensive of the SBC scenarios. The standard CMS assumptions use approximately $16,500 in total medical costs for normal delivery (prenatal care, delivery, and postpartum visits). For a first-time parent trying to choose a plan during open enrollment, this scenario is highly relevant.

The plan’s cost-sharing kicks in at the deductible. A Bronze plan with a $7,000 individual deductible means the member pays the first $7,000 out of pocket — plus the coinsurance after that up to the OOP max. For a scenario with $16,500 in total costs and a plan with a $7,500 OOP max, you’re probably hitting the OOP max.

Managing type 2 diabetes for a year is the scenario that most clearly illustrates why cheap premiums can be a trap. The CMS assumptions include office visits, lab work, and prescription drugs — the ongoing care that a diabetic patient actually needs. Generic metformin is cheap. But regular A1C tests, ophthalmology visits, and any branded medications can add up fast.

Here’s an example from the 2026 plan data that I find instructive. Consider two plans in the same Florida rating area for a 45-year-old:

  • Plan A: $298/month premium, $6,500 deductible, $7,000 OOP max, Bronze
  • Plan B: $421/month premium, $1,500 deductible, $5,000 OOP max, Silver with cost-sharing reduction

At first glance, Plan A saves $1,476/year in premiums. But for the diabetes management scenario, Plan A results in approximately $4,200 in OOP costs while Plan B results in approximately $1,100 in OOP costs — a $3,100 difference in cost sharing. Net result: the “cheaper” Bronze plan costs $1,624 more for someone actively managing diabetes.

Low / medium / high utilization are heuristic scenarios that fill the gap for consumers whose expected healthcare use doesn’t match the two SBC scenarios. A healthy 28-year-old who sees a doctor once a year is a low scenario ($1,500 in total allowed charges). Someone with moderate prescriptions and a few specialist visits is medium ($8,000). Someone facing surgery or a complex condition is high ($25,000). These estimates use the plan’s deductible, metal level coinsurance rate, and OOP max to model member costs. They’re less precise than SBC data because they don’t come from insurer-specific benefit calculations, but they cover the utilization spectrum that the SBC scenarios miss.

The Data Extraction Challenge

The SBC data in the CMS PUF comes from the Benefits and Cost Sharing file, not the SBC PDFs themselves. CMS has standardized benefit codes that map to specific services and cost-sharing structures. The actual scenario cost estimates for each plan are calculated by applying the plan’s cost-sharing rules to the standard CMS usage assumptions.

In the CMS data, this looks like rows with specific BenefitName codes:

  • Having a Baby — deductible, copayment, coinsurance, and limit components
  • Managing Type 2 Diabetes — deductible, copayment, coinsurance, and limit components

Not every plan in the PUF has complete scenario data. The coverage is high for FFM states but there are gaps, particularly for newer issuers and for some SBM state data where the benefits file format differs from the standard.

When SBC scenario data is missing, we fall back to a heuristic calculation: apply the plan’s deductible, metal level coinsurance rate, and OOP max to standard cost assumptions ($16,500 for having a baby, $10,000 for managing diabetes). This is less accurate than plan-specific SBC data but significantly better than returning nothing. The API response includes an sbc_data_available boolean so consumers always know whether they’re looking at insurer-calculated costs or heuristic estimates.

The oop-estimate Endpoint

The API endpoint is GET /v1/health/plans/:id/oop-estimate. The plan ID is part of the URL path, and the remaining parameters are query strings:

GET /v1/health/plans/12345FL0010001/oop-estimate?zip=33101&age=45&scenario=having_diabetes

The zip parameter is required because premiums vary by rating area. Optional parameters include year (defaults to the current plan year) and county_fips (for disambiguating ZIP codes that span multiple rating areas). The five valid scenario values are having_baby, having_diabetes, low, medium, and high.

The response breaks down total annual cost:

{
  "_links": {
    "self": {
      "href": "https://api.opelyx.com/v1/health/plans/12345FL0010001/oop-estimate?zip=33101&age=45&scenario=having_diabetes"
    },
    "plan": {
      "href": "https://api.opelyx.com/v1/health/plans/12345FL0010001"
    }
  },
  "plan_id": "12345FL0010001",
  "plan_name": "Blue Options Silver 1500",
  "metal_level": "silver",
  "zip": "33101",
  "age": 45,
  "county": "Miami-Dade",
  "county_fips": "12086",
  "multiple_areas": false,
  "monthly_premium": 421.0,
  "scenario": "having_diabetes",
  "estimated_annual_cost": 6152.0,
  "sbc_data_available": true,
  "breakdown": {
    "annual_premium": 5052.0,
    "estimated_out_of_pocket": 1100.0,
    "deductible_applied": 750.0,
    "coinsurance_applied": 350.0
  },
  "notes": [
    "SBC scenario data provided by CMS Summary of Benefits and Coverage.",
    "Figures represent typical costs for this coverage scenario.",
    "Actual costs depend on provider network, geographic area, and individual circumstances."
  ],
  "plan_year": 2026,
  "data_source": "puf_data",
  "data_freshness": "PY2026 CMS PUF (30 FFM) + state exchange data (21 SBM). All 50 states + DC covered"
}

The sbc_data_available field tells you whether the out-of-pocket estimate comes from CMS-provided SBC data (true) or was computed heuristically from the plan’s cost-sharing structure (false). SBC-sourced estimates are more reliable because they’re based on the insurer’s actual benefit calculations. The data_source field indicates the underlying data provenance — puf_data for FFM states using CMS Public Use Files, or state_exchange for SBM states with their own marketplace data.

Why This Matters for Consumers

Health insurance literacy in the US is genuinely poor. Multiple studies have shown that most people, when asked to identify the lower-cost plan between two options with different premiums and deductibles, choose incorrectly more often than chance. They focus on the premium and ignore expected utilization.

The SBC scenario data exists specifically to fix this, but it’s locked inside individual PDF documents that most people never read. By extracting this data into a queryable API, we make it possible to build tools that surface the right comparison: not just premium, but total expected annual cost based on realistic usage scenarios.

A developer building a plan comparison tool can show a user:

  • “If you rarely use healthcare, Plan A saves you $1,476/year”
  • “If you’re managing diabetes, Plan B saves you $1,624/year”

That’s the kind of information that changes decisions. It’s also the kind of information that’s been available in the raw data for years but required significant engineering work to make accessible. That’s the gap we’re filling.