Definition
Stale pricing refers to displayed prices that lag behind actual market conditions. In prediction markets, this happens when order book data is fetched via REST API polling rather than real-time WebSocket feeds — the data you're looking at may be seconds or minutes old, and the real available price may be significantly worse.
How stale pricing affects arbitrage
Imagine you scan the market and see: YES on Polymarket at $0.46, NO on Kalshi at $0.53. Gross spread: 1%. You proceed to execute. But the Kalshi price is stale — it was updated 8 seconds ago and now the NO actually costs $0.58. Your combined cost is now $1.04, turning a 1% edge into a 4% loss.
When stale pricing is most dangerous
- Breaking news events: Major announcements move markets instantly. REST API responses can lag by 3–10 seconds after a large market-moving event.
- High-frequency market maker activity: Market makers update their quotes rapidly. Polling-based scans can be behind by 1–3 seconds even in normal conditions.
- API rate limiting: When you're polling frequently, platforms may throttle your requests — increasing the staleness window.
How to avoid stale pricing
The solution is real-time data feeds via WebSocket connections rather than polling. WebSocket pushes price updates to you as they happen — no polling delay, no stale windows. Arbitrage Agent takes the streaming feed where the venue publishes one and polls continuously where it does not, and only triggers execution on fresh price data.
Staleness tolerance in practice
Even with a streaming feed, there's a small latency window between receiving a price update and executing the trade. This is why every alert shows you the prices it was computed from: you place the orders on the live book, and if the spread has already closed, you see it before committing capital rather than after.