TL;DR: every hop of a cycle pays its pool's fee. A gap only pays when it is wider than the sum of those fees. We call that sum the fee band.
A gap between two pools looks like free money. Usually it is not. Buy the stock in the cheap pool and you pay that pool's fee on the way in; sell it in the rich pool and you pay that pool's fee on the way out. If the gap is smaller than the two fees together, the cycle loses, however wide the gap looks on a chart.
The Rule
At mid prices, a two-pool cycle pays when the gross gap beats the band:
gap > fee(buy pool) + fee(sell pool)
A stock quoted in USDG in one pool and in WETH in the other needs a third hop, through the WETH/USDG pool, so its band gets one more fee: 0.01%, or 1 basis point. Four-hop routes add the fees of every pool they touch. The band for each pair of tiers:
| Path | Band, same quote | Band, cross quote |
|---|---|---|
| 0.05% and 0.05% | 10 bps | 11 bps |
| 0.05% and 0.30% | 35 bps | 36 bps |
| 0.30% and 0.30% | 60 bps | 61 bps |
| 0.30% and 1.00% | 130 bps | 131 bps |
| 1.00% and 1.00% | 200 bps | 201 bps |
The exact condition multiplies instead of adding: the cycle pays when the sell price over the buy price, times one minus each fee on the path, is more than one. For fees this small the two agree to a fraction of a basis point, and the engine's quote settles it exactly anyway.
Worked Examples
Three routes from the snapshot of Sep 18, 2026, at mid prices:
The widest gap is not a trade
NVDA's widest gap ran from its WETH 1.00% pool at $220.253 to its WETH 0.05% pool at $222.485: 101.3 basis points, one of the two widest spreads in the snapshot. The band for that path is 1.00% plus 0.05%, or 105 basis points. At the mid price the cycle loses about 4.7 basis points before gas. And the 1.00% pool held under $6,000 of stock, so there was little to buy anyway.
A small gap across quotes
AAPL traded at $335.233 in its USDG 0.05% pool and at $335.450 in its WETH 0.05% pool, a gap of 6.5 basis points. Crossing from USDG to WETH and back costs three fees: 5, 5 and 1, or 11 basis points. The cycle loses about 4.5 basis points at the mid.
Right on the edge
GLD's WETH 0.30% pool priced it at $400.427 and its WETH 0.05% pool at $401.833: a gap of 35.1 basis points against a band of 35. At the mid price the cycle was ahead by less than a hundredth of a basis point, in a pool holding about $2,000 a side. Any real size would have moved the thin pool enough to erase it.
Across the snapshot, the best route of 48 of the 49 stocks sat inside its band, and GLD sat on the line. That is what a settled market looks like: gaps everywhere, none worth closing.
When The Band Breaks
Gaps open past the band when something moves one pool and not its neighbours: a large trade, a move in ETH, a one-sided launch position meeting its first buyer. That is when a cycle pays, and it pays only until the prices are pushed back to the edge of the band.
Our fork tests show it to the basis point. We pushed NVDA's USDG 0.05% pool out of line until its gap to the USDG 0.30% pool was 201.3 basis points, then ran a cycle. Afterwards the gap was 35.1: the band for a 0.05% plus 0.30% path is 35. A four-hop route through both quotes, with a band of 70, ended at 70.3.
Arbitrage does not make prices equal. It makes them agree to within their fees.
Size, Impact And Gas
The mid-price edge is the best case: the first dollar. Every dollar you cycle pushes the two pools toward each other, so the edge shrinks as the size grows, and at some size the next dollar loses. The app looks for that size. It quotes a grid of sizes from $25 to $25,000 with the engine, then refines around the best one.
Then comes gas. In our fork tests a two-hop cycle used 330,171 to 356,890 gas, a three-hop cycle 548,848 and a four-hop cycle 604,661. The profit has to clear that too. Last comes the protocol fee: 10% of what is left, so you keep 90%.
Nuance
- Snapshot figures are from Sep 18, 2026. Live gaps move every block; the app shows them as they are.
- A quote is exact for the state it was made against. If the pools move before your transaction lands, the engine runs the whole cycle again and reverts when it no longer pays.
- Profit is never guaranteed. Other bots read the same pools, and the first transaction to land takes the gap.