Documentation Index
Fetch the complete documentation index at: https://docs.frankieone.com/llms.txt
Use this file to discover all available pages before exploring further.
How Risk Works in Workflows
The FrankieOne v2 Risk Engine transforms static, check-based verification into a dynamic, intelligence-driven framework. This enables you to design sophisticated, risk-based user journeys where the level of due diligence is directly proportional to the calculated risk of an entity.Core Concepts
Entity
Entity
INDIVIDUAL or an ORGANIZATION.Service Profile
Service Profile
Risk Profile
Risk Profile
Risk Factor
Risk Factor
Risk Assessment
Risk Assessment
The Risk Assessment Lifecycle
Risk is assessed in a multi-stage process integrated directly into the workflow execution.Workflow Start
VALID risk factors already associated with the entity’s service profile into the workflow’s context. The initial risk score is based on this pre-existing state.Data Collection Steps
processResults, which serve as the source data for many risk factors.Risk Calculation
RISK step is triggered. This step evaluates all factors defined in the risk profile, applies the configured scoring logic (scoreMethod), and aggregates the results to produce a final score for each factor.Workflow Finish
workflowRiskScore. This score is then mapped to a workflowRiskLevel. The complete RiskAssessment is added to the workflowResult.Risk Factor Statuses
Each risk factor has a status to manage its lifecycle and ensure calculation accuracy:| Status | Description |
|---|---|
| VALID | The default status. The factor is current and contributes to the risk score. |
| STALE | The underlying data used to generate the factor has changed (e.g., an entity’s address was updated). Stale factors are excluded from future calculations and are replaced by new, VALID factors. |
| OVERRIDDEN | A user has manually overridden the factor’s score. The manualOverrideScore will be used instead of the system-calculated score. |
| DISCARDED | The factor was generated during a workflow but later deemed irrelevant within the same execution. It is excluded from the final risk assessment. |
Risk Profile Configuration
The entire risk engine is driven by therisk_profiles.json configuration file. Each profile defines the levels and factors for risk calculation.
levels Schema
The levels array defines the qualitative risk bands and their corresponding numerical score ranges.
- label: The name of the risk level (e.g.,
LOW,HIGH). - range: Defines the numerical score boundaries.
minandmaxare inclusive. - extra.GenerateIssue: An optional object that instructs the engine to generate a workflow issue when the risk level is reached.
factors Schema
The factors array lists all risk factors to be evaluated. Each factor object is a rule for calculating a specific risk score component.
- name: The unique identifier for the risk factor (e.g.,
fraud_email). - description: A human-readable description for display and auditing.
- handler: The name of the internal service responsible for data extraction and scoring logic (e.g.,
jurisdiction_lookup). - scoreMethod: The method for assigning a score (
lookup,lookup_range,bool). - aggregate: The method for aggregating multiple scores into a single factor score (
sum,max,min,average,count). This applies only when a handler returns multiple values. - scores: An array of objects defining the value-to-score mapping.
- defaultScore: A fallback score to apply if the input data cannot be mapped via the
scoresarray.
Risk Factor Library
This section provides a comprehensive catalogue of the risk factors available in the FrankieOne platform. Each factor is designed to assess a specific element of risk during the onboarding process.KYC Risk Factors (Individuals)
These factors are applicable toINDIVIDUAL entities and focus on identity attributes, jurisdiction, and AML signals.
entity_age
entity_age
- Handler:
entity_age - Score Method:
lookup_range - Data Source:
individual.dateOfBirth.normalized
document_type
document_type
- Handler:
document_type_lookup - Score Method:
lookup - Aggregate Method:
max(Typically used to take the score of the riskiest document) - Data Source:
individual.documents.IDENTITY[].type
nationality_risk
nationality_risk
- Handler:
jurisdiction_lookup - Score Method:
lookup - Aggregate Method:
max - Data Source:
individual.nationality
residential_country_risk
residential_country_risk
- Handler:
jurisdiction_lookup - Score Method:
lookup - Aggregate Method:
max - Data Source:
individual.addresses[]wheretypeisRESIDENTIAL
AML Factors (is_pep, has_sanctions, etc.)
AML Factors (is_pep, has_sanctions, etc.)
processResults.- Handlers:
is_pep,has_sanctions,has_adverse_media,on_watchlist - Score Method:
bool - Data Source:
processResults[]wheresupplementaryData.typeisAML
is_pep):pep_level
pep_level
- Handler:
pep_level_lookup - Score Method:
lookup - Aggregate Method:
max - Data Source:
processResults[].supplementaryData.pepData[].level
workflow_attempts
workflow_attempts
- Handler:
workflow_attempts_counter - Score Method:
lookup_range - Data Source: Historical workflow execution records for the entity.
custom_attribute_risk
custom_attribute_risk
individual.customAttributes object.- Handler:
custom_attribute_lookup - Score Method:
lookup - Data Source:
individual.customAttributes
unresolved_duplicates
unresolved_duplicates
- Handler:
unresolved_duplicates - Score Method:
lookup_range - Data Source: Duplicate check process results.
true_positive_duplicates
true_positive_duplicates
TRUE_POSITIVE.- Handler:
true_positive_duplicates - Score Method:
lookup_range - Data Source: Duplicate check process results.
Onboarding Fraud Risk Factors
This section details the risk factors derived from Onboarding Fraud checks. These checks provide signals for device, IP address, phone number, and email address risk.fraud_count_session
fraud_count_session
- Handler:
fraud_count_session - Score Method:
lookup_range - Returns: A single integer value representing the session count.
fraud_ip_address
fraud_ip_address
- Handler:
fraud_ip_address - Score Method:
lookup - Aggregate:
max(to capture the highest risk signal from any session) - Returns: An array of risk levels (e.g.,
[“HIGH”, “LOW”]).
fraud_device
fraud_device
- Handler:
fraud_device - Score Method:
lookup - Aggregate:
max(to capture the highest risk signal from any device) - Returns: An array of risk levels (e.g.,
[“HIGH”, “LOW”]).
fraud_email
fraud_email
- Handler:
fraud_email - Score Method:
lookup - Returns: A single risk level value (e.g.,
“MEDIUM”).
fraud_phone_number
fraud_phone_number
- Handler:
fraud_phone_number - Score Method:
lookup - Returns: A single risk level value (e.g.,
“HIGH”).
Risk in Workflows: The Fraud Step
The Onboarding Fraud solution is integrated into workflows via a dedicated Fraud Step.Step Results
The Fraud Step can return one of three results:| Result | Description |
|---|---|
| CLEAR | All underlying checks passed without raising any concerns. No operator action is required. |
| HIT | One or more underlying checks returned results that should be reviewed by an operator. |
| UNCHECKED | The step was unable to generate any results, likely due to a data validation or system issue. |
Impact of Resolving Results on Risk Calculation
When an operator resolves aHIT, their action directly impacts how risk is calculated on subsequent workflow runs.
| Operator Action/Status | Effect on Risk Calculation |
|---|---|
| No manualStatus (Unresolved) | The risk from the provider is used as is. |
FALSE_POSITIVE | The risk for the result is ignored entirely and excluded from the calculation. |
TRUE_POSITIVE_ACCEPT | The risk for the result is forced to LOW to reflect that the signal is real but the risk has been accepted by the operator. |
TRUE_POSITIVE_REJECT | The risk for the result remains as it was from the provider, reflecting that the signal is real and has been rejected by the operator. |
Advanced Configuration
Aggregation Methods
Aggregation applies only when a factor’s handler yields multiple input values (e.g., multiple device risk scores). The engine first calculates an “item score” for each value and then collapses them into a single “factor score” using one of the following methods:| Method | Description |
|---|---|
| max | The final factor score is the highest score from all evaluated items. |
| sum | The final factor score is the sum of all item scores. |
| min | The final factor score is the lowest score from all evaluated items. |
| average | The final factor score is the mathematical average of all item scores. |
| count | The final score is determined by the total number of input items, which is then mapped against the ranges defined in the scores array. |
Connector-Level HIT/CLEAR Mapping
For some third-party providers, you can configure how their risk levels map to FrankieOne’sHIT or CLEAR results at the connector level. This allows for fine-tuning of your risk appetite.
By default, the mapping is:
HIGH,MEDIUM,UNACCEPTABLE-> HITLOW-> CLEAR
MEDIUM risk as CLEAR: