ResearchMarket structure8 min read

Why Most Crypto Arbitrage Spreads Are Not Executable

A visible price gap between two exchanges is a gross number. Fees, depth, transfer time and your own feed latency decide what is left of it.

By Vultax ResearchPublished 2026-09-02Editorial policyMethodology

Key signals

crypto arbitrage spreads

Observed feed latency (p95)

288–590 ms

95th-percentile order-book snapshot latency across 16 venues, Vultax sample, September 2026

Venues under 100 ms at median

15 of 16

Order-book snapshot medians in the same sample ran from 35 ms to 111 ms

Cross-country spread persistence

Days to weeks

Makarov & Schoar, Journal of Financial Economics, on deviations between country-segmented venues

Peak documented regional premium

~40%

US/South Korea price ratio at its extreme during the period Makarov & Schoar studied

The gross spread is the easy part

Two exchanges quote the same pair at different prices. Subtract one from the other and you have a gross spread. Every arbitrage scanner on the market can compute this, and the number it produces is real in the narrow sense that both quotes existed.

It is also the least useful number in the chain. Between the gross spread and a realised profit sit four separate deductions, each of which can independently take the entire spread: fees, depth, transfer time, and the latency of the data that showed you the gap in the first place.

This article is about those four. It does not tell you that arbitrage is impossible, and it does not tell you a particular spread is capturable. It describes what has to be subtracted before that question can even be asked.

Deduction one: fees on both legs

A cross-exchange arbitrage is two trades, so it pays two sets of taker fees. Published spot taker fees on major centralised venues commonly sit in the range of a few basis points to around ten, before volume tiers and token-based discounts. The round trip is therefore roughly double whatever the headline rate is, and it is charged whether or not the second leg fills at the price you assumed.

For the majors on the largest venues, gross spreads are frequently thinner than that round trip. This is the ordinary case, not the exception: liquid markets are liquid precisely because participants with lower fee tiers than yours have already competed the gap down to their cost floor rather than yours.

The practical test is to compute the spread net of your own fee tier before anything else. A scanner showing a gross spread without subtracting fees is showing you a number that has not yet been asked the only question that matters.

Deduction two: depth, not price

A quote is a price for the next unit, not for your order. The relevant question is not what the top of the book says but how much you can transact before the price you receive stops resembling the price you saw.

This is where most apparently large spreads collapse. Wide gaps cluster on thin venues, and thin venues are thin at exactly the moment the gap appears. A 60-basis-point spread on a book that holds a few thousand dollars of depth at the touch is a 60-basis-point spread on a trade too small to be worth the operational overhead — and the spread compresses as you walk the book.

Sizing against displayed depth rather than persistent depth compounds this, particularly when book imbalance is elevated: displayed size can be withdrawn faster than an order can reach it, and reported volume says nothing about what a book will actually absorb.

  • Compute the volume-weighted fill price across the levels your order would consume, on both legs
  • Treat the spread as a function of size, not a scalar — it shrinks as size grows, and often crosses your fee floor before it crosses your target size
  • Check whether depth at those levels has persisted, rather than sampling it once

Deduction three: inventory and transfer time

The textbook version of the trade involves moving an asset from the cheap venue to the expensive one. In practice, on-chain transfer plus exchange crediting takes long enough that the spread that motivated the trade will usually have moved before the asset arrives, and withdrawal suspensions during volatile periods are common.

Practitioners therefore pre-position inventory on both venues and rebalance separately. This converts a timing problem into a capital problem: you now hold balances on multiple exchanges, and the returns must be assessed against that committed capital and the venue and custody risk it carries — not against the notional of a single trade.

This is the deduction that most retail analyses of arbitrage omit entirely. A strategy that yields a small edge per trade on capital that must sit idle across several venues is a very different proposition from the same edge on capital deployed once.

Deduction four: the latency of your own data

The gap you are looking at is, at best, as fresh as the slowest of the two feeds that produced it. This is measurable, so we measured it.

Across 16 centralised venues, Vultax recorded median order-book snapshot latency between 35 ms and 111 ms in a September 2026 sample. That range is respectable. The 95th percentile is the number that matters for arbitrage, and it ran from 288 ms to 590 ms — no venue in the sample held p95 under 100 ms.

A cross-venue comparison inherits the worse tail of its two inputs. When you compute a spread from two feeds each capable of a half-second tail, you are periodically comparing a fresh price on one venue against a stale one on the other. Some share of the spreads any scanner displays are artefacts of that skew rather than differences that existed simultaneously.

This is why Vultax describes its latency as a sub-100ms target rather than a guarantee, and why we publish the distribution rather than a single median.

What the academic evidence says about persistence

Makarov and Schoar's study of cryptocurrency market arbitrage, published in the Journal of Financial Economics, remains the most careful published account of when these gaps persist and why.

Their central finding is that deviations are much larger across countries than within them, and that cross-country gaps can persist for days and weeks rather than seconds. During the period they studied, the average price ratio between the United States and South Korea reached roughly 40% at its extreme — the episode widely known as the kimchi premium.

The explanation is not that traders failed to notice. It is that capital controls, banking access and the practical difficulty of moving fiat between jurisdictions prevented arbitrage capital from closing the gap. The spreads persisted because they were not capturable, which is the general lesson: a spread that survives is usually one that something structural is preventing anyone from taking.

Within a single jurisdiction, and between venues with unconstrained capital flow, they found deviations far smaller and far shorter-lived. That is the regime most retail arbitrage takes place in, and it is the regime where fees and depth dominate.

How to evaluate a scanner, including ours

The question to ask of any arbitrage tool is not how many opportunities it finds. Finding gross spreads is trivial. The question is what it subtracts, and whether it tells you.

Vultax reports raw price-gap context across connected venues, with the market-quality and liquidity-health context needed to assess whether a gap is supported by real depth. It does not represent gaps as executable profit, and it does not model your fee tier, your withdrawal limits, your inventory position or your own connectivity — all of which sit between a displayed gap and a filled trade. A tool that claims to have already accounted for all of that is claiming to know things about your account that it cannot know.

  • Does it show gross or fee-adjusted spreads, and does it say which?
  • Does it show depth alongside price, or price alone?
  • Does it publish its own feed latency distribution, including the tail?
  • Does it distinguish a gap that persisted from one that appeared in a single snapshot?
  • Does it claim executability, and on what basis?

See the data behind this article.

Whale flow, arbitrage routes, market-quality signals, and prediction-market context can all feed the same editorial workflow. Use the terminal for live data and subscribe to the newsletter for new briefs.

Sources and evidence

Price-gap context describes observed differences between venue quotes. It is not a representation that any gap is executable, profitable, or capturable after fees, depth, transfer constraints and connectivity. Latency figures are measurements over stated windows, not guarantees. Nothing here is financial advice or a recommendation to trade.