# Vlada Landscape disposition, every September member placed against next year's Landscape file, 2023 to 2027

`medicare_semantic.fact_landscape_disposition_v1` · Medicare Advantage, Part D, Medicaid · status live · 419,954 rows

The served grain of the defined Landscape analysis (Ben 2026-09-25, tools/ma_brain/landscape_analysis.py): every September-Y member (H/R contracts, plans 001-799) matched to the Y Landscape by plan and county, then placed against the Y+1 file: continues, or departing in five Day-One buckets (D1 same-named plan in the county, D2 plan sold elsewhere, D3 contract in the county, D4 parent in the county, D5 parent gone). Where the Y+1 crosswalk is held (2024 to 2026) truth_class says what really happened (moved, split, stranded_sar, terminated). Every cell of 2026 to 2027 was recomputed from the raw CMS zips with 0 differences (landscape_table_audit.py, 2026-09-28) and every partition checked 0-diff against the lane's CSVs. Tool: get_landscape_exits, which since 2026-09-30 also groups by county (state required) and filters to one county; the industry scope is product_type_y NOT IN ('non-SNP Cost', 'non-SNP MMP'), with which the four bases tie to 25,970,589 / 27,665,108 / 28,931,650 / 29,855,373 members (measured 2026-09-30).

**Grain.** One row per transition_year (2023 to 2026, partition) x parent x state x county x product_type_y x product_type_y1 x dayone_bucket x truth_class, with cells (plan-county cells) and members (September-Y enrollment). 419,954 rows over four transitions (measured 2026-09-29).

| column | type | meaning |
|---|---|---|
| parent | string |  |
| state | string |  |
| county | string |  |
| product_type_y | string |  |
| product_type_y1 | string |  |
| dayone_bucket | string |  |
| truth_class | string |  |
| cells | bigint |  |
| members | bigint |  |
| next_year | int |  |
| enrollment_month | date |  |
| l0_edition | string |  |
| l1_edition | string |  |
| crosswalk_held | boolean |  |
| built_at | string |  |

Tools that read it: get_county_view, get_landscape_exits

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