Lenovo AML Risk Watch

Scoring methodology

Transparent, rule-based composite of six AML skills. No ML; every factor is deterministic and citable.

Dimension weights

25%
20%
15%
15%
15%
10%
  • Sanctions Screening25%
  • Country Risk Scoring20%
  • High-Risk Jurisdiction Monitoring15%
  • Sanctions Circumvention Risk15%
  • PEP & Adverse Media15%
  • Country Context Enrichment10%

Composite score = Σ (dimension score × weight) ÷ Σ weights. All dimension scores and factor scores are on 0–100.

Risk levels

    Low
    0 – 24
    Medium
    25 – 49
    High
    50 – 69
    Critical
    70 – 100

Data reality — what's real vs. mock

Real snapshot7 / 18

Driven by real public data hand-curated into data/countries.json (FATF / OFAC / Basel / CPI / WGI snapshots).

Hybrid6 / 18

Real reference data (country classifications or hardcoded regulator-cited lists) combined with synthetic entity data.

Proxy0 / 18

Approximated from a different real dataset (e.g., WGI used as a proxy for WJP) or a hand-curated dictionary (FSI hubs), because the precise source dataset is not bundled.

Mock5 / 18

Signal is fully synthetic — generated by scripts/generate-companies.ts with seeded PRNG, calibrated by company risk band.

Factors by dimension

Each factor card shows the exact formula, plain-language meaning, and a worked example.

Sanctions Screening

weight 25%
Direct Sanctions Hit (HQ listed on OFAC/UN/EU/FATF blacklist)
factor weight 60%
Formula
Comprehensive → 100 · Sectoral → 75 · None → 0

Three-way mapping based on the HQ jurisdiction's sanctions status across OFAC, UN, EU, FATF. "Comprehensive" = OFAC full embargo OR FATF blacklist OR UN OR EU sanction.

Example HQ in Iran (FATF blacklist + OFAC + UN + EU) → 100
UBO Sanctions Exposure
factor weight 30%
Formula
min(100, 60 × n)

Each Ultimate Beneficial Owner residing in a comprehensively-sanctioned or FATF-blacklist jurisdiction adds 60 points; capped at 100.

Example 2 sanctioned-jurisdiction UBOs → min(100, 120) = 100
Fuzzy Watchlist Similarity
factor weight 10%
Formula
similarity_pct (0 – 100)

Best name-similarity score (Jaro-Winkler / Levenshtein) against aggregated watchlists, used directly as a 0–100 score. An investigative trigger, not a definitive hit.

Example Name 87 % similar to a SDN entry → 87

Country Risk Scoring

weight 20%
HQ FATF Status
factor weight 40%
Formula
Blacklist → 100 · Greylist → 65 · Compliant → 10

Direct lookup of HQ country in FATF's most recent public statement (3× per year).

Example HQ in Vietnam (greylist) → 65
Basel AML Index of HQ
factor weight 30%
Formula
Basel × 10 (clamped to 0 – 100)

Linear mapping of Basel Institute's annual ML/TF risk index (0–10 scale) onto our 0–100 risk scale.

Example Pakistan, Basel = 6.28 → 62.8
HQ CPI (inverse)
factor weight 30%
Formula
100 − CPI

Transparency International CPI runs 0 (corrupt) to 100 (clean) — the opposite direction to our risk score, so we invert.

Example Russia, CPI = 22 → 100 − 22 = 78

High-Risk Jurisdiction Monitoring

weight 15%
High-Risk Operating Footprint
factor weight 40%
Formula
(n_high_risk / n_total) × 100

Share of the entity's operating jurisdictions that are FATF black/grey-listed or OFAC-sanctioned.

Example Operates in 5 countries, 2 are high-risk → (2 / 5) × 100 = 40
Subsidiaries in Sanctioned Jurisdictions
factor weight 40%
Formula
n = 0 → 0 ; n ≥ 1 → min(100, 40 + 25 × n)

Any subsidiary in OFAC-comprehensive or FATF-blacklist jurisdiction triggers a 40-point base; each additional adds 25, capped at 100.

Example 1 subsidiary in Iran → 40 + 25 × 1 = 65 · 3 subs → min(100, 115) = 100
Recent High-Risk Expansion
factor weight 20%
Formula
flag = true → 85 ; false → 0

