Back to Projects

Healthcare Analytics

Flagging Fraudulent Medicare Providers

From 558K claims to a provider-level fraud model

  • Machine Learning
  • Python & scikit-learn
  • Tableau
01

The Problem

Medicare fraud happens at the provider level: a hospital or clinic bills for more than it should, usually over and over. But the data comes one row per claim, split across inpatient, outpatient and beneficiary files, and only 506 of 5,410 providers (9.4%) are fraudulent. A model that says "not fraud" every time would be 91% accurate and catch nobody.

02

Strategy & Solution

  • Combined 558,211 inpatient and outpatient claims and built 9 provider-level features: total reimbursed, claims per patient, inpatient ratio, average patient risk (from 11 chronic-condition flags), and a billing-trend signal from a Simple Exponential Smoothing forecast of each provider's monthly billing.
  • Trained a class-weighted Random Forest on a stratified 80/20 split, and benchmarked it against a depth-5 Decision Tree.
  • Scored on PR-AUC instead of accuracy, and published the provider table to a Tableau dashboard for investigators.
03

Impact

  • PR-AUC of 0.706 vs 0.093 for random guessing: roughly 7.6x better than chance.
  • Random Forest beat the Decision Tree (0.464); the tree is kept as an explainable rule set.
  • Found that billing volume (reimbursed and deductible totals) and inpatient ratio drive the predictions most.
  • Showed the precision-recall trade-off: the forest is right on 75% of the providers it flags, while the tree catches 88% of fraud but raises 154 false alarms, so the forest's probabilities can be tuned to an audit team's capacity.

Interested in working together?

Get in touch