Get Landscape Exits
get_landscape_exitsMembers of Medicare Advantage plans that do NOT continue into the next plan year, from the Landscape disposition: every September member of year Y placed against the Y+1 Landscape file. A member CONTINUES when the same plan is sold in their county next year; otherwise they are DEPARTING, split into the five Day-One buckets the two Landscape files can see (D1 a same-named plan in the county, D2 the plan still sold elsewhere, D3 the contract still in the county, D4 the parent still in the county, D5 the parent gone). When the CMS crosswalk for Y+1 is held, each row also carries the TRUE outcome (moved, split, stranded by a service-area reduction, terminated); when it is not yet held (the newest transition) the answer carries the calibrated estimate range of members who lose their plan, from the buckets' measured rates in the held years.
ARGUMENTS: transition_year (Y, the September enrollment year; default the newest held, 2026 = the 2026 to 2027 transition), group_by (national | product_type | parent | state | parent_by_product | state_by_product | county; default national; county needs state and returns one row per county of that state, each with its own members base), product_type (filter, e.g. 'non-SNP HMO', 'D-SNP HMO'), state (two-letter filter; required when group_by is county), county (filter, the county name as CMS spells it, e.g. 'Cook' or 'Maricopa'; with group_by county it returns that one county), parent (filter, the CMS parent organization as reported), include_cost_mmp (default false: industry = every product type but Cost and MMP), limit (rows, default 50, max 500, largest members first).
RETURNS value.rows (one per group: base_members = THE MARKET, the number to quote as 'members in the market', the base pct_departing is over; continuing, departing, pct_departing, the five buckets, and either the true_* outcomes or est_lost_low / est_lost_high; then members_september = base_members PLUS the members whose plan-county is not in the Y Landscape list or is outside the Landscape, a reconciliation figure, never the market), value.summary (the totals for the same scope, the editions, and the calibration rates used). For 'your county, 2027': group_by county, state and county, then product_type to cut it by product.
RULES THE TOOL ENFORCES: the member base is H/R contracts, plans 001-799, September Y, matched to the Y Landscape by plan AND county (members whose plan-county is not listed are counted separately, never silently); stand-alone Part D (PDP) is never in it; D-SNP is its own product type and is never pooled; parent is CMS's reported parent organization at September Y, not a canonical chain across renames. Suppressed enrollment cells (under 11) count as zero, so every figure is a floor.
SOURCE: Vlada analysis of the CMS MA/Part D Landscape files, CMS monthly enrollment by plan and county, and the CMS plan crosswalk where held.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| state | No | ||
| county | No | ||
| parent | No | ||
| group_by | No | national | |
| product_type | No | ||
| transition_year | No | ||
| include_cost_mmp | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| unit | No | ||
| as_of | No | ||
| value | Yes | ||
| source | Yes | ||
| status | No | complete | |
| caveats | No | ||
| failure | No | ||
| quality | No | ||
| refusal | No | ||
| vintage | No | as_restated | |
| audit_id | Yes | UUID; ties to medicare_silver.audit_log row. | |
| signature | No | ||
| tenant_id | No | Calling tenant slug, resolved by the binding and stamped via the per-call tenant context. Defaults to the bootstrap 'internal' tenant for local/in-process callers. | |
| timestamp | Yes | ||
| confidence | No | ||
| data_as_of | No | ||
| request_id | Yes | ||
| methodology | No | ||
| snapshot_set | Yes | {table_fqn → iceberg_snapshot_id (int64)}. Per M-2 §2.2. | |
| tool_version | Yes | ||
| response_hash | Yes | SHA-256 of canonicalized form per M-2 §2.4. | |
| result_status | Yes | ||
| vintage_basis | No | default_unmeasured | |
| as_of_asserted | No | ||
| as_of_observed | No | ||
| parse_revision | No | ||
| as_of_effective | No | ||
| freshness_state | No | unknown | |
| methodology_era | No | ||
| confidence_basis | No | ||
| semantic_version | Yes | ||
| invariants_applied | No | ||
| finality_confidence | No | ||
| cms_vintage_sequence | Yes | ||
| parser_artifact_hash | Yes | ||
| methodology_blend_factors | No | ||
| parser_artifact_hash_basis | No | not_evaluated |