Payment Success Rate Without Double-Counting Retries
By PayEurasia Team · 11 October 2026 · 4 min read
Last updated 11 October 2026

Calculate order-level conversion separately from attempt approval rates, using stable identifiers, cohort windows and visible unresolved outcomes.
Header image: conceptual illustration.
A merchant reports a low approval rate because customers retry declined attempts. Another merchant reports a high success rate by counting webhook duplicates as additional successful payments. Neither figure reliably describes how many orders were actually paid.
Separate attempt-level performance from order-level completion. Stable identities, a defined cohort and visible unresolved outcomes are necessary before the percentage becomes useful.
State the question before choosing the denominator
Attempt approval asks how many distinct submitted attempts reached the defined successful state. Order completion asks how many eligible orders obtained at least one verified successful payment. A retry can lower the first metric while helping the second.
Define eligible carefully. Created checkouts, submitted payments and orders that genuinely attempted payment are different populations. Excluding abandoned checkouts may be appropriate for one metric, but it must be disclosed rather than used to make completion look better.
The payment dashboard metrics guide introduces useful monitoring categories. This article specifies how to calculate the success component without conflating orders, attempts or delivery events.
Use identifiers for the economic objects
Count orders by stable order identity. Count attempts by attempt identity. Count provider success using the verified payment resource, not the number of success messages received. Event identifiers help deduplicate delivery, but two different events may still describe one payment.
Verify successful final provider status, merchant/order reference, amount and currency before including a payment as a successful financial outcome. The same verified resource should not be credited or counted repeatedly.
Stripe's webhook documentation describes duplicate events and separate Event objects describing the same underlying object. Its idempotent request documentation concerns safe repeated requests. Both mechanisms support integrity, but neither by itself defines a business success-rate denominator.
One cohort, two legitimate rates
Invented example: A cohort contains 100 orders that submitted a payment attempt. Eighty orders succeed on the first attempt. Ten initially fail, then succeed on one retry. Ten remain definitively failed after one attempt.
There are 110 distinct attempts and 90 successful payments. Attempt-level success is 90 divided by 110, approximately 81.8%. Order-level completion is 90 divided by 100, or 90%. Both are valid for their stated questions; they are not interchangeable.
If duplicate webhook deliveries add 20 messages, the successful-payment count remains 90. It does not become 110. If five orders are still unresolved rather than failed, the report should show that unresolved population separately instead of silently converting it to either success or failure.
These numbers are invented methodology examples, not measured PayEurasia performance or a claimed improvement in traffic or conversion.
Define the cohort and observation window
Choose whether the cohort is based on order creation, first submitted attempt or another documented event. Follow those objects through a consistent observation window. A same-day report may still be immature for asynchronous methods.
Report late success consistently. A payment completing after the initial cutoff should update the original cohort or appear in a documented revision policy, not be shifted into an unrelated denominator just because the success arrived today.
Show processing, unknown, canceled and definitively failed outcomes distinctly where they answer operational questions. Include the report generation time and the maturity of the cohort so readers understand what remains unresolved.
Segment without changing the definition
Compare method, provider, device or country segments using the same denominator and observation rules. A provider handling harder traffic may have a different attempt rate without causing the difference. Small samples and changing traffic composition need qualification.
Keep refunds and disputes separate from initial payment success. A previously successful payment with a later refund is not necessarily a failed original attempt. If the business wants a retained-value metric, define it separately with the relevant later adjustments.
Use the idempotency guide for financial-effect protection, while keeping the reporting model explicit enough that analysts can reproduce the counts.
Metric integrity checklist
- The report names order, attempt or another explicit grain.
- Eligible population and exclusions are disclosed.
- Duplicate messages do not add successful payments.
- Success requires verified resource and financial match checks.
- Retries link to the same logical order but distinct attempts.
- Cohort time, observation window and revision rules are visible.
- Unknown and processing outcomes are not fabricated as final.
- Segment comparisons keep identical definitions and sample context.
Questions before comparing percentages
Is order-level completion always the better metric?
No. It answers the customer's eventual payment outcome, while attempt approval helps diagnose declines and retries. Use both with clear labels.
Can refunds be subtracted from successful attempt counts?
That would mix different questions. Keep initial payment success separate from retained value, refund and dispute metrics unless a precisely defined composite measure is intended.
Talk to PayEurasia
Working in a high-risk vertical across South Asia? We can probably help.
Request integration →