Posts

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

8 Years of AML in Bangladesh: Cracking the Code on FATF vs BFIU Gaps

I still remember the day our team detected a massive structuring ring in a local mobile financial service (MFS) provider, with transactions totaling over BDT 10 million in a single week. What was more alarming was how this had slipped through our standard monitoring systems, highlighting the critical gaps between FATF recommendations and Bangladesh's BFIU guidelines. The Hidden Problem As an AML compliance analyst, I've found that standard approaches often fail in Bangladesh due to the unique nature of our financial landscape. The BDT 100,000 MFS threshold monitoring, for instance, can be easily circumvented by structuring transactions just below this limit. Moreover, the sheer volume of transactions in platforms like bKash and Nagad makes manual monitoring nearly impossible. Technical Breakdown & Logic Flow To tackle this, our team developed a more nuanced system. First, we collected and preprocessed transaction data, focusing on patterns that might indicate structuring o...

The Dirty Secret to Cleaning Transaction Data: My 8-Year AML Journey in Bangladesh

Image
Photo by Vital Sinkevich on Unsplash I still remember the night our AML system crashed from a false positive tsunami. It was a massive structuring ring, over BDT 100,000 in tiny transactions, slipping through our defenses. I had to act fast, or we'd face a BFIU audit. That's when I realized: dirty transaction data was the hidden enemy. The Hidden Problem Standard approaches to data cleaning just don't cut it in Bangladesh. With bKash, Nagad, and Rocket, our MFS landscape is unique. We have to monitor transactions above the BDT 100,000 threshold, but most systems fail to account for our local nuances. I've seen it time and time again: 80% of banks and fintechs struggle to write effective SAR narratives . It's not just about identifying suspicious activity; it's about understanding the context. Technical Breakdown & Logic Flow To tackle this problem, I had to think outside the box. I chose to use isolation forest to identify anomalies in our transaction data...

Why ML-Based AML Systems Fail in Bangladesh and How to Fix Them

Image
Photo by ray rui on Unsplash I still remember the day our AML system crashed due to false positives, causing a backlog of over 10,000 transactions. It was a nightmare. Our team had to manually review each transaction, and it took us weeks to clear the backlog. The problem was not just the false positives, but also the fact that our system was not designed to handle the unique characteristics of the Bangladeshi market. The Hidden Problem In Bangladesh, the BFIU guidelines require us to monitor transactions above BDT 100,000. However, most AML systems are designed with a one-size-fits-all approach, which does not take into account the local nuances. For example, in Bangladesh, we have a large number of microtransactions, which can trigger false positives. Additionally, the MFS threshold monitoring requirements are unique to Bangladesh, and most systems are not designed to handle these requirements. Technical Breakdown & Logic Flow To solve this problem, we needed to design a syste...

Why 80% of Bangladesh Banks Fail to Write Effective SAR Narratives: My 8-Year AML Journey

Image
Photo by Shoeib Abolhassani on Unsplash Why 80% of Bangladesh Banks Fail to Write Effective SAR Narratives: My 8-Year AML Journey I still remember the day our bank received a BDT 5 crore SAR from a prominent Nagad user. The narrative mentioned an alleged money laundering scheme involving a string of bKash transactions, but it lacked the crucial details needed to make a meaningful report to the BFIU. It was a perfect storm of red flags: multiple transactions, unverified sender and receiver information, and a suspicious pattern of fund transfers. The Hidden Problem My 8-year journey as an AML compliance analyst in Bangladesh has revealed a shocking truth: most banks in the country struggle to write effective SAR narratives. It's not a matter of skill or expertise; it's a symptom of a deeper issue – a lack of understanding of the SAR reporting process and the corresponding BFIU guidelines. The problem starts with the MFS threshold of BDT 100,000, which requires banks ...

How I Caught a Nagad Transaction Anomaly Using IsolationForest

Image
Photo by Mohamed Nohassi on Unsplash I still remember the night we discovered a massive structuring ring in Nagad transaction data. It was a frantic call from our compliance officer - BDT 50 million in suspicious transactions over a single weekend. Our team sprang into action, but standard approaches weren't yielding results. That's when I turned to IsolationForest for anomaly detection. The Hidden Problem In Bangladesh, our Mobile Financial Services (MFS) like bKash and Nagad have a BDT 100,000 transaction threshold for monitoring. But when you're dealing with millions of transactions daily, even a small percentage of false positives can overwhelm your team. Standard machine learning models weren't effective in capturing the nuances of our local transactions. Technical Breakdown & Logic Flow IsolationForest works by identifying data points that are farthest from the rest - essentially, it's looking for outliers . The logic flow is as follows: Collect and pr...

How I Caught a Massive Layering Scheme in Mobile Banking

Image
Photo by Roger Starnes Sr on Unsplash I still remember the day our team detected a massive layering scheme in our mobile banking system. It was a typical Monday morning when our alert system started buzzing with unusual transaction patterns. The numbers were staggering - over 10,000 transactions in a single day, all below the BDT 100,000 threshold, and all of them were layered in a way that seemed almost impossible to detect. The Hidden Problem As I dug deeper, I realized that our AML rule engine was missing a critical aspect of layering detection. The engine was designed to catch obvious structuring attempts, but it was not sophisticated enough to identify complex layering schemes. This was a major concern, as layering is a common technique used by money launderers to evade detection. According to the BFIU guidelines, layering is defined as the process of moving funds through multiple transactions to disguise the origin of the money. In mobile banking, layering can be particularly ch...