A coin trades at one price in one place and at a higher price somewhere else. Buy here, sell there, keep the difference. That is the pitch. We run a bot that tries to do exactly this — on paper, on live prices, around the clock — and it spends almost all of its time saying no.
One week, in numbers
| Seven days ending 21 September 2026 | |
|---|---|
| Price-feed lines read | 20,971 |
| Observation windows | 4,362 |
| Trades taken | 20 |
| Refusals | 217,989 |
| Paper result of the week | $62.38 |
Twenty trades out of two hundred and eighteen thousand chances. Every refusal was a spread that looked like money on a screen.
Why it refused
| Why the bot refused | Routes | Times | Largest spread |
|---|---|---|---|
| The receiving side does not accept deposits of the coin | 13 | 121,908 | 100.0% |
| The number does not look real | 18 | 62,681 | 100.0% |
| The sending side does not release the coin | 7 | 33,118 | 99.3% |
| No network both sides share | 2 | 282 | 93.1% |
Every kind of refusal had spreads above 90% — a coin at nearly twice the price somewhere. Spreads that big are exactly what the reasons describe: the exchange that would receive the coin is not accepting it, the one that would send it is not releasing it, or the price is a quote nobody is trading at. The gap is real on the screen and unreachable in practice.
The biggest spreads had the least money behind them
Under the six largest spreads of the week there was $4, $7, $8, $14, $28, $130 of depth in the order book. A price is the price of the next coin, not of your whole order: behind a 100% spread there was enough to buy a coffee.
What else eats a spread
- Two trading fees, not one. You pay to buy and you pay to sell. The bot subtracts both, and the network fee for moving the coin, before a spread counts.
- The transfer. The coin has to travel between exchanges, and that takes time a spread may not have. Traders who avoid it keep balances on both sides in advance — capital that sits idle while it waits.
- The seconds. Between seeing a gap and having both orders filled, prices move. A static table never shows this part.
What is left
Real cross-exchange arbitrage exists, but it lives on small margins, needs money parked on several venues and is run by software. For a person refreshing a page, what is left is mostly the picture of a spread.
You can watch it without risking anything: the spread scanner shows live gaps with fees subtracted and checks the order book behind them, and the demo bot trades them on paper. The useful column there is not the profit. It is how many trades it refuses, and why.