Bonus-abuse e protezione finanziaria
1) Cos'è bonus-abuse e perché è un problema finanziario
Bonus-abuse - l'uso mirato di bonus/azioni per ottenere un beneficio garantito senza rischi di gioco equivalenti o con il superamento delle regole. Conseguenze:- Perdita diretta: valore bonus, free spins, promo-fees/FX, CB/Refund.
- Distorsione delle metriche: AR/MAU esagerato, false uplift's.
- I rischi di pagamento sono «caroselli», chargeback-farming.
- Rischi di licenza: violazioni RG/KYC/AML, promozioni misleading.
2) Tassonomia degli abusi (pattern)
1. Stacking - più bonus per persona/famiglia/dispositivo/token di pagamento.
2. Net-deposit loops - deposito per il bonus per le aliquote minime, l'output o il charjback.
3. Hedging/Arbitrage - scommesse su mercati/giochi interconnessi per il rischio di «cortocircuito».
4. High-RTP cherry-picking è un gioco solo a timeline con un alto contributo WR.
5. Method arbitrage è un metodo di deposito economico costoso/veloce corridoio di uscita.
6. Arbitraggio FX - Speculazioni sulla differenza di corso tra il deposito e l'output.
7. Multi-accounting - cloni che riutilizzano dispositivi/reti/strumenti di pagamento.
8. Chargeback farming è un gioco di bonus, quindi un deposito rimborsato attraverso un contenzioso/charjback.
9. KYC-evasion è un giro mirato del paese (VPN/Proxy/SIM).
3) Protezione finanziaria (policy core)
ND (Net Deposits) -gate - Partecipazione/rimborso a «ND» 0 «(o soglia» ND).
Same-method/Return-to-source - Ritiro fino all'importo ND - solo alla fonte di deposito.
Payout-locks - Impedisce/limita l'output in caso di bonus attivo prima di eseguire WR e verificare le violazioni.
WR & Content% - Regole trasparenti per allineamento (BONUS-ONLY o BONUS + DEPOSIT) e peso per categoria di gioco.
Max bet WR: limite assoluto o quota del bonus (ad esempio, «5 EUR» o «10% di bonus»).
One-per constraints: по person/household/device/payment_token.
Game/risk excusions: divieto di «acquisto di freespine», jackpot, titoli RTP anormalmente elevati.
Velocity caps - Limiti per la frequenza di depositi/conclusioni/sovraccarichi non riusciti.
Rolling-reserve/holdbacks - buffer di assicurazione su partner/sub e per giocatori high-risk.
Criterio FX - Fissa la reference rate sul bonus grant; Controlla slippage al payout.
4) Segnali di rischio (pagamenti e comportamenti)
Payment: BIG-geo di KYC-Paese, frequenti soft-declins, nuovi token consecutivi, mappa/portafoglio, noti emittenti ad alto rischio.
Device/Network: device-graph corrisponde ad altri account condivisi IP/ASN/VPN/hosting.
Behavior: solo giochi high-contib, uscita immediata dopo un deposito min, ripetizione di violazioni WR.
Geo: KYC≠IP≠SIM, velocità geo anomala.
Docs: KYC/POA/SoF sospetti (scarsa qualità, modelli, reuse).
FX: depositi in valuta «debole», conclusioni in «forte», spread temporaneamente alto.
Modello lineare/GBM con fiocchi per blocchi (Payment/Device/Behavior/Geo/FX), calibrazione delle soglie per step-up (KYC/Liveness/SoF) e deny.
5) Architettura delle regole (policy engine)
Idampotenza: monouso della borsa di studio per payment _ token/household/device.
Regole pre-deposito: elegibilità GEO/KYC/ND/one-per.
Regole post-deposito: attivazione della borsa di studio, max bet, WR, game-mix, timer.
Le regole di output sono same-method, taglio ND, SoF/SoW step-up, hold/deny.
Verifica: versione delle regole, motivi, evidence (per gli appelli e il regolatore).
6) Incidenti playbook
1. Abuse wave (stacking) - Borse di studio immediate per questa campagna, riconteggio WR, selettivo, branding token/households.
2. Conformeback surge: abilita 3DS-step-up, rafforza same-method, aumenta hold per le conclusioni e la riserva PSP.
3. Arbitraggio FX - Limitare temporaneamente le conclusioni delle valute crociate e introdurre spread-guard.
4. Method arbitrage - Chiudere i corridoi «costosi» per i negativi ND, includere il ritorno solo all'origine.
7) Diritto, RG e privacy
Terme & Promo T&C: versione breve in checkout, completa nel profilo; localizzato.
RG: self-exclude/limiti - bonus non disponibili; cooling-off azzera le borse di studio attive.
KYC/SoF: minimizzazione dei dati, consenso esplicito, politica di restrizione, DPA.
Sanzioni/licenze: liste bianche di paesi, divieti di tipo promo in specifiche giurisdizioni.
8) Dati e modello (minimo)
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) Regole pseudo-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) Modelli SQL
10. 1. ND-gate e same-method in uscita
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. Oggetto 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. Violazione Max-bet e 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. Monitoraggio Marceback-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 in promo
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 e dashboard
Abuse Rate - Percentuale di borse di studio con violazioni/indagini.
WR Completion % / Time-to-WR (p50/p95).
ND Gate Hit% e quota ND <0 tra i partecipanti.
Marceback After Bonus (bps) sui metodi/PSP/geo.
Payout Hold Share e TAT media.
FX Slippage (bps) per promo/valuta.
Promo Liability (passivo) e Breakage%.
Household/Device Overlap Index (clustering).
12) Alerti e soglie
Abuse Spike: рост `violations/100 grants` > X d/d.
CB Surface Post-Bonus: cb _ bps _ 14d con metodo/geo> soglia.
ND Negative Share ↑ - Percentuale ND <0 tra le richieste di output> Y%.
Max-Bet Burst: aumento delle violazioni> soglia del marchio/timbro.
FX Anataly: slippage _ bps> limite di coppia valuta.
Household Bloom è un nuovo grande cluster di dispositivi/indirizzi.
Policy Drift - Borse di studio senza una versione fissata delle regole o dei consensi.
13) pattern UX (senza «bruciare» la conversione)
Una breve scheda di condizioni sullo schermo deposito (min dep, WR, max bet, same-method).
WR-progress bar + deadline, contributo per categoria.
Spiegazione ND/conclusioni: «Fino all'importo dei depositi netti, solo alla fonte».
Step-ups morbidi: SoF/selfie al segnale; tempi trasparenti.
Il pulsante «contestare» con il foglio di lavoro.
14) A/B test di blocco
Cosa provare: «nd _ min», «max _ bet», «WR multiplier/base», «one _ per», «fx _ guard».
Guardrails: CBR bps, Abuse Rate, AR/Take-Rate, Payout TAT.
Metodologia: strattonamento GEO/BIN/metodo, CUPED pre-comportamento, lega a SAN/Conclusioni.
15) Assegno-foglio di implementazione
- Modello ND e taglio dei metodi same-method/return-to-source в payout.
- Promo DSL + validatore di regole, versioni e verifiche.
- Max bet, WR, contrib%, exclusions; limiti di velocity.
- Device/household graph; Profili BIN-geo/FX.
- Rischio-scorrimento + step-ups (KYC/SoF) e soglia deny.
- La meccanica Hold/Reserve nelle conclusioni e in PSP.
- Dashboard KPI e alert; playbook di incidenti.
- Testi legali (locale), RG-gate, consenso e retensioni.
- Processo di appello e sentenze manuali con SLA.
- A/B con rigidi guardrail e data-freezer.
Curriculum
Una protezione efficace contro il bonus-abuse è un sistema, non un set di divieti: controllo ND e same-method sui pagamenti, rigorosi WR/max-bet e contribb%, segnali Payment/Device/Behavior/FX, rischio-scansione con step-ups, trasparente UX e legale purezza. Questa pila riduce le perdite dirette, stabilizza P&L e mantiene un'esperienza onesta per i giocatori in buona fede - senza troppe tensioni e «falsi effetti».