How to spot an arb (and how to act on it)
Manual edition. The Tellmarket scanner does steps 1–4 for you; this page exists so you understand what it’s actually doing.
Same outcome, same expiry. 'Will Trump win the 2028 presidential election?' on Kalshi vs 'Donald Trump wins 2028 election' on Polymarket. Slight wording differences are fine; the resolution rules must match.
A 'price' on a market with no bids and one $10 ask isn't a tradeable price. Both YES and NO sides need bid-ask spreads under ~10¢ and at least a few hundred dollars of depth at the top of book.
Sum the cost of buying the cheaper YES + cheaper NO across the two exchanges. Subtract each exchange's fee in dollars on your intended size. If the total cost is below $1.00 per contract pair, the difference is your edge. If it's above, there's no arb (the spread doesn't pay for fees + slippage).
If Kalshi resolves on 'Trump wins the popular vote' but Polymarket resolves on 'Trump wins the Electoral College', that's not the same market and you'd be exposed to the edge case. Read both contracts.
If Kalshi takes seconds to fill and Polymarket takes 30s for the on-chain settlement, fire the Polymarket leg first. If the second leg moves against you while you're waiting, you're naked-long one side.
A $500 ask might fill $230 and walk the book. Either accept the worse price for the remainder or cancel and re-enter at a tighter spread.
the brutal truth
Doing this manually for two exchanges with thousands of markets is a full-time job that pays badly. Most arbs open and close in under five minutes. By the time you’ve found one by refreshing both tabs, computed the post-fee edge in a spreadsheet, and switched windows to execute, it’s gone.
Tellmarket runs steps 1–4 for every matched market every 30 seconds and emails / pings Slack the moment a post-fee positive edge appears. You still have to execute (we don’t place orders for you) but you’re acting in seconds, not after the opportunity has been arb’d away.