Every Millisecond Counts
In the time it takes you to blink, dozens of payments have succeeded or failed. Understanding latency in payment systems, where it hides, how to measure it honestly, and why your system is only as good as its slowest transaction.
Imagine this. It's Black Friday, and millions of customers are hitting Buy Now at the same moment. In the time it takes you to blink, about 300 milliseconds, dozens of payment transactions have either succeeded or failed. Each one is a race against time, where a delay as small as 100 milliseconds can be the difference between a completed purchase and an abandoned cart.1
In payment processing, milliseconds aren't just numbers. They are the heartbeat of your system.
The real cost of time
When you're moving money, time isn't just money, it's trust, user experience, and competitive advantage rolled into one. Here's what can go wrong in the blink of an eye.
- A trader loses a crucial opportunity because their payment took 50ms too long.
- A customer abandons a cart because the confirmation didn't arrive quickly enough.
- A cross-border transaction stalls as latency cascades across every system in the chain.
None of these users filed a bug report. They just left.
What latency actually is
At its core, latency is the delay between starting an action and completing it. In payments. The time between a user initiating a transaction and receiving a confirmation. We like to picture it as a simple round trip.
user ──── request ────▶ payment system
user ◀─── response ───── payment system
two hops. how slow could it be?Reality is less polite.
user ─▶ gateway ─▶ auth ─▶ KYC/AML ─▶ fraud check ─▶ balance hold
│
user ◀─ response ◀─ settlement ◀─ rail routing ◀─ FX ◀────┘
every arrow is a network hop. every box is work.
every one of them is on the clock.The gap between those two diagrams is where most latency surprises live.
The two components of latency
Network latency is the time transaction data spends traveling between systems. It matters, but it's often beyond your control, especially in cross-border flows or when riding multiple payment rails (Visa, Mastercard, local schemes).
Processing latency is the hidden work performed during the transaction, and it's where your leverage lives.
- KYC/AML verification checks
- Fraud detection scoring
- Balance checks and holds
- Currency conversion
- Regulatory compliance checks
- Settlement processing
- Payment rail routing decisions
Engineers instinctively blame the network. In my experience, the honest profile usually points the other way.
Anatomy of a cross-border payment
Let's put numbers on it. A typical cross-border payment, leg by leg.
| Step | Time |
|---|---|
| Initial request (network) | 50ms |
| Account validation | 6ms |
| KYC/AML verification | 50ms |
| Fraud detection | 25ms |
| Currency conversion | 10ms |
| Payment rail routing | 15ms |
| Final response (network) | 25ms |
| Total | 181ms |
Notice what the breakdown reveals. The network legs account for 75ms, while processing consumes 106ms. It's not just about how fast data travels, it's about all the checks and decisions that happen along the way. Each step is individually reasonable. Together, they are your user's blink of an eye, fully spent.
Measuring honestly, beyond averages
Average response time is the most comforting and least useful number in your dashboard. A beautiful average can hide a miserable minority, and in payments, a single slow transaction is a missed trade or a lost customer. This is where percentiles come in.
average: 120ms ← the dashboard smiles
P50: 95ms ← half your users see this or better
P90: 200ms ← one in ten waits longer than this
P99: 400ms ← one in a hundred waits longer still
P100: 2,000ms ← someone waited two full seconds
the average never met the P99 user.Here is how to read them precisely.
- P50 (median). 50% of transactions complete faster than this.
- P90. 90% complete within this time.
- P99. 99% complete within this time.
- P100 (maximum). Your slowest transaction, and that user's whole experience.
In a system processing 1,000 transactions, a P90 of 200ms means 900 payments beat that mark; a P99 of 400ms means 990 did; the P100 of 2,000ms is the one customer support will hear about.
Percentiles earn their keep by letting you spot problem transactions before they become complaints, set honest SLAs, compare performance across payment methods and regions, and decide where optimization money actually belongs.
Latency's twin, throughput
Latency tells you how fast one transaction moves. Throughput tells you how many you can handle per second. Think of latency as speed and throughput as capacity, and remember they are coupled. During high-volume periods like market openings or holiday peaks, saturated capacity turns into queuing, and queuing turns directly into latency. A system's speed under no load is trivia. Its speed at peak is the truth.
The battle-tested optimization playbook
Monitor everything, separately. Track each payment provider's performance on its own. Time every third-party call, every verification check, every region. An aggregate number tells you something is slow; a segmented one tells you what.
Use percentiles strategically. Different SLAs for different transaction types. Per-region tracking to catch localized issues. Pattern analysis during peak hours, and alerts on unusual spikes, not just breaches.
Optimize where the volume is. Prioritize high-volume routes. Route intelligently between providers. Cache what's frequently read, pool connections to external services, and streamline the verification workflow itself. The checks are often sequential out of habit, not necessity.
Design for resilience. Smart timeouts for slow dependencies, circuit breakers for failing ones, backup providers ready to take traffic, reconciliation planned rather than improvised, and regional processing close to the users. Resilience patterns are latency patterns. The slowest transactions in any payment system are the ones tangled in a failing dependency.
The compound effect
Shaving 200ms off a transaction doesn't sound like much. Multiply it across millions of daily transactions and it becomes real. Faster experiences, fewer abandoned carts, higher success rates, lower retry costs, and, the metric behind all metrics, customers who trust the system enough to stop thinking about it.
Conclusion
Understanding latency is essential to building payment systems that are both fast and reliable. Look past the network to the full anatomy of the transaction, measure with percentiles instead of averages, and optimize where volume and evidence agree.
And keep one line taped above the dashboard.
Your system is only as good as its slowest transaction.
Finding where that slowness lives is the first step to fixing it, and the beginning of every performance story worth telling.
Footnotes
-
Originally published on my Hashnode blog in December 2024, and revised for this site. The milliseconds have not gotten less important since. ↩