Logo GH

Казначейство: ліквідність і резерви

TL; DR

Казначейство в iGaming - це керована мережа «кишень» ліквідності (банки, PSP, гаманці, крипто-кастоді, мерчант-акаунти) з різними SLA на введення/виведення. Мета - нульові касові розриви при мінімальній собівартості: точний прогноз потоків, ліміти по контрагентах і валютах, резервна політика (операційні буфери + регуляторні safeguarding + стрес-резерв), дисципліна prefunding і sweep-правил, SLO по Time-to-Payout і Time-to-Fund.

1) Карта ліквідності: рівні, кишені, потоки

1. 1 Рівні ліквідності (за доступністю)

L0 (T0) - миттєва ліквідність: операційні залишки на мерчант-рахунках, instant A2A/RTP, гаманці, стейбл-резерви, готівкові буфери для payout T0.
L1 (T + 1... T + 3) - ліквідність короткого горизонту: розрахункові рахунки PSP/еквайєрів, банківські поточні рахунки з внутрішньоденними лімітами.
L2 (T + 5... T + 10) - ліквідність середнього горизонту: депозитні/ощадні рахунки, свіпи в казначейські інструменти (T-bills, MMF), «парковка» стейблів на кастоді з швидким off-ramp.
L3 (T + 10 +) - стратегічна ліквідність/капітал: довгі депозити, облігації, зарезервований капітал.

1. 2 Кишені ліквідності (приклад)

Bank_OPS (операційний банк): вхід/вихід фіата, зарплатний, податки.
PSP_MERCHANT: мерчант-акаунти за методами (Card, A2A, Wallet).
PSP_SETTLEMENT: рахунки розрахунків/акумуляції (T + N).
CRYPTO_CUSTODY: он-чейн/кастоді, стейбли і базові активи.
PAYOUT_POOLS: окремі пули для миттєвих виплат.
SAFEGUARD_ACCOUNTS: сегреговані рахунки за вимогами регулятора/ліцензії.

1. 3 Головні потоки

`Deposits → PSP_MERCHANT → Settlement → Bank_OPS`

`Bank_OPS → Payout_Pools/PSP → Withdrawals`

`On/Off-ramp ↔ Crypto_Custody`

