Polymarket and Kalshi both run binary markets on the same real-world events. When the Federal Reserve meets, both platforms carry "Will the Fed cut rates?" contracts. When election season runs, both price the same candidates against the same timeline. In theory, identical questions with identical $1.00 settlements should carry identical prices everywhere.
In practice, they don't. The same market can trade at 55¢ on one platform and 64¢ on another simultaneously - not briefly, as a transient glitch that self-corrects in seconds, but persistently, across hundreds of markets, every day both platforms are live. That 9-cent gap isn't a data error. It's structural. And understanding why it exists - and why it won't disappear on its own - is the foundational question behind cross-exchange arbitrage.
Order books don't synchronize themselves
Every prediction market platform runs its own independent order book. Polymarket's order book and Kalshi's order book are completely separate systems with no shared data feed, no automatic pricing relay, and no connection between them. When someone buys YES on Polymarket, that trade updates Polymarket's price and nothing else. Kalshi's price is determined entirely by Kalshi's traders responding to Kalshi's own order flow.
For two platforms to carry identical prices, they'd need identical participant behavior: the same people, with the same information, making the same decisions at the same time in both books. That never happens. The platforms have different users, different fee structures, different liquidity depths, and different information flows. Divergence isn't the anomaly - convergence would be.
Price synchronization has to be done by external capital that deliberately straddles both books: buying on the cheaper platform, selling NO (implicitly) on the more expensive one, and collecting the gap at resolution. That's exactly what arbitrage is. The size and speed of that correction depends entirely on how much capital is actively doing it - and in practice, that pool is small enough that meaningful spreads persist for hours.
Two communities forming independent prices
Kalshi operates as a federally regulated derivatives exchange under direct CFTC oversight. Its user base is predominantly US-based, has passed full KYC verification, and skews toward financially-oriented traders - people more comfortable with traditional derivatives, interest rate markets, and structured products than with wallets and on-chain settlement.
Polymarket is crypto-native. Its users transact in USDC, interact via Polygon wallets, and span jurisdictions worldwide. The platform grew organically out of the DeFi trading community - participants who are fluent in crypto infrastructure and accustomed to peer-to-peer financial markets that move fast and settle on-chain.
These two communities don't necessarily form the same view of the same event. On a Federal Reserve rate decision, Kalshi's traders may be running macro models and reading the Fed's dot plot closely. Polymarket's global, crypto-native audience brings different reference frames, different baseline priors about central bank behavior, and different reaction functions to the same underlying data.
Persistent soft disagreement between two distinct communities produces persistent price divergence. Neither side has to be wrong for a spread to exist - they just have to weigh the same evidence differently. This isn't random noise; it's a systematic, repeatable difference in who is forming prices on each platform.
Regulatory access limits the arbitrage pool
For a spread to close, capital has to flow through both books simultaneously. That requires a trader who can access both platforms - and the barriers to doing that are real.
Kalshi requires US residency and full KYC verification. Polymarket carries USDC and Polygon wallet requirements that many traditional traders won't navigate. State-level restrictions add another layer of exclusion for certain US residents. Non-US traders, depending on jurisdiction, may not be able to access one or both platforms at all. And even for traders who can technically access both, the operational overhead of managing positions across two completely different platforms - two different account infrastructures, two different settlement mechanics, two different APIs - creates meaningful friction.
The practical result is that the pool of capital capable of simultaneously deploying on both Polymarket and Kalshi is significantly smaller than the total capital active on either platform alone. A smaller arbitrage pool means spreads close more slowly and can be larger at equilibrium. In a fully open market with unlimited capital mobility, a 9-cent gap would be competed to the fee floor within minutes. With real-world friction, the same spread can sit for hours.
The right panel of the chart below models this relationship directly: as active arbitrage capital increases, equilibrium spreads compress toward the fee floor but never reach zero. The fee floor itself - roughly 2.75¢ at a 50¢ midpoint for the Polymarket Politics plus Kalshi taker combination - is a hard structural minimum. No matter how much capital is in the arbitrage pool, unprofitable spreads won't attract capital.

Cross-exchange price divergence - spread lifecycle and persistence
The left panel shows the typical lifecycle of a spread around a news event: one platform reprices fast, the other catches up slowly, and the gap between them is the tradeable window.
News hits different books at different speeds
When market-moving information arrives, both platforms reprice - but not simultaneously and not at the same rate.
Polymarket's crypto-native, continuously-active audience tends to react quickly to high-profile announcements. A Fed press release, an election night result, a surprise jobs report - these move Polymarket's order book within minutes as active traders flood in with new orders. Kalshi's more traditional trading community may include participants who process the same information more slowly, aren't watching a terminal continuously, or are positioned in ways that make them slower to act.
The platform that reprices first creates the spread. The platform that lags follows at its own pace. In the interval between those two repricing events - which can run from a few minutes to several hours depending on the event type and the liquidity depth of the specific market - the spread is real, stable, and profitable to close.
The timing lag isn't uniform or predictable in advance. It varies by event type, by the composition of who happens to be active in each book at that moment, and by the liquidity depth of the specific market. What's consistent is the direction: spreads open when platforms reprice at different speeds, and close as the lagging book eventually catches up. The arbitrage window is exactly that interval.
What this looks like in a real trade
The worked example from the arbitrage mechanics article captures this precisely. With Polymarket YES at 55¢ and Kalshi YES at 64¢ on the same Federal Reserve rate question:
- Buy 100 YES on Polymarket: $55.00
- Buy 100 NO on Kalshi at 36¢: $36.00
- Total cost: $91.00
- Guaranteed resolution payout: $100.00
That 9-cent gap reflects genuine price fragmentation between two communities that have reached different equilibria on the same question. After fees - $0.99 on the Polymarket leg, $1.61 on the Kalshi leg - net profit is $6.40 on $91.00 invested: 7.0% net ROI.
The spread doesn't exist because one platform got the "right" answer and the other got it wrong. It exists because two separate order books, with different participants, different information processing speeds, and different structural incentives, have temporarily landed in different places. The arbitrage trade closes that gap and locks in the difference.
Why the gap won't close to zero
Spreads between Polymarket and Kalshi won't be arbitraged to zero. The same structural conditions that create them also limit how far they can narrow.
The fee floor sets a hard lower bound. Even with unlimited arbitrage capital and perfect execution, spreads below the combined fee cost for both legs are unprofitable and won't attract capital. That floor sits at roughly 2.75¢ at a 50¢ midpoint on the Polymarket Politics plus Kalshi taker combination - a permanent structural minimum imposed by the fee schedules of both platforms. No trading strategy can profitably close a spread smaller than this; the fee drag absorbs the entire gross return before any net profit is realized.
Above the fee floor, the limited arbitrage pool creates a soft equilibrium. Spreads compress as capital flows in but stabilize at whatever level the available capital runs out before the gap is fully closed. On high-liquidity, heavily-watched markets - a major election, a Fed meeting - the equilibrium spread is tighter because more capital is actively monitoring and trading both books. On lower-liquidity markets covering niche events, the equilibrium can sit at 5–8¢ or more, simply because there isn't enough active arbitrage capital to push it further down.
The user base divergence and regulatory barriers are durable. CFTC regulation isn't going away. The crypto onboarding friction on Polymarket isn't disappearing. The two trading communities will continue to bring different priors and different information processing speeds to the same markets. These are structural facts about how prediction markets are organized, not temporary conditions waiting to resolve.
The result is a market that offers persistent, repeatable opportunities of the type the worked example describes - not because the market is broken, but because it's genuinely fragmented across two structurally different platforms, with a limited pool of capital bridging the gap.
Top comments (0)