HomeAboutServicesPortfolioScrapersReviewsBlog Hire me
Case study

Automated Quality Assurance for Vehicle-Insurance Claims

Category
ML · Data Engineering
Stack
scikit-learn · imbalanced-learn
Data
German vehicle-repair invoices
Status
Completed study
0.910
Test accuracy (time-split)
0.798
ROC-AUC
0.48
Precision on flagged claims

Problem

Insurance back-offices review thousands of vehicle-repair invoices; most are fine, a minority are not. The task: an automated pipeline that screens claims (Beleg_OK — invoice OK or not) so human reviewers focus on the suspicious minority — with engineering discipline, because a fraud-adjacent model that cheats on validation is worse than none.

Approach

The pipeline starts with automated data-quality rules that catch impossible records before modeling: negative hourly wages, invoices dated before the damage occurred, and similar physically-impossible values. Leakage-prone columns are removed, and the train/test split is time-based — the model is always evaluated on a later period than it trained on, exactly as it would run in production.

Technology

  • scikit-learn Pipeline + ColumnTransformer (imputation, scaling, one-hot/ordinal encoding)
  • imbalanced-learn for the skewed class distribution
  • Probability calibration and custom threshold optimizers tuned to the business trade-off

Confusion matrix on the held-out later time period for the calibrated bagging classifier

Result

On the held-out later period, the calibrated bagging classifier reached accuracy 0.9102 with ROC-AUC 0.798. At the precision-focused operating threshold, flagged claims were genuinely invalid 48% of the time — a large lift over the base rate — at the cost of catching 20% of all invalid claims. The write-up states this trade-off openly: as a triage filter the model concentrates reviewer attention well, and the honest minority-class numbers are the reason the evaluation can be trusted.

Need a similar system?

Describe your data and the decision it should support — you'll get a feasibility answer and a fixed quote.

Start a project →