Available now

ACA marketplace plans, premiums and deductibles by state and county, 2014 to 2026

Health Insurance Exchange public use files for HealthCare.gov states, State-based Exchange files for the states that run their own exchange, and open enrollment plan selections, plan years 2014 to 2026, in one set of column names. 14 tables, about 80 million rows.

Coverage: Plans, rates and benefits for every state and DC from 2016 to 2026. HealthCare.gov states from the Exchange PUFs, 2014 to 2026: 36 states in 2014, 30 in 2026. States that run their own exchange, such as California, New York, New Jersey and Pennsylvania, from the State-based Exchange PUFs, 2016 to 2026: 17 states in 2016, 22 in 2026. 2014 and 2015 cover HealthCare.gov states only. Open enrollment plan selections by state for 2017 to 2026, and by county for HealthCare.gov states for 2015 to 2026.

Why pay for public data

CMS publishes these as separate downloads for each plan year, one zip per state for the state-based exchange files, with column names and layouts that change from year to year. This package loads thirteen plan years into one schema, puts state-based exchange plans in the same tables as HealthCare.gov plans, reshapes the open enrollment files to one row per metric and documents every source column of every year.

How it is built

  1. 1

    Pull the seven Exchange PUFs for plan years 2014 to 2026, the State-based Exchange QHP PUFs for 2016 to 2026 and the Marketplace open enrollment period PUFs from cms.gov.

  2. 2

    Map every source column of every year to one schema, tag each plan row FFE or SBE in EXCHANGE_TYPE, add a PLAN dimension, and drop state-based exchange rows that repeat Exchange PUF plans.

  3. 3

    Set the placeholder rates CMS files at ages a plan does not rate to NULL and flag them, remove duplicate and superseded rows, and keep CMS small-cell suppression as NULL with a VALUE_FLAG. Rebuilt quarterly and when CMS publishes a new plan year.

What is in each record

FieldNotes
PLAN_YEAR, STANDARD_COMPONENT_ID, PLAN_ID, ISSUER_IDHIOS plan, plan variant and issuer IDs, the join keys
STATE_CODE, STATE_FIPS, EXCHANGE_TYPEEXCHANGE_TYPE is FFE for HealthCare.gov states and SBE for state-run exchanges
PLAN_MARKETING_NAME, ISSUER_MARKETPLACE_MARKETING_NAME, METAL_LEVEL, PLAN_TYPEPLAN: about 130,000 plans, one row per plan and plan year
TEHB_DED_INN_TIER1_INDIVIDUAL_AMOUNT, TEHB_INN_TIER1_INDIVIDUAL_MOOP_AMOUNT, ISSUER_ACTUARIAL_VALUE, IS_HSA_ELIGIBLEPLAN_ATTRIBUTES: about 410,000 plan variants in 188 columns, with deductibles and out-of-pocket maximums parsed to dollars
RATING_AREA_ID, AGE, TOBACCO, INDIVIDUAL_RATE, INDIVIDUAL_TOBACCO_RATEPLAN_RATE: about 48 million monthly premium rates, plus family-tier rates
RATE_IS_PLACEHOLDERFlags placeholder rates set to NULL, mostly on stand-alone dental plans
BENEFIT_NAME, IS_COVERED, COPAY_INN_TIER1, COINS_INN_TIER1, LIMIT_QTY, EXCLUSIONSBENEFITS_COST_SHARING: about 28 million rows. Copay and coinsurance amounts cover HealthCare.gov states only
SERVICE_AREA_ID, COUNTY_FIPS, ZIP_CODES, PARTIAL_COUNTYSERVICE_AREA: where each issuer sells, by county and ZIP code
PRIOR_PLAN_ID, PLAN_ID, CROSSWALK_LEVEL, REASON_FOR_CROSSWALKPLAN_CROSSWALK: about 1.6 million rows mapping each HealthCare.gov plan to its successor for re-enrollment
METRIC, VALUE, VALUE_FLAGOEP_STATE and OEP_COUNTY: plan selections, new and returning consumers, premiums before and after tax credits, age, income and metal level. OEP_COUNTY has about 1.6 million rows
OEP_METRIC, STATE_PLAN_YEAR, SOURCE_COLUMN_MAP, DATA_DICTIONARY108 metric definitions, coverage by state and year, every CMS source column and where it went, and 420 column definitions

Who uses it

  • Health insurers and brokers benchmarking premiums and plan design
  • Health-tech and enrollment platforms that need plan attributes by HIOS ID
  • Health policy researchers and actuaries

Pricing

$1,290 a year, including each quarterly refresh.

No personal contact data is collected or sold in any QuestionPunk dataset.

Questions

Is this data not free from the government?
Yes. The source files are public and we link to them. You pay for the cleaning, the joins, the documented schema and the refresh, not for the data itself.
How is it delivered?
As Parquet or CSV files, by download link or to your own cloud bucket. The same tables load into Snowflake with the scripts we include.
Can I see the data before paying?
Yes. Ask for a sample and we send every row for Wyoming, a HealthCare.gov state with plans in all 13 plan years: about 750 plans, about 120,000 rate rows and all 23 counties of open enrollment data, plus the full data dictionary.
Are the open enrollment numbers enrollment counts?
No. They are plan selections at the end of open enrollment, not paid enrollment.
What is missing for states that run their own exchange?
Their files start in 2016 and have no copay or coinsurance amounts and no plan crosswalk, so those fields cover HealthCare.gov states only. County open enrollment data also covers HealthCare.gov states only. A few state files are incomplete, as CMS notes, and the documentation lists every file skipped or excluded.
Does it include personal data?
No. It holds plan, issuer, rate, benefit and aggregate enrollment data. Issuer tax ID columns are dropped, and the CMS file that lists issuer technical contacts is not used.
What is the license?
The sources are CMS public use files and US government works. These tables are processed by QuestionPunk and are not CMS data as published. CMS does not endorse this product.

Tell us what you need

Geography, size and fields. A two-line email is enough, and a person replies.

Request a sample

More from the catalog