Arbitrage Calculator: Cross-Venue Fee Math Explained
Spot a 3-cent gap between Kalshi and Polymarket on the same event and it's tempting to size up and lock it in. Run the actual arbitrage calculator math — both venues' taker fees plus realistic slippage — and that 3-cent edge on a 100-contract pair is gone before you've paid for a coffee. This is the single most common mistake in cross-venue prediction market trading: mistaking a raw price gap for a net profit. Below is the exact fee formula for each venue and a worked example showing how an apparently profitable arb dies.
What counts as a real arbitrage pair
Before any math: the two contracts have to resolve on identical criteria from the same underlying event. "Will the Fed cut rates in September" on one venue and "Will the Fed cut rates by 25bps or more in Q3" on another are not the same contract even though they sound related — different resolution wording means they can legitimately diverge and settle differently, which isn't arbitrage, it's just two different bets. Confirm exact resolution language on both venues before doing anything else.
Step 1: check the raw spread
Once you've confirmed a genuine complementary pair, add the price of the two opposing sides across venues. Suppose a specific 2026 congressional race is listed on both Kalshi and Polymarket. Kalshi's NO side (the challenger loses) trades at $0.44. Polymarket's YES side on the same race (the challenger wins) trades at $0.53. Since NO-loses and YES-wins are complementary outcomes of the identical event, buying both locks in exactly $1.00 regardless of the result. Combined cost: $0.44 + $0.53 = $0.97. That's a $0.03 raw edge per contract pair before fees — on 100 pairs, a $3.00 apparent gross profit.
Step 2: Kalshi's fee
Kalshi's taker fee is round_up(0.07 × contracts × price × (1 − price)). Buying 100 NO contracts at $0.44:
round_up(0.07 × 100 × 0.44 × 0.56) = round_up(1.7248) = $1.73
Step 3: Polymarket's fee
Polymarket charges a category-based taker fee that's symmetric around 50 cents and peaks there, tapering toward the 1-cent and 99-cent extremes. A congressional race falls under the Politics category, capped at $1.00 per 100 shares at 2026 rates. At $0.53 — close to the 50-cent peak — the fee sits near that cap. Using the $1.00 max as the conservative estimate for the Polymarket leg on 100 shares:
Polymarket fee ≈ $1.00
Step 4: net of fees
| Leg | Venue | Side | Price | Contracts | Cost | Fee |
|---|---|---|---|---|---|---|
| 1 | Kalshi | NO | $0.44 | 100 | $44.00 | $1.73 |
| 2 | Polymarket | YES | $0.53 | 100 | $53.00 | $1.00 |
| Totals | $97.00 | $2.73 | ||||
Guaranteed payout on 100 pairs: $100.00 (one side always wins $1 per contract). Gross profit before fees: $3.00. After $2.73 in combined fees: $0.27 net — a real but razor-thin edge on $97 of capital, roughly 0.28%.
Step 5: add slippage, and it flips negative
The $0.44 and $0.53 prices above are best-quoted prices, not guaranteed fill prices for the full 100-contract size. Both legs typically have real depth only at the top few price levels on an event contract that isn't the most liquid market of the day. Say filling the full Kalshi NO order actually averages $0.45 (one cent of slippage across the order, worth $1.00 on 100 contracts) and the Polymarket YES leg averages $0.545 (a cent and a half worse, worth $1.50 on 100 contracts):
| Quoted edge | Fees | Slippage | Net | |
|---|---|---|---|---|
| Before slippage | $3.00 | −$2.73 | — | $0.27 |
| With realistic slippage | $3.00 | −$2.73 | −$2.50 | −$2.23 |
A trade that looked like a guaranteed $3 profit is a $2.23 loss once both legs actually fill at real depth. This is the standard failure mode in cross-venue arbitrage: the visible top-of-book spread is real, but it isn't tradable at full size without fees and slippage eating past it. It's also why prediction market arbitrage is harder in practice than the concept suggests — the math has to clear a higher bar than "the numbers don't add up to $1."
What actually clears the bar
An arb worth executing generally needs a raw spread meaningfully larger than the combined fee load for that price level and category — in the example above, closer to 6-8 cents than 3 cents, depending on how thin the books are. Fee-free geopolitical and world-event markets on Polymarket change this math favorably for one leg of a trade; combining a fee-free Polymarket leg with a low-fee Kalshi leg near the 1-cent or 99-cent extreme (where Kalshi's P×(1−P) term shrinks toward zero) produces the most survivable arb setups. Capital that's split across two venues also carries settlement-timing risk — Polygon withdrawals run under a penny but bridging to Ethereum can run $1-$20+ depending on congestion, and funds committed to one leg aren't available if you need to adjust the other. This is also why arbitrage and market making sit closer together than they first appear — both depend on the same fee-aware execution discipline, just applied to a locked-in spread instead of a continuously managed quote.
Maker vs taker: the fee lever most arb traders ignore
Every calculation above assumed both legs were taker orders — crossing the spread to get filled immediately, which is usually what "arbitrage" implies since you need both legs to fill together. But the fee schedules on both venues are built to reward resting orders instead. Kalshi's maker fee is 25% of its taker rate, so the $1.73 Kalshi fee in the example above would drop to roughly $0.43 if that leg filled as a maker instead. Polymarket doesn't charge makers a fee at all, and on top of that runs a Maker Rebates Program that pays back 25% of collected taker fees (20% on crypto markets) to makers daily in pUSD — makers get paid, not charged, on that side.
The catch is obvious: a resting limit order isn't guaranteed to fill, and an arbitrage trade only works if both legs execute close enough together that the price relationship holds. Posting one leg as a maker and hoping it fills before the opportunity closes introduces exactly the execution risk arbitrage is supposed to avoid. In practice, traders who lean on maker-side fees for arb-adjacent trades are usually running quasi-market-making strategies — capturing the liquidity-reward or rebate stream on one venue while managing directional exposure, rather than a clean, instant, riskless two-leg lock. It's a different trade with a different risk profile, not a free upgrade to the arb math above.
Doing this math live, per market
Running this calculation by hand across dozens of candidate pairs a day isn't realistic. PolyMarketMaker's arbitrage scanner checks Polymarket US, Polymarket global, Kalshi, and PredictIt simultaneously, applies each venue's live category or percentage fee schedule per market, and surfaces only the spreads that clear fees with room for slippage — the same fee math from this article, computed automatically rather than by hand. PolyMarketMaker runs Simulation at $149/mo or Live Trading at $299/mo.
FAQ
What is prediction market arbitrage?
Buying complementary outcomes of the same event across two venues when the combined price is under $1.00, locking a profit before fees, slippage, and execution risk are subtracted.
How do I calculate Kalshi's arbitrage fee?
round_up(0.07 × contracts × price × (1 − price)), peaking at $1.75 per 100 contracts at a 50-cent price. See Kalshi fees explained for the full schedule.
How do I calculate Polymarket's arbitrage fee?
A category-based taker fee peaking at the 50-cent price, from $0.75 (sports) to $1.80 (crypto) per 100 shares as of 2026, with geopolitical markets fee-free. Details in Polymarket fees explained.
Why do arbitrage opportunities disappear after fees?
Because the visible spread is a best-quoted price, not a guaranteed fill price at size — combined taker fees on both legs plus slippage from real order-book depth frequently exceed a raw 2-4 cent gap.
Is there a free arbitrage calculator for Polymarket and Kalshi?
PolyMarketMaker's arbitrage scanner automates this fee math live across four venues, so the displayed edge already accounts for each market's current fee schedule.
Stop doing this fee math by hand
PolyMarketMaker's arbitrage scanner checks Polymarket US, Polymarket global, Kalshi, and PredictIt against each other with per-market fee math built in, so you see net edge, not just a raw price gap. PolyMarketMaker also includes order-book depth so you can judge slippage before sizing a leg. Simulation $149/mo, Live Trading $299/mo.
This article is for educational purposes only and is not financial advice. Trading involves risk of loss.