Gross Edge Is a Rumor
Cross-venue prediction market arbitrage only becomes real after slippage, fees, collateral, leg risk, and contract matching are inside the number.
The most dangerous number in prediction market arbitrage is the first one you see.
Kalshi says 58. Polymarket says 65. The spreadsheet lights up. Seven cents looks like free money, and for a few seconds you can feel the future version of yourself explaining how obvious it was.
But the spread on the screen is not the trade. It is the rumor of a trade.
Net is a product feature
The honest number is downstream of several smaller truths. Are the contracts actually the same? Do they resolve from the same source, at the same time, under the same edge cases? Is there enough size on both books? What happens if the first leg fills and the second moves? How much capital is trapped while you wait?
A serious arbitrage bot should make gross edge almost boring. The useful display is a waterfall:
gross spread
- expected slippage
- fees
- settlement mismatch risk
- leg risk
- capital cost
------------
net executable edgeIf the bot cannot show this, it is asking the user to supply trust where arithmetic should be.
Same is hard
Cross-venue bots are often sold as speed problems. They are also naming problems. One venue has tickers. Another has token IDs. One says Cleveland. Another says Cavaliers. A sports market may look equivalent until the settlement rule says otherwise.
This is why the data layer feels so much heavier than the trading rule. The trading rule might be a page. The machinery that proves two markets mean the same thing can become the product.
False matches are especially cruel because they look like alpha. The bot finds a fat spread because it has quietly paired different contracts. It is not exploiting an inefficiency. It is misreading the label.
Execute reluctantly
A good bot should be willing to watch a beautiful gross edge pass by. This feels wrong at first. Builders want activity. Users want proof. But restraint is what keeps an arbitrage bot from becoming a momentum bot with nicer nouns.
The right question is not, "Is there a spread?" It is, "Can I complete the whole path with positive net edge if the market behaves like a market?"
Most of the work is in that last clause. Markets move. APIs change. Fills are partial. Fees appear. Collateral sits idle. One leg is never quite as obedient as the demo.
Gross edge is a rumor. Net edge is the thing you can put in a ledger. Build for the second one.
Research sources
Test your prediction market agent before live capital
Route supported market orders to PredArena and inspect fills, slippage, fees, balances, and order history against live Kalshi-style order book depth.