Methodology: how Arbitrage Gap counts
Every figure on the site comes from the exchanges' public data and the rules below. This page describes them in plain words: what we collect, how a route's profit is worked out, why a route gets its verdict and what we cannot see.
Where the data comes from
We read the public market data of 46 exchanges: 41 with spot markets and 34 with perpetual futures. One order book listed under two names (an exchange and its sister brand trading the same book) counts once, here and in every count on the site. A coin page counts the exchanges that quote that coin, so its number is smaller than the site's total.
- Prices (best bid and ask with the size at that price, and the 24-hour volume) are read every few seconds from each exchange's API, from its live streams where an exchange offers no other way.
- Every route is recomputed every few seconds from the latest prices of all exchanges.
- For the most promising routes we also read both order books, 20 levels a side, refreshed every few seconds.
- Deposit and withdrawal status per coin and network is refreshed every 5 minutes; market lists every few minutes; funding rates every minute.
On Free the scanners, route pages and route cards show data about a minute behind; on Starter, Pro, and Desk they are in real time. A route's chart reaches back 6 hours on Free, 24 hours on Starter, and the whole history on Pro and Desk. What a futures pair actually received in funding over 1, 3, 7 and 30 days is shown on Pro and Desk. Coin prices, current funding rates and the list of past spreads are the same on every plan.
Pages with live figures show when the data was taken, in UTC.
Quotes in USDC or USD are converted to USDT at rates measured from the exchanges' own USDC/USDT and USDT/USD markets, so routes across quote currencies compare in one unit.
How the net profit is computed
A spot route buys a coin where it is cheap and sells it on another exchange, moving the coins between them. We buy at the ask and sell at the bid, never at the mid.
- Gross spread: how far the sell exchange's bid is above the buy exchange's ask.
- Net spread: the gross spread minus the taker fee of both exchanges. We count each exchange's standard taker fee, without VIP levels or token discounts; signed in, you can enter your own fees and every route, verdict and alert is recomputed at them.
- Withdrawal fee: the fee of the cheapest open network, in coins, valued at the sell exchange's bid after its fee (the coins would have been sold there).
- Size and profit: where the order books are loaded, we walk the buy side's asks against the sell side's bids level by level and stop where the next unit no longer earns after both fees. The size is that amount and the profit is what it makes after the withdrawal fee. Where the books are not loaded, the size is what the best price alone holds.
- Break-even amount: the size from which the profit covers the fixed withdrawal fee.
A futures route holds two legs at once: perpetual against perpetual, or spot bought against a perpetual shorted. Nothing is transferred. Its net is the basis (the short leg's bid over the long leg's ask) minus the taker fees to open and close both legs; funding is shown apart, as what the pair earns or pays per 8 hours and what it actually received over the past days.
The calculator does the same arithmetic for prices and fees you enter.
Take, risky and avoid
Every route gets a verdict with its reasons, worst first. Take: nothing below applies. Risky: it can work but something is unknown or fragile. Avoid: something makes it a non-trade or the data cannot be trusted. Avoid routes are hidden in the scanners by default and never sent as alerts.
Avoid when:
- the data looks broken (an exchange or a quote far off the others, see the next section);
- it is a different token under the same ticker;
- the transfer is closed: no network has withdrawals open on the buy exchange and deposits open on the sell exchange;
- the withdrawal fee eats the whole profit;
- under $20 is available at the best price;
- an exchange's own order book is dead: its best bid and ask are far apart, so nobody trades there;
- on a futures route, one leg's own bid-ask spread is over 2%, so closing gives the profit back;
- it is a stock, index, commodity or currency token while its reference market is closed (nights, weekends, holidays): the gap is a bet on the reopening.
Risky when:
- the size rests on one or two orders and the next price is much worse (if they are gone while the coins travel, the trade loses);
- the whole size is a single buy order on a market that reports no volume;
- a wide gap has held for a long time on a market with a large daily volume while the transfer shows open: if it worked, others would have closed it, so it probably does not;
- the transfer status, the withdrawal fee or the size at the best price is unknown;
- either side trades under $100,000 a day, or an exchange reports no 24-hour volume at all;
- the coins for this size are under the network's minimum withdrawal;
- the profit is under $1;
- it is a stock or commodity token: prices drift apart outside market hours;
- on futures: a day of funding costs more than the net; the funding rate is unknown; the current rate is far above what the pair actually earned over the past days (under 30% of it, with at least 2 days of history); closing both legs in profit happened in under 10% of the minutes of the last day; a leg's own spread is noticeable (over 0.5%); or crossing both legs' spreads when the prices meet eats the profit.
The thresholds are the ones in force on the date of this page and may be tuned; the reasons shown on each route are the ones applied to it.
Different tokens and broken quotes
Most implausible spreads are not arbitrage: the same ticker names another token on one exchange, a market is frozen, or a feed is stale. We judge every quote against the other exchanges rather than trust it:
- Contracts: for each coin and network we take the contract address that most exchanges publish. An exchange that lists another contract on the network the transfer would use holds a different token, and the route is marked as such (avoid). Two sides publishing the same contract hold the same token whatever others list.
- Coin outliers: a liquid order book whose mid price is far from the median of the coin's other exchanges is flagged; at least three liquid exchanges are needed to judge, and thin books never set the median.
- Exchange outliers: an exchange whose prices sit off the median on many coins at once is treated as broken, and its routes are flagged.
- Sanity bounds: a gross spread over 50% is implausible; over 3% without an open transfer it is unverified. On futures, a basis over 3% is unverified and over 20% implausible, and a perpetual more than 1% (spot 3%) off the coin's median is flagged.
- Markets left out: leveraged tokens, markets trading under $10,000 a day or reporting a zero volume, quotes whose bid is above the ask, and markets an exchange has halted or delisted.
Flagged routes stay visible with the screener's "Show doubtful data" switch, so you can see what was filtered and why.
Transfers and networks
For each exchange, coin and network we keep whether deposits and withdrawals are open, the withdrawal fee and the minimum withdrawal, as the exchange publishes them. A spot route is open when some network has withdrawals open on the buy side and deposits open on the sell side; we pick the cheapest such network, and among equal fees the faster one.
The time shown ("~5 min") is a typical time until the coins are credited on that network: the confirmations exchanges wait for plus processing. It is an estimate, not a promise: an exchange can hold a withdrawal for review.
Where an exchange does not say, the status is unknown, and the route is at best risky.
Episodes and their lifetime
An episode is one spread from the moment its route's net goes above zero to the moment it closes. A route that dips to zero or below and comes back within a short grace period continues the same episode; it closes once it has stayed away for that long without a break. The lifetime is the time between opening and closing, measured to one recompute cycle; time while one of its exchanges is missing from our data does not count.
We keep episodes that are not flagged and reached a minimum net and size at the best price (or, with the size unknown, traded on markets with a minimum daily volume), so a flicker of a few cents is not counted. From them come the history, the episode counts and median lifetimes on coin pages and the home page, and a route's "usually closes in": the median lifetime of that pair of exchanges over the last 7 days.
A spot route is marked quick when its transfer is open with a known fee and time, it makes money on the books and its pair's spreads usually live at least as long as the transfer takes. A futures route is a hold when its funding pays at least 0.1% a day.
Funding rates
- Current: the rate each exchange publishes for its coming settlement, per its own period (often 1, 4 or 8 hours). To compare exchanges we scale it to 8 hours; the annual figure is the rate times the settlements in a year.
- Predicted: the next rate where the exchange publishes a forecast. Fair: the rate the usual formula gives from the gap between the mark and index prices, where the exchange publishes them.
- Actually paid: the settlements that took place, from the exchanges' own funding history where they publish one, else as we saw each settlement pass. Summed over 1, 3, 7 and 30 days, they show what a position really earned, which can differ a lot from the current rate.
- Perpetuals trading under $50,000 a day are left out, and a rate more than 1 percentage point per 8 hours from the other exchanges' median is flagged and left out of averages and spreads.
- For a pair, the short leg receives its rate and the long leg pays its own; a positive rate means longs pay shorts.
Known limits
- Some exchanges publish no per-network deposit and withdrawal status (Kraken, Phemex, LATOKEN, Bitstamp) or no networks at all (Deepcoin, P2B): their transfers show as unknown.
- Some publish no 24-hour volume (HitBTC, for example): their routes are risky for that reason.
- Some publish no funding interval (Deepcoin, WhiteBIT, HitBTC, Toobit): their rates show without an annual figure and stay out of funding spreads. Some publish no open interest (Deepcoin, LBank, Gemini, WEEX).
- LBank perpetuals are not priced; a few exchanges publish no sizes at the best price.
- Fees are the standard taker fees unless you enter yours; transfer times are typical, not guaranteed; prices are read every few seconds, not every trade, so a gap can close before an order fills.
- Exchange data can be delayed, incomplete or wrong. Everything here is information, not advice: see the terms of service.
Found a figure that looks wrong? Write to support@arbitragegap.com.