Risk Factors
Risk factors are the building blocks of risk scores. Configure factor weights and thresholds to match your compliance requirements and risk appetite.
Factor Categories
Identity Factors
| Factor | Default Weight | Description |
|---|---|---|
document_verification_failed | +20 | ID verification unsuccessful |
document_expired | +10 | Document past expiration date |
document_tampering_detected | +30 | Signs of document manipulation |
biometric_mismatch | +25 | Face doesn't match document |
liveness_failed | +20 | Liveness check unsuccessful |
multiple_verification_attempts | +10 | 3+ verification attempts |
data_inconsistency | +15 | Submitted data doesn't match documents |
Screening Factors
| Factor | Default Weight | Description |
|---|---|---|
sanctions_match_confirmed | +50 | True sanctions match |
sanctions_match_pending | +35 | Unresolved sanctions hit |
pep_tier_1 | +30 | Senior political figure |
pep_tier_2 | +25 | Family member of PEP |
pep_tier_3 | +20 | Close associate of PEP |
adverse_media_high | +20 | Serious negative coverage |
adverse_media_medium | +10 | Moderate negative coverage |
adverse_media_low | +5 | Minor negative coverage |
Geographic Factors
| Factor | Default Weight | Description |
|---|---|---|
residence_sanctioned | +45 | Resides in sanctioned country |
residence_high_risk | +20 | Resides in high-risk country |
residence_medium_risk | +10 | Resides in medium-risk country |
nationality_sanctioned | +40 | Citizen of sanctioned country |
nationality_high_risk | +15 | Citizen of high-risk country |
tax_haven_connection | +10 | Connection to tax haven |
Behavioral Factors
| Factor | Default Weight | Description |
|---|---|---|
vpn_proxy_detected | +10 | VPN or proxy in use |
device_fraud_score_high | +20 | High-risk device fingerprint |
rapid_resubmission | +15 | Multiple apps in short time |
velocity_exceeded | +15 | Unusual application velocity |
email_disposable | +10 | Disposable email address |
email_new_domain | +5 | Recently created email |
phone_voip | +5 | VoIP phone number |
Business Factors (KYB)
| Factor | Default Weight | Description |
|---|---|---|
complex_ownership | +15 | Multi-layer ownership structure |
bearer_shares | +25 | Company has bearer shares |
nominee_directors | +20 | Nominee directors identified |
shell_company_indicators | +30 | Characteristics of shell company |
high_risk_industry | +15 | Industry with elevated risk |
recent_incorporation | +10 | Less than 1 year old |
ubo_unverified | +15 | UBO not fully verified |
Configuring Factor Weights
View Current Configuration
curl -X GET "https://api.bytrustgate.com/v1/settings/risk-factors" \
-H "Authorization: Bearer YOUR_API_KEY"
Update Factor Weights
curl -X PUT https://api.bytrustgate.com/v1/settings/risk-factors \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"factors": [
{
"factor_id": "sanctions_match_confirmed",
"weight": 60,
"enabled": true
},
{
"factor_id": "pep_tier_1",
"weight": 35,
"enabled": true
},
{
"factor_id": "vpn_proxy_detected",
"weight": 5,
"enabled": true
}
]
}'
Custom Factors
Create Custom Factor
curl -X POST https://api.bytrustgate.com/v1/settings/risk-factors/custom \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"factor_id": "high_value_customer",
"name": "High Value Customer",
"category": "business",
"weight": -10,
"description": "Established high-value customer - reduced risk",
"trigger": {
"type": "metadata",
"field": "customer_tier",
"value": "platinum"
}
}'
Negative Weights
Use negative weights for risk-reducing factors:
| Factor | Weight | Use Case |
|---|---|---|
verified_returning_customer | -15 | Previously approved customer |
high_value_tier | -10 | Premium customer segment |
trusted_referral | -5 | Referred by trusted partner |
long_relationship | -10 | 5+ year customer relationship |
Factor Conditions
Conditional Weights
Apply different weights based on conditions:
curl -X POST https://api.bytrustgate.com/v1/settings/risk-factors/conditional \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"factor_id": "pep_tier_1",
"conditions": [
{
"condition": {
"field": "pep_country",
"operator": "in",
"value": ["USA", "GBR", "DEU", "FRA"]
},
"weight": 25,
"reason": "Lower weight for stable democracies"
},
{
"condition": {
"field": "pep_country",
"operator": "in",
"value": ["high_corruption_countries"]
},
"weight": 40,
"reason": "Higher weight for high-corruption countries"
}
],
"default_weight": 30
}'
Factor Groups
Group Related Factors
curl -X POST https://api.bytrustgate.com/v1/settings/risk-factors/groups \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"group_id": "identity_fraud",
"name": "Identity Fraud Indicators",
"factors": [
"document_tampering_detected",
"biometric_mismatch",
"device_fraud_score_high"
],
"aggregation": "max",
"max_contribution": 50
}'
Aggregation Methods
| Method | Description |
|---|---|
sum | Add all factor weights (default) |
max | Use highest factor weight only |
average | Average of factor weights |
any | Fixed weight if any factor present |
Factor Thresholds
Configure Thresholds
curl -X PUT https://api.bytrustgate.com/v1/settings/risk-factors/thresholds \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"adverse_media_high": {
"min_articles": 3,
"min_severity": "high",
"recency_days": 365
},
"multiple_verification_attempts": {
"attempt_count": 3,
"time_window_hours": 24
},
"device_fraud_score_high": {
"min_score": 80
}
}'
Industry-Specific Profiles
Create Industry Profile
curl -X POST https://api.bytrustgate.com/v1/settings/risk-profiles \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"profile_id": "crypto_exchange",
"name": "Cryptocurrency Exchange",
"description": "Higher scrutiny for crypto customers",
"factor_overrides": [
{"factor_id": "sanctions_match_pending", "weight": 45},
{"factor_id": "vpn_proxy_detected", "weight": 20},
{"factor_id": "high_risk_industry", "weight": 0}
],
"score_multiplier": 1.2
}'
Apply Profile
curl -X POST https://api.bytrustgate.com/v1/applicants/{applicant_id}/apply-profile \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"profile_id": "crypto_exchange"
}'
Factor Analytics
View Factor Distribution
curl -X GET "https://api.bytrustgate.com/v1/analytics/risk-factors?period=30d" \
-H "Authorization: Bearer YOUR_API_KEY"
{
"period": "30d",
"total_applicants": 5000,
"factor_frequency": {
"pep_tier_1": {"count": 45, "percentage": 0.9},
"pep_tier_2": {"count": 120, "percentage": 2.4},
"adverse_media_high": {"count": 89, "percentage": 1.8},
"high_risk_country": {"count": 340, "percentage": 6.8}
},
"avg_contribution_by_factor": {
"pep_tier_1": 30,
"adverse_media_high": 18,
"high_risk_country": 15
}
}
Next Steps
- Workflow Rules - Automate risk-based actions
- Country Risk - Geographic risk configuration
- About Risk Scoring - Overview