Boolean flag: did the entity start operating in a FATF-listed or OFAC-sanctioned jurisdiction in the last 6 months? Captures dynamic monitoring vs static onboarding.

Example Newly opened a Türkiye office last quarter → 85

Sanctions Circumvention Risk

weight 15%
Transit Hub + Sanctioned Co-occurrence
factor weight 50%
Formula
both → 85 · one → 35 · neither → 0

Transit hubs hardcoded as AE / TR / HK / SG / MC / CY / VG / KY / LU / CH (per FinCEN advisories). Score depends on whether the entity simultaneously touches a hub AND a sanctioned country.

Example Operates in UAE + Iran → 85 · only UAE → 35
Sanctioned-Neighbor Exposure
factor weight 30%
Formula
n = 0 → 0 ; n ≥ 1 → min(100, 25 + 20 × n)

Operating presence in a country bordering a comprehensively-sanctioned one (AM/AZ/KZ/UZ/TJ/TM/GE/IQ/AF/CN/KR/RU/LB/JO). Base 25 + 20 per neighbor, capped 100.

Example Active in Kazakhstan + Armenia (2 RU/IR neighbors) → 25 + 20 × 2 = 65
Opaque Ownership Chain
factor weight 20%
Formula
min(100, 15 × n_subs_in_secrecy + 25 × n_ubos_in_secrecy)

Counts subsidiaries and UBOs domiciled in financial-secrecy hubs. UBOs weighted higher because they hide control more than subsidiaries hide capital.

Example 2 subs + 1 UBO in BVI/KY → 15 × 2 + 25 × 1 = 55

PEP & Adverse Media

weight 15%
UBO PEP Status
factor weight 50%
Formula
n = 0 → 0 ; n ≥ 1 → min(100, 45 + 25 × (n − 1))

Number of UBOs flagged as Politically Exposed Persons. First PEP triggers a 45-point base; each additional adds 25, capped 100.

Example 1 PEP UBO → 45 · 3 PEP UBOs → 45 + 25 × 2 = 95
Adverse Media Count
factor weight 30%
Formula
min(100, 8 × n)

Articles in the last 24 months mentioning the entity in connection with AML/fraud/sanctions/corruption keywords. Each article adds 8 points; capped at 100.

Example 5 negative articles → 40 · 13+ articles → 100 (capped)
Regulatory Enforcement History
factor weight 20%
Formula
n = 0 → 0 ; n ≥ 1 → min(100, 55 + 25 × (n − 1))

Past OFAC / FinCEN / EU / national-regulator enforcement actions. First action triggers a 55-point base; each additional adds 25, capped 100.

Example 1 prior OFAC settlement → 55 · 3 actions → 55 + 50 = 100 (capped)

Country Context Enrichment

weight 10%
WGI Control of Corruption
factor weight 50%
Formula
((2.5 − wgi) / 5) × 100

World Bank WGI Control of Corruption indicator (range −2.5 to 2.5, higher = better governance) standardized to a 0–100 risk score.

Example Denmark, WGI = 2.31 → ((2.5 − 2.31) / 5) × 100 = 3.8 China, WGI = −0.27 → 55.4
Rule of Law Environment
factor weight 30%
Formula
(1 − wjp_score) × 100

WJP Rule of Law Index 2025 overall score (0..1, higher = stronger). Inverted to a 0..100 risk score so 'weaker rule of law → higher risk'. Refreshed daily from public/downloads/wjp-rule-of-law.xlsx; falls back to a WGI-derived proxy for the few jurisdictions WJP doesn't cover.

Example Germany WJP 0.833 → risk 17 Venezuela WJP 0.260 → risk 74
Financial Secrecy
factor weight 20%
Formula
secrecy_score (0 – 100, higher = more opaque)

Tax Justice Network Financial Secrecy Index 2022 — per-jurisdiction secrecy score on 0..100. Refreshed daily from public/downloads/tjn-fsi.xlsx; falls back to a hand-curated estimate for the few jurisdictions TJN doesn't rank.

Example United States 68.6 · Switzerland 74.9 · Finland 39.6