
Scanners advertise 20-cent arbitrage between prediction markets. We run one, so we audited it: every Polymarket–Kalshi pair our matcher links, plus a six-month log of every sustained gap on two flagship events. The honest answer: real cross-venue gaps have a median of 0.78¢, the fat tail is almost entirely stale quotes, and the 2026 fee changes put the break-even near 3¢ at mid prices. Arbitrage exists. Free money mostly does not.
We maintain human-reviewed links between the same real-world event on different venues — it is what powers our live arbitrage scanner. On August 30, 2026 that graph linked 341 events to both Polymarket and Kalshi, of which 35 had actively tradeable, outcome-matched markets on both sides: 186 outcome pairs priced between 2¢ and 98¢ on both venues.
Read naively — every synced quote taken at face value — the pairs look like a candy store: median gap 1.2¢, one pair in nine differing by 5¢ or more, a headline “38¢ arbitrage” on an MLB award, and 59% of all pairs showing paper profit after fees. This is roughly what any arbitrage scanner on the internet is showing you right now.
Then we applied one filter: both venues' quotes must have printed a change within 24 hours.
Fresh-only distribution: median 0.78¢ · 75th percentile 1.5¢ · 90th percentile 2.5¢ · maximum 7.5¢. The filter is insensitive to where you draw it — widening it to 72 hours adds just two pairs — because quotes here are either live or abandoned.
“Stale side age” is how long the cheaper-looking quote had gone without printing a change — up to 124 days. A four-month-old price on a longshot manager candidate is not an arbitrage leg; it is a fossil. Zero of the twelve pass the 24-hour gate.
This is the study's most transferable finding, and it indicts our own naive read too: the fat tail of every cross-venue arbitrage feed is a data artifact. Longshot legs on multi-outcome markets can go weeks without a trade; a scanner that compares last prints without checking their age manufactures double-digit “spreads” out of nothing. If a prediction-market arbitrage number looks amazing, the first question is not “how do I trade it” but “when did each side last print.”
The three biggest gaps that did pass the freshness gate we re-checked by hand against both venues' public APIs the same evening — order books, not last prints. All three are real. None is a money printer. Each fails in an instructive way.
Polymarket 9.5¢ vs Kalshi 17¢ on the last prints — a 7.5¢ gap, the largest fresh one on the board. The executable version: buy YES on Polymarket at the 10¢ ask, buy NO on Kalshi at the 87¢ ask, total 97¢ for a guaranteed $1 — 3¢ gross. Kalshi's taker fee takes ~0.8¢, Polymarket's 0–0.4¢ depending on category. Net ≈ 1.8–2.2¢ per share, locked until New Year's Eve, on a thin book quoted 4¢ wide. Annualized it is a mid-single-digit return that one fill of slippage erases.
Polymarket 49.2¢ vs Kalshi 44¢ — 5.2¢ apart on two of the most heavily traded political markets anywhere, sitting in plain sight. Executable: buy Kalshi YES at 44¢, buy Polymarket NO at 50.9¢, total 94.9¢ → 5.1¢ gross. Fees take ~2.7¢ of it. What remains is ~2.4¢ locked for roughly two years — barely over 1% a year, below Treasury bills. The gap is not a mispricing anyone forgot; it is the market's price for parking collateral on two venues until mid-2028.
12.5¢ vs 17¢ on last prints looks like 4.5¢. The books say otherwise: Polymarket asks 13¢, Kalshi's YES bid is 15¢ — the executable lock is 13¢ + 85¢ = 98¢, a 2¢ gross gap that fees cut to under 1¢, held for a season. The last-print gap overstated the tradeable gap by more than double.
That is the whole survivor class: one thin real gap worth pennies, one interest-rate trade wearing an arbitrage costume, and one book-vs-print illusion. Of 136 fresh pairs, 68 show positive paper profit after fees — but the median such “profit” is around a cent, before slippage, on legs that must be held to resolution. Anything bigger disappears within hours — which is exactly what the six-month log shows next.
Snapshots can lie by timing, so since March we have continuously reconstructed cross-venue gaps on two flagship events — the 2026 Brazilian presidential election (still live) and the 2026 World Cup winner (observed March 9 – April 28) — pairing both venues' price histories tick-for-tick, about one observation every 7 minutes. An episode is a contiguous stretch where the same outcome traded at least 2¢ apart on both venues. Six months produced 385 of them.
Three episodes are worth telling. The biggest: on May 13, Flávio Bolsonaro's Polymarket price briefly sat 10.8¢ under Kalshi's — and the window lasted 108 minutes. The stubbornest: Iraq to win the World Cup held a flat 4¢ gap for 26 straight days — persistent precisely because harvesting it meant locking ~96¢ per share on the expensive side for months to earn four cents. And the earliest: in the first week of March, Lula's two prices went through a five-hour dislocation that averaged 8¢ and peaked above 10¢ — a size that, by summer, had simply stopped appearing.
The shape of the whole log says the same thing: gaps are frequent (104 in March across the two events, 52 in August on the one still live), small (half peak under 2.9¢), brief (half gone in 4.5 hours), and directional — when the venues disagreed on these events, Polymarket was cheaper two times out of three. Almost exactly half the episodes (50.1%) peaked above the worst-case fee wall described next; the other half never contained even theoretical profit.
Both venues now charge takers, and both fees peak at 50¢. Kalshi's published schedule is 0.07 × price × (1 − price) per contract, rounded up per order — at most 1.75¢ at 50¢. Polymarket, fee-free for years, introduced taker fees in 2026 with the same shape and a category rate: 0.04 on politics, finance and tech, 0.05 on sports, economics and culture, 0.07 on crypto — geopolitics still free. A cross-venue lock pays taker on both legs, so the gap has to clear this wall before slippage even enters:
Two-leg taker fees per $1 share with both legs near the stated price, from each venue's published formula. Rule of thumb: near the middle of the range a gap needs ~3¢; under 15¢ it needs ~1¢.
This is recent. Polymarket's fee rollout landed between March and July 2026 — the minimum viable gap roughly doubled mid-study — and 54% of the episodes in our log peaked below 3¢. A strategy backtested on 2025 prices, when one whole side of the trade was free, no longer describes the world.
Ranked by how often we actually catch each one in our own pipeline:
None of these is exotic. They are the default state of cross-venue data, which is why this page's headline numbers are gated, verified, and small — and why anyone quoting ungated spreads is, knowingly or not, quoting fiction.
The honest checklist, straight from the data: demand both quotes fresh (we use 24 hours; tighter is better), demand the gap clear 3¢ at mid prices / 1¢ on longshots after reading both books rather than last prints, verify resolution text and dates on both venues yourself, size against the thin side's book, and annualize against the capital-lockup period before comparing to just holding T-bills. Windows that clear all five bars existed in our log — mostly in fast news weeks like March's Brazil repricing — and they lasted hours, not days.
Our live scanner applies the matching, fee math and deadline flags from this study to the current board, free, updated every few minutes. When it shows little, that is not the tool failing — that is the measurement.
Yes, but it is small, short-lived, and mostly already taken. Across every Polymarket–Kalshi pair we could match with fresh quotes on both sides (136 outcome pairs on August 30, 2026), the median price difference was 0.78 cents and only 1.5% of pairs differed by 5 cents or more. Over six months of continuous logging on two flagship events we recorded 385 sustained gaps of at least 2 cents; their median peak was 2.9 cents and half were gone within 4.5 hours.
Arbitrage is a property of a pair of venues, not of one venue. The Polymarket–Kalshi pair has by far the most matched, liquid markets, so it produces the most measurable gaps. In our six-month log, Polymarket was the cheaper side 68% of the time. Since the 2026 fee changes on both venues, a gap needs to clear roughly 3 cents at mid-range prices (about 1 cent for longshots) before taker fees alone are covered.
Small. With both quotes fresh within 24 hours, the median difference across matched outcomes was 0.78 cents, the 90th percentile 2.5 cents, and the largest verified difference 7.5 cents — on a thin Venezuela market. Differences above 8 cents in any scanner are almost always one stale quote, a different contract, or a different deadline, not free money.
On the two events we logged continuously for six months, the median sustained ≥2-cent gap lasted about 4.5 hours; 12% closed within an hour, and 14% lasted more than a day. The longest was 26 days — a 4-cent gap on a World Cup longshot, which persisted because capturing it required locking up roughly 96 cents per share for months on the expensive side.
Different jurisdictions and user bases (Kalshi is a CFTC-regulated US exchange; Polymarket settles in USDC on-chain), different fee schedules, different collateral costs, and — critically — sometimes different resolution rules. The same headline event can settle differently on each venue, which is a real risk, not a mispricing. Persistent gaps on long-dated markets mostly reflect the cost of locking capital, not an error.
Matching. Venue events are linked by our canonical-event graph (human-reviewed links, the same ones behind the scanner); outcomes are paired by a matcher with guards against aggregate-vs-component merges (“≤47” is not “47”). Census prices are each venue's synced last print, 2¢–98¢ band, taken August 30, 2026; the freshness gate requires both sides' rows to have changed within 24h, which also excludes dead books — a bias we accept, since an untradeable quote is not an opportunity. The three headline pairs were additionally verified against live order books via both venues' public APIs the same evening.
Episodes. Reconstructed from paired price histories (median observation spacing 6.7 min) on the two events tracked since March. Rail prices (<0.5¢, >99.5¢) are dropped; single-tick spikes >12¢ off a rolling median-of-5 are treated as bad ticks; anything implying a gap over 20¢ is discarded as data error rather than reported as arbitrage; a capture gap breaks an episode rather than being assumed through. Threshold: sustained ≥2¢. These parameters all bias the log against finding arbitrage — deliberately.
Limits. Census gaps use last prints, not executable books (the three verified cases show how much that flatters gaps); episode coverage is two events, not the whole market; fees are the venues' published schedules as of August 2026; slippage, withdrawal frictions and venue/custody risk are not modeled — every one of those omissions makes arbitrage look better than it is.
Data. The full episode log is downloadable: episodes.csv (385 rows: event, outcome, cheap/rich venue, peak and average gap, timestamps, observation count), licensed CC BY 4.0 — cite “PredictMarketCap” with a link. Fee formulas: Kalshi fee schedule · Polymarket fee docs.
Live prices, cross-platform comparison, and whale trade tracking on PredictMarketCap.