Interpreting AML Screening Results

A detailed guide to understanding the results of an AML check, from the high-level summary down to the details of each watchlist match.

How to Read an AML Result

When you execute a workflow containing an AML step, the API response provides a rich set of data to help you understand the outcome. This guide provides a structured, “top-down” walkthrough of how to parse the workflowResult object.

The examples in this guide refer to a workflow execution response where Adverse Media matches were found. Click to expand and see the full structure.

1{
2 "requestId": "01HN9XHZN6MGXM9JXG50K59Q85",
3 "workflowResult": {
4 "workflowExecutionId": "01K55F466SQBT41KMQ7PWGEEN3",
5 "workflowExecutionState": "COMPLETED",
6 "status": "REVIEW",
7 "result": "REVIEW",
8 "riskAssessment": {
9 "riskLevel": "HIGH",
10 "riskScore": 100,
11 "riskFactors": [
12 {
13 "createdAt": "2025-09-15T01:16:45.849033Z",
14 "description": "Has adverse media hits",
15 "factor": "has_adverse_media",
16 "riskFactorId": "b26d1a21-57f9-46ed-afc9-f7025980ad9c",
17 "score": 10,
18 "status": "VALID",
19 "updatedAt": "2025-09-15T01:16:45.849033Z",
20 "updatedRequestId": "01HN9XHZN6MGXM9JXG50K59Q85"
21 }
22 ]
23 },
24 "issues": [
25 {
26 "category": "AML",
27 "createdAt": "2025-09-15T01:16:45.949556Z",
28 "issue": "MEDIA",
29 "issueId": "9e3b73c3-5050-4f42-bc4b-aa6c05a711b8",
30 "severity": "WARNING",
31 "workflowExecutionId": "01K55F466SQBT41KMQ7PWGEEN3"
32 }
33 ],
34 "workflowStepResults": [
35 {
36 "stepName": "AML",
37 "result": "HIT",
38 "summary": {
39 "numUnresolvedAdverseMedia": 2,
40 "numUnresolvedPEP": 0,
41 "numUnresolvedSanction": 0,
42 "numUnresolvedWatchlist": 0,
43 "providerSummaries": [
44 ...
45 ],
46 "stepName": "AML",
47 "totalFalsePositives": 0,
48 "totalHits": 2,
49 "totalTruePositives": 0,
50 "totalUnknown": 0,
51 "totalUnresolved": 2
52 },
53 "processResults": [
54 {
55 "processResultId": "pro_01J...",
56 "result": "HIT",
57 "class": "AML",
58 "supplementaryData": {
59 "type": "AML",
60 "matchData": { "name": "Test Org" },
61 "mediaData": [
62 {
63 "additionalData": [
64 {
65 "key": "aml.case_id",
66 "value": "..."
67 },
68 {
69 "key": "aml.search_entity_id",
70 "value": "..."
71 }
72 ],
73 "isCurrent": true,
74 "snippet": "...",
75 "source": "...",
76 "sourceDate": "...",
77 "title": "...",
78 "url": "..."
79 }
80 ],
81 "manualStatus": "UNRESOLVED"
82 }
83 }
84 ]
85 }
86 ]
87 }
88}

Part 1: The Overall Outcome (Final Verdict)

Always start by checking the top-level fields of the workflowResult object. These give you the final, authoritative outcome.

FieldImportanceDescription
status‼️The conclusive recommendation (e.g., PASS, FAIL, REVIEW). Base your primary business logic on this value.
workflowExecutionState‼️Confirms the workflow’s technical status. Must be COMPLETED.
issues⚠️An array of problems that require manual review. If status is REVIEW, this array contains the specific reasons why.
riskAssessment⚠️The final risk profile of the entity, including the riskLevel and riskScore.

In the example, the status is REVIEW, which is directly caused by the issues array containing a MEDIA issue.

Understanding AML Issues

When the AML step finds a potential match, it generates an issue object. This is what typically drives the overall workflow status to REVIEW.

