Insurer negotiated rates

Exchange Plan Profile — composed ACA marketplace plan brain

medicare_silver.fact_exchange_plan_profile·live·silver
Rows
60,591
Columns
35
History
N/A
Card
nocolumns only
Typed tools
0

Superseded by medicare_silver.fact_exchange_plan_profile_v2 (card cms_exchange_plan_profile_v2, built 2026-10-13 by tools/data_tracker/build_exchange_plan_profile.py, #3579): the same 35 columns and 60,591 rows, with the Rate input taken from the CMS ZIP history (vw_rate_puf_current). This table stays as the rollback..

What it is

  1. 1The composed "plan brain" for the ACA marketplace: one row per plan-year carrying its full vector — attributes (metal/type/on-off-exchange/issuer/TIN) from Plan Attributes, premium benchmarks (age 21/40/60 x rating area) from Rate, network name from Network, county footprint from Service Area, covered-benefit counts + headline cost-shares (PCP/specialist/ER/urgent/generic/inpatient) from Benefits & Cost Sharing, CMS star ratings from Marketplace Quality, and the issuer's individual-market financials (premium earned + MLR ratio) from the CMS MLR PUF.
  2. 2Joins measured/verified (Plan Attributes->Rate 100%; per-plan end-to-end proven); materialized so plan lookups serve fast (no parse-in-view cliff).

Grain

KeyGrain
N/A
  1. 1One row per (business_year, plan_id).
  2. 260,591 plan-years PY2014-2026.
  3. 3Materialized composition of six verified exchange PUF sources at plan grain (zero fanout).

Columns (35)

ColumnTypeMeaning
plan_idstring
issuer_idstring
state_codestring
plan_marketing_namestring
metal_levelstring
plan_typestring
market_coveragestring
on_off_exchangestring
issuer_tinstring
network_idstring
network_namestring
service_area_idstring
covers_entire_stateboolean
n_countiesbigint
premium_age21double
premium_age40double
premium_age60double
premium_age40_maxdouble
n_rating_areasbigint
n_benefits_coveredbigint
n_ehb_benefitsbigint
pcp_copaystring
specialist_copaystring
er_copaystring
urgent_care_copaystring
generic_drug_copaystring
inpatient_coinsstring
quality_overallint
quality_medicalint
quality_member_expint
issuer_company_namestring
issuer_naic_group_codestring
issuer_ind_premium_earneddouble
issuer_ind_mlr_ratiodouble
business_yearint

Query it

describe_data_source(source_fqn="medicare_silver.fact_exchange_plan_profile")     # the card, live
query_substrate(sql="SELECT * FROM medicare_silver.fact_exchange_plan_profile WHERE <filter> LIMIT 100")
ItemValue
Typed tools that read itnone; raw SQL
Identity keybusiness_year,plan_id
Joinhow_to_join(source_fqn="medicare_silver.fact_exchange_plan_profile")
Raw doorAthena (read-only via query_substrate): medicare_silver.fact_exchange_plan_profile
Company namesissuer_company_name resolve to a permanent Vlada ID: resolve_entity(text=<name>); the company pages hold owners and holdings

This page as markdown: /docs-md/data/medicare_silver_fact_exchange_plan_profile.md · every page in one file: /llms-full.txt