2027 open enrollment. 3.15M must pick a new plan.

Your county →

Home / Tools / Medicare Advantage, Part D, Medicaid

Medicare Advantage, Part D, MedicaidL2 · v2.0.0 · read-only

get_benefit_change

Get Benefit Change

What it answers

The locked 2027 Medicare Advantage benefit tables in one call: what each benefit was in 2026 and what it is in 2027 for the SAME members, member-weighted from the CMS Plan Benefit Package filings and CMS September 2026 county enrollment, inside ONE product type, for the market or a parent organization, nationally, in a state or in a county. Premium, MOOP, the medical and Part D deductibles, the medical copays and coinsurance, the Part D tier cost shares, dental / OTC / hearing / eyewear / flex card dollars and offered shares, the Part B giveback and the supplemental services.

ARGUMENTS: product_type (required unless group_by='product_type': non-SNP HMO | non-SNP PPO | D-SNP HMO | D-SNP PPO | C-SNP HMO | C-SNP PPO | I-SNP HMO | I-SNP PPO; 'ALL' is refused, types are never pooled), geography (national | state | county; inferred from the place when omitted), state (two letters), county (the name as CMS spells it, e.g. 'Maricopa', with state) or county_ssa (five digits, e.g. '03060'), parent (the parent organization; a partial name matches, e.g. 'UnitedHealth'), plan_type (default 'ALL'; HMO | HMOPOS | Local PPO | Regional PPO), group_by (none | parent | state | county | plan_type | product_type; state needs geography national, county needs geography state), benefits ('key' default | 'all' | a comma-separated list of benefit names, listed in value.benefits), limit (rows, default 50, max 500, largest 2026 membership first).

RETURNS value.summary (the market of the scope: every benefit for the scope's members) and value.rows (one per group, or per matching parent). Each row: members_2026 (every September 2026 member), members_continuing (the members on both sides of the change), plans, thin (true when the value rests on plans covering under 70% of the members or fewer than five plans) and, per benefit, {2026, 2027_same_members, change, coverage_2026, coverage_2027, 2026_all_members, unit}: 2026 is the continuing members' 2026 design, 2027_same_members those same members' 2027 design, change = 2027_same_members minus 2026; 2026_all_members is every 2026 member, context only, never one side of a change. coverage is the share of the row's members the value describes. A null value is unknown (no member filed it), never $0. Percent benefits are served 0-100. When an allowance is asked, like_for_like carries its dollars on the paired members (same form both years) with the share whose design changed form, which is a design change, never a raise or a cut.

D-SNP figures are the FILED design: a full dual generally pays $0 under Medicaid; the full-dual reading is the Plan Value tool's full-dual column. Employer group plans and stand-alone Part D are not in the tables.

SOURCE: Vlada locked benefit tables (Edition 1.1) from the CMS Plan Benefit Package filings, CMS county enrollment, the plan service area file and the CMS plan crosswalk.

Inputs

benefits
string · optional
default: "key"
contract_id
string · optional
county
string · optional
county_ssa
string · optional
geography
string · optional
group_by
string · optional
default: "none"
include_overall
boolean · optional
default: false
limit
integer · optional
matrix
boolean · optional
default: true
mode
string · optional
parent
string · optional
parent_b
string · optional
plan_type
string · optional
default: "ALL"
product_type
string · optional
state
string · optional
weight
string · optional
default: "combined"
years
string · optional

Call it

From an agent: connect the Vlada MCP once (one click for Claude, ChatGPT, Cursor, VS Code) and ask in plain English; the agent selects get_benefit_change when the question fits. From code: the same tool over REST with an API key. The schema endpoint needs no key.

curl -X POST https://api.vladahealth.com/v1/tools/get_benefit_change \
  -H "Authorization: Bearer $VLADA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
curl https://api.vladahealth.com/v1/tools/get_benefit_change/schema      # the JSON schema, no auth
# MCP endpoint (Streamable HTTP): https://mcp.vladahealth.com/mcp

What comes back

Typed rows plus provenance on every answer: the public source file, its vintage, the methodology, and a response_hash you can replay. Prove and replay tools turn any number into a re-runnable receipt. A number the data cannot support comes back as “not in the data”, never as zero.

Sources behind it

  • medicare_semantic.vw_benefit_reading_cells
  • medicare_semantic.vw_benefit_reading_cells_sd
  • medicare_semantic.vw_benefit_reading_simple
  • medicare_semantic.vw_benefit_reading_transitions
  • medicare_semantic.vw_benefit_contract_match
  • medicare_semantic.vw_benefit_reading_matched
  • medicare_semantic.vw_benefit_reading_atoms

views: medicare_semantic.vw_benefit_reading_cells · medicare_semantic.vw_benefit_reading_cells_sd · medicare_semantic.vw_benefit_reading_simple · medicare_semantic.vw_benefit_reading_transitions · medicare_semantic.vw_benefit_contract_match · medicare_semantic.vw_benefit_reading_matched · medicare_semantic.vw_benefit_reading_atoms

Known limits

  • Same-member change is 2026 continuing members against those members in 2027; members in plans that exit with no successor are in neither year, plans new in 2027 have no 2026 members.
  • Product types are never pooled: product_type ALL is refused.
  • D-SNP cost shares are the filed design; the dual-effective reading is Plan Value's full-dual column.
  • A null or zero weight is unknown, never $0; coverage rides beside every value.
  • Employer group plans and stand-alone Part D are not in the tables.

As of the 2026-10-19 build of the served surface · machine-readable catalog · the live server may run a different version; the schema endpoint above is authoritative for what is deployed.