Skip to content

Regulator Mapping

The framework is regulator-agnostic — jurisdictions plug in via the program.jurisdiction and program.regulator fields in the spec, and each rule cites its own regulation clause. This doc summarises how common regimes map onto the spec primitives.

Nothing here is legal advice. Verify current text with your 2nd line or external counsel before relying on any citation.

United States (FinCEN, OCC, OFAC)

Concern Authority / clause Spec primitive
SAR filing 31 CFR 1020.320 reporting.forms.FinCEN_SAR
CTR filing 31 CFR 1010.311 reporting.forms.FinCEN_CTR
Structuring 31 CFR 1010.314 rules[*].regulation_refs
CIP / KYC 31 CFR 1020.220 data_contracts.customer + KYC fields
OFAC sanctions screening 31 CFR Ch. V (OFAC) Rule of type sanctions_list_match
Recordkeeping (5 years) 31 CFR 1010.430 retention_policy.evidence: 5y

Canada (FINTRAC, OSFI)

Core obligations

Concern Authority / clause Spec primitive
STR filing PCMLTFA s.7 reporting.forms.FINTRAC_STR
LCTR (large cash ≥ $10k CAD) PCMLTFR s.7(1) reporting.forms.FINTRAC_LCTR
EFTR (cross-border EFT ≥ $10k) PCMLTFR s.12(1) reporting.forms.FINTRAC_EFTR
24-hour aggregation rule PCMLTFR s.132 rules[*].logic (aggregation_window)
Structuring offence PCMLTFA s.11.1 rules.structuring_cash_deposits
Know-your-client PCMLTFR ss.105-120 data_contracts.customer
Beneficial ownership (≥ 25%) PCMLTFR s.138 data_contracts.customer (KYC fields)
Ongoing monitoring PCMLTFR s.123.1 rules.unusual_volume_spike
PEP / HIO determination PCMLTFA s.9.3, PCMLTFR ss.121-123 Rule of type pep_match
Correspondent banking DD PCMLTFA s.9.4 rules.high_risk_jurisdiction
Recordkeeping (5 years) PCMLTFR ss.144-145 retention_policy.evidence: 5y

PCMLTFR s.71 — Five pillars of a compliance program

Pillar Requirement Spec primitive
1 Compliance Officer (s.71(1)(a)) program.owner
2 Written Policies (s.71(1)(b)) aml.yaml spec (versioned, PR-reviewed)
3 Risk Assessment (s.71(1)(c)) metrics + rules + risk_rating
4 Training (s.71(1)(d)) (roadmap item)
5 Effectiveness Review (s.71(1)(e)) Deterministic re-execution + hash verification

OSFI Guideline B-8 — Additional expectations for FRFIs

Concern B-8 section Spec primitive
Board & senior management oversight B-8 s.2 reports (svp/vp audience)
Automated transaction monitoring B-8 s.3 rules + engine execution
Enhanced DD (high-risk geo) B-8 s.4 rules.high_risk_jurisdiction
Sanctions screening integration B-8 s.5 (roadmap item)
Internal audit independence B-8 s.6 Audit ledger + hash verification

TD Bank 2024 enforcement — gap-to-spec mapping

See docs/case-studies/td-2024.md for detailed traceability from each TD Bank finding to the specific spec clause in examples/canadian_schedule_i_bank/aml.yaml that would surface the gap.

European Union (AMLD6, and soon AMLR / AMLA)

Concern Authority / clause Spec primitive
Suspicious activity reporting AMLD6 Art. 50 reporting.forms.EU_STR
Beneficial ownership AMLD5 Art. 30 / AMLR data_contracts.beneficial_owner
Enhanced due diligence triggers AMLD6 Art. 28 Rule tags edd_trigger: true
Politically Exposed Persons AMLD6 Art. 20 Rule of type pep_match

United Kingdom (FCA, NCA)

Concern Authority / clause Spec primitive
SAR to UKFIU POCA 2002 s.330 reporting.forms.UK_SAR
MLR 2017 customer DD MLR 2017 reg. 28 data_contracts.customer
Sanctions (OFSI) SAMLA 2018 Rule of type sanctions_list_match

Cross-regime patterns

These appear across almost every regime and are first-class in the spec:

  • Structuring / smurfing — windowed aggregation rule. See examples/community_bank/aml.yaml for a reference implementation.
  • Rapid fund movement / pass-through — in/out matching within a short window, often across counterparties.
  • Sanctions / PEP list matching — deterministic list join with name fuzzing; spec records the list version.
  • Unusual activity vs. customer profile — compare actuals to expected behaviour declared at onboarding.
  • Geographic risk — transactions with high-risk jurisdictions per FATF grey/black lists.

Mapping to the control matrix

When aml generate runs, it produces control_matrix.md — a table with one row per rule, columns: rule_id, severity, regulation_refs, owner, last_reviewed, evidence_sample_path. This is the single page most auditors and regulators ask for first.