IMI Big Data & AI: AML Detection Platform
Team 33's winning submission to the 2025–2026 IMI Big Data & AI Competition ($15,000 prize) — pattern-based AML detection, SHAP explanations, and an interactive Next.js knowledge library.
Competition
2025–2026 IMI Big Data & AI Competition — a national data science competition focused on anti-money laundering (AML). Teams work with synthetic Canadian banking transaction data to build knowledge libraries, detect high-risk customers, and produce interpretable model explanations aligned with FINTRAC regulatory frameworks.
This year, 430 students — from undergraduate to PhD across U of T’s three campuses — formed 90 teams that competed over several rounds. Scotiabank provided mentorship from its own data scientists and a large portion of the competition’s $30,000 in prize money.
Team: Team 33 — 1st place, $15,000 prize
Triangle of Traceability
There is nothing that can’t be traced back to a source. This is our core team value.
Every pattern, red flag, vocabulary term, and risk score in the project is sourced from credible regulatory authorities (FINTRAC, FinCEN, FATF, and others) with full provenance.
What we built
Our submission spans three competition tasks plus an interactive web application:
Task 1 — AML Knowledge Library
- 8 AML patterns from FINTRAC typologies (rapid fund movement, unusually large amounts, high volume activity, profile inconsistency, KYC anomalies, cash-intensive activity, velocity anomalies, and more)
- 253 red flags categorized by pattern type with transaction-type relevance
- 25 vocabulary terms with definitions sourced from regulatory guidance
- Sourced risk-score reference data for occupations, industries, MCCs, and countries
Task 2 — Bad Actors Detection
- Pseudolabel classification and anomaly detection models trained on engineered KYC and transaction features
- 4-tier risk scoring: Low (0–39%), Medium (40–69%), High (70–100%), Critical (flagged)
- Inference pipeline producing
model_output.csvwithcustomer_id,predicted_label, andrisk_scorefor every customer
Task 3 — Model Explanations
- SHAP-based interpretability with pattern detection mapped to FINTRAC typologies
- Per-customer explanations aggregated across transaction types with expandable detail sections
- Each explanation leads with overall risk level and risk score for quick scanning
Web Application
A Next.js application with four views:
- Dashboard — risk distribution overview
- Knowledge Library — browse patterns, red flags, and vocabulary
- Model Results — customer predictions with LLM-generated investigative narratives
- Visualization — interactive React Flow graph linking Features → Patterns → Red Flags
Workflow
/data/raw/ → Original CSVs (transactions, KYC, labels)
/data/cleaned/ → Missing values handled, dates formatted
/data/processed/ → KYC and transaction feature engineering
/data/final/ → Model-ready per-transaction datasets
/bad-actors-detection/results/ → Model predictions with risk scores
/model-result-explanations/explanations/ → SHAP explanations with pattern detection
/submit/ → Final deliverables (model_output.csv, model_output_explanations.csv)
Tech stack
- ML / Data: Python, scikit-learn, SHAP, Jupyter, Anaconda (
team-33-env) - Feature engineering: Custom data pipeline (
data_pipeline.py,kyc_features.py,transactions_features.py) - Web app: Next.js, React, React Flow
- Data sync:
sync_data.pyships knowledge library, model outputs, and visualization graph to the frontend
Outcome
Team 33 won 1st place and $15,000 out of 90 competing teams.
Final deliverables in /submit/:
-
model_output.csv— predictions for all customers -
model_output_explanations.csv— human-readable explanations with detected AML patterns
The web application runs locally and provides an end-to-end investigative workflow from knowledge browsing through risk scoring to explainable model output.