Skip to main content
Version: 4.3

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.

PropertyTypeDescription
idstringScreenedData ID
categorystringScreenedData category
client_idstringTechnical personal identifier
entityTypeEntityTypeScreenedData entity type
genderGenderScreenedData gender
nameNameEntityScreenedData name
datesList<DateEntity>ScreenedData dates
locationsList<LocationEntity>ScreenedData locations
aliasesList<NameEntity>ScreenedData aliases
additional_dataMap<String, String>ScreenedData additional data

WleData​

The object represents the watchlist entity (WLE) information received from a screening system.

PropertyTypeDescription
idstringScreenedData ID
categorystringScreenedData category
entityTypeEntityTypeScreenedData entity type
genderGenderScreenedData gender
nameNameEntityScreenedData name
datesList<DateEntity>ScreenedData dates
locationsList<LocationEntity>ScreenedData locations
aliasesList<NameEntity>ScreenedData aliases
additional_dataMap<String, String>ScreenedData additional data
EntityType​
TypeValues
Enum<String>
  • INDIVIDUAL
  • ORGANIZATION
  • SECURITIES
Gender​
TypeValues
Enum<String>
  • MALE
  • FEMALE
  • OTHER
NameEntity​
PropertyTypeDescription
fullNamestringFull name (for example, Thomas A. Anderson)
firstNamestringFirst name (for example, Thomas)
lastNamestringLast name (for example, Anderson)
middleNamestringMiddle name (for example, A. )
derivedstringThe name derived in TickerLookupTask
sourcestringThe source where the name was received from (for example, TickerLookupTask)
DateEntity​
PropertyTypeDescription
originalDetailedDateOriginal date
derivedDetailedDateDate obtained or calculated during processing
sourcestringThe source of information
DetailedDate​
PropertyTypeDescription
typestringType of date (for example, DOB)
fullstringFull date (for example, 03/03/2023)
yearstringYear (for example, 2023)
monthstringMonth (for example, 03)
daystringDay (for example, 15)
LocationEntity​
PropertyTypeDescription
originalLocationOriginal location
enrichedList<Location>List of enriched locations
sourcestringSource of enriched locations
Location​
PropertyTypeDescription
typestringType of location
countrystringLocation country
statestringLocation state
citystringLocation city
streetstringLocation street
addressstringFull location address
latitudestringLocation latitude
longitudestringLocation longitude

Screening results​

AlertDecision​

PropertyTypeDescription
idstringAlert decision ID
resolutionAlertResolutionAlert resolution
explanationstringDetailed decision explanation
wleDecisionsWleDecisionWLE decision
AlertResolution​
TypeValues
Enum<String>
  • NO_HITS
  • ALL_FP
  • NEED_REVIEW
WleDecision​
PropertyTypeDescription
idstringWLE decision ID
htmlReportLinkstringLink to the HTML report
resolutionWleResolutionWLE resolution
explanationstringDetailed decision explanation
nameDecisionNameDecisionName decision
dateDecisionDateDecisionDate decision
locationDecisionLocationDecisionLocation decision
entityTypeDecisionEntityTypeDecisionEntity type decision
genderDecisionGenderDecisionGender decision
manualReviewStatusEnum<String>
  • TO_REVIEW
  • SKIPPED
  • REVIEWED
WleResolution​
TypeValues
Enum<String>
  • FALSE_POSITIVE
  • MORE_INFORMATION_NEEDED
NameDecision​
PropertyTypeDescription
decisionFactorDecisionModel decision
scoredoubleModel decision score
inputstringInput value
wlestringWLE value
DateDecision​
PropertyTypeDescription
decisionFactorDecisionModel decision
proximityintegerDistance between the compared input and WLE dates
inputstringInput date
wlestringWLE date
LocationDecision​
PropertyTypeDescription
decisionFactorDecisionModel decision
proximitydoubleDistance between the compared input and WLE locations
inputstringInput location
wlestringWLE location
EntityTypeDecision​
PropertyTypeDescription
decisionFactorDecisionModel decision
inputstringInput entity type
wlestringWLE entity type
GenderDecision​
PropertyTypeDescription
decisionFactorDecisionModel decision
inputstringInput gender
wlestringWLE gender
FactorDecision​
TypeValues
Enum<String>
  • NOT_COMPARED
  • BAD_INFO
  • STRONG_MISMATCH
  • WEAK_MISMATCH
  • STRONG_MATCH

FircoMetaData​

PropertyTypeDescription
uuidstring, uuidUUID
systemIdstringFirco system ID
messageIdstringFirco message ID
businessUnitstringFirco business unit
unitstringFirco unit
extRecordIdstringFirco external record ID
fpStatusstringFirco False Positive (FP) status
nmiStatusstringFirco 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

