Posts

Showing posts from May 28, 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 ...

How I Caught a Massive Structuring Ring with BDT 100,000 MFS Threshold Monitoring

Image
Photo by Jakub Żerdzicki on Unsplash I still remember the day our system crashed from false positives. It was a nightmare. Over 10,000 transactions were flagged in a single hour, and our team was overwhelmed. We were dealing with a massive structuring ring, and our threshold monitoring system was not equipped to handle it. The Hidden Problem Standard approaches to threshold monitoring often fail in Bangladesh due to the unique characteristics of our financial landscape. The BFIU guidelines require us to monitor transactions above BDT 100,000, but the sheer volume of transactions makes it difficult to identify legitimate activity from suspicious one. For instance, bKash and Nagad have millions of active users, and their transactions are often fragmented, making it hard to detect structuring patterns. Moreover, the lack of robust data analytics tools makes it challenging to identify trends and anomalies. Technical Breakdown & Logic Flow To tackle this problem, we needed to develop ...