Skip to content

End-to-end AML transaction monitoring project using synthetic data. Demonstrates risk-based rules, customer risk profiling, alert generation, and explainable risk scoring aligned with FATF and EU AML regulatory expectations.

License

Notifications You must be signed in to change notification settings

bhatnagaraashish/AML_Transaction_Monitoring_Rules_Engine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🛡️AML Transaction Monitoring – Rules-Based Risk Scoring Engine

📌 Project Overview
Financial institutions are required under global and local regulations (FATF, EU AML Directives, and Central Bank of Ireland expectations) to identify, monitor, and report suspicious customer activity in a timely and risk-based manner. This project simulates an end-to-end AML transaction monitoring framework using synthetic but realistic data. It demonstrates how customer risk profiles, transaction behaviour, and rule-based monitoring logic combine to generate explainable alerts suitable for analyst review and compliance reporting. The emphasis is on risk-based monitoring, transparency, and auditability, rather than purely technical implementation.

🎯 Business & Regulatory Rationale

Transaction monitoring systems must: Operate on a risk-based approach Detect both obvious and non-obvious suspicious behaviour (e.g. structuring) Prioritise alerts based on customer and transaction risk Provide clear rationale for every alert raised

This project mirrors how first-line AML monitoring functions operate within banks, fintechs, and crypto platforms.

🧱 Project Architecture

AML_Transaction_Monitoring_Rules_Engine/

├── data/ │ ├── customers.csv ├── transactions.csv

├── notebooks/├── 01_data_generation.ipynb ── 02_transaction_monitoring_rules.ipynb ── 03_risk_scoring_and_alerts.ipynb

├── outputs/ ── alerts.csv ── risk_summary.csv

├── README.md

└── LICENSE

📊 Dataset Design & Rationale

Customer Dataset (customers.csv)

Attribute Rationale
customer_type Monitoring expectations differ for individuals vs businesses
country Jurisdictional risk is a core AML risk driver
risk_rating Enables proportional, risk-based monitoring
pep_flag PEPs require enhanced due diligence
onboarding_date Supports lifecycle and review considerations

Risk distributions are designed to reflect real AML portfolios, with a majority of low-to-medium risk customers and a smaller high-risk and PEP population.

Transaction Dataset (transactions.csv)

Attribute Rationale
amount Core trigger for threshold-based rules
transaction_date Enables velocity and structuring analysis
channel Cash and crypto carry higher inherent risk
country Captures cross-border and high-risk exposure
transaction_type Credit and debit risks differ

A small proportion of near-threshold transactions are intentionally introduced to simulate structuring and threshold-avoidance behaviour.

🧠 Monitoring Rules & Rationale

Rule AML Rationale
High-value transactions Identifies unusually large movements
High-risk country exposure Aligns with FATF jurisdictional risk guidance
Velocity / structuring Detects threshold-avoidance behaviour
PEP enhanced monitoring Required under EDD obligations

Each rule generates an independent flag, ensuring explainability and audit readiness.

⚖️ Risk Scoring Framework

Instead of relying on single rule breaches, alerts are prioritised using risk-weighted scoring.

Risk Factor Score
High-risk customer +30
PEP +40
High-risk country +20
Velocity breach +25

Alert Classification

Low Risk: < 30 Medium Risk: 30–60 High Risk: > 60

This approach mirrors how AML teams prioritise analyst workload in production environments.

📈 Outputs & Compliance MI

Key Outputs

alerts.csv – analyst-ready alert queue

risk_summary.csv – management information view

Example Insights

  • Alert distribution by risk level
  • Most frequently triggered rules
  • Concentration of alerts among high-risk customers

🔍 Key Findings

  • Risk-based scoring improves prioritisation over single-rule alerts
  • High-risk customers and PEPs generate a disproportionate share of high-risk alerts
  • Structuring behaviour becomes visible only when transaction timing and values are analysed together
  • Rule-level transparency supports regulatory explainability and QA review

⚠️ Assumptions & Limitations

  • All data is synthetic and for demonstration purposes only
  • Sanctions screening and adverse media are out of scope
  • FX conversion and typology-specific SAR logic are not implemented
  • Alerts assume human analyst review

🚀 How to Run

  1. Run the notebooks in the following order:
  • 01_data_generation.ipynb
  • 02_transaction_monitoring_rules.ipynb
  • 03_risk_scoring_and_alerts.ipynb

Install dependencies if required: pip install pandas numpy matplotlib

📝 Why This Project Matters

This project demonstrates the ability to:

  • Translate regulatory expectations into technical logic
  • Apply risk-based AML principles in practice
  • Design explainable and auditable monitoring frameworks
  • Bridge compliance, data analysis, and QA thinking Relevant for roles in AML, Transaction Monitoring, Compliance, QA, and FinTech Risk.

🔖 License

This project is released under the MIT License.

About

End-to-end AML transaction monitoring project using synthetic data. Demonstrates risk-based rules, customer risk profiling, alert generation, and explainable risk scoring aligned with FATF and EU AML regulatory expectations.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published