ColumnTypeIndexDescription
uuidUUID+Transaction UUID
start_timeDate TimeTransaction processing start time
end_timeDate TimeTransaction processing end time
statusStringTransaction status: NEW, PROCESSING, READY_FOR_REPORT, ERROR, COMPLETED
start_bp_uuidUUIDUUID of the BP where the transaction was processed
bp_start_timeDate TimeBP start time
error_messageStringError stack trace in case of an error
error_stepStringThe step where the transaction failed
dw_variationStringDW title
dw_versionStringDW version
model_versionStringVersion of the model configured in the DW user interface
ext_record_idStringREST request ID
auto_qcBoolMarks 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

ColumnTypeIndexDescription
uuidUUID+Transaction UUID
bp_run_idUUIDBP UUID
ext_record_idStringREST request ID

Ticker enrichment table​

Data Store name: ds_uc_B_AML_PEP_tickers_v3_0

ColumnTypeIndexDescription
uuidnvarchar(36), UUID
symbolnvarchar(255), String+Ticker symbol
company_namenvarchar(Max), StringCompany 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 nameConfiguration value
smtp.hostSMTP host
smtp.portSMTP port
smtp.credentialsAliasAlias of SecureEntry that stores the username and password for authentication
smtp.fromSender's email address
smtp.authEnabledtrue or false to enable or disable authentication
envEnvironment identifier used in Subject of the email

Tracking request status table​

Data Store name: ds_uc_B_AML_PEP_request_status_v3_0

ColumnTypeDescription
UUIDnvarchar(36)
TRANSACTION_IDnvarchar(36)Transaction identifier created by Evelyn
REQUEST_IDnvarchar(255)External request identifier
STATUSnvarchar(255)Request status:
  • IN_PROGRESS
  • READY_FOR_MT
  • MT_COMPLETED
  • FINISHED
  • ERROR
MESSAGEnvarchar(MAX)

QC report aggregation table​

Data Store name: ds_uc_B_AML_PEP_qc_report_data_v3_0

ColumnTypeIndexDescription
uuidnvarchar(36)
bp_run_idnvarchar(36)+BP UUID
transaction_idnvarchar(36)+Transaction UUID
screened_data_jsonnvarchar(MAX)Screened data JSON from the Quality Check (QC) report
wle_listnvarchar(MAX)WLE data JSON from the QC report
alert_decisionnvarchar(MAX)Model and review decision for the transaction
auto_qc_indicatorbitIf the transaction was selected for Automatic Quality Check (AutoQC)

Screening system tables​

Firco Trust​

  • Data Store name: ds_uc_B_AML_PEP_firco_configuration_v3_0

    ColumnTypeIndexDescription
    uuidnvarchar(36), UUID
    batch_sizeint, StringFirco Trust processing batch size
    wait_timeint, StringWait time between batches in milliseconds
  • Data Store name: ds_uc_B_AML_PEP_firco_messages_v3_0

    ColumnTypeIndexDescription
    uuidnvarchar(36), UUID
    system_idnvarchar(255), String+Firco Trust message system ID
    message_idnvarchar(255), StringFirco Trust message ID
    unitnvarchar(MAX), StringFirco Trust message unit
    business_unitnvarchar(255), StringFirco Trust message business unit
    transaction_idnvarchar(36), String+Transaction UUID
    start_bp_uuidnvarchar(36), String+BP run UUID
    ext_record_idnvarchar(255), StringREST 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

    ColumnTypeIndexDescription
    uuidnvarchar(36), UUID
    alert_idnvarchar(36)Alert ID
    alert_update_datenvarchar(255)Alert last updated date
    alert_responsenvarchar(MAX)Alert Decision Justification (DJ) response
  • Data Store name: ds_uc_B_AML_PEP_search_cache_v3_0

    ColumnTypeIndexDescription
    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

    ColumnTypeIndexDescription
    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

    ColumnTypeIndexDescription
    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

    ColumnTypeIndexDescription
    uuidnvarchar(36), UUID
    transaction_uuidnvarchar(36), UUID+Transaction UUID
    alert_idnvarchar(MAX), StringAlert ID
    alert_categorynvarchar(MAX), StringAlert category
    alert_entity_typenvarchar(255), StringAlert entity type
    alert_dw_decisionnvarchar(255), StringNSS model decision
    alert_dw_explanationnvarchar(MAX), StringNSS model exlanation
    alert_mt_decisionnvarchar(255), StringManual review decision
    alert_mt_explanationnvarchar(MAX), StringManual review explanation
    worker_full_namenvarchar(255), StringReviewer's full name
    worker_idnvarchar(36), UUIDReviewer ID
    html_report_linknvarchar(MAX), StringHTML report link if enabled
    csv_report_linknvarchar(MAX), StringQC report link if enabled
    autoQCnvarchar(5), boolThe alert was selected for AutoQC
    tickernvarchar(5), boolThe alert name was enriched with ticket information
  • Data Store name: ds_uc_B_AML_PEP_hit_analytics_v3_0

    ColumnTypeIndexDescription
    uuidnvarchar(36), UUID
    transaction_uuidnvarchar(36), UUID+Transaction UUID
    wle_idnvarchar(255), String+WLE ID
    wle_categorynvarchar(255), StringWLE category
    wle_entity_typenvarchar(255), StringWLE type
    wle_dw_decisionnvarchar(255), StringNSS model decision
    wle_dw_explanationnvarchar(255), StringNSS model explanation
    wle_mt_decisionnvarchar(255), StringManual review decision
    wle_mt_explanationnvarchar(255), StringManual review exlanation
    worker_full_namenvarchar(255), StringReviewer's full name
    worker_idnvarchar(36), UUIDReviewer 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>

