The Real Bottleneck in Polymarket Arbitrage Isn't Finding the Edge - It's Keeping It
Originally published on Substack: casatrick.substack.com/p/polymarket-arbitrage-bot-execution-speed
Ask someone to explain a Polymarket arbitrage bot and they will describe the detection logic. YES and NO prices should sum to one dollar, and when they do not, buying both sides and redeeming the pair locks in the gap as profit. That explanation is correct, and on its own it is almost useless, because detecting the mispricing was never the hard problem. Every arbitrage bot watching Polymarket's public order books sees the same gap at roughly the same moment. The real problem is what happens in the few seconds after that.
A pricing inefficiency on Polymarket does not sit still waiting to be captured. The moment it appears, every bot polling that market can see it, and the first execution to actually hit the order book starts consuming the exact liquidity the gap depended on. Miss the window and you are no longer capturing arbitrage, you are providing exit liquidity for whoever got there first.
This reframes what matters in a well-built system. Detection is table stakes. Execution latency, sizing against live depth, and how quickly the bot can act on a signal it just generated are where the real edge lives.
Most naive implementations separate detection and execution into sequential steps: poll the book, compute the gap, decide to trade, submit the order. Each step adds latency, and on a fast-closing window, that sequence is the actual bottleneck, not the underlying math. A more resilient structure treats the depth check as inseparable from the trade decision itself, rather than a downstream validation step performed after liquidity may already be gone.
This dynamic gets more pronounced as more capital enters prediction markets. Arbitrage windows are not a fixed resource, they are a byproduct of market inefficiency, and more capital chasing the same gaps compresses both the size and duration of each window. Execution speed increasingly matters more than strategy novelty.
If you are building or evaluating a Polymarket arbitrage bot, the right question is not whether it detects mispricing, since every implementation does. The right questions are how fast it moves from signal to submitted order, how it sizes against real-time depth rather than a stale snapshot, and what happens when a partial fill leaves one leg exposed.
Full implementation, including signal-scoring and execution logic across all five strategies: github.com/casatrick/polymarket-arbitrage-bot-python
Comments
Post a Comment