Didit’s AML Screening provides real-time risk detection by screening users against global watchlists and databases. The solution combines advanced data matching with AI-powered risk assessment to ensure regulatory compliance while maintaining a smooth user experience.
Key Concepts: Match Score vs Risk Score
Didit uses a two-score system for AML screening:
Match Score (Identity Confidence)
- Question: Is this match the same person we’re screening?
- Factors: Name similarity, Date of Birth, Country/Nationality, Document Number
- Purpose: Classifies match as False Positive or Unreviewed (Possible Match)
- Threshold: Match Score Threshold (default: 93)
Risk Score (Entity Risk Level)
- Question: How risky is this entity if it’s a true match?
- Factors: Country risk, Category (PEP/Sanctions/etc.), Criminal records
- Purpose: Determines the final AML status (Approved/In Review/Declined)
- Thresholds: Approve Threshold (default: 80) and Review Threshold (default: 100)
┌─────────────────────────────────────────────────────────────────────────────┐
│ AML SCREENING FLOW │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ STEP 1: Screen against watchlists │
│ └── Returns potential matches (match score ≥ 75% included) │
│ │
│ STEP 2: For each match, calculate MATCH SCORE │
│ └── Match Score = (Name × W1) + (DOB × W2) + (Country × W3) │
│ │
│ STEP 3: Classify match by match score │
│ ├── Match Score < 93 → FALSE POSITIVE (excluded from risk) │
│ └── Match Score ≥ 93 → UNREVIEWED (included in risk) │
│ │
│ STEP 4: For unreviewed matches, calculate RISK SCORE │
│ └── Risk Score = (Country × 30%) + (Category × 50%) + (Criminal × 20%) │
│ │
│ STEP 5: Determine AML STATUS (highest risk score among non-FP matches) │
│ ├── Risk Score < 86 → APPROVED │
│ ├── 86 ≤ Risk Score ≤ 100 → IN REVIEW │
│ └── Risk Score > 100 → DECLINED │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
Match Review Statuses
Each AML match is assigned a review status based on its match score:
| Status | Description | When Assigned |
|---|
| False Positive | Match is likely NOT the same person | Match score < threshold (auto-assigned) |
| Unreviewed | Match is a possible match requiring review | Match score ≥ threshold (auto-assigned) |
| Confirmed Match | Match has been verified as the same person | Manually set by compliance officer |
| Inconclusive | Unable to determine if match is the same person | Manually set by compliance officer |
Tip: You can change a match review status in the Console by viewing the AML overview or clicking on a specific match to see its details.
Key Features
- Accurate Extraction: Extract data from user-provided information or identity documents using advanced OCR technology.
- Fuzzy Logic: Account for name variations and misspellings to ensure comprehensive data capture.
2. Extensive Watchlist Coverage
Screen against multiple categories including:
- Sanctions Lists: From government and international bodies.
- Politically Exposed Persons (PEPs): Individuals with prominent public functions.
- Criminal Records: Including global and local criminal databases.
- Adverse Media Mentions: News articles and reports on financial crimes and other risks.
- Custom Watchlists: Configurable based on specific client requirements.
3. Advanced Matching Algorithms
- Fuzzy Matching: Catch slight variations in names or details to ensure accurate matching.
- Multiple Data Points: Utilize name, date of birth, nationality, and other identifiers for thorough screening.
- Golden Key Logic: Document number matching that can override scores for definitive identification.
4. Two-Score Risk Assessment
Each match receives TWO scores:
| Score | Purpose | Classification |
|---|
| Match Score (0-100) | Is this the same person? | False Positive vs Unreviewed |
| Risk Score (0-100) | How risky is this entity? | Determines final AML status |
Match Review Status (based on Match Score):
- False Positive: Match score below threshold - likely NOT the same person
- Unreviewed: Match score at or above threshold - requires review
Final AML Status (based on highest Risk Score among non-false-positive matches):
- Approved: All unreviewed matches have low risk scores
- In Review: At least one unreviewed match has medium-high risk score
- Declined: At least one unreviewed match has very high risk score
Screen against a wide range of adverse media categories, including:
- Financial Crimes: Money laundering, embezzlement, and more.
- Violent Crimes: Assault, murder, and related offenses.
- Terrorism: Involvement in or support for terrorist activities.
- Narcotics: Drug trafficking and related crimes.
- Fraud: Various types of fraud and deceptive practices.
- Regulatory Violations: Breaches of regulatory compliance requirements.
6. Customizable Screening Parameters
- Adjustable Sensitivity: Configure the screening sensitivity based on your organization’s risk appetite.
- Customizable Watchlists: Select which watchlists and categories to include in the screening process to meet specific requirements.
Configurable Thresholds
You can customize security levels by setting different thresholds:
Match Score Configuration:
| Setting | Default | Description |
|---|
| Match Score Threshold | 93 | Matches below this are False Positives, at or above are Unreviewed |
| Name Weight | 60 | Weight for name in match score |
| DOB Weight | 25 | Weight for DOB in match score |
| Country Weight | 15 | Weight for country in match score |
Risk Score Thresholds (Final Status):
| Setting | Default | Description |
|---|
| Approve Threshold | 80 | Risk scores below = Approved |
| Review Threshold | 100 | Risk scores above = Declined; between = In Review |
These thresholds can be adjusted based on your risk tolerance and security requirements.
How It Works
Our AML Screening process efficiently identifies potential risks while minimizing delays for legitimate users.
Data Extraction
The system extracts relevant information from either user-provided data or uploaded identity documents.| Input | Method |
|---|
| Identity documents | Advanced OCR technology for accurate data extraction |
| User-provided data | Direct input (name, DOB, nationality, document number) |
| Fuzzy logic | Accounts for name variations and misspellings |
Watchlist Screening
The extracted data is cross-checked against 1,300+ global watchlists and databases in real time:
- Sanctions Lists — Government and international bodies (OFAC, EU, UN, etc.)
- Politically Exposed Persons (PEPs) — Individuals with prominent public functions
- Criminal Records — Global and local criminal databases
- Adverse Media — News articles and reports on financial crimes
- Custom Watchlists — Configurable based on your requirements
Match Score Calculation
For each potential match, the system calculates an identity confidence score — how likely it is the same person.| Factor | Default Weight | Description |
|---|
| Name similarity | 60% | Fuzzy matching accounting for variations |
| Date of Birth | 25% | Exact or partial DOB comparison |
| Country/Nationality | 15% | Country of origin comparison |
- Match Score below threshold (default: 93) → classified as False Positive
- Match Score at or above threshold → classified as Unreviewed (possible match)
- Golden Key: Document number match can override to 100% for definitive identification
Risk Score Calculation
For non-false-positive matches, the system calculates the entity’s risk level:| Factor | Weight | Description |
|---|
| Category | 50% | PEP level, sanctions type, criminal severity |
| Country risk | 30% | Risk rating of associated countries |
| Criminal records | 20% | Presence and severity of criminal history |
Final Status Determination
Based on the highest risk score among all non-false-positive matches:| Risk Score | Status | Action |
|---|
| Below approve threshold | Approved | Auto-cleared, no credible risk |
| Between thresholds | In Review | Flagged for manual compliance review |
| Above review threshold | Declined | High risk, automatic rejection |
If all matches are false positives, the result is Approved (no credible matches found). Result Generation
A detailed report is generated with full transparency:
- Each match’s match score and risk score with breakdowns
- Match classification (False Positive vs. Unreviewed vs. Confirmed)
- Source database and category details for every hit
- Results delivered via API response, webhook, or Business Console
- Automatic decisioning based on your configured risk score thresholds
AML Hit Data Reference
Each AML hit returned in the API response contains detailed information about the matched entity. Below are the key fields and their possible values.
Dataset Categories
The datasets field on each hit indicates which compliance database categories the entity was found in. Possible values:
| Value | Description |
|---|
PEP | Politically Exposed Person (general) |
PEP Level 1 | Heads of state, senior politicians, supreme court judges |
PEP Level 2 | Members of parliament, ambassadors, military leaders |
PEP Level 3 | Local government officials, mid-level civil servants |
PEP Level 4 | RCA (Relatives and Close Associates) of PEP individuals |
Sanctions | International and national sanctions lists (OFAC, EU, UN, etc.) |
Adverse Media | Negative news articles and reports related to financial crime |
Warnings and Regulatory Enforcement | Regulatory warnings, enforcement actions, and compliance alerts |
Fitness and Probity | Fitness and probity registers from financial regulators |
SIP | Special Interest Person lists |
SIE | Special Interest Entity lists |
Insolvency | Insolvency and bankruptcy registers |
Sanction Matches
The sanction_matches array contains details for each sanction list where the entity was found. Key fields:
| Field | Type | Description |
|---|
list_name | string[] | Name(s) of the sanction list(s) |
matched_name | string | Name as it appears in the sanction list |
description | string | Description of the sanction entry |
reason | string | Free-text reason why the entity was sanctioned. This is not an enum — values come directly from the sanctioning authority and describe the specific grounds for the listing (e.g., “Executive Order 13224 (Terrorism)”, “Support for actions undermining Ukraine’s sovereignty”). |
legal_basis | string[] | Legal basis for the sanction |
sanction_program | string[] | Sanction program(s) the entity is listed under |
sanctioning_authority | string[] | Authority that imposed the sanction |
listed_on | string[] | Date(s) when the entity was listed |
source_url | string | URL to the source |
Warning Matches
The warning_matches array contains details for matches from warning, regulatory enforcement, and related lists. The additional_data field may include a data.case_details array with structured case information.
Warning Case Types
The case_type field within additional_data.data.case_details[] describes the nature of the warning case. Known values:
| Value | Description |
|---|
Accusation | Formal accusation or charge |
Arrest | Arrest record |
Bribery | Bribery-related case |
Criminal | General criminal case |
Fraud | Fraud-related case |
Illegal Fundraising | Illegal fundraising activity |
Non-conviction Terror | Terrorism-related listing without conviction |
Proclaimed Offender | Officially proclaimed offender |
Regulatory Enforcement | Regulatory enforcement action |
Terrorism | Terrorism-related case |
Terrorism-related | Related to terrorism activities |
Terrorism-related listing | Listed in connection with terrorism |