Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sanctions & PEP Screening Demo

Problem

Financial institutions must screen clients against sanctions and Politically Exposed Persons (PEP) lists every day.

Exact matching often fails because of spelling mistakes, different formats, or special characters.

This project shows how to use fuzzy matching to detect possible matches.

Data

- Sanctions list: OFAC SDN list (public data)

- Customers: Fake names generated with Python Faker

Approach

1. Take names from sanctions list

2. Generate fake customer names

3. Clean the names (uppercase, remove accents, punctuation, extra spaces)

4. Use rapidfuzz to calculate similarity scores

5. Flag customers if score is above a threshold (e.g. 85)

6. Show results in a Streamlit dashboard

Repo Structure

sanctions_pep_screening/

  README.md

  requirements.txt

  .gitignore

  LICENSE

  data/

  sdn.csv

  sanctioned_names.csv

  customers.csv

  src/

  screening.py

  dashboards/

  streamlit_app.py

  docs/

  screenshot.png

  tests/

  test_screening.py

How to Run


1. Clone the repo and go into the folder

  git clone

  cd sanctions_pep_screening

2. Create a virtual environment

  python -m venv .venv

  .venv\Scripts\activate (Windows)

  source .venv/bin/activate (Mac/Linux)

3. Install requirements

  pip install -r requirements.txt

4. Run the app

  streamlit run dashboards/streamlit_app.py

5. Run tests

  pytest -v

About

Fuzzy matching for sanctions & PEP screening (OFAC list + Onboarding Customers) with Python, Streamlit dashboard - tests.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages