Fraud Radar — Real-time card-fraud detection
Real-time fraud scoring with rules, XGBoost and per-decision SHAP. 1,407 tests, a live demo, and a benchmark that shows where the model fails.
- Build
- Evaluate
- Discover
- Report

Measured, not claimed
0.9327 PR-AUC
In-distribution
Synthetic held-out fold · 93 frauds in 7,502
0.8653 PR-AUC
Retrained on an independent generator
Sparkov fold · 924 frauds in 277,860
0.0087 PR-AUC
Carried across generators, no retraining
Same Sparkov fold · 0.0033 prevalence
0.7670 PR-AUC
Real anonymised card data, isolated track
ULB seed 42 · 52 frauds in 42,722
3.7 ms
Service-layer scoring, p50
n = 500, developer laptop
1,407 tests
Green in CI
ruff · mypy --strict · tsc · eslint
The same 17-feature pipeline scores 0.9327 on the generator it was trained on and 0.0087 when carried across to an independent one without retraining. Five of its features are constant on the target data, and the operating threshold does not transfer either. That result is published in the repository rather than left out.