Risk Assessment
The risk_assessment and checks_summary objects appear in the compliance report for both Company Verification and Person Verification flows. Together they provide a quantified risk evaluation and a summary of every check that was performed.
Risk Assessment Object
| Field | Type | Description |
|---|
overall_score | number | Numeric risk score, 0-100. Higher means riskier |
tier | string | High, Medium, or Low |
factors[] | array | Breakdown of individual risk factors |
Example
{
"risk_assessment": {
"overall_score": 45,
"tier": "Medium",
"factors": [
{
"factor": "Adverse Media",
"severity": "Medium",
"detail": "2 adverse media articles found for company"
},
{
"factor": "Jurisdiction",
"severity": "Low",
"detail": "Country of incorporation is low-risk (GB)"
}
]
}
}
Risk Score Ranges
| Score | Tier | Meaning |
|---|
| 0-30 | Low | Low risk. Standard monitoring sufficient |
| 31-60 | Medium | Moderate risk. Review recommended |
| 61-100 | High | Elevated risk. Enhanced due diligence required |
The score is computed from multiple dimensions. A single high-severity factor can push the score into the High tier even if other dimensions are clean.
Factor Object
Each entry in the factors[] array describes one risk dimension that contributed to the overall score.
| Field | Type | Description |
|---|
factor | string | Name of the risk factor |
severity | string | High, Medium, or Low |
detail | string | Human-readable explanation |
Common Factor Names
| Factor | What It Evaluates |
|---|
Entity Attribute | Entity-level characteristics: entity type, industry, revenue, age of incorporation |
Country Risk | Jurisdiction risk based on FATF grey/black lists, Transparency International CPI, sanctions exposure |
Screening Risk | PEP, sanctions, adverse media, and watchlist hits across all screened entities |
Product/Channel Risk | Risk associated with the product type and onboarding channel |
Adverse Media | Volume and severity of negative media coverage |
Jurisdiction | Country of incorporation or residence risk classification |
Ownership Structure | Complexity of beneficial ownership (multiple layers, nominee shareholders) |
Data Mismatch | Discrepancies between submitted data and verified data (name, DOB, address) |
Risk Dimensions
The overall score is derived from four core dimensions, each evaluated independently and weighted:
Entity-Attribute Risk. Characteristics of the entity itself. High-risk industries (gambling, crypto, arms), newly incorporated companies, and unusually high revenue for the entity size all increase this score.
Country Risk. Based on the jurisdiction of incorporation, operations, and nationality of related persons. Countries on the FATF grey list, those with low Transparency International scores, or those under broad sanctions programs contribute higher risk.
Screening Risk. Derived from PEP, sanctions, adverse media, and watchlist screening results. A single sanctions hit produces the maximum score in this dimension. Multiple PEP matches or high-volume adverse media increase the score proportionally.
Product/Channel Risk. Assesses the risk profile of the product being onboarded for and the channel through which the application was submitted. Remote onboarding, high-value products, and cross-border arrangements carry higher risk.
Checks Summary
The checks_summary object provides an aggregate view of all verification checks performed.
| Field | Type | Description |
|---|
total | integer | Total number of checks performed |
passed | integer | Checks that passed |
referred | integer | Checks that require manual review |
failed | integer | Checks that failed |
checks[] | array | Per-check detail |
Check Object
| Field | Type | Description |
|---|
type | string | Check type name (e.g., Company Registration, PEP/Sanctions Screening) |
status | string | Pass, Refer, or Fail |
provider | string | Provider that executed the check (e.g., Registry, WorldCheck, Zenoo) |
matches | integer | Number of matches found (screening checks only) |
completed_at | string (datetime) | ISO 8601 timestamp of check completion |
Example
{
"checks_summary": {
"total": 5,
"passed": 4,
"referred": 1,
"failed": 0,
"checks": [
{
"type": "Company Registration",
"status": "Pass",
"provider": "Registry",
"completed_at": "2026-01-15T14:30:15Z"
},
{
"type": "Company Screening",
"status": "Refer",
"provider": "WorldCheck",
"matches": 2,
"completed_at": "2026-01-15T14:30:20Z"
},
{
"type": "Director Screening (Jane Smith)",
"status": "Pass",
"provider": "WorldCheck",
"completed_at": "2026-01-15T14:30:25Z"
},
{
"type": "UBO Screening (John Doe)",
"status": "Pass",
"provider": "WorldCheck",
"completed_at": "2026-01-15T14:30:26Z"
},
{
"type": "Directors Verification",
"status": "Pass",
"provider": "Registry",
"completed_at": "2026-01-15T14:30:28Z"
}
]
}
}
Using Risk Data in Your System
Automated Decisioning
Map the tier field to your enrichment pipeline’s decision logic:
if risk_tier == "Low" and overall_verdict == "Pass":
auto_approve()
elif risk_tier == "Medium":
queue_for_review()
elif risk_tier == "High":
queue_for_senior_review()
flag_for_edd()
Risk Factor Monitoring
Store the factors[] array alongside the case. Over time, patterns in factor frequency and severity reveal systemic risks in your customer base. For example, if Country Risk factors are consistently flagged, you may need to adjust your geographic risk appetite.
Check Failure Analysis
A Fail status on any check means that specific verification could not be completed or returned a negative result. Common causes:
- Registry check failed. Company not found in the registry, or registry returned dissolved/struck-off status.
- Screening referred. Matches found that require human review.
- Document check failed. Tamper detection triggered, expired document, or unreadable image.
- Identity check failed. Face match below threshold, liveness check failed, or database lookup returned no match.
Check the provider field to understand which upstream service produced the result.