Understand NSS data flow
The guide is intended to help you understand the Evelyn data flow:
Schema definitions
The section lists the input and output data objects and their properties used for input and output contracts in Evelyn Business Processes.
Input and processing data
ScreenedData
The object represents the input data received for screening.
| Property | Type | Description |
|---|---|---|
id | string | ScreenedData ID |
category | string | ScreenedData category |
entityType | EntityType | ScreenedData entity type |
gender | Gender | ScreenedData gender |
name | NameEntity | ScreenedData name |
dates | List<DateEntity> | ScreenedData dates |
locations | List<LocationEntity> | ScreenedData locations |
aliases | List<NameEntity> | ScreenedData aliases |
additional_data | Map<String, String> | ScreenedData additional data |
WleData
The object represents the watchlist entity (WLE) information received from a screening system.
| Property | Type | Description |
|---|---|---|
id | string | ScreenedData ID |
category | string | ScreenedData category |
entityType | EntityType | ScreenedData entity type |
gender | Gender | ScreenedData gender |
name | NameEntity | ScreenedData name |
dates | List<DateEntity> | ScreenedData dates |
locations | List<LocationEntity> | ScreenedData locations |
aliases | List<NameEntity> | ScreenedData aliases |
additional_data | Map<String, String> | ScreenedData additional data |
EntityType
| Type | Values |
|---|---|
Enum<String> |
|
Gender
| Type | Values |
|---|---|
Enum<String> |
|
NameEntity
| Property | Type | Description |
|---|---|---|
fullName | string | Full name (for example, Thomas A. Anderson) |
firstName | string | First name (for example, Thomas) |
lastName | string | Last name (for example, Anderson) |
middleName | string | Middle name (for example, A. ) |
derived | string | The name derived in TickerLookupTask |
source | string | The source where the name was received from (for example, TickerLookupTask) |
DateEntity
| Property | Type | Description |
|---|---|---|
original | DetailedDate | Original date |
derived | DetailedDate | Date obtained or calculated during processing |
source | string | The source of information |
DetailedDate
| Property | Type | Description |
|---|---|---|
type | string | Type of date (for example, DOB) |
full | string | Full date (for example, 03/03/2023) |
year | string | Year (for example, 2023) |
month | string | Month (for example, 03) |
day | string | Day (for example, 15) |
LocationEntity
| Property | Type | Description |
|---|---|---|
original | Location | Original location |
enriched | List<Location> | List of enriched locations |
source | string | Source of enriched locations |
Location
| Property | Type | Description |
|---|---|---|
type | string | Type of location |
country | string | Location country |
state | string | Location state |
city | string | Location city |
street | string | Location street |
address | string | Full location address |
latitude | string | Location latitude |
longitude | string | Location longitude |
Screening results
AlertDecision
| Property | Type | Description |
|---|---|---|
id | string | Alert decision ID |
resolution | AlertResolution | Alert resolution |
explanation | string | Detailed decision explanation |
wleDecisions | WleDecision | WLE decision |
AlertResolution
| Type | Values |
|---|---|
Enum<String> |
|
WleDecision
| Property | Type | Description |
|---|---|---|
id | string | WLE decision ID |
htmlReportLink | string | Link to the HTML report |
resolution | WleResolution | WLE resolution |
explanation | string | Detailed decision explanation |
nameDecision | NameDecision | Name decision |
dateDecision | DateDecision | Date decision |
locationDecision | LocationDecision | Location decision |
entityTypeDecision | EntityTypeDecision | Entity type decision |
genderDecision | GenderDecision | Gender decision |
manualReviewStatus | Enum<String> |
|
WleResolution
| Type | Values |
|---|---|
Enum<String> |
|
NameDecision
| Property | Type | Description |
|---|---|---|
decision | FactorDecision | Model decision |
score | double | Model decision score |
input | string | Input value |
wle | string | WLE value |
DateDecision
| Property | Type | Description |
|---|---|---|
decision | FactorDecision | Model decision |
proximity | integer | Distance between the compared input and WLE dates |
input | string | Input date |
wle | string | WLE date |
LocationDecision
| Property | Type | Description |
|---|---|---|
decision | FactorDecision | Model decision |
proximity | double | Distance between the compared input and WLE locations |
input | string | Input location |
wle | string | WLE location |
EntityTypeDecision
| Property | Type | Description |
|---|---|---|
decision | FactorDecision | Model decision |
input | string | Input entity type |
wle | string | WLE entity type |
GenderDecision
| Property | Type | Description |
|---|---|---|
decision | FactorDecision | Model decision |
input | string | Input gender |
wle | string | WLE gender |
FactorDecision
| Type | Values |
|---|---|
Enum<String> |
|
FircoMetaData
| Property | Type | Description |
|---|---|---|
uuid | string, uuid | UUID |
systemId | string | Firco system ID |
messageId | string | Firco message ID |
businessUnit | string | Firco business unit |
unit | string | Firco unit |
extRecordId | string | Firco external record ID |
fpStatus | string | Firco False Positive (FP) status |
nmiStatus | string | Firco Need More Information (NMI) status |
Data Store structure
The section represents the structure and content of the Data Store tables storing the data used in Evelyn processes and analytics.
Main processing tables
Transaction table
Data Store name: ds_uc_B_AML_PEP_transaction_v3_0
| Column | Type | Index | Description |
|---|---|---|---|
uuid | UUID | + | Transaction UUID |
start_time | Date Time | Transaction processing start time | |
end_time | Date Time | Transaction processing end time | |
status | String | Transaction status: NEW, PROCESSING, READY_FOR_REPORT, ERROR, COMPLETED | |
start_bp_uuid | UUID | UUID of the BP where the transaction was processed | |
bp_start_time | Date Time | BP start time | |
error_message | String | Error stack trace in case of an error | |
error_step | String | The step where the transaction failed | |
dw_variation | String | DW title | |
dw_version | String | DW version | |
model_version | String | Version of the model configured in the DW user interface | |
ext_record_id | String | REST request ID | |
auto_qc | Bool | Marks if the transaction was selected for the Auto quality check feature |
Master record table
Data Store name: ds_uc_B_AML_PEP_master_record_v3_0
| Column | Type | Index | Description |
|---|---|---|---|
uuid | UUID | + | Transaction UUID |
bp_run_id | UUID | BP UUID | |
ext_record_id | String | REST request ID |
Ticker enrichment table
Data Store name: ds_uc_B_AML_PEP_tickers_v3_0
| Column | Type | Index | Description |
|---|---|---|---|
uuid | nvarchar(36), UUID | ||
symbol | nvarchar(255), String | + | Ticker symbol |
company_name | nvarchar(Max), String | Company name associated with the ticker |
Ticker enrichment configuration table
Data Store name: ds_uc_B_AML_PEP_configuration_v3_0
If you enable email notifications from the Ticker Lookup Business Process during the Name enrichment configuration, populate the Data Store with the required technical details:
| Configuration name | Configuration value |
|---|---|
smtp.host | SMTP host |
smtp.port | SMTP port |
smtp.credentialsAlias | Alias of SecureEntry that stores the username and password for authentication |
smtp.from | Sender's email address |
smtp.authEnabled | true or false to enable or disable authentication |
env | Environment identifier used in Subject of the email |
Tracking request status table
Data Store name: ds_uc_B_AML_PEP_request_status_v3_0
| Column | Type | Description |
|---|---|---|
UUID | nvarchar(36) | |
TRANSACTION_ID | nvarchar(36) | Transaction identifier created by Evelyn |
REQUEST_ID | nvarchar(255) | External request identifier |
STATUS | nvarchar(255) | Request status:
|
MESSAGE | nvarchar(MAX) |
QC report aggregation table
Data Store name: ds_uc_B_AML_PEP_qc_report_data_v3_0
| Column | Type | Index | Description |
|---|---|---|---|
uuid | nvarchar(36) | ||
bp_run_id | nvarchar(36) | + | BP UUID |
transaction_id | nvarchar(36) | + | Transaction UUID |
screened_data_json | nvarchar(MAX) | Screened data JSON from the QC report | |
wle_list | nvarchar(MAX) | WLE data JSON from the QC report | |
alert_decision | nvarchar(MAX) | Model and review decision for the transaction | |
auto_qc_indicator | bit | If the transaction was selected for AutoQC |
Screening system tables
Firco Trust
Data Store name: ds_uc_B_AML_PEP_firco_configuration_v3_0
Column Type Index Description uuidnvarchar(36), UUID batch_sizeint, String Firco Trust processing batch size wait_timeint, String Wait time between batches in milliseconds Data Store name: ds_uc_B_AML_PEP_firco_messages_v3_0
Column Type Index Description uuidnvarchar(36), UUID system_idnvarchar(255), String + Firco Trust message system ID message_idnvarchar(255), String Firco Trust message ID unitnvarchar(MAX), String Firco Trust message unit business_unitnvarchar(255), String Firco Trust message business unit transaction_idnvarchar(36), String + Transaction UUID start_bp_uuidnvarchar(36), String + BP run UUID ext_record_idnvarchar(255), String REST request UUID statusnvarchar(255), String + Firco message processing status
Dow Jones Risk and Compliance
Data Store name: ds_uc_B_AML_PEP_alerts_cache_v3_0
Column Type Index Description uuidnvarchar(36), UUID alert_idnvarchar(36) Alert ID alert_update_datenvarchar(255) Alert last updated date alert_responsenvarchar(MAX) Alert DJ response Data Store name: ds_uc_B_AML_PEP_search_cache_v3_0
Column Type Index Description uuidnvarchar(36), UUID search_stringnvarchar(255) + DJ Factiva search request searchnvarchar(MAX) DJ Factiva search response
Thomson Reuters
Data Store name: ds_uc_b_aml_pep_countries_v3_0
Column Type Index Description uuidnvarchar(36), UUID iso2_codevarchar(2) + ISO 2 country code iso3_codevarchar(3) + ISO 3 country code namevarchar(56) Full country name Data Store name: ds_uc_b_aml_pep_us_states_v3_0
Column Type Index Description uuidnvarchar(36), UUID iso2_codevarchar(2) ISO 2 US state code namevarchar(56) + US state name
Analytics tables
Data Store name: ds_uc_B_AML_PEP_alert_analytics_v3_0
Column Type Index Description uuidnvarchar(36), UUID transaction_uuidnvarchar(36), UUID + Transaction UUID alert_idnvarchar(MAX), String Alert ID alert_categorynvarchar(MAX), String Alert category alert_entity_typenvarchar(255), String Alert entity type alert_dw_decisionnvarchar(255), String NSS model decision alert_dw_explanationnvarchar(MAX), String NSS model exlanation alert_mt_decisionnvarchar(255), String Manual review decision alert_mt_explanationnvarchar(MAX), String Manual review explanation worker_full_namenvarchar(255), String Reviewer's full name worker_idnvarchar(36), UUID Reviewer ID html_report_linknvarchar(MAX), String HTML report link if enabled csv_report_linknvarchar(MAX), String QC report link if enabled autoQCnvarchar(5), bool The alert was selected for AutoQC tickernvarchar(5), bool The alert name was enriched with ticket information Data Store name: ds_uc_B_AML_PEP_hit_analytics_v3_0
Column Type Index Description uuidnvarchar(36), UUID transaction_uuidnvarchar(36), UUID + Transaction UUID wle_idnvarchar(255), String + WLE ID wle_categorynvarchar(255), String WLE category wle_entity_typenvarchar(255), String WLE type wle_dw_decisionnvarchar(255), String NSS model decision wle_dw_explanationnvarchar(255), String NSS model explanation wle_mt_decisionnvarchar(255), String Manual review decision wle_mt_explanationnvarchar(255), String Manual review exlanation worker_full_namenvarchar(255), String Reviewer's full name worker_idnvarchar(36), UUID Reviewer ID name_matching_scoreOriginal name matching score wle_decision_scoreHit decision score
Data parsing based on format file
During Firco Trust screening, Evelyn can process the following data feeds to retrieve data fields for alert disposition:
- Security
- SSI
- Brokers
- Employees
- Investors
- KYC
Preparing data for screening
Before screening, send the data to be parsed in the RAW format within the MessageData tag of a Firco message. A Firco message contains two XML tags from which data can be extracted:
<fir:MessageData><fir:CustomerInfo>
Additionally, you must prepare a format file:
Configure a format file for either a Firco Unit or a Firco Business Unit, using the following naming conventions:
- For a Firco Unit:
<unit>_format.csv - For a Firco Business Unit:
<bunit>_format.csv
- For a Firco Unit:
Make sure to meet the following requirements for the format file:
- The file must have a CSV extension.
- The
indexandnss_columnheaders are required. All other headers are skipped if present. If the required headers are missing,CustomerInfois used for mapping, with information logged in Control Tower.
A sample format file looks as follows:
In MinIO S3, place the format file at the following path:
doc-upload/name_sanctions_screening/firco_format_files/.
For example, you have the following configuration:
- Unit: CIF1
- Business Unit: SECURITY Then, Evelyn checks the predefined location for the following files in order and uses the first available file for processing:
CIF1_format.csvSECURITY_format.csv
Filenames are not case-sensitive.
Mapping process
When running, Evelyn searches for a format file. If no matching format file is present or if the format file is empty or invalid, MessageData is not processed. If a format file is found, Evelyn starts the mapping process:
Extracts data from
<fir:MessageData>in a Firco response.Breaks down the pipe-separated data (
|).Using the format file, maps corresponding values from
MessageDataintoScreenedData.After successful mapping, applies the same process to
CustomerInfoto enrichScreenedDatafurther.As a result,
ScreenedDatacontains information from both sources.
Collections such as Addresses, Dates, Aliases, and AdditionalInfo are included.
If ScreenedData.name is missing due to issues with MessageData, the name from CustomerInfo is used instead. In other cases, names from CustomerInfo are added to Aliases to avoid overwriting. Evelyn ensures that no duplicate entries are created.
If a format file is not found, the fallback mapper uses CustomerInfo to map ScreenedData, with the corresponding message logged in Control Tower logs.