Posts

Showing posts from May 18, 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 Structuring Ring with Python in bKash Transactions

Image
Photo by Orgalux on Unsplash I still remember the day our system flagged a massive structuring ring in bKash transactions - 10,000 suspicious transactions in a single day, with a total value of BDT 50 million. My team and I were on high alert, trying to make sense of the data and prevent a potential money laundering disaster. The Hidden Problem Standard approaches to detecting structuring patterns often fail in Bangladesh due to the unique characteristics of our mobile financial services (MFS) market. With bKash, Nagad, and Rocket dominating the scene, we have to deal with a huge volume of small transactions, making it difficult to identify legitimate activity from illicit one. BFIU guidelines require us to monitor transactions above BDT 100,000, but structuring involves breaking down large amounts into smaller, less suspicious transactions. Technical Breakdown & Logic Flow To tackle this problem, we need to analyze transaction patterns, looking for anomalies in user behavior. Ou...