Challenge: A payments product was losing money to fraud that rules alone could not catch.

What we built: A streaming scoring engine combining rules and a gradient-boosted model, returning a risk score in single-digit milliseconds. Analysts get a review queue with explanations behind each score.

Impact: Fraud losses dropped materially with a low false-positive rate, and analysts could act on clear, explainable signals.

Stack: Python, XGBoost, Redis streams, Laravel, RBAC review console.