GH GambleHub

Bonus-abuse та фінансові захисти

1) Що таке bonus-abuse і чому це фінансова проблема

Bonus-abuse - цілеспрямоване використання бонусів/акцій для отримання гарантованої вигоди без еквівалентного ігрового ризику або з обходом правил. Наслідки:
  • Прямі втрати: вартість бонусу, free spins, промо-fees/FX, CB/Refund.
  • Викривлення метрик: завищений AR/MAU, помилкові uplift'и.
  • Платіжні ризики: «каруселі» depozit→vyvod, chargeback-фармінг.
  • Ліцензійні ризики: порушення RG/KYC/AML, misleading promotions.

2) Таксономія зловживань (патерни)

1. Stacking - кілька бонусів на одну особу/домогосподарство/пристрій/платіжний токен.
2. Net-deposit loops - депозит заради бонусу → мінімальні ставки → виведення або чарджбек.
3. Hedging/Arbitrage - ставки на взаємопов'язаних ринках/іграх для «замикання» ризику.
4. High-RTP cherry-picking - гра тільки в тайтли з високим внеском в WR.
5. Method arbitrage - дешевий метод депозиту → дорогий/швидкий коридор виведення.
6. FX-арбітраж - спекуляції на курсовій різниці між депозитом і виведенням.
7. Multi-accounting - клони з повторним використанням пристроїв/мереж/платіжних засобів.
8. Chargeback farming - гра на бонус, потім повернення депозиту через суперечку/чарджбек.
9. KYC-evasion - цілеспрямований обхід SoF/SoW, підміна країни (VPN/Proxy/SIM).


3) Фінансові захисти (policy core)

ND (Net Deposits)-gate: участь/виплати при'ND ≥ 0'( або поріг'ND ≥ θ').
Same-method / Return-to-source: виведення до суми ND - тільки на джерело депозиту.
Payout-locks: заборона/обмеження виведення при активному бонусі до виконання WR і перевірки порушень.
WR & Contribution%: прозорі правила відіграшу (BONUS-ONLY або BONUS + DEPOSIT) і вага за категоріями ігор.
Max bet при WR: ліміт абсолютом або часткою від бонусу (наприклад, «≤ 5 EUR» або «≤ 10% бонусу»).
One-per constraints: по person/household/device/payment_token.
Game/risk exclusions: заборона «покупки фріспінів», джекпоти, аномально високі RTP-титули.
Velocity caps: ліміти на частоту депозитів/висновків/невдалих оплат.
Rolling-reserve/holdbacks: страховий буфер на партнерах/субмерчантах і для high-risk гравців.
FX-політика: фіксувати reference rate на grant бонусу; контролювати slippage при payout.


4) Сигнали ризику (платіжні та поведінкові)

Payment: BIN-гео ≠ KYC-країна, часті soft-declines, нові токени підряд, карта/гаманець, відомі «високоризикові» емітенти.
Device/Network: device-graph збігається з іншими акаунтами, загальні IP/ASN/VPN/hosting.
Behavior: тільки high-contrib гри, миттєвий висновок після min-депозиту, повтор WR-порушень.
Geo: KYC≠IP≠SIM, аномальна гео-швидкість.
Docs: підозрілі KYC/POA/SoF (низька якість, шаблони, reuse).
FX: депозити в «слабкій» валюті, висновки в «сильній», тимчасово високий спред.

Ризик-скоринг: лінійна модель/GBM з фічами по блоках (Payment/Device/Behavior/Geo/FX), калібрування порогів для step-up (KYC/Liveness/SoF) і deny.


5) Архітектура правил (policy engine)

Ідемпотентність: одноразовість гранту на payment_token/household/device.
Правила «до депозиту»: eligibility по GEO/KYC/ND/one-per.
Правила «після депозиту»: активація гранту, max bet, WR, game-mix, таймер.
Правила «на виведенні»: same-method, ND-розріз, SoF/SoW step-up, hold/deny.
Аудит: версія правил, причини, evidence (для апеляцій і регулятора).


6) Інцидент-плейбуки

1. Abuse wave (stacking): негайний freeze грантів цієї кампанії, перерахунок WR, вибірковий SoF, бендінг токенів/households.
2. Chargeback surge: включити 3DS-step-up, посилити same-method, збільшити hold на висновки і резерв PSP.
3. FX-арбітраж: тимчасово обмежити крос-валютні висновки і ввести spread-guard.
4. Method arbitrage: закрити «дорогі» коридори для ND-негативних, включити повернення тільки на джерело.


7) Право, RG і приватність

