// EXECUTION & FEES
Kalshi vs Polymarket fees: the total cost of a fill
2026-07-16 · Mithril
Kalshi and Polymarket list many of the same events, at prices that rarely agree to the cent. The obvious move — buy wherever the displayed price is lower — is wrong often enough to cost real money, because the venues charge you in completely different ways. Kalshi adds an explicit, price-dependent taker fee on top of the displayed price. Polymarket charges no exchange trading fee on most markets, but makes you pay through spread, book depth, and (depending on your setup) Polygon gas.
This post does the comparison properly: same trade, both venues, net cost after everything, at several price points.
The two cost models in one table
| Kalshi | Polymarket | |
|---|---|---|
| Trading fee (taker) | 0.07 × contracts × price × (1−price), rounded up to the next cent | None on most markets |
| Trading fee (maker) | Generally none on most markets | None on most markets |
| Price quoting | Cents, 1–99¢ | Decimals, 0.01–0.99 |
| Other costs | Spread + impact | Spread + impact + Polygon gas + USDC on/off-ramp |
| Fee shape | Peaks at 50¢, vanishes at tails | Flat (zero) — costs live in the book |
Full single-venue treatments: Kalshi fees explained and Polymarket fees and gas explained.
Worked examples: 100 contracts, taker, at the displayed price
Assume enough depth at the touch on both venues (we relax this below), and compare net cost per contract. Kalshi fee = 0.07 × 100 × p × (1−p), rounded up to the next cent on the order.
Near 50¢ — Kalshi's fee peak
Kalshi displays 41¢, Polymarket displays 0.42.
Kalshi: 100 × $0.41 = $41.00
fee 0.07×100×0.41×0.59 = $1.6933 → $1.70
net = $42.70 (42.70¢ / contract)
Polymarket: 100 × $0.42 = $42.00 (42.0¢ / contract)
Polymarket wins by 0.7¢ per contract despite displaying a price 1¢ worse. Near 50¢, Kalshi's fee is ~1.7¢ per contract, so Kalshi needs to display roughly 2¢ better than Polymarket just to break even.
At the tails — Kalshi's fee nearly vanishes
Kalshi displays 9¢, Polymarket displays 0.10.
Kalshi: 100 × $0.09 = $9.00
fee 0.07×100×0.09×0.91 = $0.5733 → $0.58
net = $9.58 (9.58¢ / contract)
Polymarket: 100 × $0.10 = $10.00 (10.0¢ / contract)
Kalshi wins by 0.42¢ per contract. At tail prices the fee is small enough that a 1¢ displayed advantage survives it.
Same displayed price — the fee decides
Both venues display 65¢ for 100 contracts.
Kalshi: $65.00 + fee 0.07×100×0.65×0.35 = $1.5925 → $1.60
net = $66.60 (66.60¢ / contract)
Polymarket: $65.00 (65.0¢ / contract)
At equal displayed prices, Polymarket is always net-cheaper for a taker on a no-fee market — by exactly the Kalshi fee, here 1.6¢ per contract.
The break-even displayed-price gap
For a taker, Kalshi is net-cheaper only when its displayed price beats Polymarket's by more than the per-contract fee (plus rounding). Roughly:
| Price region | Kalshi fee / contract | Kalshi must display cheaper by |
|---|---|---|
| ~10¢ or ~90¢ | ~0.6¢ | ≥ 1¢ |
| ~30¢ or ~70¢ | ~1.5¢ | ≥ 2¢ |
| ~50¢ | ~1.75¢ | ≥ 2¢ |
Since prediction-market prices move in 1¢ ticks on Kalshi, the practical rule of thumb: near mid-range prices, a 1¢ Kalshi advantage is an illusion; a 2¢ advantage is marginal; the tails are where Kalshi's displayed edge is real.
What the simple math leaves out
Three complications regularly flip the answer back:
- Depth. The comparison above assumed your full size fills at the touch on both venues. If Polymarket shows 0.42 with 150 shares offered and you need 1,000, your average fill might be 0.45 — and Kalshi's fee-inclusive 42.7¢ wins after all. Net price must be computed at your size, walking both books. See Slippage in thin prediction markets.
- Maker treatment. Both venues generally charge makers nothing on most markets, so for passive orders the fee comparison mostly drops out and the question becomes where you are likelier to get filled at your price — a maker-taker question, not a fee question.
- Capital location. Polymarket requires USDC on Polygon; Kalshi requires USD at the exchange. If your capital is in the wrong place, on/off-ramp costs and delays can swamp a sub-cent routing edge — which also constrains cross-venue arbitrage.
Do the comparison per order, or automate it
For any single trade, the arbitrage calculator will net out both venues' costs side by side, and the /compare/kalshi-vs-polymarket-fees page keeps the standing comparison. But if you trade programmatically, this is a per-order computation against two live books — exactly the job of a smart order router.
That is what Mithril does on every order: walk both books at your size, add each venue's fees, fill at the net-cheaper venue (splitting when that's better), and hand back an execution receipt itemizing the comparison — so whether routing saved you anything is your number, not our claim. It is free during beta.
Fee schedules change. Figures above reflect the venues' public documentation as of July 2026 — always confirm against their own docs before trading real money.
One API + MCP for Kalshi and Polymarket
Fee-aware routing, unified market IDs, and hard server-side risk limits — live today, free during beta.