Measured latency paths to Kalshi and Polymarket, where to deploy a prediction-market bot, and how to measure the exchange-to-capture delta yourself.
Prediction-market bots live or die on two latencies: how fast you see the world change (feed latency), and how fast your order reaches the matching engine (order latency). Both are decided before you write a line of strategy code — by where you deploy. This guide collects what we know from operating co-located market-data capture at Kalshi, Polymarket and 30+ crypto venues, with real measured numbers you can reproduce.
Event contracts on short horizons — a 5-minute BTC up/down market, an hourly strike ladder — reprice violently around moves in the underlying. Whoever sees the spot move first gets to lift stale quotes or pull their own. Unlike major crypto perpetuals, prediction-market books are thin: a single stale quote is often the entire top of book, and the race for it is won by milliseconds, not microseconds. That makes deployment placement the highest-leverage infrastructure decision for this asset class. Latency is only one part of the decision, though: the observed price discrepancy must still exceed fees, spread, expected slippage and adverse-selection costs — gross edge minus those costs is the executable edge.
The good news: prediction markets can still offer meaningful gains from basic infrastructure optimization, particularly when competing systems are deployed far from the venue or use inefficient network paths.
Kalshi, the CFTC-regulated US exchange: in our measurements it is consistently reached with lower latency from AWS us-east-2 (Ohio) than from the other regions we tested. That makes us-east-2 a practical starting point for latency-sensitive Kalshi deployments, without requiring assumptions about Kalshi's internal infrastructure. Deploying there removes a substantial part of the cross-region network path observed from other locations — actual order-to-ack latency should still be measured from the production host, since API routing, venue processing and other components remain part of the execution path.
Polymarket settles on-chain, but its order matching is operated centrally. Our measurements indicate that London provides a particularly low-latency network path to Polymarket infrastructure. However, Polymarket's public access restrictions must be considered separately from network topology: publicly documented geographic restrictions may prevent opening positions from UK IP addresses. Any production deployment in London should therefore be confirmed with Polymarket before being used for trading; institutional or explicitly approved setups may be subject to different arrangements — confirm these directly rather than assuming them from network measurements.
More generally: the lowest-latency location for observing a venue is not necessarily a location from which you are permitted or able to trade. Network topology, geographic access restrictions and execution eligibility are separate constraints — London is useful as a network measurement point regardless of whether it can be your execution location.
Some Polymarket markets may also apply venue-side execution delays to marketable orders. These delays are separate from network latency and should be included when evaluating the economics of a latency-sensitive strategy — a faster packet path can still improve order priority relative to competing participants, but it does not remove an intentional venue-side delay.
The signal side lives somewhere else entirely: crypto price discovery happens on the big centralized exchanges, and in our measurements the Tokyo region (AWS ap-northeast-1 and neighbors) provides a particularly strong network path to several of the major venues used as signal sources. A prediction-market bot that uses spot or perp moves as its trigger is therefore a cross-continent system by construction: signal capture in Tokyo, execution in Ohio or London.
Once your signal source and execution venue sit on different continents, the transport between them becomes part of your strategy. Standard internet peering adds jitter and routing surprises; a dedicated leased line gives you a stable, known round trip. Beyond that sits radio frequency: our network partners operate an RF route on the Tokyo–London path, and in the setup we measured, the RF-assisted path delivered signals approximately 3 milliseconds faster than the leased-line baseline. Results depend on endpoints, carrier routing and the specific connectivity product — but three milliseconds is an eternity in a thin event-contract book; it is the difference between lifting the stale quote and providing it. We announced our microwave support in February 2025, operate managed connectivity with partners like Avelacom, and launched a dedicated Tokyo–London microwave route with BSO in August 2026.
A practical end-to-end latency budget contains several independent components: signal publication → signal feed → strategy processing → network transport → venue API / gateway → venue-side processing → matching → acknowledgement or fill. Optimizing only the network path is useful, but it does not optimize the entire trade lifecycle.
Sort your latency budget by leverage: (1) right cloud region for the execution venue, (2) stable transport for the signal leg, (3) only then micro-optimize your stack. A bot in the wrong region loses more in one hop than kernel tuning will ever win back.
Every event in a CryptoStruct tick file carries two timestamps: the venue's own publish time (exchangeTs) and the moment our co-located recorder received the message (adapterTs), both integer nanoseconds UTC. We measure the exchange-to-capture timestamp delta: the difference between the venue timestamp and the time the message reaches the CryptoStruct adapter. This delta includes venue publication time, network transit, adapter processing and any residual clock offset between the venue and the capture host — an observed end-to-end feed delta rather than pure network latency. Measured from a machine in the venue's own facility, it is close to the best case your bot can achieve. Measuring it takes a dozen lines of Python on any day file:
import json, statistics, subprocess
deltas = []
proc = subprocess.Popen(["zstd", "-dc", "466528_2026-07-29.txt.zst"],
stdout=subprocess.PIPE)
for line in proc.stdout:
if not line.startswith(b"[1,"): # book updates
continue
ev = json.loads(line)
adapter_ns, exchange_ns = ev[4], ev[5]
if isinstance(exchange_ns, int) and exchange_ns > 0:
deltas.append((adapter_ns - exchange_ns) / 1e6)
print("median ms:", round(statistics.median(deltas), 2))
print("p99 ms: ", round(statistics.quantiles(deltas, n=100)[98], 2))We ran exactly this over one UTC day per venue (Binance USDⓈ-M BTCUSDT trades, 2026-08-08; one Kalshi and one Polymarket BTC contract, book updates, 2026-07-29):
| Feed (one UTC day) | Events | Median | p90 | p99 | Max |
|---|---|---|---|---|---|
| binance_swap BTCUSDT, trades | 562,929 | 1.45 ms | 1.99 ms | 3.45 ms | 27.9 ms |
| Kalshi BTC contract, book updates | 33,117 | 9.37 ms | 10.7 ms | 12.1 ms | 282 ms |
| Polymarket BTC contract, book updates | 31,486 | 4.05 ms | 6.7 ms | 43.2 ms | 3,146 ms |
Exchange→capture timestamp delta from co-located recording. Source: CryptoStruct archive, helper/research analysis 2026-08-12. Kalshi and Polymarket measured on book updates.
Two lessons hide in that table. First, medians flatter everyone — venue tails differ by an order of magnitude, and a bot that assumes "Polymarket is 4 ms" will occasionally act on a book that is three seconds old. Second, the Kalshi book updates measured here carry sub-millisecond timestamp granularity, preserved in the normalized feed — timestamp resolution is not the limiting factor in these measurements; the observed distribution reflects the complete exchange-to-capture path. Both are exactly the kind of thing you confirm by measuring real captures instead of believing marketing numbers — including ours.
Latency-sensitive prediction-market trading is not about finding a rumored matching-engine location. It is about measuring the complete path: signal source, capture latency, strategy processing, network transport, venue-side behavior and execution constraints. CryptoStruct's timestamped market data makes the feed side of that path measurable — production measurements are still required to understand the actual order path.
Everything above is measurable with self-serve data: free full-day samples include Kalshi and Polymarket contracts, and any archive day costs €1 per instrument-day or series-day bundle. When you move to live trading, the same normalized feeds are available as co-located realtime APIs with feed arbitrage against jitter, and our team builds managed connectivity — dedicated lines and RF routes like Tokyo–London — as a contract service. The Kalshi integration runs on the same stack described here.
The measured numbers are one UTC day per venue and one contract each — they show the shape and the tails, not a permanent SLA; feed delay varies with load and venue releases. The delta includes the venue's own publish latency and our adapter time, not just network transit. Region observations reflect our own path measurements as of August 2026 and can change with venue or network changes; access processes are controlled by the venues — verify both before committing infrastructure. Nothing here is investment advice; latency work improves execution, it does not create a profitable strategy by itself.
Among the AWS regions we tested, us-east-2 (Ohio) produced the lowest observed path latency to Kalshi, which makes it a practical starting point. Deploy there, then measure order-to-ack latency from the production host — API routing and venue-side processing remain part of the execution path.
Our measurements show London as a particularly low-latency network path to Polymarket, which makes it useful as a measurement point. Whether you may trade from there is a separate question: publicly documented geographic restrictions apply, and any production deployment should be confirmed with Polymarket first.
Use data that carries both the exchange timestamp and a receive timestamp. Every CryptoStruct tick file records both at nanosecond resolution from co-located capture, so a few lines of Python give you median and tail feed delay per venue — the script is in this guide.
It depends on your signal leg. If your bot reacts to CEX price moves captured in Tokyo and executes in London or the US, an RF route saved roughly 3 ms versus a leased line on Tokyo–London in the setup we measured. For strategies with second-scale decision windows a leased line is usually enough; for quote-race strategies the 3 ms decide who gets the stale quote.
Not in the crypto-HFT sense. The realistic bar is: right cloud region for execution, a feed handler near the signal origin, and a deterministic link in between. That setup captures most of the available infrastructure edge without exotic hardware.