Live arbitrage is a race between market updates, venue matching engines, user action, and the event itself. A pre-match spread might last minutes. A live sports spread might last a few seconds. If the scanner shows a delayed quote as if it were current, the product is not showing an opportunity. It is showing history.

Latency appears in several places. The venue may publish data with delay. The local pipeline may poll too slowly. A browser page may show a cached snapshot. The order book may change while the user is reading. A trade may sit unfilled while the second leg moves away. Each delay is small by itself, but together they decide whether both legs can be entered at the displayed prices.

Sports markets amplify the problem because information arrives in bursts. A goal, red card, injury, lineup change, timeout, map result, or weather update can move the fair price immediately. If one venue reacts faster than another, a real cross-venue gap can exist. But if the slower venue removes the quote before a user can trade it, the practical edge is zero.

A live interface therefore needs more than ROI. It needs a timestamp for each leg, a freshness label, visible venue links, and ideally a size estimate based on executable book levels. A 4 percent gap with stale quotes is weaker than a 1.2 percent gap with fresh, fillable depth. The ranking should reflect that.

Freshness should be measured per leg, not only per card. If the Polymarket price is two seconds old and the Kalshi price is forty seconds old, the combined number should inherit the weaker timestamp. If the two venues use different update intervals, the display should make that visible. A single "updated now" label can be misleading when the two quotes do not age at the same rate.

The best scanners also distinguish between detection latency and execution latency. Detection latency is the time from venue change to dashboard update. Execution latency is the time from decision to filled positions. A system can be fast at detecting gaps and still poor at execution if the user cannot place both legs quickly enough or if the displayed price is not available at the needed size.

There is also a product-design tradeoff. Updating too frequently can increase API cost, trigger rate limits, and create noisy flicker. Updating too slowly can turn the page into a delayed report. For a public demo, an explicit Load Opportunities button is reasonable because it sets user expectation. For a production monitor, freshness metadata and refresh cadence should be visible.

Latency should also influence sizing. If a market is moving fast, smaller size and wider safety margins are rational. If one venue is consistently slower, the system may treat quotes from that venue as lower confidence. If a gap appears only when one leg is stale, the alert should be suppressed or clearly labeled.

The engineering implication is straightforward. Store capture time with every quote. Keep venue clock assumptions explicit. Recalculate opportunity rows from the latest known book, not from a cached rendered card. When a quote crosses a freshness threshold, either remove the opportunity or downgrade it. This makes the page less dramatic, but it makes the signal more honest.

Example: Fresh Price, Stale Hedge

Suppose the Polymarket side of a soccer match was captured three seconds ago and the Kalshi side was captured forty-five seconds ago. A card that only says "updated now" hides the weaker leg. The right display should either age the combined opportunity by the stale leg or show both timestamps so the user understands where the risk sits.

In a fast live match, forty-five seconds can include a shot, card, substitution, timeout, or injury update. The old hedge price may still be visible in local data while no longer being fillable on the venue. This is why live opportunity cards need freshness thresholds, not just ROI thresholds.

Live arbitrage is not just about finding the biggest number. It is about finding the gap that can still be acted on. A useful page should answer three questions quickly: are the contracts equivalent, are the prices fresh, and is there enough size to make the trade matter? If any answer is weak, the headline ROI is not enough.