CMS Plan Data: A Freshness Analysis

I pulled 3 months of public CMS plan data (Dec 2025, Jan 2026, Feb 2026) and compared them. The goal being to understand how the upstream data that a plan matching engine depends on actually behaves. What changes, what stays stable, and where the risks are.

Executive Summary

0
plans disappeared

Between December and January, when the new plan year starts

0
new plans appeared

Net loss of 277 plans. The market contracted slightly.

0
plans renamed

That's 1 in 6 plans changing their display name overnight

0
% enrollment masked

CMS hides most enrollment counts in public data

0
structural changes

Plan type, SNP status, Part D: nothing changed Jan to Feb

What happens at the plan year transition

Every January 1, Medicare Advantage plans reset. Some terminate, new ones launch, and carriers restructure their portfolios. This year was historically elevated. KFF found that 2.6 million enrollees (13%) had their plan terminated entering 2026, double the rate from 2024. Carriers are pulling back from unprofitable markets. The data shows it clearly: 1,428 plans removed in the Dec to Jan transition (18% of the entire plan universe). But between January and February? Only 5 plans removed. The plan year transition is where the risk is. Mid-year is calm.

December → January

1,428 Removed1,151 Added6,435 Stable

January → February

5 Removed11 Added7,581 Stable
Key Insight
If a plan matching engine is still working off December's data on January 2nd, it's recommending plans that don't exist anymore, to people who just lost their coverage and are actively looking for a new plan. That's the worst possible time to be wrong.

Plan names change more than you'd expect

1,197 plans changed their display name between December and January. Some changes are small (adding "Plus" or "Sync" to the name). Others are full rebrands. The clearest example: every Cigna-branded plan under contract H0354 became HealthSpring. Same contract, same plan ID, completely different name. This happened because Health Care Service Corporation reorganized their portfolio. If an advisor's tool shows "Cigna Preferred Medicare (HMO)" but the plan is now called "HealthSpring Preferred (HMO)", that's a trust problem. And if any matching logic uses plan names as identifiers, it breaks silently. The only reliable way to track a plan across time is Contract ID + Plan ID. Names are not stable.

1,197
plan renames Dec → Jan
9
plan renames Jan → Feb
Cigna → HealthSpring
Under contract H0354, every Cigna-branded plan became HealthSpring. Same contract, same plan ID, completely different consumer-facing name. This is why name-based matching breaks silently.

Top Organizations by Plan Renames (Dec → Jan)

