Medicare Advantage, Part D, Medicaid

get_network_groups

Get Network Groups·v0.2.0·L2·read-only·MCP + REST·admitted 2026-11-06
Inputs
70 required
Sources
2
Known limits
3
Real answer
1.7scomplete

What it answers

  1. 1Which physician groups and health systems a Medicare Advantage contract's published network covers, and how much of each: for a contract and plan year (2026 or 2027), every billing group its listed clinicians bill Medicare through (or every health system of the hospitals they are affiliated with), with the clinicians the contract lists, the group's own clinician count and the share; or search one group or system by name across every contract.
  2. 2Use cases: 'What share of Virginia Mason's doctors does Regence list?'; 'Which MA contracts list most of Optum's physicians in Texas?'; 'Which large groups does H5938 cover?'.
  3. 3Groups are CMS's Medicare reassignment (the group a clinician bills through); systems are CMS's hospital affiliation through the hospital system map.
  4. 4A clinician in several groups counts in each.
  5. 5A share is of the group's Medicare-enrolled clinicians, as listed in the plan's published directory.
  6. 6The publish is pinned by dataset_id.
  7. 7SOURCE: medicare_silver.ma_network_contract_group_v1 (the Data Tracker's directory table x CMS PECOS reassignment x CMS Doctors and Clinicians facility affiliation x the hospital system map).

Inputs (7)

NameTypeRequiredDefaultAccepts
contract_idanyoptionalnullCMS contract id (H3817). One of contract_id / name.
levelstringoptional"group"'group' (default; the billing group clinicians reassign to in Medicare) or 'system' (the health system of their hospitals). group | system
limitanyoptionalnullRows to return (default 50, max 500).
min_cliniciansintegeroptional10Smallest group or system returned, by its own clinician count (default 10).
nameanyoptionalnullBilling group or health system name (contains match, e.g. 'Virginia Mason'); searches every contract.
plan_yearintegeroptional20272026 or 2027 (default 2027). 2026 | 2027
stateanyoptionalnull2-letter state of the group; optional (groups only).

Call it

# MCP (https://mcp.vladahealth.com/mcp): the tool by name
get_network_groups(name="Virginia Mason", min_clinicians=500, limit=3)
curl -X POST https://api.vladahealth.com/v1/tools/get_network_groups \
  -H "Authorization: Bearer $VLADA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Virginia Mason","min_clinicians":500,"limit":3}'

# the schema, no key
curl https://api.vladahealth.com/v1/tools/get_network_groups/schema

A real answer

customer seat, 2026-11-09·over REST·1.7s·status complete·complete·verbatim
{
 "value": {
  "found": false,
  "not_found_reason": "no_row_matches_filters",
  "query": {
   "name": "Virginia Mason",
   "plan_year": 2027,
   "level": "group",
   "min_clinicians": 500,
   "limit": 3
  },
  "dataset_id": "7bceef45cc9e5910e64caa428a1f3e40869f91d149c4e19f08cc55f5e468ba7c",
  "rows": [],
  "query_ids": [
   "7add1d36-0b8a-430f-9532-c0fd2d3afeb0"
  ]
 },
 "unit": "network_groups",
 "vintage": null,
 "source": {
  "dataset": "MA plan networks, 2026 and 2027 (Data Tracker): plan year x CMS plan x NPI x listed location",
  "publisher": "vlada",
  "catalog_updated_at": "2026-11-02"
 },
 "caveats": [],
 "response_hash": "865b1be73ac8247753af5fdf3842c60072ad001422d6e773075a1231685a75b5",
 "semantic_version": 1,
 "tool_version": "get_network_groups@0.2.0",
 "explanation": null,
 "status": "complete",
 "audience": "customer",
 "answer": {
  "value_ref": "value",
  "unit": "network_groups",
  "scope": {
   "tool": "get_network_groups",
   "filters": {
    "name": "Virginia Mason",
    "plan_year": 2027,
    "level": "group",
    "min_clinicians": 500,
    "limit": 3
   }
  }
 },
 "method": "Computed over the filters shown in this answer's scope, from the sources listed in its evidence. Nothing outside those filters was included. You did not specify level; group was used. You did not specify plan_year; 2027 was used.",
 "evidence": {
  "sources": [
   {
    "dataset": "MA plan networks, 2026 and 2027 (Data Tracker): plan year x CMS plan x NPI x listed location",
    "publisher": "vlada",
    "catalog_updated_at": "2026-11-02"
   }
  ],
  "response_hash": "865b1be73ac8247753af5fdf3842c60072ad001422d6e773075a1231685a75b5"
 },
 "defaults_applied": [
  {
   "param": "level",
   "used": "group",
   "reason": "'group' (default"
  },
  {
   "param": "plan_year",
   "used": 2027,
   "reason": "2026 or 2027 (default 2027)."
  }
 ],
 "freshness": {
  "state": "unknown",
  "why": "This tool does not report an edition for its answer, and the door could not derive one from what the answer reads. Treat the result as current to no stated date."
 }
}

What comes back

