How Risk Scoring Works
Floodlight AML uses a transparent, explainable risk scoring algorithm that combines multiple signals.
Overview
The risk score is a numeric value from 0 to 100, where higher scores indicate greater risk. The score is calculated by evaluating matches across multiple risk vectors:
- Sanctions — Direct hits on sanctioned individuals/entities
- Entity — Entity-level risk attributes and profile data
- Transaction — Transaction pattern and behavior analysis
- Behavioral — Behavioral anomalies and unusual activity
- Provider — Third-party provider risk signals
- Country — Country-level risk factors and jurisdictional concerns
Overall Risk Levels
The highest match overall score across all results determines the risk level:
| Level | Score Range | Action Required |
|---|---|---|
| INFORMATIONAL | 0–9 | No action required |
| LOW | 10–29 | Standard onboarding — no action required |
| MEDIUM | 30–59 | Enhanced due diligence — manual review recommended |
| HIGH | 60–79 | Enhanced due diligence — manual review required |
| CRITICAL | 80–100 | Immediate escalation — consider SAR filing |
Match Score Structure
Each match contains a structured score object with sub-component breakdown:
JSON
{
"score": {
"overall": 94.0,
"nameScore": 100.0,
"idScore": null,
"dobScore": 100.0,
"nationalityScore": null,
"algorithm": "BALANCED"
}
}- nameScore — Fuzzy + exact name match (0–100)
- idScore — Document/passport number match (null if no ID provided)
- dobScore — Date of birth match (null if no DOB provided)
- nationalityScore — Always null (nationality mismatch applies penalty but no positive score)
- overall — Weighted composite of available sub-scores (0–100)
- algorithm — LOOSE (high recall), BALANCED (default), or STRICT (high precision)
Null sub-scores do not penalize the overall — they simply mean the data dimension was unavailable for comparison.
Match Response Example
JSON
{
"matchId": "match_001",
"matchedName": "John Smith",
"score": {
"overall": 94.0,
"nameScore": 100.0,
"idScore": null,
"dobScore": 100.0,
"nationalityScore": null,
"algorithm": "BALANCED"
},
"sources": [
{
"type": "SANCTION_LIST",
"authority": "National Sanctions Authority",
"program": "sanctions_list_main",
"referenceId": "sanc-ref-001234",
"publisher": "Government Treasury Department",
"publishedDate": "2024-01-15"
}
],
"entity": {
"type": "INDIVIDUAL",
"nationality": "US",
"dateOfBirth": "1985-03-15",
"positions": ["Senior Executive"]
}
}Customizing Thresholds
Use minScoreThreshold to filter matches below a minimum similarity score, ormatchAlgorithm to choose the matching profile:
JSON
{
"fullName": "John Smith",
"matchAlgorithm": "STRICT",
"minScoreThreshold": 80
}