`Sweeps: L0↔L1↔L2'за розкладом і тригерам.

2) Політика ліквідності та резервів

2. 1 Цілі

Нульові касові розриви на критичних рейках виплат.
Мінімальна вартість володіння ліквідністю (комісії, FX, втрачений дохід).
Відповідність регуляториці: safeguarding, сегрегація клієнтських засобів (де застосовується).
Прозорість: щоденна звірка і дашборди по SLO.

2. 2 Клас резервів

1. Операційний резерв (OpRes) - покриття payout-піку і варіабельності settlement (наприклад, p99 денного нетто-виводу + буфер 20-30%).
2. Регуляторний резерв (RegRes) - суми, необхідні ліцензією (segregated, safeguarding, ring-fencing).
3. Стрес-резерв (StressRes) - покриття рідкісних шоків: «подвійний» піковий вивід, затримка T + N у ключового PSP, FX-шок.
4. Технічний резерв (TechRes) - на фейловер/інциденти (заморожування майданчика/біржі/банку).

2. 3 Формула цільового залишку по кишені


Target_Balance = OpRes(p99 horizon H) + RegRes + StressRes - Incoming_Settlement(T_window)

Горизонт H і вікно T_window залежать від рейки (наприклад, RTP H = 1d, Card H = 3d).

3) Прогнозування касових потоків

3. 1 Вхідні ряди

Deposits by method/provider (p7/p30 сезонність, дні тижня, акції).
Withdrawals & Payouts (швидкість і частка до депозитів, VIP/джекпоти).
Settlement schedules (T + N за PSP/еквайєрами).
FX-календар (переоцінки, великі конвертації).
Операційні платежі (податки, комісії, зарплати).

3. 2 Модель (мінімум)

Локально-зважений або SARIMA/Prophet для депо/висновків.
Прикладні коефіцієнти: `Cash-out Rate`, `Jackpot Probability`, `Promo Lift`.
Нетто-позиція по кишені: `Inflow_psp_settlement − Outflow_payouts ± Sweeps`.

3. 3 Метрики якості прогнозу

MAPE/WAPE по daily нетто.
Coverage: частка днів, коли фактичний пік ≤ планового OpRes.
Stockout Incidents: рази, коли L0 пішов <мінімального порогу.

4) Prefunding, sweeps і правила поповнення

4. 1 Prefunding (передоплата рейок)

Для instant payout рейок і деяких APM потрібен баланс.
Правило: підтримувати rolling-поріг (наприклад, p95 денних виплат останнього тижня) + буфер 20%.
Тригери автоповнення: `Balance < LowWatermark` → `TopUp to Target_Balance`.

4. 2 Sweeps (свіп-переклади)

Щоденні: PSP_MERCHANT → Bank_OPS після settlement вікна.
Інтрадей: L0↔L1 при відхиленнях від цільових коридорів.
У бік L2: нічний свіп надлишкових залишків в MMF/T-Bills/стейбли (політика повернення в L0 ≤ T + 1).

4. 3 Пріоритети витрачання (waterfall)

1. Payout_Pools (T0 зобов'язання)

2. Казначейські платежі з фіксованим дедлайном (податки/зарплата)

3. Конвертації/ребаланс FX

4. Інвестиції L2/L3

5) Валюти, FX і процентне середовище

FX-експозиція: баланс вхідних/вихідних по валютах; натуральний хедж (підтримувати виплати в тій же валюті).
Політика конвертації: TWAP/POV-алго для великих сум, ліміти на слippage bps, idempotent exec-id.
Процентна прибутковість L2: MMF/короткі T-bills; обмеження по контрагентам і мінімальна ліквідність (T + 0/T + 1).
SLO FX-конвертацій: час від рішення до виконання (p95 ≤ X хвилин), журналізація котирувань.

6) Контрагентський ризик і ліміти

Ліміти на контрагента: банк, PSP, крипто-кастоді, біржа/ОТС.
Рейтингова матриця: капітал/ліцензії/інциденти/доступність/Proof-of-Reserves (для крипто).
Диверсифікація: мінімум 2-3 провайдера на критичну рейку, розподіл залишків по кластерах.
Custody-політика: мультисиг/HSM, ліміти на виведення, адресні allow-листи, щоденні звірки.

7) Регуляторні та комплаєнс-аспекти

Safeguarding/segregation: окремі рахунки для клієнтських коштів (де потрібно), трекінг балансів, заборона змішування.
Звітність: щоденні звіти регулятору/аудиту по залишках і резервах.
KYC/AML: on/off-ramp контрагенти, санкційний скринінг, SoF/SoW для великих переказів.
DSAR/retention: зберігання платіжних слідів і журналів переказів.

8) Метрики, SLO і алерти

8. 1 KPI

Time-to-Payout (TtP) p95 за методами.
Time-to-Fund (TtF) p95 для поповнень пулів.
Stockout Rate L0 (інциденти нестачі миттєвої ліквідності).
Cash Utilization = Виплати з L0/ Target_Balance.
Idle Cash% = (Баланс − Target_Balance )/Баланс.
Counterparty Concentration = max (частка по провайдеру).
FX Slippage bps, FX Cost/GGR.
Safeguard Coverage = min (баланс сегрегованих рахунків/необхідна сума).

8. 2 Алерти

'Balance <LowWatermark'→ P1 (автоповнення).
'Stockout Incident'→ P0 (блок миттєвих виплат/включення альтернативи).
'Counterparty Concentration> ліміту'→ P2 (ребаланс).
`Safeguard Coverage < 100%` → P0.
'TtF p95> SLO'→ P1 (інцидент біля банку/PSP).

9) Модель даних (казначейський «шар»)

json
{
"as_of": "2025-11-03T12:00:00Z",
"pocket_id": "PSP_MERCHANT_CARD_A",
"currency": "EUR",
"balance": 425000. 00,
"target_balance": 380000. 00,
"low_watermark": 300000. 00,
"inflows_t0": 52000. 00,
"outflows_t0": 61000. 00,
"expected_settlement_t1": 210000. 00,
"safeguard_required": 150000. 00,
"safeguard_balance": 160000. 00,
"counterparty": "Acquirer_A",
"limits": {
"counterparty_limit": 1200000. 00,
"fx_slippage_bps_limit": 5
},
"alerts": ["BALANCE_BELOW_TARGET"],
"notes": "Expect promo cash-out spike tonight"
}
Плоский факт-шар (для BI):

date, pocket_id, counterparty, currency,
balance, target_balance, low_watermark,
inflows_t0, outflows_t0, expected_settlement_t1,
safeguard_required, safeguard_balance,
payout_slo_p95_sec, fund_slo_p95_sec

10) SQL-зрізи

10. 1 Рух залишків і попадання в коридори

sql
SELECT date,
pocket_id,
currency,
balance,
target_balance,
low_watermark,
CASE WHEN balance < low_watermark THEN 1 ELSE 0 END AS stockout_flag,
GREATEST(0, balance - target_balance) AS idle_cash
FROM treasury_balances_daily
ORDER BY date DESC, pocket_id;

10. 2 Концентрація за контрагентами

sql
SELECT date,
counterparty,
SUM(balance) AS bal,
SUM(SUM(balance)) OVER (PARTITION BY date) AS bal_total,
(SUM(balance) / NULLIF(SUM(SUM(balance)) OVER (PARTITION BY date),0)) AS share
FROM treasury_balances_daily
GROUP BY 1,2
ORDER BY date DESC, share DESC;

10. 3 Покриття safeguarding

sql
SELECT date, pocket_id, currency,
safeguard_balance, safeguard_required,
safeguard_balance / NULLIF(safeguard_required,0) AS coverage_ratio
FROM treasury_balances_daily
WHERE safeguard_required > 0;

11) Дашборд (мінімальні віджети)

1. Heatmap кишень: `balance vs target vs low_watermark`.
2. Касова воронка: 'inflows/outflows/settlements'по днях.
3. TtP/TtF p50/p95 за методами/провайдерам.
4. Counterparty concentration і алерти.
5. Safeguard coverage: 100% -лінія, порушення.
6. FX панель: slippage/вартість, великі конвертації.

12) Плейбуки

Сплеск виводів (cash-out wave)

Дії: збільшити Target_Balance в Payout_Pools, прискорити свіп PSP→Bank_OPS, тимчасово знизити ліміти виведення для high-risk, включити другий провайдер instant-виплат.

Затримка settlement у PSP

Дії: активувати StressRes, відкрити кредитну лінію/овердрафт, тимчасово перерозподілити виплати на альтернативну рейку, ескалація в PSP.

Заморожування банку/біржі/кастоді

Дії: kill-switch перекладів, переклад залишків на альтернативних контрагентів, запуск DR-плану, відкликання ключів/доступів, комунікація з регулятором.

FX-шок/перевиконаний попит у валюті

Дії: включити натурал-хедж (виплати в тій же валюті), прискорений TWAP, перерозподілити акції/бонуси в «домашній» валюті.

Нестача safeguard-покриття

Дії: негайний свіп коштів на сегрегований рахунок, блокування необов'язкових виплат, звіт і підтвердження регулятору.

13) Тест-кейси (UAT/Prod-готовність)

1. Stockout drill: симулювати пік виплат p99 → пул L0 залишається ≥ low_watermark.
2. PSP settlement delay: + 2 дні до T + N → StressRes покриває, TtP не виходить за SLO.
3. FX TWAP ідемпотентність: повтор вебхука котирування → 1 виконання.
4. Safeguard breach: автоматичний свіп і блокування non-critical платежів.
5. Counterparty cap: перевищення ліміту по провайдеру → алерт + авто-ребаланс.
6. Intraday sweep: баланс> Target_Balance + δ → свіп в L2 і повернення при порозі.

14) Часті помилки і як їх уникнути

Один провайдер на критичну рейку → відсутність фейловера. Тримайте мінімум два.
Відсутність p-рівня в OpRes → резерви «на око» і часті stockout. Застосовуйте p95/p99.
Немарковані safeguard-рахунки → змішання коштів. Введіть сувору сегрегацію та звітність.
Ігнор settlement-календаря → невірні цільові залишки. Автоматизуйте ingestion розкладів PSP.
Простий кеш в L0/L1 → висока вартість упущеної прибутковості. Налаштуйте свіпи в L2.
Немає єдиного «реєстру кишень» → хаос залишків. Введіть Pocket Registry.

15) Реєстр кишень (Pocket Registry, API ескіз)

json
{
"pocket_id": "PAYOUT_POOL_EUR",
"type": "L0",
"counterparty": "Bank_X",
"currency": "EUR",
"segregated": false,
"prefund_required": true,
"slo": { "ttp_p95_sec": 60, "ttf_p95_min": 30 },
"limits": {
"low_watermark": 200000,
"target_balance": 350000,
"counterparty_limit": 1000000
},
"sweep_policy": {
"to_l2_when_idle_cash_over": 100000,
"intraday": true
}
}

Резюме

Стійке казначейство - це система, а не набір рахунків: стратифіковані рівні ліквідності (L0-L3), керовані резерви (OpRes/RegRes/StressRes), жорсткі ліміти і SLO, прогнозування потоків і автоматичні prefunding/sweep-механіки. Так ви даєте бізнесу мінімальний TtP, уникаєте касових розривів, знижуєте вартість капіталу і одночасно відповідаєте вимогам регуляторів і аудиту.

Contact

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

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

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

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

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

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