# Vlada County Volatility Index v4 by county and product type (Report 2's audited table): members, plan ended, moved, material cut, stable and gains, 2016-2027

`medicare_semantic.cvi_county_v4` · Medicare Advantage, Part D, Medicaid · status live · 140,775 rows

Report 2's audited County Volatility Index table: 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. Per county x product type x plan year: members, plans, must_pick (plan ended), moved, cut, stable, no_benefit_row, benefit_any_unknown, gain_any, gain_only, the cut by benefit (cut_premium, cut_moop, cut_dental; cut_moop_raw = the raw rise before the ceiling rule), moop_ceiling_to_ceiling, the OTC and Part B giveback side columns, benefit_part_locked and thin. Index = 100 x (must_pick + moved + cut) / members, from 2021.

**Grain.** One row per plan_year x state x county_ssa x product (unique: 140,775 rows = 140,775 keys, Athena 45461f1a); nine product types, 3,164 SSA counties. Rows by plan_year: 2016 8,930; 2017 8,957; 2018 9,052; 2019 9,710; 2020 10,393; 2021 11,097; 2022 11,734; 2023 12,632; 2024 13,587; 2025 14,380; 2026 15,013; 2027 15,290 (Athena 2b51c797). No FIPS column (cvi_plan_county_v4 carries it).

| column | type | meaning |
|---|---|---|
| plan_year | int |  |
| state | string |  |
| county_ssa | string |  |
| county_name | string |  |
| product | varchar(13) |  |
| members | bigint |  |
| plans | bigint |  |
| must_pick | bigint |  |
| moved | bigint |  |
| cut | bigint |  |
| stable | bigint |  |
| no_benefit_row | bigint |  |
| benefit_any_unknown | bigint |  |
| gain_any | bigint |  |
| gain_only | bigint |  |
| cut_premium | bigint |  |
| cut_moop | bigint |  |
| cut_moop_raw | bigint |  |
| moop_ceiling_to_ceiling | bigint |  |
| cut_otc_side | bigint |  |
| cut_dental | bigint |  |
| cut_giveback_side | bigint |  |
| benefit_part_locked | boolean |  |
| thin | boolean |  |
| version | varchar(2) |  |
| reading | varchar(296) |  |

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