GH GambleHub

Libri e corsi multivalori

1) Cos'è un libro multivalotto?

Book (ledger) - Un lettore transazionale a doppia voce (cablaggio a due facce) che si trova in più valute contemporaneamente:
  • Il libro Wallet è il conto del giocatore (valuta di gioco/valuta).
  • Libro Settlement - Calcoli con PSP/Equairer (valuta settlement).
  • Treasury book: conti bancari, conversioni, hedge deal.
  • Report Book: una raccolta in valuta di report (ad esempio, EUR) senza rivalutazione retrospettiva delle metriche alimentari.

Ogni libro registra la valuta dell'operazione, la valuta della rappresentazione e il tasso di cambio al momento del riconoscimento.

2) Gerarchia delle valute e delle regole

1. Base/Reporting Currency è una valuta unica (ad esempio EUR).
2. Wallet Currencies - valute portafogli (USD/EUR/TRY/UAH, ecc.).
3. Settlement Currencies - Cosa invia a PSP (ad esempio USD).
4. Bank Currencies è la valuta del conto Merchant/Tesoro.

Regole:
  • Metriche alimentari (ND/NGR/ARPPU) - Corso storico evento (solitamente «settled _ at»).
  • Finanza/Sovrapprezzo - Registrano ulteriormente il corso per «funded _ at» e «payout _ at».
  • È vietata la rivalutazione «nascosta» nelle vetrine alimentari.

3) Corsi e loro fonti

Intraday reference (tick/minute): Refinitive/ECB/banche - per la normalizzazione degli eventi.
EOD (fine giornata) - per la rivalutazione dei saldi (unrealization FX).
Effettiva FX dal file PSP/banca (fatto di conversione).
Triangulation: attraverso l'ancoraggio (EUR o USD) in assenza di una quotazione diretta.
Quote policy: `mid` либо `bid/ask` → `mid ± spread_bps`. Lo spread è conservato separatamente.

Memorizza «fx _ source», «fx _ pair», «fx _ rate», «fx _ timestamp», «quete _ type», «spread _ bps», e il percorso di triangolazione.

4) Punti di riconoscimento e livelli di corso

«authorize _ at» - Il corso non viene registrato (nessun riconoscimento senza cattura).
«captured/settled _ at» è un corso storico per i livelli alimentari e ND.
«funded _ at» - Tasso di ingresso bancario (realization FX per FI/treasury).
«payout _ at» è il corso per il pagamento al giocatore.
«eod» è il corso di fine giornata per la rivalutazione dei residui (unrealization FX).

5) Precisione, arrotondamento, unità minime

I soldi sono minor units (int) + «scale» nell'elenco delle valute.
Corsi - Almeno 8-10 caratteri dopo virgola.
Arrotondamenti: bancario (half-even) per report; L'UI è una regola locale.
Mantieni i campi separati: 'amount _ originale',' amount _ wallet ',' amount _ reporting ',' amount _ effective '.

6) Doppia voce e carta GL (semplificata)

Esempi di cablaggio:

6. 1. DEPOSIT _ CAPTURED (GBP, report - EUR)

DT: AR: PSP (GBP)

Tac: Player Balance (GBP/EUR per portafoglio)

In parallelo, fissiamo «fx _ rate _ settle (GBP→EUR)» e «amount _ reporting».

6. 2. FUNDING _ RECEIVED (USD per banca)

DT: Banca USD

KT: AR: PSP GBP (chiudiamo per equivalente; differenza → Realization FX).

6. 3. WITHDRAWAL_PAID (TRY)

Дт: Liability: Player (TRY)

TC: Bank TRY (o Bank EUR + conversione; differenza - realization FX).

7) Architettura dei dati (modello minimo)


ref. currencies (
code PK, scale, symbol, is_crypto, is_active
)

ref. fx_rates_intraday (
pair PK, ts PK, rate, quote_type, source, spread_bps, triangulation_meta
)

ref. fx_rates_eod (
pair PK, date PK, rate, source
)

