Posts

Showing posts from June 29, 2026

I Built a BFIU-Compliant AML Detection System in Python (Here's Why the Kaggle Approach Doesn't Work

I Built a BFIU-Compliant AML Detection System in Python (Here's Why the Kaggle Approach Doesn't Work)

Most AML tutorials end with a confusion matrix and a 99% accuracy score. Here's why that doesn't work — and what I built instead. I've been working in fintech compliance data for a while. The one thing I kept noticing: every "fraud detection project" on GitHub or Kaggle uses the same dataset — the UCI credit card fraud dataset from 2013. It has 284,000 rows, 30 features labeled V1-V28, and approximately zero explanatory value for anyone who wants to understand how financial crime actually works. So I built something different. The problem with the standard approach Real transaction monitoring engines don't work like Kaggle competitions. They don't take a CSV, train a model, and output a probability score. They work like this: A rule engine runs first — deterministic, auditable, regulatory-cited rules that generate alerts Those alerts get scored and triaged by risk tier An ML layer reduces false positives among the high-risk alerts ...

Why Most Customer Risk Scoring Models Fail in BD Fintechs: A 8-Year Veteran's Guide

Image
Photo by Brett Jordan on Unsplash It's 3 AM, and my phone is blowing up. Our system has flagged a massive structuring ring, with over 500 suspicious transactions in the last hour alone. The total amount? A whopping BDT 50 million. I'm talking bKash, Nagad, DBBL - all the major players are involved. This is not a drill. I've spent the last 8 years building and refining customer risk scoring models for BD fintechs. And let me tell you, it's a daunting task. The standard approaches just don't cut it here. So, what's the hidden problem? The Hidden Problem In Bangladesh, we have a unique set of challenges. For one, the BDT 100,000 MFS threshold monitoring is a major pain point. We need to flag any transaction above this amount, but the false positives are through the roof. And then there's the STR/SAR bottlenecks - our systems are overwhelmed with suspicious activity reports, and it's hard to separate the wheat from the chaff. So, how do we build a custome...