Two markets.
One live dataset.
Polymarket and Kalshi, side by side. Prices are the YES side of each market, read live from the Polymarket order book and the Kalshi quote, every 30 seconds. A midpoint is the market's implied chance, not a result. Where a quote is blocked (closed, one-sided, or too wide) no number is shown, and nothing is ever shown as zero. Official returns are not in this feed; check them separately.
How to drive this: numbers refresh on their own. Each table row is one race, both exchanges; press the race name to open its history line for this device. Press Refresh now to pull early; press Projection to enlarge for a TV.
Market comparison
Same contract on both exchanges, settlement differences flagged. The P−K gap is the Polymarket midpoint minus the Kalshi midpoint in percentage points. It is a difference in two displayed chances, nothing more.
| Contract | Polymarket | Kalshi | P−K gap | Quality state | Source |
|---|
Movement, last 10 minutes
No move of 5 points or more yet. Alerts compare two valid quotes on the same exchange at least 60 seconds apart.
How this feed is built
Show the numbers (0 quotes)
| Race | Exchange | Bid | Ask | Mid | Spread | Volume | Quality | Observed (UTC) |
|---|