Terms & Promo T&C: коротка версія в чекауті, повна - в профілі; локалізовано.
RG: self-exclude/ліміти - бонуси недоступні; cooling-off обнуляє активні гранти.
KYC/SoF: мінімізація даних, явні згоди, ретеншн-політики, DPA.
Санкції/ліцензії: білі списки країн, заборони на типи промо в конкретних юрисдикціях.


8) Дані та модель (мінімум)

sql
-- Игрок и атрибуты риска risk.player_signals (
user_id PK, risk_score NUMERIC, nd_total NUMERIC, nd_30d NUMERIC, nd_7d NUMERIC,
kyc_level TEXT, geo_ip TEXT, geo_kyc TEXT, geo_sim TEXT,
device_hash TEXT, household_id TEXT, payment_token_last TEXT,
fx_profile JSONB, updated_at TIMESTAMP
);

-- Гранты бонусов и прогресс/нарушения bonus.grants (
grant_id PK, promo_id, user_id, deposit_tx_id, currency,
bonus_amount NUMERIC, granted_at TIMESTAMP, expires_at TIMESTAMP,
status TEXT -- ACTIVE    FORFEITED    COMPLETED    EXPIRED    FROZEN
);
bonus.wr_progress (
grant_id, user_id,
turnover_slots NUMERIC, turnover_tables NUMERIC, turnover_live NUMERIC,
turnover_total NUMERIC, required_total NUMERIC, updated_at TIMESTAMP
);
bonus.violations (
id PK, grant_id, user_id, type TEXT, severity TEXT, details JSONB, occurred_at TIMESTAMP
);

-- Нетто-депозиты и разрез по методам finance.net_deposits (
user_id, currency, nd_total NUMERIC, nd_by_method JSONB, updated_at TIMESTAMP
);

-- Выводы и причины hold/deny payout.requests (
payout_id PK, user_id, method TEXT, currency TEXT, amount NUMERIC,
nd_snapshot NUMERIC, same_method_ok BOOLEAN, risk_score NUMERIC,
status TEXT, reason_code TEXT, created_at TIMESTAMP, decided_at TIMESTAMP
);

9) Псевдо-DSL правил

yaml policy: "bonus_abuse_v4"
eligibility:
geo_whitelist: [DE, AT, FI]
kyc_min: L1 nd_min: 0 one_per: [person, household, device, payment_token]
deny_if:
- sanctions_hit == true
- risk_score >= 0.85 grant:
max_bet_amount:
EUR: 5 wagering:
base: BONUS_ONLY multiplier: 30 contrib:
slots: 100 tables: 25 live: 10 game_exclusions: [JACKPOT, BUY_BONUS]
controls:
payout_lock: UNTIL_WR_DONE same_method: true allow_nd_withdrawal: true fx_spread_guard_bps: 80 method_arbitrage_block: true escalations:
- if: nd_7d < 0 then: "deny_new_bonus"
- if: device_household_overlap >= 2 then: "manual_review"
- if: cb_rate_30d > 0.8% then: "hold_payout_48h"
audience:
exclude_segments: ["self_excluded", "high_risk_bin"]

10) SQL-шаблони

10. 1. ND-gate і same-method на виводі

sql
SELECT r.payout_id,
(nd.nd_total >= 0) AS nd_non_negative,
(t.method = r.method AND t.payment_token = r.payment_token) AS same_method_ok
FROM payout.requests r
JOIN finance.net_deposits nd ON nd.user_id = r.user_id AND nd.currency = r.currency
JOIN dw.transactions_flat t ON t.tx_id = (
SELECT deposit_tx_id FROM bonus.grants
WHERE user_id = r.user_id AND status IN ('ACTIVE','COMPLETED')
ORDER BY granted_at DESC LIMIT 1
)
WHERE r.status='PENDING' AND r.created_at BETWEEN:from AND:to;

10. 2. Детект household/device overlap

sql
SELECT suspect.user_id, base.user_id AS overlap_with, suspect.device_hash, suspect.household_id
FROM risk.player_signals suspect
JOIN risk.player_signals base
ON suspect.user_id <> base.user_id
AND (suspect.device_hash = base.device_hash OR suspect.household_id = base.household_id)
WHERE suspect.updated_at > now() - INTERVAL '30 days';

10. 3. Max-bet і game-mix порушення

