Logo GH

Zahlungs-KPI-Dashboard

TL; DR

Ein Dashboard - drei Schichten: Trichtergesundheit (Attempt→Auth→Capture), Finanzielle Effizienz (TtW/TtR, Cost/GGR, FX) und Zuverlässigkeit der Infrastruktur (Webhook/Latency/Settlement). Das Geheimnis sind korrekte Berechnungsgrundlagen, obligatorische Segmentierung (country × provider × method × BIN × ticket _ size × risk), Schwellenwerte SLO und vorgefertigte Playbooks beim Verlassen der Korridore.

1) Für wen und welche Fragen schließen wir

CEO/GM (täglich, 3-5 min): "Zahlungsumwandlung und Rücknahmegeschwindigkeit normal? Sind die Kosten für die Annahme von Geld unter Kontrolle?"

Head of Payments/Treasury (stündlich): "Wo ist die Degradierung nach Anbieter/Land/Methode? Gibt es genug Liquidität für sofortige Zahlungen?"

Fraud/Risk (täglich): "AR in Anbetracht der Fraud? Abandon на 3DS и Soft declines?»

Support/Operations (online): "Was ist die ETA für die Ausgabe und Rückgabe? Wo hängen Webhooks?"

Finanzen/Recon (D + 1): "Ansiedlung rechtzeitig? Entsprechen die Provisionen und FX dem Plan?"

2) Hauptmetriken und genaue Definitionen

2. 1 Zahlungstrichter

Attempt - Initiierte Zahlungen.
Auth Approved - genehmigte Berechtigungen.
Captured - erfolgreich abgeschrieben.

Formeln (Basis - Anzahl der Transaktionen, sofern nicht anders angegeben):
  • `AR_gross = Auth_Approved / Auth_Attempted`
  • `AR_net = Captured_Tx / Auth_Attempted`
  • `Capture_Success = Captured_Tx / Capture_Attempted_Tx`
  • `Capture_Latency_p95 = p95(capture_ts - auth_ts)`

2. 2 Befunde und Rückgaben

Payout Success % = Success_Payouts / Attempted_Payouts

TtW p95 = p95(payout_credited_at - payout_initiated_at)

Refund Rate = Refunded_Tx / Captured_Tx

TtR p95 = p95(refund_credit_at - refund_initiated_at)

Refund Error % = Refund_Failed / Refund_Attempted

Refund_to_Source% - Rücklaufquote der ursprünglichen Methode

2. 3 Kosten und FX

Cost/Tx = Fee_fixed + AmountFee_pct + FX_Spread

Cost/GGR = ΣCost / GGR

FX Slippage (bps) = (exec_px − mid_px)/mid_px × 10 000

2. 4 Zuverlässigkeit der Integrationen

Webhook Delivery p95 (сек), Success %

API Latency p95/p99 (auth/capture/refund/payout)

Settlement Timeliness = Batches, die zum angegebenen T + N/alle Batches für den Zeitraum kamen

2. 5 3DS/Friktion (für Karten)

3DS Challenge Share = Challenge / 3DS_Total

Frictionless Share = Frictionless / 3DS_Total

Abandon on 3DS = 3DS_Started − 3DS_Completed

💡 Wichtig: Trennen Sie die operative AR (nach Anti-Fraud und User-Abandon) von „roh“ - das sind zwei verschiedene Metriken mit unterschiedlichen Zielen.

3) Schnitte und Filter (Mindestsatz)

Фильтры в шапке: `date range (UTC)`, `country`, `provider`, `method_group`, `BIN`, `device/os`, `ticket_size bucket (≤€50 / €50–200 / >€200)`, `risk_segment`, `kyc_tier`, `new_vs_returning`, `affiliate`.

Obligatorische Schnitte in Grafiken/Tabellen:
  • country×provider, BIN×country, method×provider, device/os, ticket_size.

4) Layout des Hauptbildschirms