ledger. entries (
entry_id PK, book, -- WALLET      SETTLEMENT      TREASURY      REPORTING debit_account, credit_account,
amount_original, currency_original,
amount_reporting, reporting_currency,
fx_rate_at_settle, fx_source, fx_pair, fx_timestamp,
event_type, event_id, user_id, provider, method,
occurred_at, created_at, meta
)

treasury. funding_receipts (
funding_id PK, provider, bank_account,
currency, amount, fx_to_reporting, amount_reporting,
received_at, value_date, meta
)

treasury. balances (
date PK, account PK, currency PK, amount
)

dw. transactions_flat (
tx_id PK, user_id, provider, method, type, status,
amount_original, currency_original,
amount_reporting, reporting_currency, fx_rate_at_settle,
settled_at, funded_at, conversion_owner, meta
)

8) Flusso di normalizzazione (ETL/ELT)

1. L'ingest delle materie prime stabilisce la normalizzazione degli stati PSP.
2. Assegnazione del corso storico a «settled _ at» da «fx _ rates _ intraday».
3. Scrivi un doppio cablaggio nella cartella di lavoro desiderata.
4. Importazione separata di funding ed effettiva FX.
5. Reval quotidiano dei residui per «fx _ rates _ eod» (treasury book).
6. Costruzione di vetrine (ND/NGR/LTV) senza rivalutazione retro.

9) Compressione e consistenza

Tx→File Tutti i captured/settled sono finiti in un file PSP (per importi, valute/date).
File→Tx: tutto nel file è riflesso nei libri/fili.
FX Reference vs Efficient: conti'slippage _ bps '; alert per uscire dalla porta.
Controllo triangulazione: « » « » all'interno del bps toleranense.
Idampotenza: «event _ id» e «idempotency _ key» - Protezione dalle prese.

10) Script frequenti e come gestirli

Multi-wallet - Il portafoglio del giocatore può essere in una valuta diversa da quella del deposito - fai una conversione interna al tuo tasso di cambio (criterio "conversion _ owner =" MERCHANT ").
PSP-conversione: memorizza «fx _ effettiva», «fx _ reference» e «spread _ bps» per analizzare i margini PSP.
Crypto: valutazione della finestra VWAP; funding in pile - secondo livello FX.
Cross-wallet transfer - Movimento all'interno della piattaforma - senza reddito FX, semplicemente trasferimento tra libri.

11) Modelli SQL

11. 1. Regolarizzazione dell'importo in valuta storica

sql
SELECT t. tx_id,
t. amount_original,
t. currency_original,
r. rate AS fx_rate_at_settle,
ROUND(t. amount_original r. rate, rep. scale) AS amount_reporting
FROM raw. transactions t
JOIN ref. fx_rates_intraday r
ON r. pair = CONCAT(t. currency_original, '/',:reporting_ccy)
AND r. ts = (
SELECT MAX(ts) FROM ref. fx_rates_intraday
WHERE pair = r. pair AND ts <= t. settled_at
)
JOIN ref. currencies rep ON rep. code =:reporting_ccy
WHERE t. settled_at BETWEEN:from AND:to;

11. 2. Misura dello spread PSP (effettiva vs reference)

sql
SELECT provider, method, DATE(settled_at) AS d,
SUM(original_amount fx_reference_rate) AS ref_in_reporting,
SUM(settlement_amount_in_reporting)   AS eff_in_reporting,
10000 (SUM(settlement_amount_in_reporting) /
NULLIF(SUM(original_amount fx_reference_rate),0) - 1) AS spread_bps
FROM dw. fx_settlement_view
WHERE settled_at BETWEEN:from AND:to
GROUP BY 1,2,3;

11. 3. Rivalutazione EOD dei saldi (unrealization FX)

