Trezorerie: Lichiditate și rezerve
TL; DR
Trezoreria în iGaming este o rețea gestionată de „buzunare” de lichiditate (bănci, PSP-uri, portofele, conturi cripto-personalizate, comerciale) cu diferite SLA-uri I/O. Țintă - zero lacune în numerar la costuri minime: previziuni exacte ale fluxurilor, limite ale contrapărților și valutelor, politica de rezervă (amortizoare de funcționare + garanții de reglementare + rezervă de stres), disciplina regulilor de prefundare și maturare, SLO pentru Time-to-Payout și Time-to-Fund.
1) Harta lichidității: niveluri, buzunare, fluxuri
1. 1 Niveluri de lichiditate (după disponibilitate)
L0 (T0) - lichiditate instantanee: solduri de operare pe conturi comerciale, A2A/RTP instantanee, portofele, rezerve stabile, tampoane de numerar pentru plata T0.
L1 (T + 1... T + 3) - lichiditate pe termen scurt: conturi de decontare ale PSP/achizitorilor, conturi curente bancare cu limite intraday.
L2 (T + 5... T + 10) - lichiditatea orizontului de mijloc: conturi de depozit/economii, mătură în instrumente de trezorerie (T-facturi, MMF), „parcare” de grajduri pe un obicei cu un rapid off-rampă.
L3 (T + 10 +) - lichiditate strategică/capital: depozite lungi, obligațiuni, capital rezervat.
1. 2 Buzunare de lichiditate (exemplu)
Bank_OPS (banca operativa): fiat intrare/iesire, salariu, taxe.
PSP_MERCHANT: conturile comercianților prin metode (Card, A2A, Wallet).
PSP_SETTLEMENT: Conturi de decontare/acumulare (T + N)
CRYPTO_CUSTODY: on-chain/custom, grajduri și active suport.
PAYOUT_POOLS: piscine separate pentru plăți instantanee.
SAFEGUARD_ACCOUNTS: conturi segregate în conformitate cu cerințele regulatorului/licenței.
1. 3 Fluxuri principale
"Depozite decontare
'Bank _ OPS → Payout_Pools/PSP → Retrageri'
"On/Off-rampă ↔ Crypto_Custody'
„Sweeps: L0↔L1↔L2” după program și declanșează.
2) Politica privind lichiditatea și rezervele
2. 1 Obiective
Zero lacune în numerar pe șine de plată critice.
Costul minim de proprietate a lichidității (comisioane, FX, venituri pierdute).
Conformitatea cu reglementările: protejarea, segregarea fondurilor clienților (după caz).
Transparență: reconciliere zilnică și tablouri de bord de către SLO.
2. 2 Clasa de rezervă
1. Rezerva de operare (OpRes) - acoperirea vârfului de plată și a variabilității decontării (de exemplu, producția netă zilnică p99 + 20-30% tampon).
2. Rezerva de reglementare (RegRes) - sumele cerute de licență (segregate, protejarea, inel-garduri).
3. Rezerva de stres (StressRes) - care acoperă șocuri rare: „dublu” de ieșire de vârf, T + N întârziere în cheie PSP, șoc FX.
4. Rezerva tehnica (TechRes) - pentru un feiler/incidente (inghetarea unui site/exchange/bank).
2. 3 Formula de buzunar pentru echilibrul țintă
Target_Balance = OpRes(p99 horizon H) + RegRes + StressRes - Incoming_Settlement(T_window)
Orizont H și T_window ferestrei depind de șină (de ex. RTP H = 1d, Card H = 3d).
3) Prognoza fluxului de numerar
3. 1 Rânduri de intrare
Depozite după metodă/furnizor (p7/p30 sezonalitate, zile ale săptămânii, promoții).
Retrageri și plăți (viteză și cotă la depozite, VIP/jackpot-uri).
Orarele de decontare (T + N de către PSP/achizitori).
Calendar FX (reevaluări, conversii mari).
Plati operative (impozite, comisioane, salarii).
3. 2 Model (minim)
Ponderat local sau SARIMA/Profetul pentru depozit/conduce.
Coeficienți aplicați: 'Rată de încasare', 'Probabilitate jackpot', 'Lift promoțional'.
Poziția buzunarului net: 'Inflow _ psp _ settlement − Outflow_payouts ± Sweeps'.
3. 3 Metrici de calitate prognozate
MAPE/WAPE de zi cu zi net.
Acoperire: proporția de zile în care vârful real ≤ OpRes planificate.
Incidente de stocare: ori când L0 este plecat <prag minim.
4) Reguli de prefundare, măturare și reaprovizionare
4. 1 Prefunding (plată în avans pe calea ferată)
Pentru șine de plată instantanee și unele APM-uri, soldul este necesar.
Regulă: menține un prag de rulare (de exemplu, p95 plăți zilnice din ultima săptămână) + 20% tampon.
Declanșatoarele de completare automată sunt 'Balance <LowWatermark' → 'TopUp to Target_Balance'.
4. 2 Matura
Zilnic: PSP_MERCHANT → Bank_OPS după fereastra de decontare.
Intraday: L0↔L1 pentru abateri de la coridoarele țintă.
Spre L2: curățarea nocturnă a reziduurilor în exces în FPM/T-Facturi/grajduri (politica de returnare în L0 ≤ T + 1).
4. 3 Priorități de cheltuieli (cascadă)
1. Payout_Pools (angajament T0)
2. Termen fix Plăți trezorerie (impozit/salariu)
3. Conversii/reechilibre FX
4. L2/L3 de investiții
5) Valute, FX și mediul ratei dobânzii
Expunerea FX: soldul de intrare/ieșire pe monede; gard viu natural (mențineți plățile în aceeași monedă).
Politica de conversie: alertă TWAP/POV pentru cantități mari, limite privind bps-urile de alunecare, id-ul idempotent.
Randamentul dobânzii L2: FPM/T-facturi scurte; restricții privind contrapărțile și lichidități minime (T + 0/T + 1).
Conversii SLO FX: timp de la decizie la execuție (p95 ≤ X minute), jurnalizarea ghilimelelor.
6) Riscul și limitele contrapărții
Limitele contrapărții: bancă, PSP, cripto-personalizat, schimb/UTS.
Matricea de rating: capital/licențe/incidente/disponibilitate/dovada rezervelor (pentru cripto).
Diversificare: cel puțin 2-3 furnizori pentru fiecare cale ferată critică, distribuția reziduurilor între clustere.
Politica de custodie: multisig/HSM, limitele de ieșire, adresele permit liste, reconcilieri zilnice.
7) Aspecte de reglementare și conformitate
Protejarea/segregarea: conturi separate pentru fondurile clienților (acolo unde este necesar), urmărirea echilibrului, fără amestecare.
Raportare: rapoarte zilnice către autoritatea de reglementare/audit privind soldurile și rezervele.
KYC/AML: contrapărți on/off-rampă, screening de sancțiuni, SoF/SoW pentru transferuri mari.
DSAR/retenție: stocarea urmelor de plată și a jurnalelor de transfer.
8) Măsurători, SLO-uri și alerte
8. 1 KPI
Time-to-Payout (TtP) p95 prin metoda.
Time-to-Fund (TtF) p95 pentru reaprovizionarea piscinei.
Stockout Rate L0 (incidente instantanee de deficit de lichiditate).
Utilizarea numerarului = Plăți din L0/ Target_Balance.
Idle Cash% = (Sold − Target_Balance )/Sold.
Concentrarea contrapărții = max (cota de către furnizor).
FX Slippage bps, FX Cost/GGR.
Acoperire de salvgardare = min (soldul segregat al contului/suma necesară).
8. 2 Alerte
'Balance <LowWatermark' → P1 (auto-finalizare).
„Incidentul Stockout” → P0.
„Concentrația contrapărții> limită” → P2 (reechilibrare).
„Acoperire de salvgardare <100%” → P0.
„TtF p95> SLO” → P1 (incident bancar/PSP).
9) Modelul de date (trezorerie „strat”)
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"
}
Strat de fapt plat (pentru 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) Felii SQL
10. 1 Circulația reziduurilor și intrarea pe coridoare
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 Concentrarea de către contrapărți
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 Protejarea acoperirii
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) Tablou de bord (widget-uri minime)
1. Buzunare Heatmap: "echilibru vs țintă vs low_watermark'.
2. Pâlnie de numerar: „intrări/ieșiri/așezări” pe zi.
3. TtP/TtF p50/p95 prin metodă/furnizor.
4. Concentrarea și alertele contrapărții.
5. Acoperire de salvgardare: 100% linie, încălcări.
6. Panou FX: alunecare/cost, conversii mari.
12) Playbooks
Val de retragere a numerarului
Acțiuni: creșterea Target_Balance în Payout_Pools, accelerarea măturării PSP→Bank_OPS, reducerea temporară a limitelor de retragere pentru un risc ridicat, includerea unui al doilea furnizor de plată instantanee.
Întârzierea decontării PSP
Acțiuni: activați StressRes, deschideți o linie de credit/overdraft, redistribuiți temporar plățile către o cale ferată alternativă, escaladați către PSP.
Banca/Exchange/Custom Freeze
Acțiuni: transferuri prin kill-switch, transferul soldurilor către contrapărți alternative, lansarea unui plan DR, revocarea cheilor/acceselor, comunicarea cu autoritatea de reglementare.
Șoc FX/cerere supraîmplinită în valută
Acțiuni: includ un gard viu drept (plăți în aceeași monedă), TWAP accelerat, redistribuie acțiuni/bonusuri în moneda „acasă”.
Lipsa acoperirii de salvgardare
Acțiuni: verificarea imediată a fondurilor într-un cont segregat, blocarea plăților opționale, raportarea și confirmarea către autoritatea de reglementare.
13) Cazuri de testare (UAT/Prod-gata)
1. Exercițiu Stockout: simula o plată de vârf de p99 → piscina L0 rămâne ≥ low_watermark.
2. Întârzierea decontării PSP: + 2 zile până la T + N → acoperă StressRes, TtP nu depășește SLO.
3. FX TWAP idempotency: repetați citatele de webhook → 1 performanță.
4. Încălcarea normelor de salvgardare: verificarea automată și blocarea plăților care nu sunt critice.
5. Plafonul contrapărții: depășirea limitei pentru furnizor → alertă + reechilibrare automată.
6. Matura intraday: echilibru> Target_Balance + δ → matura in L2 si prag retur.
14) Greșeli frecvente și cum să le evitați
Un furnizor pe o cale ferată critică → absența unui feilover. Păstrează cel puţin două.
Lipsa nivelului p în OpRes → rezerve „pe ochi” și stocuri frecvente. Utilizaţi p95/p99.
Conturile de salvgardare nemarcate → amestecarea fondurilor. Introduceți segregarea strictă și raportarea.
Ignorarea calendarului de decontare → a soldurilor țintă incorecte. Automatizarea ingestiei programelor PSP.
Un cache simplu în L0/L1 → un cost ridicat al veniturilor pierdute. Configurați matura în L2.
Nu există nici un singur „registru de buzunare” → haos de resturi. Tastați Pocket Registry.
15) Registrul de buzunar (schiță 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
}
}
Rezumat
Trezoreria durabilă este un sistem, nu un set de conturi: niveluri de lichiditate stratificată (L0-L3), rezerve gestionate (OpRes/RegRes/StressRes), limite strânse și SLO-uri, previzionarea fluxului și mecanica automată de prefundare/măturare. Deci, oferiți afacerii un TtP minim, evitați lacunele în numerar, reduceți costul capitalului și, în același timp, respectați cerințele de reglementare și audit.