mkieffer/Medicaid-Provider-Spending
Medicaid Provider Spending This dataset packages: the raw Medicaid Provider Spending dataset (as published on HHS Open Data), and the derived identifier-resolution artifacts produced by this repository when extracting and resolving the unique NPIs and HCPCS/CPT codes found in the raw spending data. Source Data Medicaid Provider Spending (public dataset published by HHS/Open Data): opendata.hhs.gov/datasets/medicaid-provider-spending CMS NPPES bulk dissemination… See the full description on the dataset page: https://huggingface.co/datasets/mkieffer/Medicaid-Provider-Spending.
Medicaid Provider Spending
This dataset packages:
- the raw Medicaid Provider Spending dataset (as published on HHS Open Data), and
- the derived identifier-resolution artifacts produced by this repository when extracting and resolving the unique NPIs and HCPCS/CPT codes found in the raw spending data.
Source Data
- Medicaid Provider Spending (public dataset published by HHS/Open Data): opendata.hhs.gov/datasets/medicaid-provider-spending
- CMS NPPES bulk dissemination files + CMS NPI Registry API (for NPI/provider metadata)
- NLM Clinical Tables HCPCS API (for HCPCS/CPT code metadata)
Source Repository
Project code, build scripts, and pipeline logic live at: ToadResearch/Medicaid_Provider_Spending.
Data Splits
These are exposed on Hugging Face as three dataset configurations (spending, npi, hcpcs) because each has a different schema (the Hub viewer and datasets expect a consistent schema within a single config).
Usage
from datasets import load_dataset
spending = load_dataset("mkieffer/Medicaid-Provider-Spending", "spending")["spending"]
npi = load_dataset("mkieffer/Medicaid-Provider-Spending", "npi")["npi"]
hcpcs = load_dataset("mkieffer/Medicaid-Provider-Spending", "hcpcs")["hcpcs"]Split Schemas
spending
npi
All columns in this split are string (some are JSON-encoded strings).
hcpcs
All columns in this split are string (some are JSON-encoded strings).
Parquet Null / Empty-List Audit
<!-- BEGIN PARQUETNULLAUDIT --> Auto-generated by `./builddatasets.sh (or cargo run --release --manifest-path builddatasets/Cargo.toml -- --null-check`).
- Generated at (unix seconds): 1771173117
- NPI parquet:
data/output/npi.parquet - HCPCS parquet:
data/output/hcpcs.parquet
Notes:
null_countcounts actual Parquet nulls.empty_list_countcounts the literal string value"[]"(JSON-encoded empty list).
NPI (data/output/npi.parquet)
HCPCS (data/output/hcpcs.parquet)
<!-- END PARQUETNULLAUDIT -->
Unmapped / Unresolved Identifier Counts
For the build that produced this dataset:
- NPI: 24,272 unique NPIs were not successfully mapped/resolved (15,012 request errors; 9,260
not_found). - Many of these were invalid NPI identifiers (4,111 unique): 2,928 non-numeric, 971 wrong-length, 205 checksum-invalid (Luhn), and 7 placeholders.
- Some NPIs have been inactive/deactivated in NPPES/NPI Registry (status can change over time); when present, check the registry payload for an active/inactive status (and/or NPPES deactivation fields) before treating an NPI as current.
- Full format breakdown from triage:
- HCPCS/CPT: 4,610 unique codes were not successfully mapped/resolved (4,608
not_found; 2 request errors). - Full resolved/unresolved pattern breakdown from triage:
- 458 unique codes were flagged by triage as "needs review" (e.g., flags/words, placeholders, or unknown alphanumeric patterns).
- The 2 request errors are included in
unknown(for exampleH)015,NT/WKN).