1. Obere KPI-Platte (für gestern/heute, Vergleich zu p7 Median):

`AR_net`, `Capture_Success`, `Payout Success%`, `TtW p95`, `TtR p95`, `Cost/GGR`, `Webhook p95`, `Settlement Timeliness`.

2. Funnel (Attempt→Auth→Capture) mit Segmentauswahl und Anzeige der Fehlerursachen (ISO-Top-Codes/auf Schienen).

3. Heatmap AR durch 'country × provider' und separate BIN heatmap für top-Volumen.

4. 3DS-Panel: Challenge/Frictionless/Abandon + Vergleich zur Benchmark-Linie.

5. Payout & Refund Health: Success%, p95 (TtW/TtR), ошибки, Refund_to_Source %.

6. Kosten & FX: Kosten/GGR nach Methoden, FX slippage/fees nach Standorten.

7. Integrationssicherheit: Webhook-Lieferung p95/Erfolg%, Latenz-API p95/p99, doppelte Rate, SLA-Lieferung melden.

8. Incident-Panel: aktive Alerts (siehe § 8), Failover-Status und Treasury Notes (L0-Salden, Prefund).

5) SLO und Alerts (Korridore)

Benchmarks (für Portfolio/Märkte kalibriert):
  • 'AR _ gross' Karte 3DS2: 82-92% (nach Segment); 'AR _ net' ≥ 80%
  • `Capture_Success` ≥ 98. 5% (stündlich)
  • `Webhook p95` ≤ 3 с, Success ≥ 99. 9%
  • `Payout TtW p95` instant ≤ 120 с; (T + 1) - 100% am Tag D + 1
  • „Refund TtR p95“ Karten ≤ T + 1 bd; instant ≤ 60 с
  • `Refund Error %` < 0. 3%
  • `Settlement Timeliness` ≥ 99%
  • „Cost/GGR“ - individueller Zielkorridor nach Methode
Alert-Trigger:
  • 'AR_gross↓> 3 pp' zum 7-Tage-Median (nach Land/PSP/BIN) → P1/P0
  • `Capture_Success < 98%` (час) → P1
  • „Webhook p95> 5 c“ oder Duplikate> 0 → P1
  • `Payout TtW p95 > SLO` или Success%<99% → P1
  • `Refund Error% > 0. 3%` или `Double Refund > 0` → P0
  • `Settlement on-time < 99%` → P1
  • „Cost/GGR“ -Korridor nach → P2

Jede Alert öffnet eine Runbook 'a-Karte (Aktionen/Eskalationen/Failover).

6) Formeln und Berechnungsgrundlagen (Detail)

Alle Aktien - mit einer expliziten Basis: Geben Sie im Tulltyp 'denominator' an.
Zeiten - in UTC; p-Quantile: PERCENTILE_CONT.

' AR_clean ' (operativ) = ' Auth_Approved / (Auth_Attempted − Fraud_Preblocked − Abandon_3DS)'

`Net_Conversion` = `Captured_Tx / Auth_Attempted_Tx`

`Refund_to_Source %` = `Refund_to_Original_Method / Total_Refunds`

„Idle Cash%“ (im Treasury-Mini-Widget) = „(Balance − Target_Balance )/Balance“

7) UX-Muster

Oben KPI-Würfel, unten - Funnel + Heatmaps, unten - Integrationen und Finanzen.
Tulpentypen mit Formel/Basis/Ausnahmen (z.B. „nach Fraud“).
Vergleichslinie: p7 median und „gestern „/“ letzter Montag “.
Drill-down per Klick: Mit der Heatmap auf die Tabelle BIN→Issuer→kody Bounce.
Schnappschüsse für RCA: „Pin“ -Taste der aktuellen Ansicht für Post-Mortem.

8) Playbooks (integrierte Aktionskarten)

