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.
Key signals
crypto arbitrage spreadsObserved 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
In this article
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
Cross-country deviations persist for days and weeks; US/Korea price ratio reached ~40% at its extreme; within-country deviations far smaller
Published version of record
First-party latency measurement: 35-111 ms median, 288-590 ms p95 across 16 venues
Why displayed depth, persistent depth and reported volume are three different things
- market-dataCoinAPI — Execution Quality in Crypto
Why effective spread and realised slippage, not quoted spread, determine execution cost
- internalVultax methodology
How price-gap context and liquidity-health signals are constructed
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.
Continue reading
Crypto Exchange Feed Latency: 16 Venues Measured
Observed order-book feed latency and uptime across 16 crypto exchanges, measured from live venue feeds over a 24-hour window in September 2026.
Crypto Wash Trading: What the Research Actually Shows
Published estimates of fake crypto volume range from 51% to 95%. Here is why the studies disagree, and what a trader can check without a vendor.
Exchange Liquidity Is Not Volume: How to Judge a Venue
Volume is what an exchange reports. Liquidity is what absorbs your order. The two diverge sharply, and the gap between them is measurable.