GH GambleHub

RTP: модель конфігурування

RTP (Return To Player) - відсоток теоретичного повернення на довгій дистанції, заданий математикою гри/варіанту. У продакшені RTP перетворюється на набір керованих обмежень і сигналів: де, кому і за яких умов дозволений той чи інший варіант математики (97/96/94/92 і т. п.), як вважати фактичне повернення, як реагувати на відхилення і як документувати зміни для комплаєнсу.

1) Терміни та рівні

Theoretical RTP (tRTP) - заявлена математика варіанту (сертифікована).
Effective RTP (eRTP) - очікуване повернення в проді з урахуванням опцій (джекпот-надбавка, bonus buy, side-bets, провайдерські комісії).
Realized RTP (rRTP) - фактичне повернення за вікном часу/раундів (емпірика).
RTP Variant - конкретний білд/профіль гри (наприклад, 96. 5%).
RTP Band/Policy - дозволені діапазони для юрисдикцій/тенантів.

Мета моделі: прив'язати дозволений tRTP до контексту запуску (тенант, регіон, валюта, канал) і вміти верифікувати eRTP/rRTP по SLO.

2) Вимірювання конфігурації (де задаємо правила)

1. Провайдер/Game/Variant - що взагалі підтримується.
2. Тенант/Бренд - комерційні та UX-рішення (які RTP показувати).
3. Регіон/Юрисдикція - ліцензії та регуляторні рамки.
4. Канал - web/native/retail/terminal (іноді розрізняються пули/параметри).
5. Валюта - перетинається з джекпотами і комісіями (впливають на eRTP).
6. Тимчасові вікна - промо-періоди, канарні викладки.

3) Ієрархія, пріоритети, мердж

Правило найменшої зони дії перемагає (most specific wins):

GLOBAL_DEFAULT < PROVIDER < GAME < VARIANT < TENANT < REGION < CHANNEL < CURRENCY < WINDOW

Де відсутня конкретизація - успадковуємо від батька. Будь-яке явне deny перекриває allow на нижчих рівнях.

4) Схема конфігурації (YAML, приклад)

yaml rtp_config:
schema_version: 1 global_defaults:
allowed_bands: [96, 95, 94] # percentages rounded to whole min_band: 92 show_rtp_label: true # show RTP in the providers directory/card:
prag_play:
games:
gates_of_:
variants:
"96. 5": { status: "allow", label: "96. 5%" }
"94. 0": { status: "allow", label: "94%" }
"92. 0": { status: "deny" }
jackpot_uplift_bps: 35       # +0. 35% to eRTP with tenant pool active:
brand_eu:
regions:
EE:
bands_allow: [96, 94]
default_band: 96 channel:
web:  { bands_allow: [96], default_band: 96 }
retail:{ bands_allow: [94], default_band: 94 }
DE:
bands_allow: [94]
default_band: 94 compliance:
mandate_rtp_label: true currencies:
EUR:
fee_bps: 0 # impact on eRTP
TRY:
fee_bps: 10           # -0. 10% eRTP on paid rollout features:
canary:
brand_eu: { region: "EE", game: "gates_of_", variant: "96. 5", traffic_pct: 10, ends_at: "2025-11-07T00:00:00Z" }
sla:
monitoring_windows:
- { name: "daily",  duration_h: 24, min_rounds: 1_000 }
- { name: "weekly", duration_h: 168, min_rounds: 10_000 }
ertp_tolerance_bps: 50  # eRTP vs tRTP, ±0. 50% for information alerts rrtp_tolerance_bps: 150 # rRTP vs tRTP, ± 1. 50% on weekly window

5) Валідація перед публікацією

Сертифікація варіанту: у варіанту є валідний сертифікат/ID білда.
Юрисдикційні рамки: обраний band дозволений в регіоні.
Сумісність фіч: bonus buy/джекпот/side-bets не виводять eRTP за межі.
UI-контракти: прапор'show _ rtp _ label '/обов'язковий лейбл для деяких ринків.
Консистентність: є дефолтний band на кожен контекст (щоб не було «дірок»).
Dry-run: розрахунок eRTP за формулами і порівняння з SLO/толерансами.

6) Як вважати eRTP

Базова формула (концептуально):

eRTP = tRTP
+ jackpot_uplift
+ side_bet_uplift
- provider_fee
- platform_fee
- bonus_buy_friction
Де:
  • jackpot_uplift - надбавка від прогресивного пулу (bps, залежить від розміру пулу і ставки).
  • side_bet_uplift - очікувана частка від side-бетів (якщо застосовується).
  • provider/platform_fee - фікс/відсоток на раунд/ставку, іноді зав'язаний на валюту.
  • bonus_buy_friction - «тертя» від механіки покупки бонусу (якщо вартість вище fair value).

Всі терміни і джерела вважаються детерміновано і логуються в події конфігурації.

7) Вплив фіч на RTP

Bonus Buy: може змінювати розподіл результатів; фіксуйте eRTP для buy-режиму окремо.
Jackpot: eRTP залежить від накопичення; допускайте діапазон eRTP, але тримайте контрольні точки (наприклад, при зростанні пулу кожні N% - перерахунок).
Side Bets/Feature Bets: окремі профілі RTP; забороняйте їх у регіонах з обмеженнями.
Volatility profile: RTP однаковий, але дисперсія різна; зберігайте профіль (low/med/high) поруч з band.

8) Каталог, запуск і адаптери

Каталог/Read Model: зберігаємо'tRTP _ band','eRTP _ range','label', прапори фіч.
Game Launch: при запуску сесії адаптер перевіряє дозволений band для контексту; забороняє старт, якщо несумісне.
Round Events: в події'Round. Started/Resulted'додаємо'rtp _ context'( variant_id, band, flags) - це спростить аудит і метрики.

