FINTECH & COMPLIANCE

Real-Time AML Transaction Monitoring Engine

Designed a streaming AML engine processing 4M+ daily wire transfers through Apache Flink, reducing false positive rates from 85% to 22%.

4M+ Daily Wires22% False Positive Rate3x Analyst Capacity

The Challenge

A cross-border payments company processing 4M+ wire transfers daily was generating 12,000+ anti-money laundering (AML) alerts per day — 85% of which were false positives. The compliance team of 40 analysts could not keep up. Alert backlogs routinely exceeded 30 days, putting the company at risk of regulatory action. The existing rules-based system (simple threshold triggers on amount, frequency, and country) could not distinguish between legitimate high-volume merchants and genuinely suspicious patterns.

Our Approach

We replaced the batch rules engine with a streaming AML platform built on Apache Flink.

Real-Time Scoring: Every wire transfer is scored in real-time as it flows through the payment pipeline. The scoring model evaluates 200+ features including transaction characteristics, sender/receiver history, network relationships (graph features), temporal patterns, and jurisdictional risk. Scoring latency is under 50ms per transaction.

Graph-Based Entity Resolution: We built a graph database (Neo4j) that maps relationships between accounts, individuals, companies, and addresses. When a transaction is flagged, the system automatically expands the investigation to include all connected entities within 3 hops. This reveals patterns invisible to per-transaction analysis — such as layering through shell companies or structuring across multiple accounts held by related parties.

Adaptive Thresholds: Rather than fixed rules, the system uses dynamically adjusted thresholds based on customer segment behaviour. A wholesale diamond merchant sending $500K wires is evaluated differently than a retail customer sending $500K. Thresholds are recalibrated monthly using analyst feedback on closed cases.

SAR Generation: When an alert is confirmed as suspicious, the system auto-generates a Suspicious Activity Report (SAR) pre-populated with transaction details, entity relationships, supporting evidence, and a narrative summary. Analysts review and submit rather than drafting from scratch.

Results

MetricBeforeAfter
Daily alerts generated12,000+3,200
False positive rate85%22%
Alert backlog30+ days< 2 days
SAR preparation time4 hours/report45 minutes/report
Analyst capacity (cases/analyst/day)824 (3x)