We’re building a latency Football bot for Polymarket. Target: operational before the World Cup. Save this.
The principle: pro sports feeds (Sportradar, Opta) deliver pitch events in ~200-500ms. The Polymarket orderbook takes longer to reprice thin liquidity, market makers pulling quotes while they reassess. That window is the edge.
Yesterday, first live test on Bayern vs Real (Champions League QF).
86th minute, Camavinga gets his second yellow. Pipeline receives the event from Sportradar 280ms after the card. “Bayern advances” market was at ~0.55. Model recomputes to ~0.68 post-red and fires a $500 order.
Partial fill as expected: ~$180 caught around 0.55-0.57, the rest slipped to 0.63. Average 0.59. Market stabilized at 0.67 a few seconds later. Unrealized $30. 6% in seconds.
It’s a test. But the loop worked end to end detection, decision, fill, before the book caught up.
What we learned: network latency is part of the problem. The real bottleneck is orderbook depth. We’re competing with sharp bots, not retail on their couch. And “next goal” markets have better spreads than qualification markets. Pivoting there.
What we’re building before June: fill routing across 12 venues via Jito atomic bundles. Low-signal event modeling (dangerous fouls, injuries, tactical shifts). UMA oracle hedging. Node co-location near Sportradar servers.
Why the World Cup matters.
104 matches in 39 days. $2.5B in projected prediction market volume. Deep liquidity means bigger positions fill cleanly. Thin liquidity in group stages means wider spreads. Both environments leave serious money on the table.
56 days to ship. We’re on it.