FieldHolds
statuscomplete · partial · refused · failed · queued
valuethe shape below
source · caveats · invariants_applied · response_hashthe public file and vintage; what to know before citing; the rules honoured; replayable
refusalcode (15), message, recover_with
{
 "$defs": {
  "Quality": {
   "description": "Row-level quality signal. All flags precomputed at build time\n(stored on the gold mart) and passed through here.",
   "properties": {
    "is_outlier": {
     "default": false,
     "title": "Is Outlier",
     "type": "boolean"
    },
    "is_ghost_candidate": {
     "default": false,
     "title": "Is Ghost Candidate",
     "type": "boolean"
    },
    "n_similar_rates": {
     "default": 0,
     "title": "N Similar Rates",
     "type": "integer"
    },
    "confidence": {
     "default": 1,
     "title": "Confidence",
     "type": "number"
    }
   },
   "title": "Quality",
   "type": "object"
  },
  "Source": {
   "description": "Cell-level provenance. Every served value traces back here.\n\n`snapshot_id` is the Iceberg snapshot the tool read from. Two calls\nat the same snapshot MUST produce byte-identical responses —\nthat's the content-addressed caching guarantee.",
   "properties": {
    "table": {
     "title": "Table",
     "type": "string"
    },
    "rate_id": {
     "anyOf": [
      {
       "type": "string"
      },
      {
       "type": "null"
      }
     ],
     "default": null,
     "title": "Rate Id"
    },
    "source_files": {
     "items": {
      "type": "string"
     },
     "title": "Source Files",
     "type": "array"
    },
    "snapshot_id": {
     "anyOf": [
      {
       "type": "integer"
      },
      {
       "type": "null"
      }
     ],
     "default": null,
     "title": "Snapshot Id"
    }
   },
   "required": [
    "table"
   ],
   "title": "Source",
   "type": "object"
  }
 },
 "properties": {
  "value": {
   "default": null,
   "title": "Value"
  },
  "unit": {
   "anyOf": [
    {
     "type": "string"
    },
    {
     "type": "null"
    }
   ],
   "default": null,
   "title": "Unit"
  },
  "vintage": {
   "anyOf": [
    {
     "type": "string"
    },
    {
     "type": "null"
    }
   ],
   "default": null,
   "title": "Vintage"
  },
  "source": {
   "$ref": "#/$defs/Source"
  },
  "methodology": {
   "anyOf": [
    {
     "type": "string"
    },
    {
     "type": "null"
    }
   ],
   "default": null,
   "title": "Methodology"
  },
  "quality": {
   "$ref": "#/$defs/Quality"
  },
  "invariants_applied": {
   "items": {
    "type": "string"
   },
   "title": "Invariants Applied",
   "type": "array"
  },
  "caveats": {
   "items": {
    "type": "string"
   },
   "title": "Caveats",
   "type": "array"
  },
  "response_hash": {
   "default": "",
   "title": "Response Hash",
   "type": "string"
  },
  "semantic_version": {
   "default": 1,
   "title": "Semantic Version",
   "type": "integer"
  },
  "tool_version": {
   "default": "unknown",
   "title": "Tool Version",
   "type": "string"
  },
  "explanation": {
   "anyOf": [
    {
     "type": "string"
    },
    {
     "type": "null"
    }
   ],
   "default": null,
   "title": "Explanation"
  },
  "status": {
   "default": "complete",
   "title": "Status",
   "type": "string"
  },
  "refusal": {
   "anyOf": [
    {
     "additionalProperties": true,
     "type": "object"
    },
    {
     "type": "null"
    }
   ],
   "default": null,
   "title": "Refusal"
  },
  "failure": {
   "anyOf": [
    {
     "additionalProperties": true,
     "type": "object"
    },
    {
     "type": "null"
    }
   ],
   "default": null,
   "title": "Failure"
  },
  "as_of": {
   "anyOf": [
    {
     "type": "string"
    },
    {
     "type": "null"
    }
   ],
   "default": null,
   "title": "As Of"
  },
  "freshness_state": {
   "default": "unknown",
   "title": "Freshness State",
   "type": "string"
  }
 },
 "title": "NetworkGroupsResponse",
 "type": "object"
}

Sources

KindName
sourcemedicare_silver.ma_network_contract_group_v1
sourcemedicare_silver.fact_ma_landscape
tablemedicare_silver.ma_network_contract_group_v1
tablemedicare_silver.fact_ma_landscape

Known limits (3)

  1. 1Groups come from Medicare reassignment: a group's clinicians who do not bill Medicare are not counted.
  2. 2Contract level: a contract with several networks (HMO and PPO plans) is read as one.
  3. 3Coverage follows the directory build (stage 25); an uncovered contract answers no_coverage.
Admitted with a known defect
Groups count Medicare-enrolled clinicians only (reassignment); contract level, so a contract's HMO and PPO networks read as one; ACOs are not rolled up yet (CMS publishes ACO participants by legal name only).

This page as markdown: /docs-md/tools/get_network_groups.md · every page in one file: /llms-full.txt