Kalshi Arbitrage: How Cross-Venue Spreads Actually Work
If YES on Kalshi is priced at $0.56 and the equivalent NO on Polymarket is priced at $0.40, buying both legs costs $0.96 for a pair that always pays out exactly $1.00 combined — a four-cent spread before fees. That gap is the entire premise of Kalshi arbitrage: the same real-world event, priced independently by two different order books, occasionally disagreeing enough to be worth trading. The catch is what "before fees" is doing in that sentence, and how fast the gap closes once you're not the only one watching for it.
The mechanism: matching YES and NO across venues
Kalshi's YES and NO always sum to $1.00 by contract design — that part is fixed. Polymarket's YES/NO shares work the same way, summing to $1.00 on any given market. The arbitrage exists in the gap between venues, not within either one: when Kalshi prices YES at $0.56 and Polymarket prices the matching event's NO at $0.40, you're buying a combined position that always returns $1.00 for $0.96, regardless of which way the event resolves. Either YES pays $1 and covers the $0.44 NO cost with room to spare, or NO pays $1 and covers the $0.56 YES cost — the position is delta-neutral once both legs are filled.
The hard part is the "matching" step. Kalshi and Polymarket write their own resolution criteria, and two markets that look identical on the surface — "Will the Fed cut rates in September 2026?" — can have different tie-breaking rules, different data sources for settlement, or different cutoff times. An arbitrage built on markets that don't resolve identically isn't arbitrage; it's two uncorrelated bets that happen to look similar.
Calculating fee drag before you trade
Both venues take a cut, and the cut has to come out of the spread before you know if a trade is worth placing. Kalshi's taker fee is round_up(0.07 × contracts × price × (1−price)), maxing out at $1.75 per 100 contracts when a leg prices at $0.50. Polymarket's 2026 category-based taker fees range from about $0.75 per 100 shares (sports) up to $1.80 per 100 shares (crypto), with geopolitical markets fee-free — see docs.polymarket.com/trading/fees for the current schedule, since it's a new system that's still being adjusted.
Worked example: the $0.56 / $0.40 spread above, on a 100-contract pair. Kalshi's fee at $0.56 is exact: round_up(0.07 × 100 × 0.56 × 0.44) = round_up(1.7248) = $1.73. Polymarket doesn't publish its exact per-price fee formula, only that the taker fee is symmetric around 50 cents and capped by category — politics/finance/tech tops out at $1.00 per 100 shares. At $0.40, close enough to the midpoint that the fee should sit near that category cap, treat $1.00 as the conservative estimate for the Polymarket leg rather than a precise figure. On that basis, combined fees run close to $2.73 against a raw spread of $4.00 ($0.96 × 100 = $96 cost vs. $100 payout), leaving a net edge in the neighborhood of $1.27 — real, but a fraction of what the raw spread suggested, and worth re-checking against the live fee schedule at docs.polymarket.com/trading/fees before sizing a position. This is the same math covered in more general form in arbitrage fee math.
Why the visible edge usually isn't the tradeable edge
Three things eat into a spread that looks good on a snapshot:
- Depth. The quoted price is usually for the first few contracts. Filling a meaningful size means walking up the book, and the average fill price is worse than the top-of-book price you saw.
- Execution lag. Placing two orders on two different venues isn't instantaneous. If the first leg fills and the second leg's price moves before you can execute it, you're left holding a directional position instead of a hedged one.
- Everyone else is watching too. Cross-venue price gaps between Kalshi and Polymarket get picked off fast by anyone running an automated scanner. The spreads that persist long enough to screenshot rarely persist long enough to fill both legs at the quoted price.
None of this makes cross-venue arbitrage a scam or a myth — it's a real, ongoing source of edge in prediction markets generally, covered at the category level in prediction market arbitrage. It just means the honest version of the strategy is a speed-and-fee-math game, not a free-money glitch.
Sizing the trade once the edge clears fees
Assume the $1.27 net edge on 100 contracts from the example above checks out. The next question is how much capital to actually commit, and that depends on two things the raw spread calculation doesn't capture: available depth at that price on both books, and how long the position has to sit before the event resolves. A four-cent gap on a market resolving in three days ties up capital for three days for a roughly 1.3% return before compounding — reasonable if you can repeat it across multiple matched pairs, thin if it's a one-off. A four-cent gap on a market resolving in six months is a much worse use of capital unless the position can be unwound early by selling both legs back into their respective books.
Depth matters more than the headline number. If the $0.56 Kalshi quote is only good for 20 contracts before the book thins out and the next 80 fill at $0.61, the effective average price on the Kalshi leg changes the whole calculation. Checking depth on both venues before sizing a position — not just the top-of-book price — is the difference between a spread that works on paper and one that works when you actually fill it.
| Spread scenario | Kalshi taker fee (exact) | Polymarket taker fee | Net edge direction |
|---|---|---|---|
| Kalshi YES $0.56 / Poly NO $0.40 (100 ct) | $1.73 | Near category cap (~$1.00, politics/finance) | Positive, ~$1.27 |
| Kalshi YES $0.90 / Poly NO $0.08 (100 ct) | $0.63 | Tapers toward zero near the 1¢/99¢ extreme | Depends on raw spread size |
| Kalshi YES $0.50 / Poly NO $0.48 (100 ct) | $1.75 | Near category cap (highest fee zone) | Often net negative — narrow raw spread, both fees maxed |
The third row is the one that trips people up: a two-cent-looking spread at the 50-cent midpoint is exactly where both venues charge their highest per-contract fee, so it's frequently net-negative once fees are counted. Spreads near the price extremes carry lower Kalshi fees and a Polymarket fee that tapers toward zero, so a smaller raw gap can still clear. Fee-aware scanning, not just price-gap scanning, is what separates a real arbitrage signal from a mirage.
Where Kalshi differs from Polymarket structurally
Beyond pricing, the two venues settle differently — Kalshi clears in USD through Kalshi Klear LLC, a federally regulated clearinghouse, while Polymarket settles in USDC on Polygon and resolves disputes through the UMA optimistic oracle rather than an internal team. Those structural differences affect withdrawal timing and dispute risk on either leg of an arb trade, not just the price. A full side-by-side comparison is in Polymarket vs Kalshi. If the mechanics of Kalshi's own order book and pricing aren't second nature yet, start with the Kalshi trading guide before layering a cross-venue strategy on top.
Running the numbers before you trade
Manually checking dozens of matched market pairs across two venues for a four-cent spread isn't a realistic workflow for a human staring at two browser tabs. PolyMarketMaker's arbitrage scanner watches Polymarket US, Polymarket global, and Kalshi simultaneously, applies each venue's actual per-market fee schedule to the raw spread, and surfaces only the pairs where the edge survives fees — plus a backtester and paper-sim mode to validate the approach before funding a live account. PolyMarketMaker — Simulation $149/mo, Live Trading $299/mo.
FAQ
What is Kalshi arbitrage?
Buying YES on one venue and the matching NO on another (usually Polymarket) for the same real-world event, when the combined cost after fees is under $1.00 per matched contract pair.
Why do Kalshi arbitrage opportunities disappear so fast?
Active order flow and automated scanners on both venues close price gaps quickly — the first trader to fill both legs captures the spread, and that fill moves both books back toward parity.
How much does fee drag cut into Kalshi arbitrage profit?
Kalshi's taker fee peaks at $1.75 per 100 contracts at 50 cents; Polymarket's 2026 category fees run roughly $0.75–$1.80 per 100 shares. Both legs' fees have to come out of the raw spread before it's a real edge.
Is Kalshi-Polymarket arbitrage risk-free?
No. Resolution-criteria mismatches between the two venues' market write-ups, execution slippage between filling each leg, and settlement-timing differences all create real risk.
Scan the spread before it closes
PolyMarketMaker's arbitrage scanner checks Kalshi against Polymarket US and global in real time, with each venue's actual fee schedule applied automatically. PolyMarketMaker — Simulation $149/mo, Live Trading $299/mo.
This article is for educational purposes only and is not financial advice. Trading involves risk of loss.