sql
SELECT b.user_id, b.grant_id,
SUM(CASE WHEN b.amount > l.max_bet_amount THEN 1 ELSE 0 END) AS maxbet_viol,
100.0 SUM(CASE WHEN game_category='slots' THEN b.stake ELSE 0 END)
/ NULLIF(SUM(b.stake),0) AS slots_share_pct
FROM dw.bets b
JOIN bonus.session_limits l USING (grant_id, user_id)
WHERE b.placed_at BETWEEN:from AND:to
GROUP BY 1,2
HAVING SUM(CASE WHEN b.amount > l.max_bet_amount THEN 1 ELSE 0 END) > 0
OR 100.0 SUM(CASE WHEN game_category='slots' THEN b.stake ELSE 0 END)
/ NULLIF(SUM(b.stake),0) >:one_game_share_max;

10. 4. Chargeback-post-bonus моніторинг

sql
SELECT method,
10000.0 SUM(is_chargeback::int) / NULLIF(COUNT(),0) AS cb_bps_14d
FROM risk.outcomes o
JOIN dw.transactions_flat t USING (tx_id)
WHERE o.occurred_at BETWEEN (CURRENT_DATE - INTERVAL '14 days') AND CURRENT_DATE
AND EXISTS (SELECT 1 FROM bonus.grants g WHERE g.deposit_tx_id=t.tx_id)
GROUP BY method
ORDER BY cb_bps_14d DESC;

10. 5. FX-slippage в промо

sql
SELECT g.promo_id,
SUM(fx_effective - fx_reference) 10000.0 / NULLIF(SUM(amount_reporting),0) AS fx_slippage_bps
FROM dw.transactions_flat t
JOIN bonus.grants g ON g.deposit_tx_id=t.tx_id
WHERE t.settled_at BETWEEN:from AND:to
GROUP BY 1;

11) KPI і дашборди

Abuse Rate: частка грантів з порушеннями/розслідуванням.
WR Completion % / Time-to-WR (p50/p95).
ND Gate Hit% і частка ND <0 серед учасників.
Chargeback After Bonus (bps) за методами/PSP/гео.
Payout Hold Share і середній TAT рішення.
FX Slippage (bps) за промо/валютами.
Promo Liability (пасив) і Breakage%.
Household/Device Overlap Index (кластеризація).


12) Алерти і пороги

Abuse Spike: зростання'violations/100 grants'> X d/d.
CB Surge Post-Bonus: cb_bps_14d за методом/гео> порогу.
ND Negative Share ↑: частка ND <0 серед заявок на висновок> Y%.
Max-Bet Burst: сплеск порушень> порогу по бренду/тайтлу.
FX Anomaly: slippage_bps> ліміту по валютній парі.
Household Bloom: новий великий кластер пристроїв/адрес.
Policy Drift: гранти без зафіксованої версії правил/згоди.


13) UX-патерни (без «спалювання» конверсії)

Коротка картка умов на екрані депозиту (min dep, WR, max bet, same-method).
WR-прогрес-бар + дедлайн, внесок за категоріями.
Пояснення ND/висновків: «До суми чистих депозитів - тільки на джерело».
М'які step-ups: SoF/селфі за сигналом; прозорі терміни.
Апеляції: кнопка «оскаржити» з чек-листом документів.


14) A/B-тести захистів

Що тестувати: 'nd _ min','max _ bet','WR multiplier/base','one _ per'-стратегії,'fx _ guard'.
Guardrails: CBR bps, Abuse Rate, AR/Take-Rate, Payout TAT.
Методика: стратифікація за GEO/BIN/методом, CUPED за pre-поведінкою, лаг на СВ/висновки.


15) Чек-лист впровадження

  • ND-модель і розріз за методами; same-method/return-to-source в payout.
  • Promo DSL + валідатор правил, версії та аудит.
  • Max bet, WR, contrib%, exclusions; ліміти velocity.
  • Device/household graph; BIN-гео/FX профілі.
  • Ризик-скоринг + step-ups (KYC/SoF) і deny-поріг.
  • Hold/Reserve механіки на виводах і у PSP.
  • Дашборди KPI і алерти; плейбуки інцидентів.
  • Правові тексти (локаль), RG-гейти, згоди і ретеншн.
  • Процес апеляцій і ручних рішень з SLA.
  • A/B зі строгими guardrails і дата-фризом.

Резюме

Ефективний захист від bonus-abuse - це система, а не набір заборон: ND-контроль і same-method на виплатах, строгі WR/max-bet і contrib%, сигнали Payment/Device/Behavior/FX, ризик-скоринг зі step-ups, прозорий UX і юридична чистота. Такий стек знижує прямі втрати, стабілізує P&L і зберігає чесний досвід для сумлінних гравців - без зайвого тертя і «помилкових спрацьовувань».

Contact

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

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

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

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

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

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