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.

GitHub

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

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.csv with customer_id, predicted_label, and risk_score for 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.py ships 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.