How MedicaidBench Sources and Verifies Fee Schedule Data
Every rate on MedicaidBench traces back to an official publication. This post walks through how that data actually gets from a state’s fee schedule into the platform, and what our status labels mean when you’re deciding how much to trust a given number.
Where the data comes from
We pull directly from three kinds of sources, and only these:
- State Medicaid agency fee schedules — the primary source for FFS rates, published as PDFs, spreadsheets, or (in a growing number of states) searchable web portals.
- CMS — for the federally mandated Medicaid-vs-Medicare comparative analysis data required for certain primary care and behavioral health codes.
- The DEA — for substance-schedule classifications relevant to behavioral health billing contexts.
We never pull from aggregators, forums, or secondary compilations. If a number can’t be traced to one of these three source types, it doesn’t go in the database.
How ingestion actually works
Each state publishes fee schedules differently — different file formats, different update cadences, different portal structures. Our collector pipeline is built per-state rather than assuming one format fits all: some states publish clean structured spreadsheets, others require parsing PDFs, and a few require navigating an interactive lookup tool.
When a new fee schedule publishes, the pipeline captures a snapshot of the source document at the time of retrieval, extracts the relevant rate rows, and links each resulting rate record back to that snapshot and the live source URL. That’s what powers the “source” and “snapshot” links you see on every rate in the app.
What “Verified” vs. “Auto-extracted” means
Every rate carries a status:
- Auto-extracted — the rate was captured and parsed automatically from the source document. This is the default for newly ingested data.
- Human-verified — a person on our data team has cross-checked the extracted value directly against the source document.
We surface this distinction rather than hiding it, because automated extraction from inconsistent government PDF formats is not error-proof, and we’d rather you know which rates have had an extra layer of scrutiny than present everything with false uniformity.
Handling change and lag
States don’t publish on a predictable schedule, and some publish quarterly, others annually, others only when a rate actually changes. Our pipeline checks official sources on an ongoing basis rather than on a fixed calendar, so the lag between a state publishing a change and it appearing in MedicaidBench is typically measured in hours to a couple of days — not the weeks or months it can take to notice a change manually.
That said, a lag can still exist, and occasional discrepancies between our database and the authoritative source are possible, which is exactly why every number links back to where it came from. If you’re making a decision with real consequences, that source link is there so you (or your team) can confirm it directly — not just as a courtesy citation.
Want to track rates like these automatically?
Free for 14 days, no credit card. Set alert rules in plain English and get an email the day a rate changes.
Start free trial →