sql
INSERT INTO treasury. fx_reval_ledger (date, currency, position_amount, rate_eod, amount_reporting_eod, reval_diff, type)
SELECT
:eod AS date, b. currency, b. amount,
e. rate AS rate_eod,
b. amount e. rate AS amount_reporting_eod,
b. amount (e. rate - COALESCE(l. rate_eod, e. rate)) AS reval_diff,
'UNREALIZED'
FROM treasury. balances b
JOIN ref. fx_rates_eod e
ON e. pair = CONCAT(b. currency, '/',:reporting_ccy) AND e. date =:eod
LEFT JOIN LATERAL (
SELECT rate_eod FROM treasury. fx_reval_ledger
WHERE currency=b. currency AND date=:eod - INTERVAL '1 day'
ORDER BY date DESC LIMIT 1
) l ON TRUE;

12) KPI e dashboard

FX Slippage (bps) con metodo PSP/MID.
Realized FX P&L (funding/payout) и Unrealized FX (EOD/EOM).
Open FX Position per valute vs limiti di criterio.
Corsi hit-rate «puntuali» ricevuti (incidenti stale-rates).
Quota di PSP-conversion vs Merchant-conversion e del suo TCO.
Precisione arrotondamenti (deviazioni di importo ≥ 1 minor unit - flag).

13) Alerti e soglie

State rate: nessun corso al momento dell'evento di origine/retrai fallback.
Triangulazione mismatch: soluzione temporanea> X bps.
Spread spike: 'spread _ bps', sopra la soglia maggiore/mainner.
Open position breach - Supera il limite a qualsiasi valuta.
Reval Shock: rivalutazione diurna <- X > + X .

14) Best practices (breve)

1. Separare rigorosamente lo strato di prodotto (FX storico) e FI/treasury (funding/payout/reval).
2. Utilizzare minor units e mantenere i corsi con precisione.
3. Logica conversion _ owner e misura il margine PSP (effettiva vs reference).
4. Implementare l'idimpotenza degli eventi e la riconciliazione bidirezionale (Tx→File e File→Tx).
5. Tieni la moneta anchor per la triangolazione e valuta le discrepanze in bps.
6. Rivalutare i residui fare una procedura EOD con GL separata.
7. Tieni conto di DST/Timsons durante l'assegnazione dei corsi al settle/funding.
8. Testare regolarmente gli arrotondamenti (test property-based ai limiti scale).

15) Assegno-foglio di implementazione

  • Definito il reporting currency e la politica della FX storica.
  • Fonti di corso: intraday + EOD, fallback e SLA aggiornamenti.
  • Modelli dì ledger. entries`, `fx_rates_`, `funding_receipts`, `balances`, витрина `transactions_flat`.
  • Meccanismo di triangolazione e login del percorso.
  • Алерты: stale-rates, spread spike, triangulation mismatch, open position breach.
  • Dashboard KPI e controlli con PSP/banca.
  • Procedure reval e GL separate per realization/unrealization FX.
  • Set di test di arrotondamento e precisione dello storage.

Riepilogo

I libri multivalori sono la disciplina della divisione dei livelli, la FX storica per il prodotto, la rivalutazione EOD effettiva per i bilanci. Con sorgenti di corso trasparenti, un modello di dati accurato, un doppio record e una combinazione automatizzata, è possibile eliminare il rumore di valuta dagli analisti, fornire un controllo e ottenere il rischio FX gestito durante la monetizzazione globale.

Contact

Mettiti in contatto

Scrivici per qualsiasi domanda o richiesta di supporto.Siamo sempre pronti ad aiutarti!

Telegram
@Gamble_GC
Avvia integrazione

L’Email è obbligatoria. Telegram o WhatsApp — opzionali.

Il tuo nome opzionale
Email opzionale
Oggetto opzionale
Messaggio opzionale
Telegram opzionale
@
Se indichi Telegram — ti risponderemo anche lì, oltre che via Email.
WhatsApp opzionale
Formato: +prefisso internazionale e numero (ad es. +39XXXXXXXXX).

Cliccando sul pulsante, acconsenti al trattamento dei dati.