# get_medicaid_rate

Get Medicaid Rate · v0.2.0 · state

State Medicaid fee-for-service (FFS) rates by code from every state's published fee schedules, with history, cross-state comparison and the Medicare benchmark. Five modes: lookup (state + code(s): the rate in force today or on as_of, with its unit, type, schedule, effective date and source), compare (one code across every state that publishes it, on one basis, with the national median, quartiles, ratio and rank), trend (one state x code: the dated rates by key with the change at each step), changes (every rate that moved in a state in a date window: increase, decrease, new_code, pct_change), vs_medicare (a state's Medicaid rates as a share of the Medicare PFS non-facility rate for the same codes).

Use cases: 'What does Arizona Medicaid pay for 97153 (ABA)?'; 'Which states pay the most for T1019 personal care per hour?'; 'How has Ohio's H2019 rate moved since 2021?'; 'What changed in Florida's behavioral health rates this year?'; 'How does Texas Medicaid compare with Medicare for 99213?'.

A rate is dated by its own effective date (schedules reprint old rates in each edition; the latest edition printing a dated rate wins; in force = the latest dated rate on or before the day, for a key the current edition still prints). Every rate names its unit (rate_unit, unit_minutes) and type (fee, per_diem, percent_of_charges, conversion_factor, manual_pricing, not_covered); a key with more than one rate for the same date is served flagged ambiguous_key and never averaged; compare keeps one basis (per_hour for time units) and lists other-basis states as not compared. These are the state's FFS maximums, never managed-care negotiated rates. Coverage is state by state (47 states on 2026-11-02): a state with no rows is not built yet, not zero.

SOURCE: vlada_curated.vw_state_medicaid_rate_v2 (one row per published rate with its source file sha256 and locator) and the States lane's views vw_state_medicaid_rate_change_v1, _compare_v1, _vs_medicare_v1 (M2).

**Inputs.**
- `mode`: lookup (state + code(s)), compare (code across states), trend (state + code by dated rate), changes (state, date window), vs_medicare (state [+ code]: Medicaid as a share of Medicare PFS).
- `state`: 2-letter state code (AZ). Required for lookup, trend, changes, vs_medicare.
- `code`: One procedure / service code (97153, H2019, T1019). Required for compare and trend.
- `codes`: Up to 25 codes for lookup, in place of code.
- `code_system`: cpt | hcpcs | local | drg | apc ... as the schedule labels it; optional (compare maps 5-character CPT/HCPCS to HCPCS).
- `service_line`: Filter: aba_ei, behavioral_health, sud, hcbs, idd, professional, ...
- `program`: Filter: the program / waiver as the schedule names it (contains match).
- `provider_type`: Filter: the provider type as the schedule names it (contains match).
- `modifiers`: Modifier string as printed (HO, 'HM U1'); '' for no modifier. compare defaults to no modifier.
- `as_of`: YYYY-MM-DD: the rate in force on that day (lookup). Default: today.
- `date_from`: YYYY-MM-DD (changes, on the rate's effective date). Default: 24 months before date_to.
- `date_to`: YYYY-MM-DD (changes). Default: today.
- `limit`: Rows to return (default 50, max 500).

**Known limits.**
- Coverage is state by state (47 states on 2026-11-02; 147 of 255 state x service-line cells served): a state or line with no rows is not built yet, not zero.
- A printing that holds more than one rate for the same date is served flagged ambiguous_key with its low and high, and kept out of compare (1 key on 2026-11-02 after the dated rule; 11,518 when keyed by edition).
- History depth varies by state (back to 2021 in 71 of 147 cells; some schedules one dated rate).
- vs_medicare joins only no-modifier, single-rate keys with a per-service / unit / visit / 15_min unit and a 5-character CPT/HCPCS code; the Medicare side is PFS non-facility, latest year, unweighted mean of the state's localities, so a per-15-minute Medicaid rate against a per-service Medicare amount is not like for like.
- compare and trend read one code at a time; lookup and vs_medicare take up to 25 codes.

**A real answer** (customer seat, 1.6 s, args `{"mode":"lookup","state":"AZ","code":"97153"}`):

```json
{
 "value": {
  "found": false,
  "not_found_reason": "query_failed",
  "mode": "lookup",
  "query": {
   "mode": "lookup",
   "state": "AZ",
   "code": "97153",
   "limit": 50
  },
  "rates": [],
  "query_ids": []
 },
 "unit": "medicaid_ffs_rate",
 "vintage": null,
 "source": {
  "dataset": "States lane M2: FFS rate book",
  "publisher": "vlada",
  "catalog_updated_at": "2026-10-29"
 },
 "caveats": [
  "These are the state's published Medicaid fee-for-service maximums, never what a managed-care plan pays a provider."
 ],
 "response_hash": "d0b6bd345dec7296c7eeb1f6834a1ec1418da9e0f77474145e786d84c5253517",
 "semantic_version": 1,
 "tool_version": "get_medicaid_rate@0.2.0",
 "explanation": null,
 "status": "complete",
 "audience": "customer",
 "answer": {
  "value_ref": "value",
  "unit": "medicaid_ffs_rate",
  "scope": {
   "tool": "get_medicaid_rate",
   "filters": {
    "mode": "lookup",
    "state": "AZ",
    "code": "97153"
   }
  }
 },
 "method": "Computed over the filters shown in this answer's scope, from the sources listed in its evidence. Nothing outside those filters was included.",
 "evidence": {
  "sources": [
   {
    "dataset": "States lane M2: FFS rate book",
    "publisher": "vlada",
    "catalog_updated_at": "2026-10-29"
   }
  ],
  "response_hash": "d0b6bd345dec7296c7eeb1f6834a1ec1418da9e0f77474145e786d84c5253517"
 },
 "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."
 }
}
```

REST: `POST https://api.vladahealth.com/v1/tools/get_medicaid_rate` with the inputs as the JSON body. MCP: the tool by name.