Auth Drop → Schalten Sie Smart-Routing, heben Sie 3DS-challenge auf BIN, begrenzen Sie Retrays.
Webhook-Verzögerungen → Polling aktivieren, Auto-Refands/gefährliche Auto-Auszahlungen einfrieren, Idempotenz verstärken.
Payout Degradierung → Schienen-Failover, Treasury Top-up, VIP-Priorisierung.
Settlement Verzögerung → StressRes, Markierung „Suspense“, Eskalation in der PSP.
Refund Fehler/Takes → Refund-Freeze, Abstimmung, storno Takes.

(Die Karte enthält eine Checkliste und Eskalationskontakte.)

9) Datenmodell (minimal ausreichend)


events/payments_flat:
payment_id, user_id, country, provider, method_code, action(deposit/refund/payout),
attempt_ts, auth_status, auth_ts, three_ds(flow, challenge_flag, started_ts, completed_ts),
capture_status, capture_amount, capture_ts, partial_flag,
refund_status, refund_amount, refund_initiated_ts, refund_credit_ts,
payout_status, payout_amount, payout_initiated_ts, payout_credited_ts,
fees_fixed, fees_pct, fx_spread, currency, amount,
risk_segment, kyc_tier, bin, asn, device_os, ticket_bucket

events/webhooks:
provider, event_kind, event_ts, delivered_ts, retries, duplicate_flag, idempotency_key

settlements/reports:
provider, batch_id, settlement_date, amount_settled, currency, fee_amount, status

treasury/pockets (mini-widget):
pocket_id, counterparty, currency, balance, target_balance, low_watermark, updated_at

Indizes: nach 'provider', 'method _ code', 'country', 'bin', 'event _ ts'.

10) SQL-Schnitte (Beispiel)

10. 1 Trichter und AR

sql
WITH base AS (
SELECT
DATE_TRUNC('hour', attempt_ts) AS h,
country, provider, method_code,
COUNT() FILTER (WHERE auth_status='ATTEMPTED') AS auth_attempted,
COUNT() FILTER (WHERE auth_status='APPROVED') AS auth_approved,
COUNT() FILTER (WHERE capture_status='CAPTURED') AS captured_tx
FROM payments_flat
WHERE action='deposit'
GROUP BY 1,2,3,4
)
SELECT h, country, provider, method_code,
auth_approved::decimal / NULLIF(auth_attempted,0) AS ar_gross,
captured_tx::decimal / NULLIF(auth_attempted,0)  AS ar_net
FROM base;

10. 2 Webhook SLA

sql
SELECT
DATE_TRUNC('hour', event_ts) AS h, provider,
PERCENTILE_CONT(0. 95) WITHIN GROUP (ORDER BY EXTRACT(EPOCH FROM (delivered_ts - event_ts))) AS wb_p95_sec,
AVG(CASE WHEN retries=0 AND NOT duplicate_flag THEN 1 ELSE 0 END) AS wb_success
FROM webhooks
GROUP BY 1,2;

10. 3 Refund & Payout Health

sql
SELECT
DATE_TRUNC('day', COALESCE(refund_initiated_ts, payout_initiated_ts)) d,
method_code, provider,
COUNT() FILTER (WHERE refund_status='ATTEMPTED') AS refund_attempted,
COUNT() FILTER (WHERE refund_status='SUCCESS')  AS refund_success,
PERCENTILE_CONT(0. 95) WITHIN GROUP (ORDER BY EXTRACT(EPOCH FROM (refund_credit_ts - refund_initiated_ts))) AS ttr_p95_sec,
COUNT() FILTER (WHERE payout_status='ATTEMPTED') AS payout_attempted,
COUNT() FILTER (WHERE payout_status='SUCCESS')  AS payout_success,
PERCENTILE_CONT(0. 95) WITHIN GROUP (ORDER BY EXTRACT(EPOCH FROM (payout_credited_ts - payout_initiated_ts))) AS ttw_p95_sec
FROM payments_flat
GROUP BY 1,2,3;

10. 4 Cost/GGR

