Kalshi vs Polymarket arbitrage, step by step
Kalshi and Polymarket both sell contracts that pay $1 if an outcome happens. When YES on one exchange plus NO on the other costs less than a dollar, you can buy both and collect the difference at settlement no matter what happens on the field. There is no odds conversion to do, which makes this the cleanest arb there is on paper. In practice the fees decide whether a given gap is worth taking, and the rules on the two market pages decide whether it is really the same bet. This guide goes through all of it with the actual numbers.
The one rule: YES plus NO under a dollar
Every contract on either exchange settles to $1 or $0. If you hold one YES contract on Kalshi and one NO contract on Polymarket for the same outcome, exactly one of them pays $1 at settlement. So the pair is worth $1 for certain, and the arb is simply paying less than $1 for it.
Kalshi Steelers win YES @ 53¢ Polymarket Steelers win NO @ 43¢ Cost per pair 96¢ → pays $1 → 4¢ locked per pair (4.2% on the 96¢)
You buy the same number of contracts on each side, not the same number of dollars. 500 pairs at those prices cost $480 and pay $500. The arbitrage calculator with both legs set to Cents gives you the dollar split; the contract count is the payout you are targeting.
Why the two exchanges disagree
Both are order books, so the price you see is where the last trade printed, and what you can actually buy at is the ask. The two crowds are different: Kalshi is a US-regulated exchange with a mostly American, mostly dollar-funded user base; Polymarket grew up global and crypto-native and only added a regulated US app in May 2026, so its markets are moved by a different set of traders at different hours. Liquidity is uneven too. A game can have $200,000 in the book on one exchange and a few thousand on the other, and the thin one moves further on the same news. Add the fact that each exchange's fee structure shapes who bothers to trade where, and gaps of 2–5¢ between them on the same game are common, especially in the hours before kickoff.
Before you start: accounts and funding
You need funded accounts on both, in advance. An arb lasts minutes and there is no time to move money. Kalshi is regulated by the CFTC, open to anyone 18 and over, and funds by ACH for free or by debit card for a 2% fee; its sports contracts are currently unavailable in a handful of states that are contesting them (Arizona, Illinois, Maryland, Massachusetts, Montana, Nevada, New Jersey and Ohio as of this writing). Polymarket's US app launched in May 2026, is live in every state except Nevada as of this writing, focuses on sports, and funds by debit card or bank transfer; the global Polymarket runs on USDC on Polygon, which means holding crypto and paying network fees to move it. Keep a working balance on both sides that covers the biggest arb you intend to take, because settled money comes back only when the market resolves.
Step by step
- Find the same market on both exchanges and read both rule pages. Same game, same outcome, same treatment of overtime and ties, same resolution source, and compatible deadlines for a postponed or cancelled game. Two markets with the same title can still resolve differently on a technicality.
- Look at the asks, not the last price, and at the size available at each ask. The gap you can actually trade is Kalshi ask + Polymarket ask; the gap between last-traded prices is a story about the past.
- Decide the contract count. It is the smaller of what is available at the two asks and what your balances allow. Run the calculator with both legs in Cents to see the dollar cost and the locked amount.
- Place the thinner side first. Usually the exchange with less depth at the price, because that is where the ask will vanish first. A limit order at the ask fills now (you are the taker). A limit order resting below the ask is cheaper in fees (you are the maker) but may not fill, so use it only for the first leg and only when the gap is wide enough to survive a partial fill.
- Place the second side immediately, as a taker, because it has to fill now. If the ask moved while you were placing the first leg, switch the calculator to "Already placed leg A" and hedge the contracts you actually hold at the price that is actually there.
- Check the counts match. If you hold 500 YES on Kalshi and 420 NO on Polymarket, you have an 80-contract naked position. Hedge the difference or sell it back.
- Hold to settlement. Both exchanges pay $1 per winning contract when the game resolves. You can also close early by selling both sides if the prices converge, but that is two more trades with two more fees, and most of the time holding is the better answer.
The fee math decides everything
Both exchanges charge a trading fee on orders that take liquidity, and both use the same shape of formula: a rate × price × (1 − price) per contract, which is highest at 50¢ and falls away toward the extremes. Kalshi's taker rate is 0.07, its maker rate on sports markets 0.0175, rounded up to the cent per order. Polymarket's taker rate on sports is 0.05 (it was raised from 0.03 in July 2026) and makers pay nothing. Here is the 500-pair example from above under the three ways you can execute it:
| Execution | Kalshi fee | Polymarket fee | Net profit on $480 | Net ROI |
|---|---|---|---|---|
| Take both sides | $8.72 | $6.13 | $5.15 | 1.0% |
| Make on Kalshi, take on Polymarket | $2.18 | $6.13 | $11.69 | 2.4% |
| Make on both | $2.18 | $0.00 | $17.82 | 3.7% |
500 contracts each side: Kalshi YES at 53¢, Polymarket NO at 43¢. Gross locked profit $20 before fees.
Kalshi YES 53¢ + Polymarket NO 45¢ = 98¢, so 500 pairs lock $10 before fees. Taking liquidity on both costs $8.72 + $6.19 = $14.91. That arb is a $4.91 loss. As a maker on both sides the same trade nets $7.82.
So the rules of thumb: taking liquidity on both sides needs a gap of at least 4¢ near the middle of the price range to be worth doing at all; being the maker on at least one side roughly doubles what you keep; and gaps at extreme prices (a heavy favorite at 85¢ against 12¢ on the other side) are cheaper to trade because the fee formula shrinks there. A scanner that shows net-of-fee margins saves you doing this sum on every alert.
Resolution risk: the part the calculator cannot see
- Different deadlines for a postponed game. One market may resolve NO if the game is not played by a date, the other may roll forward to the new date. If that happens you are hedged on nothing.
- Different resolution sources. A disputed result, a forfeit or a weather-shortened game can be graded differently by the two rule sets.
- Same title, different line. A total of 50.5 on one exchange and 51 on the other are different bets. On a moneyline, check overtime and tie handling.
- Capital lock. The pair pays $1 at settlement, not before. A four-day-away game ties the money up for four days. Size the arb for that, not for the headline percentage.
- Liquidity that disappears. If the ask you saw is gone when your second order arrives, you are holding one side. Hedge at the next best price immediately; do not wait for it to come back.
Every exchange market has a rules section on its page. It takes two minutes to read, and it is the difference between a locked profit and a position you did not know you had.
When it is not worth it
- The gap is under 3¢ and you cannot be the maker on either side.
- The depth at the ask is a fraction of the size you want; walking up the book turns a 4¢ gap into a 1¢ one.
- Kickoff is minutes away and one of the two order books is moving every few seconds.
- The rule pages differ on anything that could plausibly happen to this game.
Questions people ask
Do I need crypto to use Polymarket?
Is arbitrage between two exchanges legal?
Can I close the position early instead of waiting for the game?
How is this different from arbing Kalshi against a sportsbook?
Two prices in, exact stakes and locked profit out. American, decimal or cents.
8 min read
Fees, availability and venue rules quoted here were correct when this guide was written and change over time; check each venue before you trade. Nothing on this page is financial or wagering advice. Arbitrage carries real risk of loss; read the risk disclaimer.
Stop typing prices in.
Get them sent to you.
OddsHedge watches Kalshi, Polymarket and sportsbooks worldwide around the clock and sends every arb to your phone with the stake split already calculated, plus the playbook and a room of people who do this every day.
Start free →Founders' trial: free for your first 24 hours, then $97/mo. Cancel anytime.