When we launched the app in the first quarter of 2025, fraud review at Yusr was a batch job. Payments cleared, a scoring run went out overnight, and a queue of suspicious activity landed on an analyst's screen the next morning. That is a perfectly respectable way to run anti-money-laundering surveillance. It is a terrible way to stop card fraud, because by the time anyone looks at the case the money is gone and the work has turned into recovery.
So over the second half of 2025 we moved the whole thing onto the payment path. The risk engine is now a synchronous call inside authorisation. The authorisation service will not return a decision until the risk engine has answered or the deadline expires, which means the engine has become the sort of service that wakes people up at night — and had to be built accordingly.
This post covers the feature pipeline that feeds it, the model itself, how we hold the latency budget, what the five score bands do, and how we watch the model for the slow rot that eventually gets every fraud model.