Is there arbitrage between Kalshi and Polymarket?

Answered from live data · recomputed 2026-10-30 16:21 UTC

Much less often than the price gaps suggest. Right now MarketMaster's model flags 24 edges on events priced on both Kalshi and Polymarket. An edge here is the gap between a venue's price and our fair value for the same event. The average is +1.59% against the midpoint, and -1.11% once you buy at the ask and pay the taker fee. 6 of 19 are still non-negative after that, and 0 are on pairs whose two contracts settle on different terms, which makes the gap two different bets rather than a mispricing.

24cross-venue edges live now
+1.59%average raw edge
-1.11%average after taker fees
6/19still positive after taker fees
+1.46%if a resting order fills

Today's widest gaps, before and after fees

MarketVenueSideEdge vs midAt the ask, after feeIf a limit order fills
Falcons vs. Buccaneers: O/U 44.5 kalshi YES +3.94% +1.70% +3.50%
Falcons vs. Buccaneers: O/U 44.5 polymarket NO +3.56% -5.19% +3.56%
Notre Dame vs. Navy: O/U 55.5 kalshi YES +2.35% +0.10% +1.91%
Notre Dame vs. Navy: O/U 55.5 polymarket NO +2.15% -3.60% +2.15%
Will Alexandria Ocasio-Cortez win the 2028 Democratic presidential nomination? kalshi YES +1.87% +0.53% +1.87%
Will Jon Ossoff win the 2028 US Presidential Election? kalshi NO +1.69% +0.45% +1.69%
Will J.D. Vance win the 2028 Republican presidential nomination? kalshi YES +1.56% -0.57% +1.56%
Will Alexandria Ocasio-Cortez win the 2028 US Presidential Election? kalshi YES +1.48% +0.81% +1.48%
Baylor vs. UCF: O/U 47.5 kalshi YES +1.43% -0.81% +0.99%
Missouri vs Arkansas: Total Points — Over 47.5 points polymarket NO +1.36% -2.39% +1.36%
Missouri vs Arkansas: Total Points — Over 49.5 points polymarket NO +1.36% -3.39% +1.36%
Miami (FL) vs. North Carolina: O/U 51.5 kalshi YES +1.29% -0.95% +0.85%

Live, unfiltered, in the order the engine ranks them. Nothing here is a recommendation, and an edge that survives fees can still fail on depth — see below.

Taker or maker: who pays the spread

"At the ask, after fee" assumes you cross the spread: you buy at the ask and pay the venue's taker fee. That is the cost of certainty, and on today's board it is most of the edge. The alternative is to rest a limit order at the quoted price and wait. If it fills you pay no spread, and the maker fee is small or zero (Kalshi charges makers 0.0175·P·(1−P) on a short list of series and nothing elsewhere; Polymarket makers pay nothing and earn a rebate). On that basis 24 of 24 live edges are non-negative, averaging +1.46%.

The catch is the fill. A resting order tends to fill when the price is moving against it, so the trades you get are not a random sample of the ones you wanted. We are measuring this directly: every new signal is watched for 24 hours to see whether a resting order at our price would have filled, and how the filled ones resolved. Until that sample is large, treat the maker column as an upper bound, not an expectation.

The four things that eat a cross-venue edge

1. Fees

Kalshi charges takers 0.07 × contracts × P × (1 − P); Polymarket charges takers 3–5% on the same curve where fees are enabled, and part of its book is fee-free. On thin markets the spread you cross costs more than either fee. A gap quoted gross is not a gap you keep. On the live board above, fees alone move the average edge from +1.59% to -1.11%. There is a fuller breakdown on the venue comparison.

2. Depth

The top of the book is not the size you can fill. An edge measured against the best ask usually shrinks as you walk down the ladder, and on thin markets it can vanish in the first few hundred dollars. MarketMaster reports edge at the ask and edge at size for this reason.

3. Settlement dates that disagree

Two venues can list what looks like the same question and resolve it on different dates, against different sources. 0 of the 24 live pairs are flagged that way right now. A spread between contracts that settle differently is not arbitrage — it is two different bets.

4. Markets that are not the same market

The hardest one. "Will X happen by June 30" and "Will X happen by July 31" look almost identical to a naive matcher, and so do two meetings of the same teams on the same day. Every false match manufactures a spread that does not exist. Matching on venue identifiers rather than on title similarity is how MarketMaster avoids most of it, and mismatches that do slip through are what the settlement check catches.

How these numbers are produced

MarketMaster ingests both venues every few minutes, matches the same event across them, compares the stated resolution terms, and prices the difference after fees and depth. The board above is the same data the scanner and the public API serve. Method notes are on the methodology page.

Prices move constantly. Anything quoted from this page is a snapshot; the API is the current source of truth.

See the live board Get the data via API or MCP