CategoryIssueSeverityTrigger Condition
AMLPEPWARNINGAt least one valid Process Result contains pepData.
AMLSANCTIONSWARNINGAt least one valid Process Result contains sanctionData.
AMLMEDIAWARNINGAt least one valid Process Result contains mediaData.
AMLWATCHLISTWARNINGAt least one valid Process Result contains watchlistData.

Part 2: The AML Step Result (workflowStepResults)

Next, drill down into the workflowStepResults array and find the object where stepName is AML. This object contains the specific results of the screening.

Key FieldDescription
resultThe most important field for the step. A result of HIT means at least one potential match was found and requires review. A result of CLEAR means no matches were found.
summaryAn aggregated summary of the screening results, broken down by match type.
processResultsAn array containing the detailed evidence for each individual watchlist match.

The AML Summary Object

The summary object gives you a quick, quantitative overview of the screening results.

1"summary": {
2 "numUnresolvedAdverseMedia": 2,
3 "numUnresolvedPEP": 0,
4 "numUnresolvedSanction": 0,
5 "numUnresolvedWatchlist": 0,
6 "providerSummaries": [
7 {
8 ...
9 }
10 ],
11 "stepName": "AML",
12 "totalFalsePositives": 0,
13 "totalHits": 2,
14 "totalTruePositives": 0,
15 "totalUnknown": 0,
16 "totalUnresolved": 2
17 }

This summary immediately tells you the scale and severity of the results. For example, numUnresolvedSanction highlights if a high-risk sanctions match is present and needs immediate attention.


Part 3: The Process Results (The Raw Evidence)

When an AML step returns a HIT, the processResults array will contain one or more Process Result Objects (PROs), each with class: "AML". Each PRO represents a single potential match from a watchlist and contains all the data you need for your investigation.

Anatomy of an AML PRO

The most critical part of an AML PRO is the supplementaryData object. This is where you will find the details of the matched entity.

supplementaryData FieldDescription
matchDataCore information about the matched profile (name, date of birth, countries of association).
pepDataIf the match is a Politically Exposed Person, this array contains details about their position, level, and country.
sanctionDataIf the match is on a Sanctions list, this array contains details about the sanction, its source, and the reason.
watchlistDataThis array contains details for matches on other regulatory or law enforcement watchlists.
mediaDataIf the match is from Adverse Media, this array provides snippets and links to relevant news articles.
referenceDocsAn array of URLs to source documents for further evidence.

This example shows a processResult for a HIT where the organization has adverse media hits. The mediaData array is populated with the specific details of the adverse media matches.

1{
2 "processResultId": "pro_01J...",
3 "result": "HIT",
4 "class": "AML",
5 "supplementaryData": {
6 "type": "AML",
7 "matchData": { "name": "Test Org" },
8 "mediaData": [
9 {
10 "additionalData": [
11 {
12 "key": "aml.case_id",
13 "value": "..."
14 },
15 {
16 "key": "aml.search_entity_id",
17 "value": "..."
18 }
19 ],
20 "isCurrent": true,
21 "snippet": "...",
22 "source": "...",
23 "sourceDate": "...",
24 "title": "...",
25 "url": "..."
26 }
27 ],
28 "manualStatus": "UNRESOLVED"
29 }
30}

Part 4: Next Steps - Classifying Hits and Re-evaluating

After your compliance team reviews the evidence in the processResults, they must classify each hit (e.g., as a FALSE_POSITIVE). This is done by updating the manualStatus of each PRO.

For a detailed guide on how to perform this action via the API, please see our AML Screening & Monitoring Documentation.

Re-running the Workflow

Once all hits have been classified, you must re-run the workflow for the entity. This is a critical step for two reasons:

  1. To Update the status: The overall workflowResult.status will only change from REVIEW to PASS or CLEAR after the workflow is executed again and the AML step confirms that no unresolved hits remain.
  2. To Clear issues: The re-execution will cause the AML step to re-evaluate the issues. If all PROs that previously caused a MEDIA issue are now classified as FALSE_POSITIVE, the issue will be cleared from the workflow result.

This re-evaluation ensures your entity’s compliance status is officially updated and your audit trail is accurate.