Anyone can subtract two prices. The reason most "arbitrage" between Polymarket and Kalshi quietly loses money is fees — and the two platforms charge in completely different ways. Here is exactly how each one works, with worked numbers.
Polymarket charges takers a fee that scales with how uncertain the market is. The fee per share follows the curve:
where p is the price as a probability (a 45¢ contract is
p = 0.45), and rate depends on the market category. The
p × (1 − p) term peaks at 50¢ and falls to
zero at the extremes — so fees are largest on coin-flip markets and tiny on
near-certain ones. Makers who post resting orders typically pay nothing.
Category rates vary (crypto markets tend to sit highest, world-event markets can be fee-free). Because the rate is per-category and changes over time, always price against the current schedule rather than a fixed number.
Kalshi uses a single published formula, applied per order and then rounded up to the next whole cent:
where C is the number of contracts and P is the
price in dollars. Two things trip people up:
| Price | Kalshi fee (100 contracts) |
|---|---|
| 10¢ | $0.63 |
| 50¢ | $1.75 (max) |
| 90¢ | $0.63 |
Notice the symmetry around 50¢ and the peak at the midpoint — the same shape as Polymarket's curve, just with a flat coefficient and a cent-rounding step layered on top.
A cross-platform arbitrage buys YES on one venue and NO on the other so the two positions cover every outcome. If the combined price is 98¢ you might think you have a locked 2¢ edge — but if the two legs cost you 3¢ in fees, you are actually down a cent. On coin-flip markets near 50¢, where both fee curves peak, a thin edge disappears entirely.
The full, tested source behind the cockpit — dual-platform fee models, Kelly sizing, vig-stripping, 41 unit tests, and an automated background scanner — is available as a one-time purchase.