sql
SELECT
DATE_TRUNC('day', capture_ts) d,
method_code, provider,
SUM(fees_fixed + amountfees_pct + fx_spread) AS total_cost,
SUM(capture_amount) AS total_captured,
(SUM(fees_fixed + amountfees_pct + fx_spread) / NULLIF(SUM(total_captured),0)) AS cost_to_captured
FROM payments_flat
WHERE capture_status='CAPTURED'
GROUP BY 1,2,3;

11) Zusätzliche Bildschirme

BIN Drilldown: AR/Decline-Codes, 3DS-Friktion, Latenz nach Emittenten.
Anbieter Scorecard: SLA Metriken, Incidents, Credits, Cost/GGR.
Treasury Snapshot: L0/L1 Reste, Prefund, StressRes, TtF Nachschub.
Recon View: Settlement Timeliness, Aging ungenäht Schlachten, Fee accuracy.

12) Datenqualität i治理

KPI Wörterbuch mit Versionierung (Formeln/Basis/Ausnahmen).
Einheitliches TZ = UTC, p-Quantile - nur CONT.
Idempotenz von Ereignissen und Dedup von Webhooks.
Toleranzrichtlinie für Zeit/Beträge/FX (für Abgleich/Latenz).
Datentests in CI: nicht leere Teilerbasen, Zeitstempelmonotonie, NULL-Anteil.

13) Umsetzung: Checkliste

  • KPIs/Formeln/Basen sind definiert und im Wörterbuch festgehalten.
  • ingestion und Normalisierung von Ereignissen/Registern eingerichtet.
  • 'payments _ flat',' webhooks', 'settlements', 'treasury' Vitrinen wurden gebaut.
  • Implementiert heatmaps, funnel, latency, payout/refund panels.
  • Es wurden SLO-Schwellenwerte und Warnmeldungen festgelegt. mit Playbooks verknüpft.
  • Zugriffsrollen: C-Level (Read-Only Summary), Ops/Fraud (Drill-Down).
  • Wöchentliche QBR nach Anbietern basierend auf Provider Scorecard.
  • UAT-Test-Set: Demo-Dataset, Überprüfung der p-Quantile, Korrektheit der Basen, Alert.

14) Häufige Fehler

Die Vermischung von Basen ('attempt' vs' capture') → falsche Schlussfolgerungen.
Keine Segmentierung 'ticket _ size' → verzerrtes AR-Bild.
Ignorieren Sie abandon auf 3DS → ein „übertriebenes“ Problem mit dem Anbieter.
Keine Kontrolle über Webhook-Duplikate → Doppelaktionen.
Ein unvollständiger Showcase von settlement/fees kann → nicht bewertet werden Cost/GGR.
Ohne SLO und Playbooks verwandelt sich das Dashboard in ein „Schaufenster ohne Action“.

Zusammenfassung

Das Zahlungs-KPI-Dashboard ist ein betriebliches Werkzeug, nicht nur Grafiken. Es verbindet Trichter, Geld und Infrastruktur, setzt auf klare Formeln und Segmentierung, gibt automatische Signale und schlägt sofort Maßnahmen vor. Das Ergebnis: AR_net oben, TtW/TtR in den Gängen, Cost/GGR unter Kontrolle, Vorfälle schnell lokalisiert und der Dialog mit den Anbietern auf Zahlen aufgebaut.

Contact

Kontakt aufnehmen

Kontaktieren Sie uns bei Fragen oder Support.Wir helfen Ihnen jederzeit gerne!

Integration starten

Email ist erforderlich. Telegram oder WhatsApp – optional.

Ihr Name optional
Email optional
Betreff optional
Nachricht optional
Telegram optional
@
Wenn Sie Telegram angeben – antworten wir zusätzlich dort.
WhatsApp optional
Format: +Ländercode und Nummer (z. B. +49XXXXXXXXX).

Mit dem Klicken des Buttons stimmen Sie der Datenverarbeitung zu.