# Vlada County Volatility Index v4 by plan and county: each MA plan's September members and what happened to them the next plan year (plan ended, moved, material cut, stable), 2016-2027

`medicare_semantic.cvi_plan_county_v4` · Medicare Advantage, Part D, Medicaid · status live · 691,982 rows

The County Volatility Index (Report 2) at its own grain, the rows medicare_semantic.cvi_county_v4 sums: Of the members in a county's individual Medicare Advantage plans the September before a plan year, those whose plan ended (no successor sold in the county), who were moved by the insurer into another plan ID, or whose plan stayed and made a material cut (premium up $10+ a month, in-network MOOP up $500+ outside CMS's ceiling-to-ceiling move, comprehensive dental max down $500+ or dropped), per 100. Each member counts once, in the first bucket that applies (plan ended > moved > material cut > stable); gains are counted beside, never netted. One row per plan in a county with its September members, its bucket, which benefit was cut (cut_premium, cut_moop, cut_dental), the ceiling-to-ceiling MOOP flag, any_gain, the two years' premium, MOOP and dental values (prem_old/new, moop_old/new, dent_old/new), the plan name and CMS's parent the September before (parent_raw). The read layer of get_volatility_index and get_county_view sections=volatility. The index of a group = 100 x sum(members where bucket IN ('plan_ended','moved','material_cut')) / sum(members).

**Grain.** One row per plan_year x state x county_ssa x contract_id x plan_id (unique: 691,982 rows = 691,982 keys, Athena a6054eb1), individual H/R plans 001-799 with members the September before. Rows by plan_year: 2016 28,272; 2017 29,496; 2018 30,350; 2019 34,225; 2020 40,924; 2021 48,591; 2022 58,066; 2023 68,999; 2024 78,640; 2025 88,940; 2026 91,821; 2027 93,658 (Athena 7e8f6cb5). 3,163 county FIPS, 10,971 plans, every row with a FIPS.

| column | type | meaning |
|---|---|---|
| plan_year | int |  |
| state | string |  |
| county_ssa | string |  |
| county_fips | string |  |
| county_name | string |  |
| product | varchar(13) |  |
| contract_id | string |  |
| plan_id | string |  |
| plan_name | string |  |
| parent_raw | string |  |
| members | bigint |  |
| bucket | varchar(21) |  |
| cut_premium | boolean |  |
| cut_moop | boolean |  |
| cut_dental | boolean |  |
| moop_ceiling_to_ceiling | boolean |  |
| any_gain | boolean |  |
| benefit_any_unknown | boolean |  |
| prem_old | double |  |
| prem_new | double |  |
| moop_old | double |  |
| moop_new | double |  |
| dent_old | double |  |
| dent_new | double |  |
| version | varchar(2) |  |
| reading | varchar(173) |  |

Tools that read it: get_county_view, get_volatility_index

Query it: `query_substrate` with `SELECT ... FROM medicare_semantic.cvi_plan_county_v4 WHERE ... LIMIT 100`; read `describe_data_source("medicare_semantic.cvi_plan_county_v4")` first.
