Skip to content

Merchant Performance Analyzer

Find where payment performance is leaking

  1. 1. Upload transactions
  2. 2. Diagnose performance
  3. 3. See where it leaks

6 diagnostics · deterministic
runs in your browser · nothing uploaded

analyzer / merchantawaiting input

Drop a transaction .csv

or pick one from your machine

transaction_id · timestamp · amount · currency · payment_status

up to 10 MB / 250,000 rows

What the analysis returns
  • Authorization approval rate01

    approved ÷ (approved + declined), with the decisioned base

  • Decline drivers02

    top issuer / network decline codes, rolled up by category

  • Technical errors03

    integration and connectivity failures, counted separately

  • Retry & recovery04

    declined-then-approved chains, and value recovered

  • Segment performance05

    approval by method, 3DS, country — z-tested against the book

  • Post-payment lifecycle06

    refunds, chargebacks and reversals, per currency

Transaction data stays in your browser. Read locally with file.text(), never uploaded, never sent to a model. Files with card-number / CVV / personal-data columns are rejected outright. Privacy →
Expected CSV format & downloads

Required (aliases accepted): transaction_id, timestamp, amount, currency, payment_status.

Useful optional: payment_method, card_scheme, merchant_country, issuer_country, channel, psp, auth_3ds, decline_code, is_retry, original_transaction_id, fee_amount, lifecycle_status, refund_amount, chargeback_amount, is_refunded, is_chargeback.

  • payment_status is the authorization outcome only — approved / declined / error / pending. Approval rate = approved ÷ (approved + declined); errors and pending are excluded.
  • Refunds and chargebacks go in lifecycle_status (or refund_amount / chargeback_amount), never in payment_status.
  • Amounts in major units, any currency; kept per currency, never summed across them.
  • No PANs, card numbers, CVVs, IBANs, names, emails or addresses.