What you can trust mid-year (and what you can't)

Between January and February, I checked every field for every plan that existed in both months (7,586 plans). The structural attributes (plan type, organization type, SNP status, Part D, EGHP) had zero changes. These are locked at the start of the plan year. But naming fields kept shifting: 40 organization name changes, 9 plan name changes, 4 parent organization changes, 8 contract effective date changes. This means structural data can be cached aggressively between January and December. Display names and org metadata need to be refreshed continuously, even mid-year.

Field-Level Changes (Jan → Feb)

Zero changes (stable)Low volatilityHigher volatility
Safe to Cache
Plan type, organization type, SNP status, Part D, EGHP: zero changes between January and February. These structural fields are locked at plan year start and safe to cache aggressively.
Requires Fresh Data
Organization Name (40 changes), Plan Name (9), Contract Effective Date (8), Parent Organization (4). Display names and org metadata need continuous refresh, even mid-year.

Most enrollment data is hidden, but what's visible matters

CMS masks enrollment counts below a certain threshold for privacy. In the January file, 94.6% of rows show * instead of a number. Only 5.4% (184,687 rows) have real enrollment counts. But those visible rows reveal something important: enrollment is extremely concentrated. The top 10 plan-county combinations are almost all in Los Angeles County and Maricopa County (Phoenix). A single plan (H0524-3) has 178,107 enrollees in LA County alone. Getting a recommendation wrong in LA County affects 100x more people than getting it wrong in a rural county. Data freshness monitoring should be weighted by how many people are affected, not treated the same everywhere.

Enrollment Data Visibility

Masked rows3,212,695 (94.6%)
Non-masked rows184,687 (5.4%)

Top Plan-County Enrollments

H0524-3
Los Angeles County, CA
178,107
S4802-94
Los Angeles County, CA
136,729
S5617-158
Los Angeles County, CA
110,574
S4802-134
Maricopa County, AZ
94,308
H0524-805
Los Angeles County, CA
93,054
Note on data access
In production, a company like Chapter likely accesses unmasked enrollment data through direct carrier feeds or CMS data use agreements, which would unlock full enrollment trend analysis.

Same coverage footprint, fewer plan options

All 56 states and territories maintained Medicare Advantage coverage across all three months. No state lost or gained counties. The geographic footprint is stable. But the number of plan options within those counties shifted. South Carolina lost 31 plans (down 7.4%), Montana lost 20 (down 7.5%), Illinois lost 30 (down 6.9%). Meanwhile Florida gained 8 and California gained 2. The pattern: carriers are retreating from lower-margin states in the midwest and southeast while protecting high-enrollment markets like Florida and California. For beneficiaries in states like South Carolina or Montana, the recommendation set just got smaller, and each remaining plan matters more.

Coverage Overview

56
States/Territories with coverage
Consistent across Dec, Jan, Feb

Top States by County Coverage (Jan)

Texas254 counties / 528 plans
Georgia159 counties / 424 plans
Virginia136 counties / 414 plans
Kentucky120 counties / 335 plans
Missouri115 counties / 356 plans

Biggest Plan Drops

Dec → Jan plan count decreases

South Carolina
-31(-7.4%)
Illinois
-30(-6.9%)
Oklahoma
-24(-6.9%)
Pennsylvania
-23(-5.3%)
Ohio
-21(-5.1%)
Montana
-20(-7.5%)

Biggest Plan Gains

Dec → Jan plan count increases

Puerto Rico
+10(+4.4%)
Florida
+8(+1.4%)
New Mexico
+7(+2.3%)
Washington
+5(+1.3%)
California
+2(+0.4%)
Regional impact
Carriers are retreating from lower-margin states while protecting high-enrollment markets. For beneficiaries in states like South Carolina or Montana, the recommendation set just got smaller, and each remaining plan matters more.

What this means if you're building a plan matcher

Key takeaways for building a reliable, high-accuracy plan matching engine.

Refresh data immediately in January

The plan year transition causes 18% churn. Even a few days of lag means recommending plans that don't exist.

Don't use plan names as identifiers

1 in 6 changed in a single month. Use Contract ID + Plan ID.

Cache structural fields mid-year

Plan type, SNP status, and Part D coverage don't change between January and December.

Keep refreshing display names

Organization names and plan names change even between monthly releases.

Prioritize dense counties

LA County enrollment dwarfs most states. Weight your monitoring by impact.

Public data has limits

94.6% of enrollment is masked. Real enrollment analysis requires unmasked carrier feeds.

What I'd look at next

Future work to strengthen data freshness and matching accuracy.

Automated freshness scoring

A pipeline that ingests each CMS release, scores every plan on how recently its data changed, and flags anything that looks stale before it reaches the matching engine.

Provider directory validation

CMS is building a national provider directory with FHIR APIs for 2027. Cross-referencing plan networks against that directory would catch a second layer of staleness (plan data is fresh but the provider list is months old).

Formulary change tracking

CMS publishes quarterly drug formulary files. Diffing those the same way would catch medication coverage changes that directly affect what seniors pay.

Enrollment trend monitoring

With access to unmasked data, track which plans are gaining or losing members as an early warning signal for plan instability.

Plan year transition playbook

The December to January churn is predictable. A system could pre-stage expected changes and validate the actual CMS data against those expectations on January 1st.