Dashbord ստացիոնար KPI
TL; DR
Մեկ dashbord 'երեք շերտ' Ձիթապտղի առողջությունը (Attempt Auth no Capture), Ֆինանսական արդյունավետությունը (TtW/TtR, Cost/GGR, FX) և Եվրոպական ենթակառուցվածքը (Webhook/Latency/Settlect)։ Գաղտնիքը ճիշտ հաշվարկման հիմքեր է, պարտադիր սեգմենտը (country no provider no method no BIN noticket _ size direrisk), շեմի SLO և պատրաստի պլեյբուսները, երբ դուրս են գալիս միջանցքից։
1) Ո՞ ւմ համար և ի՞ նչ հարցեր ենք փակում։
CEO/GM (ամեն օր, 3-5 րոպե). <<Վճարման կոնվերսիան և եզրակացությունների արագությունը նորմալ։ Բյուջետային փողի արժեքը վերահսկողության տակ"։
Head of Payments/Treasury (ամեն ժամ). <<Որտե՞ ղ է պրովայդերսի/երկրի/մեթոդի դեգրադացիան։ Արդյո՞ ք ակնթարթային պարամետրերի համար բավականաչափ ճշգրտություն կա"։
Fraud/Risk (ամեն օր). < Supert/Oper.ru (առցանց). <<Ի՞ նչ ETA եզրակացության և վերադարձի մասին։ Որտե՞ ղ էին կախված Webhuks-ը"։ Finance/Recon (D + 1): "Settlox ժամանակին։ Մոսկվան և FX-ը համապատասխանում են պլանին"։ 2) Հիմնական մետրերը և ճշգրիտ սահմանումները 2. 1 Վճարումների ձագար Attempt-ը նախաձեռնված վճարումներ են։ Auth Approved-ը հաստատված հեղինակային իրավունք է։ Captured-ը հաջողված է։ Բանաձևը (հիմքը գործարքների քանակն է, եթե այլ բան նշված չէ) `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 Եզրակացություններ և բարձրացումներ 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% - սկզբնական մեթոդը 2. 3 Արժեքը և 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 Ինտեգրումներ Webhook Delivery p95 (сек), Success % API Latency p95/p99 (auth/capture/refund/payout) Settlant Timeliness = մարտեր, որոնք եկել են հայտարարված T + N/բոլոր մարտերը ժամանակահատվածի ընթացքում 2. 5 3DS/friction (քարտեզների համար) 3DS Challenge Share = Challenge / 3DS_Total Frictionless Share = Frictionless / 3DS_Total Abandon on 3DS = 3DS_Started − 3DS_Completed 3) Կտրվածքներ և ֆիլտրեր (նվազագույն հավաքածու) Фильтры в шапке: `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`. Պարտադիր բացթողումները գծապատկերներում/ստեղնաշարերում country×provider, BIN×country, method×provider, device/os, ticket_size. 4) Հիմնական էկրանի նշումը (Layout) 1. KPI-ի վերին շերտը (երեկ/այսօր, համեմատություն p7 լրատվամիջոցների հետ) `AR_net`, `Capture_Success`, `Payout Success%`, `TtW p95`, `TtR p95`, `Cost/GGR`, `Webhook p95`, `Settlement Timeliness`. 2. Funnnel (Attempt no Auth no Capture) ընտրությամբ և հրաժարումների պատճառների ցուցադրմամբ (RTA/ռելսերի վրա)։ 3. Heatmap AR-ը 'country provider "և առանձին BIN heatmap-ը ավելի մեծ ծավալի համար։ 4. 3DS վահանակ ՝ Challenge/Frictionless/Abandon + համեմատություն բենշ գծերի հետ։ 5. Payout & Refund Health: Success%, p95 (TtW/TtR), ошибки, Refund_to_Source %. 6. Cost & FX: Cost/GGR, FX slippage/fees կայքերում։ 7. Ինտեգրացիոն ֆորումը 'Webhook p95/Success%, API latency p95/p99, Duplicate rate, Reportivery SLA։ 8. Պատահականության վահանակ 'ակտիվ ալերտներ (տե՛ ս 388), ֆեյլերների կարգավիճակը և գանձարանի նշանները (L0, www.fund)։ 5) sLO և alerts (միջանցքներ) Ուղեցույցները (պորտֆելի/շուկայի տակ տրամաչափվում են) «AR _ gross» քարտեր 3DS2: 82-92% (հատվածում); «AR _ net» 2480% `Capture_Success` ≥ 98. 5% (ժամ) `Webhook p95` ≤ 3 с, Success ≥ 99. 9% `Payout TtW p95` instant ≤ 120 с; (T + 1) - օրական 100 տոկոսը D + 1 "Refund TtR p95 'քարտեզներ No T + 1 bd.; instant ≤ 60 с `Refund Error %` < 0. 3% `Settlement Timeliness` ≥ 99% «Cost/GGR» - անհատական ռուսական միջանցք մեթոդով Ալերտերի թրգերները «AR _ gross 24> 3 p.p.» 7-օրյա մեդիայի (երկրում/PSA/BIN) - P1/P0 `Capture_Success < 98%` (час) → P1 "Webhook p95> 5 c 'կամ կրկնօրինակներ> 0 P1 `Payout TtW p95 > SLO` или Success%<99% → P1 `Refund Error% > 0. 3%` или `Double Refund > 0` → P0 `Settlement on-time < 99%` → P1 «Cost/GGR» դուրս գալ միջանցքը P2 մեթոդով Յուրաքանչյուր ալերտ բացում է runbook 'a քարտը (գործողություններ/էսկալացիա/ֆեյլովեր)։ 6) Բանաձևը և հաշվարկման հիմքերը (մանրամասն) Բոլոր բաժնետոմսերը ակնհայտ հիմքով են 'նշեք տուլտիպում' denominae '։ Ժամանակները UTC-ում; p-quanali: PERCENTILE _ CONT։ «AR _ clean» (վիրահատական) = «Auth _ Approved/( Auth _ Attempted of Fraud _ Clocked Abandon _ 3DS)» `Net_Conversion` = `Captured_Tx / Auth_Attempted_Tx` `Refund_to_Source %` = `Refund_to_Original_Method / Total_Refunds` "Idle Cash%" (գանձապետական մինի-վիջեթում) = "(Balts no Target _ Balms )/Balts ' 7) UX-patternes KPI-ի վերևում, ներքևում 'funnel + heatmaps, ներքևում' ռուսական և ֆինանսներ։ Թուլիպները բանաձևով/հիմքով/բացառություններով (օրինակ ՝ «հակաֆրոդից հետո»)։ Համեմատական գիծը 'p7 մեդիա և «երեկ «/» անցյալ երկուշաբթի »։ Medil-down-ը կլիկից 'heatmap-ից BIN-ի աղյուսակի վրա, Issuer-ը մերժում է։ Snepshots համար RCA-ի համար 'կոճակը «համախմբել» ընթացիկ տեսակը post-mortem-ի համար։ 8) Պլեյբուկի (ներկառուցված գործողությունների քարտեր) Auth drop-ը պատրաստվում է անցնել smart-routing, բարձրացնել 3DS-challenge BIN-ի վրա, սահմանափակել հետքերը։ Webhook-ը պատրաստվում է միացնել poling-ը, սառեցնել auto-refands/վտանգավոր Avto-վճարումները, ուժեղացնել idempotenty-ը։ Payout-ի քայքայումը ռելսերի ֆեյլերի, treasury top-up-ի, VIP-ի գերակայությունը։ Settle.ru StressRes-ի ձերբակալումը, Suspense-ի նշանը, PBS-ում։ Refund սխալներ/դուբլներ wwww.refund-freeze, ծափահարություն, բշտիկ դուբլ։ 9) Տվյալների մոդելը (նվազագույն բավարար) Ինդեքսները ՝ «provider», «method _ code», «country», «bin», «event _ ts»։ 10) SQL կտրվածքներ (օրինակ) 10. 1 Վորոնկա և AR 10. 2 Webhook SLA 10. 3 Refund & Payout Health 10. 4 Cost/GGR 11) Լրացուցիչ էկրաններ BIN Systilldown: AR/decom-codes, 3DS-friction, latency։ Provider Scorecard: SLA մետրիկներ, միջադեպեր, վարկեր, Cost/GGR։ Treasury Corapshot: L0/L1 մնացորդները, www.fund, StressRes, TtF համալրումներ։ Recon You: Settlant Timeliness, Aging-ը չի կարված մարտեր, Fee acuracy-ը։ 12) Տվյալների որակը KPI բառարանը տարբերակիչ (բանաձևով/հիմքով/բացառությամբ)։ Միասնական TZ = UTC, p-quanali միայն CONT-ն է։ Իրադարձությունների և Webhuks-ի dedup։ Տոլերանսների քաղաքականությունը ժամանակի/սումամի/FX (հասակության/լատենտության համար)։ Deltes.ru CI-ում 'բաժանողների ոչ դատարկ հիմքերը, միապաղաղությունը, NFC-ի մասը։ 13) Ներդրումներ ՝ չեկ թերթ 14) Հաճախակի սխալներ Մրցույթի խառնուրդը («attempt 'vs' capture») բացատրում է կեղծ եզրակացությունները։ Չկա «ticket _ size» հատվածներ, որոնք աղավաղված են AR նկարը։ Abandon-ի անտեսումը 3DS-ում բացատրում է պրովայդերի հետ «գերագնահատված» խնդիրը։ Webhook duplicates-ի վերահսկողության բացակայությունը կրկնակի գործողություններ է։ Settlect/fees-ի թերի վիտրինը անհնար է գնահատել Cost/GGR-ը։ Առանց SLO-ի և պլեյբուսների, դաշբորդը վերածվում է «վիտրինի առանց գործողությունների»։ Dashbord ստացիոնար KPI-ը վիրահատական գործիք է, ոչ միայն գրաֆիկներ։ Այն միացնում է ձագը, փողը և ենթակառուցվածքը, հիմնված է հստակ բանաձևերի և հատվածների վրա, տալիս ավտոմատ ազդանշաններ և անմիջապես առաջարկում է գործողություններ։ Արդյունքում, AR _ net ավելի բարձր է, TtW/TtR միջանցքներում, Cost/GGR-ում վերահսկողության տակ, միջադեպերը արագ են, իսկ պրովայդերների հետ երկխոսությունը կառուցվում է թվերի վրա։(Քարտը պարունակում է չեկ թերթիկ և էսկալացիայի կոնտակտներ։)
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_atsql
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;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;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;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;
Ռեզյումե