How VIGILIX calculates risk scores and determines matches across sanctions lists, PEP databases, and adverse news sources.
VIGILIX uses a multi-layered screening approach. Each person is checked against three independent data sources. The final risk assessment combines name matching, date of birth verification, PEP status, and adverse media findings.
Names are stripped of accents, diacritics, punctuation and converted to lowercase before any comparison. This ensures "Müller", "Mueller" and "MULLER" are treated identically.
Multiple name combinations are tested (First Last, Last First, Last only) using sequence matching and token-sort algorithms. The best score across all combinations is retained.
If a date of birth is provided, the name score is adjusted up or down based on whether the DOB matches, partially matches, or conflicts with the list entry.
A final verdict (ALERTE / ATTENTION / OK) is assigned based on the adjusted score and the configured similarity threshold.
The name score (0–100) measures how similar the queried name is to an entry in the sanctions list. Two algorithms are used and the highest score is retained:
| Query | List Entry | Score | Why |
|---|---|---|---|
| Assad, Bashar | Assad, Bashar Al- | 100% | Exact match after normalization |
| Assad, Bashar | Assad, Maher | 88% | Same family name, different first name — first name penalty applied (−12pts). Returns as ATTENTION, not ALERT. |
| Putin, Vladimir | Poutine, Vladimir | 93% | Transliteration variant — same first name, no penalty |
| Al-Qadhafi, Muammar | Kadhafi, Mouammar | 82% | Arabic transliteration variant |
| Assad, Bashar | Assad, Maher (no DOB) | 100% | If no first name provided, no penalty is applied — provide DOB to disambiguate |
| Smith, John | Poutine, Vladimir | 38% | No match — well below threshold |
Providing a date of birth significantly improves accuracy by confirming or invalidating potential matches. The system accepts multiple date formats (YYYY-MM-DD, DD.MM.YYYY, DD/MM/YYYY).
After DOB adjustment, the final score determines the verdict. The threshold is configurable (default: 80%).
VIGILIX queries four official sanctions lists, automatically updated every night at 2:00 AM (server time).
| List | Source | Legal Basis | Update Frequency |
|---|---|---|---|
| 🇨🇭 SECO | sesam.search.admin.ch | Embargo Act (LEmb), SR 946.231 | Weekly or on change |
| 🇪🇺 European Union | webgate.ec.europa.eu | EU Council Regulations | Daily |
| 🇺🇳 United Nations | scsanctions.un.org | UN Security Council Resolutions | On change |
| 🇺🇸 OFAC / SDN | treasury.gov | IEEPA, TWEA, UN Participation Act | Multiple times per week |
Politically Exposed Persons (PEPs) are individuals who hold or have held prominent public functions. Under Swiss AML law (LBA Art. 2a), financial intermediaries must identify PEPs and apply enhanced due diligence.
VIGILIX queries Wikidata (the structured database behind Wikipedia) in real time to identify whether a person has held or currently holds a political position. This approach is:
VIGILIX searches for negative media coverage from two sources simultaneously:
Results from both sources are merged, deduplicated by domain, and scored. The search engine used is displayed alongside each article. Six risk categories are screened:
| Category | Keywords searched |
|---|---|
| ⛔ Sanctions | sanction, embargo, asset freeze, blacklist, OFAC, SECO, designated, restricted |
| 🚔 Crime | fraud, criminal, convicted, trial, sentenced, arrested, charged, guilty, prison |
| 💸 Corruption | corruption, bribery, bribe, embezzlement, kickback, misappropriation, kleptocracy |
| 🏦 Laundering | money laundering, illicit finance, financial crime, shell company, offshore |
| 💣 Terrorism | terrorism, terrorist, terror financing, extremist, jihadist, ISIS, Al-Qaeda |
| 🔎 Investigation | investigation, indicted, probe, inquiry, accused, suspect, warrant, Interpol |
Unlike the sanctions score, the adverse news score is based on source reliability and article freshness — not the number of categories found. Categories are used only to filter out irrelevant results.
| Factor | Weight | How it works |
|---|---|---|
| Source reliability | 80% | Reuters, BBC, OCCRP → 88-92pts. Government sources → 95-100pts. Unknown blogs → 45pts. |
| Article freshness | 20% | <1 month → 95pts. <1 year → 75pts. <5 years → 45pts. Older → 15-30pts. |
The final score is: score = source_reliability × 0.80 + date_freshness × 0.20
A HIGH risk article from Reuters published last month scores ~90. The same article from an unknown blog scores ~50.
To include an article, the person's name must appear in the search result. The system checks in this order: