The Net-Spread Filter I Use for Arbswap

The Net-Spread Filter I Use for Arbswap

The thing that finally clicked was that the displayed spread is not the trade. It is only the opening number. The trade is whatever remains after fees, slippage, gas, and the cost of being slightly late. Once I started treating the spread as a budget instead of a profit figure, the rest of the routine became much simpler.

My first pass takes about ten seconds. I write down the quoted spread, then subtract the costs in the order they are likely to hurt:

  • execution fees on both sides;
  • expected slippage at the amount I actually intend to move;
  • gas, converted into the same percentage as the trade;
  • a small timing buffer for a quote that may move before execution.

For example, a 0.42% spread looks interesting until the worksheet reads 0.18% in fees, 0.09% in slippage, 0.07% in gas, and 0.05% for timing. The remaining 0.03% is not a thin win; it is noise with several ways to become a loss. I skip it.

What earns a place in the routine

The useful part of the setup is not another dashboard. It is a fixed order of checks that prevents the attractive number from making the decision too early. I keep the trade size constant while comparing routes. Changing the size halfway through makes the spread comparison meaningless because the slippage estimate changes with it.

Next I check whether both legs can complete under the same assumptions. A route that shows a better price but depends on a thinner pool, an extra approval, or a separate wallet action is not automatically better. Every additional action gets treated as another chance for the quote to disappear.

I also record the quote timestamp. If the screen has been open for several minutes, I refresh before calculating anything. This sounds trivial, but stale quotes were responsible for more bad decisions than complicated market conditions. The number needs to describe the transaction I can make now, not the one I noticed earlier.

The decision line

My cutoff is deliberately boring: after every known cost and the timing buffer, there must be enough room left to justify the operational risk. If the remainder is smaller than the error in my estimate, I do nothing. If it survives, I compare the final route and execution conditions once more, then act without reopening the whole thesis.

That is where arbswap fits in my process: as one of the options to check at the route-selection point, after the net spread has earned the right to be considered. The page matters only after the arithmetic says there is a trade worth choosing.

The routine has made the decision easier, not more exciting. A large gross spread gets investigated. A small net spread gets ignored. The useful number is the one left after the trade has paid for everything required to exist.

Leave a Reply

Your email address will not be published. Required fields are marked *