9) Моніторинг, SLO і дрейф

Метрики (per game/variant/tenant/region):
  • 'rRTP _ window _ daily/weekly'- фактичне повернення по вікнах.
  • `rounds_count`, `stake_sum`, `win_sum`, `jackpot_contrib`.
  • `deviation_bps = rRTP - tRTP` и `rRTP - eRTP`.
  • 'bonus _ buy _ share','side _ bet _ share'- щоб розуміти причину дрейфу.
  • 'jackpot _ level'і частота спрацьовувань.
Алерти:
Інфо:rRTP - eRTP> ertp_tolerance_bps (на добовому вікні і достатній вибірці).
Майор:rRTP - tRTP> rrtp_tolerance_bps на тижневому вікні, вибірка ≥ min_rounds.
Крит: серія майорів + операційні сигнали (помилки провайдера, дивні виграші).

10) Анти-аб'юз і захист

Аномалії: різкі сплески виграшів, послідовності feature buy → перевірка по пристрою/акаунту/IP/сегменту.
Політики лімітів: тимчасово відключати bonus buy/side bets при аномаліях.
Вендор-фід: звіряти ймовірність фічевих результатів з референсним фідом провайдера.
Семплінг ручних рев'ю: за іграми з високою дисперсією і частими скаргами.

11) Комплаєнс і прозорість

Юрисдикції: список дозволених band і обов'язкових маркувань (наприклад, відображення RTP/вікових попереджень).
Сертифікація/ID білда: зберігайте посилання на звіт, версію math profile.
Звітність: видавайте регуляторні звіти з'tRTP','eRTP','rRTP'і подіями зміни.
UI/Контент: в картці гри - коректний лейбл RTP і примітки (якщо eRTP залежить від джекпоту).

12) Канарські релізи та A/B

Canary: включайте новий band на 5-10% трафіку в одній юрисдикції → стежте за'rRTP','rounds _ count', скаргами.
A/B: порівнюйте конверсію/залученість/ARPU при різних band бізнесово, не тільки по RTP.
Автовідкат: при виході rRTP за критичні пороги - відкат конфігурації.

13) Аудит та управління змінами

Кожна правка в'rtp _ config'публікує подію:
json
{
"event_type":"RTPConfigChanged",
"changed_by":"user@company",
"tenant_id":"brand_eu",
"scope":"regions. EE. games. gates_of_",
"old":{"default_band":94},
"new":{"default_band":96},
"reason":"licence_update_2025Q4",
"occurred_at":"2025-10-31T12:00:00Z"
}

Ведення незмінного журналу спрощує розбір спорів і відповідність вимогам.

14) Тестування

Contract tests: валідність схеми, наявність дефолтів, deny/allow логіка.
Property-based: 'eRTP'не виходить за розумні рамки для будь-яких комбінацій фіч.
Replay: прогін історичних раундів поверх нової конфігурації (оффлайн) → перевірка звітів.
Chaos: перезапуски адаптера, лаги джекпот-фіда, пропуски фічових прапорів.
Golden set: набір ігор/варіантів з еталонними розрахунками eRTP.

15) Плейбуки (runbooks)

1. rRTP поїхав нижче tRTP на тижні

Перевірити вибірку, частку bonus buy/side bets, актуальність джекпоту і фід.
Відключити спірні фічі (прапор), повідомити провайдера, включити посилений лог.
При необхідності тимчасово перемкнути band/варіант.

2. Скарги гравців на «нечесний RTP»

Віддати'as _ of'конфігурації, ID білда, тижневий rRTP і методику розрахунку.
Перевірити сегмент гравця на обмеження/ліміти/відповідальну гру.

3. Невідповідність маркувань UI

Порівняти'rtp _ label'з конфігом для контексту, відкотити вітрину, запустити e2e валідацію.

4. Збій джекпоту

Відключити uplift/лейбли, фіксувати separate accounting, тримати гравця в курсі статусу.

16) Типові помилки

Змішувати tRTP і eRTP: показувати теорію там, де практика залежить від джекпоту/фіч.
Відсутність дефолтів → гра запускається з «дірявим» контекстом.
Конфіг «на провайдера в цілому» без конкретики щодо варіантів/юрисдикцій.
Немає порогів вибірки → помилкові алерти по rRTP на малих даних.
Зміни без аудиту і канарок → інциденти відразу на всіх ринках.
Ігнорування комісій/fees в eRTP → розбіжність очікувань і факту.

17) Чек-лист перед продом

  • У кожного Variant є сертифікат/ID і зафіксований tRTP.
  • Для кожної комбінації (tenant/region/channel) заданий default_band.
  • Розрахований eRTP (джекпот, фічі, fees) і проходить толеранси.
  • Лейбли RTP і вимоги юрисдикцій коректно відображені в UI.
  • Моніторинг rRTP/eRTP і пороги за вибіркою включені; алерти налаштовані.
  • Канарські викладки для нових band; Автовідкат.
  • Аудит змін та експорт звітів для регулятора.
  • Плейбуки на дрейф, спірні виграші, збій джекпоту.
  • Тести: контракт/порогові/property/реплей.

Висновок

Модель конфігурування RTP - це не «відсоток в картці гри», а система управління ризиком і довірою. Чітка ієрархія правил, детермінований розрахунок eRTP, спостережуваність rRTP, канарські релізи і строгий аудит перетворюють спірну тему в передбачуваний інженерний процес - зручний для продукту, зрозумілий гравцям і безпечний для комплаєнсу.

Contact

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

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

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

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

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

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