Strategy
Cross-platform arbitrage in prediction markets
When the same question prices differently on Polymarket and Kalshi, a sharp trader can sometimes lock in a profit. Here is how spreads form, when they're real, and how to size them.
If Polymarket prices "Will Trump win the 2028 GOP primary?" at 65 cents and Kalshi prices the same question at 58 cents, there's a 7-cent spread. Buy Yes on Kalshi at 58 cents, buy No on Polymarket at 35 cents (since Yes is 65), and you've spent 93 cents to guarantee receiving $1 at resolution. A 7% return — assuming the trade really does what you think it does.
The "assuming" is doing a lot of work in that sentence. This article unpacks what actually has to be true for a cross-platform arb to work, and why most apparent arbs aren't real ones.
Why spreads exist at all
In efficient markets, the same security trades at the same price everywhere. Prediction markets are not efficient — yet — for several reasons:
- Different participants. Polymarket is global and crypto-native; Kalshi is US-only and traditional finance. The two trader populations are nearly disjoint.
- Different liquidity. The same market might have $10M of volume on Polymarket and $200K on Kalshi. Thin sides drift further from fair value.
- Capital moves slowly between platforms. You can't instantly move dollars from Kalshi to USDC on Polymarket. ACH takes 1–3 days; bridging crypto adds its own friction. Friction = persistent spreads.
- Different resolution criteria. Often the spread is a real reflection of difference in what each market is asking, not a free lunch.
Real arb vs apparent arb
Most "obvious" cross-platform spreads aren't true arbs because the resolution criteria differ in subtle ways. Examples:
- A Polymarket market might resolve based on a specific news source; the Kalshi equivalent might require an official government statement.
- The deadlines might differ by hours or days.
- One market might count partial outcomes; the other might not.
Before treating a spread as arbitrage, read both markets' rules side by side. If the rules truly resolve identically in every scenario, the spread is real. If there's any scenario where one resolves Yes and the other resolves No, you're not arbitraging, you're taking on basis risk.
The costs that eat the spread
A 7-cent gross spread can become a 1-cent net spread once you account for:
- Trading fees. Kalshi charges per-contract; Polymarket has its own fee schedule. Round-trip costs on small markets can run 1–3 cents.
- Bid-ask spread. The "price" you see is usually mid-market. To enter you pay the ask; to exit you take the bid. Add 1–2 cents per leg on liquid markets, more on thin ones.
- Capital cost. Money locked until resolution can't be deployed elsewhere. If resolution is six months away, you're earning 7% on capital that could have earned 5% in T-bills. Net 2%, not 7%.
- Currency / banking friction. Moving between fiat (Kalshi) and stablecoins (Polymarket) has fees and time delays.
When the trade works
Cross-platform arb is most viable when:
- The spread is large (10pp+) and resolution is relatively soon (under 90 days), so the time-value drag is small.
- Resolution criteria are word-for-word identical on both sides.
- You already have capital on both platforms. If you have to fund a new account to take the trade, the friction usually kills it.
- The market has decent liquidity on both sides. Otherwise your execution slippage will eat the spread.
In practice
We surface candidate spreads on our spreads page, updated every minute. The list is heuristic — we match by title similarity, so verify the rules manually before treating any flagged market as a true arb.
Our experience: of the spreads our matcher flags, roughly 30–40% are genuine arbs worth investigating. The remainder are the same question phrased similarly but resolving on different criteria. The work of distinguishing the two is where the edge is.