GH GambleHub

Тюнінг антифроду і правил

TL; DR

Антифрод - це не «ловля зловмисників», а оптимізація прибутку: мінімізуємо Expected Loss (EL) від фроду і чарджбеків при обмеженні Cost of Friction (CoF) і AR_net. Базова схема: скоринг (ML) → поріг/драбинка step-up → правила (policy & velocity) → ручна верифікація. Успіх дають: чисті лейбли, стабільні фічі, економічно калібрований поріг, канарські релізи, сувора ідемпотентність і керованість правил.


1) Економічна постановка

Expected Loss:
  • `EL = P_fraud(tx) × Exposure(tx)`; зазвичай'Exposure = captured_amount'.
Cost of Friction (CoF):
  • `CoF = (Abandon_on_Friction × LTV_new/ret) + Opex_review + Fees_stepup`.
Цільова функція (максимізуємо профіт):
  • `Profit = GGR − Cost_payments − EL − CoF`.

Оптимальний поріг «τ»: вибираємо score-cutoff так, щоб'd (Profit )/d τ = 0', або по сітці min ('EL + CoF'). На практиці - cost-sensitive ROC/PR з вагами: `w_fraud = Exposure`, `w_fp = LTV_loss + opex`.


2) Драбинка автентифікації (step-up ladder)

1. Auto-approve (низький ризик): миттєвий прохід, 3DS frictionless де можна.
2. Step-up A: 3DS challenge / SCA / device-challenge / reCAPTCHA.
3. Step-up B: легкий KYC (doc selfie/face-match, liveness).
4. Manual review: кейс у аналітика (SLA, reason-codes).
5. Auto-decline: високий ризик/санкції/мули/ваучерні аномалії.

Поріг/гілка залежать від скорингового бала, суми ('ticket _ size'), країни, BIN/issuer, поведінкових фіч і контексту (бонус-кампанії, нічні вікна, velocity).


3) Сигнали і фічі (мінімальний базис)

Платіжні: BIN/IIN, issuer_country, ECI/3DS flow, AVS/CVV match, soft-decline коди, повернення/disputes в історії.
Поведінкові: швидкість подій (velocity: 'cards/device/ip/email'), час доби, first-seen/last-seen, «топологія» акаунтів (граф-зв'язку: загальні пристрої/карти/гаманці).
Пристрій/мережа: device fingerprint, емулятори/джейл/рут, проксі/VPN/TOR, ASN/хостинги.
Анти-бонус: реферали-синдикати, «прокачування» бонусів, аномальні патерни depozit→vyvod без гри.
Виплати/гаманці/ваучери: повтори PIN, гео-місматч, «швидкісні» редими, мулінгові каскади.
KYC/KYB: рівень, валідації, SoF/SoW прапори.
Санкції/РЕР/блок-листи: збіги за списками, фуззі-матч ПІБ/адрес.

💡 Фічі повинні бути стабільними і реплеімими: чіткі визначення, без витоків майбутнього, з довідниками і версіонуванням.

4) Стек: ML + правила

ML (primary ranker): GBM/Tree-ensembles/NN, навчений на'label = chargebackconfirmed fraud', time-based split,'PSI/KS'моніторинг.
Правила (policy & velocity): санкції/легальні заборони (жорсткі), ліміти швидкості, анти-бонус (доменні), «трафікові» прапори.
Композиція: 'decision = f (score, rules, context)'→ гілка драбинки.
Explainability: SHAP/feature-impact → маппінг в reason_codes для саппорту і RCA.

5) Метрики якості (з чіткими базами)

AR_clean = `Auth_Approved / (Auth_Attempted − Fraud_preblocked − Abandon_3DS)`

Fraud Rate (по захопленнях) ='Fraud _ captured _ amount/ Captured_amount'

Chargeback Rate ='Chargeback _ count/ Captured_Tx' (або за сумою)

False Positive Rate (FP) = `Legit_declined / Legit_attempted`

Step-up Rate = `StepUp_tx / Auth_Attempted`, Abandon_on_StepUp

Auto-approve %, Manual review %, Review SLA/TtA

Net Profit uplift після тюнінгу (AB-різниця EL + CoF vs контроль).

Орієнтири: FP у нових користувачів ≤ 1-2% (за обсягом), Fraud (за сумою) - в цільовому коридорі ліцензії/схем.


6) Пороги і політика правил

6. 1 Калібрування порогу

Будуємо cost-curve: для кожного «τ» рахуємо «EL (τ) + CoF (τ)».
Вибираємо'τ'з мінімумом. Для high-ticket - окремий'τ _ hi'.

6. 2 Типові правила (псевдокод)

yaml
- name: SANCTIONS_HIT when: sanctions_match==true action: DECLINE reason: "Sanctions/PEP match"

- name: BIN_RISKY_3DS when: bin in RISKY_BINS and score in [τ_low, τ_mid)
action: STEPUP_3DS

- name: DEVICE_VELOCITY_LOCK when: device_id in last_10min.deposits > 3 action: DECLINE_TEMPORARY ttl: 2h

- name: BONUS_ABUSE_GUARD when: (bonus_received and gameplay_turnover < Xdeposit_amount) and payout_request action: HOLD_REVIEW reason: "Turnover not met"

6. 3 Динамічні ліміти

Ліміт суми та кількості транзакцій за рівнем ризику (risk-tier): `R1/R2/R3`.
Адаптивні ліміти для нових акаунтів, прогрівши при хорошій історії.


7) Життєвий цикл правил (governance)

