Logo GH

Treasury: Liquidity and reserves

TL; DR

Treasury in iGaming is a managed network of liquidity "pockets" (banks, PSPs, wallets, crypto-custom, merchant accounts) with different I/O SLAs. Target - zero cash gaps at minimum cost: accurate forecast of flows, limits on counterparties and currencies, reserve policy (operating buffers + regulatory safeguards + stress reserve), discipline of prefunding and sweep rules, SLO for Time-to-Payout and Time-to-Fund.

1) Liquidity map: levels, pockets, flows

1. 1 Liquidity levels (by availability)

L0 (T0) - instant liquidity: operating balances on merchant accounts, instant A2A/RTP, wallets, stable reserves, cash buffers for payout T0.
L1 (T + 1... T + 3) - short-term liquidity: settlement accounts of PSP/acquirers, bank current accounts with intraday limits.
L2 (T + 5... T + 10) - liquidity of the middle horizon: deposit/savings accounts, sweeps into treasury instruments (T-bills, MMF), "parking" of stables on a custom with a quick off-ramp.
L3 (T + 10 +) - strategic liquidity/capital: long deposits, bonds, reserved capital.

1. 2 Liquidity pockets (example)

Bank_OPS (operating bank): entry/exit fiat, salary, taxes.
PSP_MERCHANT: merchant accounts by methods (Card, A2A, Wallet).

PSP_SETTLEMENT: Settlement/accumulation accounts (T + N)

CRYPTO_CUSTODY: on-chain/custom, stables and underlying assets.
PAYOUT_POOLS: separate pools for instant payments.
SAFEGUARD_ACCOUNTS: segregated accounts according to regulator/license requirements.

1. 3 Main flows

`Deposits → PSP_MERCHANT → Settlement → Bank_OPS`

`Bank_OPS → Payout_Pools/PSP → Withdrawals`

`On/Off-ramp ↔ Crypto_Custody`

'Sweeps: L0↔L1↔L2 'by schedule and triggers.

2) Liquidity and reserves policy

2. 1 Objectives

Zero cash gaps on critical payment rails.
Minimum cost of ownership of liquidity (fees, FX, lost revenue).
Regulatory compliance: safeguarding, segregation of client funds (where applicable).
Transparency: daily reconciliation and dashboards by SLO.

2. 2 Reserve class

1. Operating reserve (OpRes) - coverage of payout peak and settlement variability (for example, p99 daily net output + 20-30% buffer).
2. Regulatory reserve (RegRes) - the amounts required by the license (segregated, safeguarding, ring-fencing).
3. Stress reserve (StressRes) - covering rare shocks: "double" peak output, T + N delay in key PSP, FX shock.
4. Technical reserve (TechRes) - for a feiler/incidents (freezing of a site/exchange/bank).

2. 3 Target Balance Pocket Formula


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

Horizon H and window T_window depend on the rail (e.g. RTP H = 1d, Card H = 3d).

3) Cash flow forecasting

3. 1 Entrance rows

Deposits by method/provider (p7/p30 seasonality, days of the week, promotions).
Withdrawals & Payouts (speed and share to deposits, VIP/jackpots).
Settlement schedules (T + N by PSP/acquirers).
FX calendar (revaluations, large conversions).
Operating payments (taxes, commissions, salaries).

3. 2 Model (minimum)

Locally weighted or SARIMA/Prophet for depot/leads.
Applied coefficients: 'Cash-out Rate', 'Jackpot Probability', 'Promo Lift'.
Net pocket position: 'Inflow _ psp _ settlement − Outflow_payouts ± Sweeps'.

3. 3 Forecast Quality Metrics

MAPE/WAPE by daily net.
Coverage: proportion of days when the actual peak ≤ the planned OpRes.
Stockout Incidents: times when L0 is gone <minimum threshold.

4) Prefunding, sweeps and replenishment rules

4. 1 Prefunding (rail prepayment)

For instant payout rails and some APMs, balance is required.
Rule: maintain a rolling threshold (for example, p95 daily payments of the last week) + 20% buffer.
Auto-completion triggers are'Balance <LowWatermark '→' TopUp to Target_Balance'.

4. 2 Sweeps

Daily: PSP_MERCHANT → Bank_OPS after the settlement window.
Intraday: L0↔L1 for deviations from target corridors.
Towards L2: night sweep of excess residues in MMF/T-Bills/stables (return policy in L0 ≤ T + 1).

4. 3 Spending priorities (waterfall)

1. Payout_Pools (T0 commitment)

2. Fixed Deadline Treasury Payments (Tax/Salary)

3. FX conversions/rebalances

4. Investments L2/L3

5) Currencies, FX and interest rate environment

FX exposure: balance of incoming/outgoing by currencies; natural hedge (maintain payouts in the same currency).
Conversion policy: TWAP/POV alert for large amounts, limits on slippage bps, idempotent exec-id.
L2 interest yield: MMF/short T-bills; restrictions on counterparties and minimum liquidity (T + 0/T + 1).
SLO FX conversions: time from decision to execution (p95 ≤ X minutes), journalization of quotes.