Prepare one or both of the following CSV format file types, depending on how the incoming message is structured:

  • Pipe-separated: defines which pipe-delimited value maps to each NSS field. The index and nss_column headers are required; any other headers are ignored.
  • Fixed-length: defines each field by its start position and length and maps that segment of the raw message to the corresponding NSS field.

Name each file after the entity it applies to:

  • Firco Unit: <unit>_format.csv
  • Firco Business Unit: <bunit>_format.csv

In S3 Manager, upload the files to the directory that matches its format:

  • Pipe-separated: doc-upload/name_sanctions_screening/firco_message_pipeseparator_format_files/
  • Fixed-length: doc-upload/name_sanctions_screening/firco_message_fixedlength_format_files/

For example, you have the following configuration:

  • Firco Unit: CIF1
  • Firco Business Unit: SECURITY

For each format type, Evelyn checks its S3 directory for the following files in order and uses the first available file:

  • CIF1_format.csv
  • SECURITY_format.csv
info

Filenames are not case-sensitive.

Mapping process​

When a Firco message arrives, Evelyn resolves the format file for its unit or business unit from S3. The resolved file is cached per worker to improve performance, and all messages for that unit are mapped with it.

Based on the message format, one mapper in the processing chain handles the message:

  • The pipe-separated mapper (PipeSeparatedFormatFileMapper) processes pipe-delimited messages and takes priority.
  • The fixed-length mapper (FixedLengthFormatFileMapper) processes positional messages whose fields are defined by a start position and length.

The selected mapper then does the following:

  1. Extracts raw data from <fir:MessageData> in the Firco response.
  2. Reads the field definitions from the corresponding format file.
  3. Maps each delimited value or fixed-length segment to the corresponding field in ScreenedData.
  4. Merges information from <fir:CustomerInfo> into ScreenedData.

As a result, ScreenedData contains information from both sources.

Collections such as Addresses, Dates, and Aliases 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.

Required and optional format files​

In the Firco Trust configuration, you can make pipe-separated and fixed-length format files required independently.

  • If one or both format types are required, every required file must be present in S3. If a required file is missing, processing stops with an exception.
  • If neither format type is required, Evelyn still searches S3 for both files. If at least one is found, Evelyn attempts to map the message; a mapping failure stops processing with an exception.
  • If neither format type is required and no matching format file is found, Evelyn uses CustomerInfo to map ScreenedData.

Handling messages that cannot be parsed​

If an incoming Firco message cannot be read or parsed, for example, because a name or other required information is missing, Evelyn handles it once instead of retrying repeatedly. This prevents an unreadable message from consuming processing resources or leaving the alert or its stored data in an unclear state. Evelyn does the following:

  1. Returns the alert to Firco for manual review with the note Failed parsing incoming message. Please review the alert manually. A reviewer can then supply the missing information or take the appropriate business action.
  2. Marks the transaction as failed and sets it aside. The transaction is skipped for the rest of the screening flow, so Evelyn does not produce screening results, a model score, or a Quality Check report for it.
  3. Deletes the stored Firco data created for the transaction, including temporary or partial records, so no stale or orphaned data remains in the system.

Successfully parsed messages are not affected and continue through the standard screening, scoring, and reporting flow.

Alias handling​

Alias names are used by Evelyn to screen multiple names for an entity. Each alias is treated the same as the primary input name when calculating the similarity score. Additionally, each name in the screened data is compared with each name in the WLE data.

If an alias contains null or empty values, it does not contribute to the screening process but can still consume resources during comparison. To avoid this, all empty or null values should be filtered out during input data parsing.

Having duplicates among aliases also leads to unnecessary resource consumption. Furthermore, if the primary name (input_full_name or hit_matched_name) is enriched in subsequent steps and a duplicate exists in the aliases, it can cause inconsistencies.

During parsing of both input screened data and WLE data:

  • All null or empty alias values are removed.

  • All duplicate aliases are filtered out, including those duplicating the primary name.

Decision score calculation​

The logic for calculating the decision score is as follows:

  • If the decision is False positive, only fields used in discounting are included in the final score.
  • If the decision is Need more information, all fields that do not contain BAD_INFO or NOT_COMPARED are included in the final score.