DSL/реєстр правил з версіями, власником і описом ефекту.
Shadow mode → canary (5–10%) → full rollout.
RACI: Owner (Payments Risk), Approver (Compliance/Legal), Consulted (Support/Treasury), Informed (Ops).
Аудит-лог: хто/коли змінив, які метрики/АВ, відкат.
Термін придатності правила і переоцінка (наприклад, 30/60 днів).


8) Дані та навчання моделей

Спліти за часом, без витоку (features тільки з минулого вікна).
Цільовий лейбл: confirmed fraud/chargeback; окремі лейбли bonus abuse.
Reweighing класів за сумою (amount-weighted loss).
Drift-моніторинг: PSI для ключових фіч, KS для скорів, baseline stability.
Retrain-тригери: PSI>0. 25, падіння KS, зміна трафіку/юрисдикцій.


9) Пояснюваність і саппорт

Для кожного рішення генеруємо reason_codes (до 5 причин) з людиночитаними підказками.
Саппорт-макроси по step-up/відмовам (3DS, KYC, turnover).
Спори/диспути: зворотній зв'язок потрапляє в labeling pipeline (закриваємо цикл).


10) Комплаєнс і приватність

GDPR/DSAR: право пояснення рішення; мінімізація PII; хешування (salted) ідентифікаторів (email/phone/PAN-токен).
PCI-DSS: PAN-safe потоки, токенізація.
Санкції/AML: окремий контур скринінгу + ескалації MLRO.
Retention: політики зберігання сигналів та обґрунтувань рішень.


11) Моніторинг та алерти (щогодини/щодня)

AR_clean, Fraud (amt%), FP (retention-weighted), Step-up/Abandon, Review SLA, Chargeback Rate (lagged).
Спайки velocity, зростання TOR/Proxy/ASN-хостингів, BIN-деградації, ваучер-редими.
Алерти при: FP> коридору, Fraud> таргета, Abandon> бази + X п.п., дрейф PSI/KS.


12) SQL-зрізи (приклад)

12. 1 Базові метрики

sql
WITH base AS (
SELECT
DATE_TRUNC('day', attempt_ts) d, country, provider, method_code,
COUNT() FILTER (WHERE auth_status='ATTEMPTED') AS attempted,
COUNT() FILTER (WHERE auth_status='APPROVED') AS approved,
COUNT() FILTER (WHERE decision='DECLINE' AND label='LEGIT') AS fp_cnt,
SUM(captured_amount) AS cap_amt,
SUM(CASE WHEN label='FRAUD' THEN captured_amount ELSE 0 END) AS fraud_amt
FROM payments_flat
GROUP BY 1,2,3,4
)
SELECT d, country, provider, method_code,
approved::decimal/NULLIF(attempted,0) AS ar_clean,
fraud_amt::decimal/NULLIF(cap_amt,0)  AS fraud_rate_amt,
fp_cnt::decimal/NULLIF(attempted,0)  AS fp_rate
FROM base;

12. 2 Частка step-up і відмов по швидкій

sql
SELECT
DATE_TRUNC('day', attempt_ts) d,
WIDTH_BUCKET(score, 0, 1, 10) AS bucket,
AVG(CASE WHEN decision='STEPUP' THEN 1 ELSE 0 END) AS stepup_share,
AVG(CASE WHEN decision='DECLINE' THEN 1 ELSE 0 END) AS decline_share,
AVG(CASE WHEN stepup_abandon THEN 1 ELSE 0 END) AS abandon_after_stepup
FROM risk_events
GROUP BY 1,2
ORDER BY d, bucket;

13) Плейбуки тюнінгу

Зростання Fraud (amt%) при стабільному FP → підняти'τ', посилити velocity по пристроях/ASN, включити 3DS-challenge на вразливих BIN.
Високий FP у нових → пом'якшити'τ'для low-ticket, перевести частину в Step-up A замість відхилення.
Abandon на 3DS↑ → домовитися з PSP про 3DS2-параметри, поліпшити UX, звузити step-up на мобільних для low-risk.
Синдивідуальні бонус-мережі → графові фічі, лімітувати «паралельні» виплати, turnover-правила.
Ваучерні аномалії → velocity по PIN/рітейлеру/гео, device-binding, hold до верифікації.


14) Впровадження: чек-лист

  • Економічне калібрування порогу ('EL + CoF'), окремі'τ'за сегментами.
  • Реєстр правил (DSL), shadow→canary→rollout, аудит і відкат.
  • Reason-codes і шаблони комунікацій.
  • Моніторинг PSI/KS, дрейф фіч/скорів, регулярний retrain.
  • Канал зворотного зв'язку (disputy→leybly).
  • Політики KYC/step-up, SLA review і TtA/TtR.
  • Приватність: хешування ідентифікаторів, мінімізація PII.

15) Резюме

Тюнінг антифроду - це системна оптимізація прибутку з керованою фрикцією: ML-скоринг + продумана драбинка step-up, жорсткі легальні правила і акуратні velocity-ліміти. Економічне калібрування порогу, чисті лейбли, канарські викладки і сувора керованість дають низький Fraud за сумою, низький FP у нових, високий AR_net - без сюрпризів для комплаєнсу і UX.

Contact

Зв’яжіться з нами

Звертайтеся з будь-яких питань або за підтримкою.Ми завжди готові допомогти!

Розпочати інтеграцію

Email — обов’язковий. Telegram або WhatsApp — за бажанням.

Ваше ім’я необов’язково
Email необов’язково
Тема необов’язково
Повідомлення необов’язково
Telegram необов’язково
@
Якщо ви вкажете Telegram — ми відповімо й там, додатково до Email.
WhatsApp необов’язково
Формат: +код країни та номер (наприклад, +380XXXXXXXXX).

Натискаючи кнопку, ви погоджуєтесь на обробку даних.