Skip to content

Case Study: TD Bank 2024 Enforcement Actions

Background

On October 10, 2024, TD Bank N.A. and TD Bank US Holding Company pled guilty to conspiracy to fail to maintain an adequate AML program (31 U.S.C. s.5318(h)) and conspiracy to commit money laundering (18 U.S.C. s.1956(h)). The combined penalties totalled approximately $3.09 billion — the largest BSA enforcement action in history.

Penalty breakdown (approximate):

Agency Amount Instrument
DOJ ~$1.8B Criminal fine + forfeiture
FinCEN ~$1.3B Civil money penalty
OCC ~$450M Civil money penalty (AA-EC-2024-71 [partially verified])

The OCC also imposed an asset cap on TD Bank's U.S. operations (~$434B), only the second such restriction on a major bank after Wells Fargo in 2018.

Sources: - DOJ press release, October 10, 2024 - FinCEN consent order (Assessment No. 2024-04 [partially verified]) - OCC consent order (AA-EC-2024-71 [partially verified])

Key Findings

1. Channel Coverage Gap (~92% Unmonitored)

TD's transaction monitoring system was configured to monitor only a narrow set of transaction types — primarily international wire transfers. Domestic ACH, cheques, and certain other channels were excluded entirely. Approximately 92% of transaction volume (by dollar value) — over $18.3 trillion between 2018 and 2024 — was never reviewed by automated monitoring.

2. Pass-Through / Rapid Movement

Criminal networks deposited funds (often via ACH or cash) and withdrew or transferred them out within hours or days. One network moved over $470 million through TD accounts between 2019 and 2023 using this pattern. A second moved approximately $39 million.

3. Shell Companies and Nominee Accounts

Accounts were opened in the names of shell companies or entities with no apparent legitimate business purpose. CDD/KYC failures meant the bank did not identify true beneficial owners.

4. Internal Alert Failures

Multiple TD employees filed internal suspicious activity referrals that were not investigated, not escalated, or not acted upon. At least five employees were identified as facilitating or complicit in laundering schemes. Branch-level concerns went nowhere because the compliance infrastructure failed to act on referrals.

5. SAR Filing Delays

SARs were filed months or even years late. The bank had a backlog of thousands of unreviewed alerts. Under-filing was systemic — SAR volume was inconsistent with the bank's transaction volume and risk profile.

Traceability: Finding to Spec Clause

The table below maps each TD finding to the specific clause in examples/canadian_schedule_i_bank/aml.yaml that would surface the gap. This is not a claim that the framework would have prevented the enforcement action — it is a traceability example showing that spec-driven controls make these gap patterns visible and measurable.

TD Finding Spec Clause How It Surfaces
92% unmonitored channels metrics.channel_coverage_gap (coverage formula, target: 100%) Metric turns RED if any declared channel lacks a detection rule. Audience: SVP, VP, Director.
Pass-through ($470M+) rules.rapid_pass_through (custom_sql: cash-in → e-transfer-out within 48h, ≥$30k) Rule fires on the planted pass-through scenario (C0007). Tags: [pass_through, layering, e_transfer, td_finding].
Shell companies rules.shell_company_indicators (custom_sql: no business_activity + 10+ incoming wires) Rule fires on planted shell company (C0008, Oceanic Holdings Ltd). Tags: [shell_company, layering, beneficial_ownership].
Internal alerts ignored metrics.internal_alert_ignored (repeat-alert rate: closed_no_action then re-alerted within 90d) Metric turns RED if >5% of closed cases re-surface. Audience: VP, Director, Auditor.
SAR filing delays metrics.str_filing_latency_p95 (target: ≤30 days per PCMLTFR) Metric turns RED if p95 filing latency exceeds 30 days. Audience: SVP, VP, Director, Auditor.
Under-filing / LCTR gaps metrics.lctr_completeness (target: 100% of reportable cash transactions reported) Metric turns RED if any reportable cash transaction lacks an LCTR.
CDD/EDD failures metrics.edd_review_adherence (target: ≥95% of high-risk customers have current EDD) Metric turns RED if <80% of high-risk customers have a current review.
Inadequate program metrics.typology_coverage + metrics.rules_active_count Coverage below 80% turns RED. Active rules below 4 turns RED.
Compliance culture workflow.queues with SLAs + reports per audience Spec-driven workflow forces every alert through a queue with a timed SLA and named owner.

Reports That Would Have Flagged It

The spec generates five audience-specific reports:

Report Audience What It Shows
cao_quarterly SVP (Chief AML Officer) Channel coverage gap, typology coverage, STR filing latency, LCTR completeness
mlro_monthly VP (MLRO) Repeat-alert rate (internal alerts ignored), EDD adherence, escalation health
fintrac_readiness Director Coverage controls, regulatory compliance, escalation integrity
ops_daily Manager Queue load, SLA compliance, transaction volume
osfi_exam_prep Auditor Full coverage + filing + escalation evidence package

Regulatory Citations in the Spec

Every rule in the spec cites the regulation clause that justifies it:

Rule Citations
structuring_cash_deposits PCMLTFA s.11.1, PCMLTFR s.7(1)
rapid_pass_through PCMLTFA s.7, FINTRAC Operational Alert 2016-01
shell_company_indicators PCMLTFA s.7, PCMLTFR s.138, OSFI Guideline B-8 s.4
high_risk_jurisdiction PCMLTFA s.9.4, FINTRAC Guideline 8A
large_cash_lctr PCMLTFR s.7(1), PCMLTFR s.132
unusual_volume_spike PCMLTFA s.7, PCMLTFR s.123.1
dormant_account_activity PCMLTFA s.7, FINTRAC ML/TF Indicators