6) Counterparty risk and limits

Limits on the counterparty: bank, PSP, crypto-custom, exchange/UTS.
Rating matrix: capital/licenses/incidents/availability/Proof-of-Reserves (for crypto).
Diversification: at least 2-3 providers per critical rail, distribution of residues across clusters.
Custody policy: multisig/HSM, output limits, address allow lists, daily reconciliations.

7) Regulatory and compliance aspects

Safeguarding/segregation: separate accounts for client funds (where required), balance tracking, no mixing.
Reporting: daily reports to the regulator/audit on balances and reserves.
KYC/AML: on/off-ramp counterparties, sanction screening, SoF/SoW for large transfers.
DSAR/retention: storage of payment traces and transfer logs.

8) Metrics, SLOs and alerts

8. 1 KPI

Time-to-Payout (TtP) p95 by method.
Time-to-Fund (TtF) p95 for pool replenishment.
Stockout Rate L0 (instantaneous liquidity shortage incidents).
Cash Utilization = Payouts from L0/ Target_Balance.
Idle Cash% = (Balance − Target_Balance )/Balance.
Counterparty Concentration = max (share by provider).
FX Slippage bps, FX Cost/GGR.
Safeguard Coverage = min (segregated account balance/required amount).

8. 2 Alerts

'Balance <LowWatermark '→ P1 (auto-completion).
'Stockout Incident '→ P0.
'Counterparty Concentration> limit '→ P2 (rebalance).
`Safeguard Coverage < 100%` → P0.
'TtF p95> SLO '→ P1 (bank/PSP incident).

9) Data model (treasury "layer")

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"
}
Flat fact layer (for 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 slices

10. 1 Movement of residues and entry into corridors

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 Concentration by counterparties

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 coverage

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) Dashboard (minimal widgets)

1. Heatmap pockets: 'balance vs target vs low_watermark'.
2. Cash funnel: 'inflows/outflows/settlements' by day.
3. TtP/TtF p50/p95 by method/provider.
4. Counterparty concentration and alerts.
5. Safeguard coverage: 100% line, violations.
6. FX panel: slippage/cost, large conversions.

12) Playbooks

Cash-out wave

Actions: increase the Target_Balance in the Payout_Pools, speed up the sweep of the PSP→Bank_OPS, temporarily reduce the withdrawal limits for high-risk, include a second instant payout provider.

PSP settlement delay

Actions: activate StressRes, open a credit line/overdraft, temporarily redistribute payments to an alternative rail, escalation to PSP.

Bank/Exchange/Custom Freeze

Actions: kill-switch transfers, transfer of balances to alternative counterparties, launch of a DR plan, revocation of keys/accesses, communication with the regulator.

FX shock/overfulfilled demand in currency

Actions: include a straight hedge (payouts in the same currency), accelerated TWAP, redistribute shares/bonuses in the "home" currency.

Lack of safeguard coverage

Actions: immediate sweep of funds to a segregated account, blocking of optional payments, report and confirmation to the regulator.

13) Test cases (UAT/Prod-ready)

1. Stockout drill: simulate a peak payout of p99 → pool L0 remains ≥ low_watermark.
2. PSP settlement delay: + 2 days to T + N → StressRes covers, TtP does not go beyond SLO.
3. FX TWAP idempotency: repeat webhook quotes → 1 performance.
4. Safeguard breach: automatic sweep and blocking of non-critical payments.
5. Counterparty cap: exceeding the limit on the provider → alert + auto-rebalance.
6. Intraday sweep: balance> Target_Balance + δ → sweep in L2 and threshold return.

14) Frequent mistakes and how to avoid them

One provider on a critical rail → the absence of a feilover. Keep at least two.
Lack of p-level in OpRes → reserves "by eye" and frequent stockout. Use p95/p99.
Unmarked safeguard accounts → mixing funds. Enter strict segregation and reporting.
Ignoring settlement calendar → incorrect target balances. Automate the ingestion of PSP schedules.
A simple cache in the L0/L1 → a high cost of lost revenue. Set up sweeps in L2.
There is no single "register of pockets" → chaos of remnants. Type Pocket Registry.

15) Pocket Registry (API sketch)

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
}
}

Summary

Sustainable Treasury is a system, not a set of accounts: stratified liquidity levels (L0-L3), managed reserves (OpRes/RegRes/StressRes), tight limits and SLOs, flow forecasting, and automatic prefunding/sweep mechanics. So you give the business a minimum TtP, avoid cash gaps, reduce the cost of capital and at the same time comply with regulatory and audit requirements.

Contact

Get in Touch

Reach out with any questions or support needs.We are always ready to help!

Telegram
@Gamble_GC
Start Integration

Email is required. Telegram or WhatsApp — optional.

Your Name optional
Email optional
Subject optional
Message optional
Telegram optional
@
If you include Telegram — we will reply there as well, in addition to Email.
WhatsApp optional
Format: +country code and number (e.g., +380XXXXXXXXX).

By clicking this button, you agree to data processing.