Your strategy backtests profitably. In live trading, the edge vanishes. Here's what's eating your P&L.
| If your bot… | Read this section |
|---|---|
| Backtests well, bleeds live | Slippage + Depth |
| Strategy works on BTC, not ETH (or reverse) | Asset Volatility |
| Profits on big markets, loses small ones | Liquidity Cliffs |
| Wins early, loses near expiry | Binary Squeeze |
| Makes money but fees eat edge | Fee Drag |
| Gets worse fills than manual trades | Timing + Queue |
| Loses on resolution despite correct directional read | Oracle-Source Latency |
| Backtest assumes impossible fills | Backtest Reality |
| Backtest looked great, live trading bleeds — and slippage alone doesn't explain it | Paper-vs-Live Divergence |
Most prediction markets have far less order book depth than equities or major crypto pairs. A few hundred dollars of order flow can move the price several cents in a thin market.
Backtests assume mid-price execution — the price you see on screen. Live fills happen at whatever the book will give you, and in thin prediction markets, that gap can be significant.
Backtest assumed fill: 52¢ Actual average fill: 54.3¢ Slippage cost: 2.3¢/contract × 200 = $4.60 Your "edge" was 3¢. Slippage ate 77% of it.
Illustrative example — actual slippage depends on market depth and order size.
BTC and ETH short-duration up-down markets share the same product surface — same payoff structure, same settlement window, same UI — but they don't share the same volatility regime. A bot strategy that backtests profitably on one asset may not generalize to the other.
Higher realized volatility in the underlying typically widens the spread between mid-price and execution-fill, amplifying slippage drag in thin books. Lower-volatility assets typically see narrower spreads and tighter book depth, which makes backtest mid-price assumptions more likely to survive contact with live execution.
This is a structural property of how order-book depth interacts with realized volatility — not a claim that one asset class is 'better' for bots. A strategy's live performance depends on capital sizing, latency, fee tier, time-of-day, and other factors that any single backtest can't fully capture.
Prediction market liquidity evaporates around catalysts — not gradually, but in cliffs. Makers pull quotes before FOMC decisions, election results, court rulings, and other binary events.
The moment you most want to trade is when the book is thinnest. Unlike equities, there are no designated market makers obligated to provide continuous liquidity on prediction market exchanges.
This is the primary reason event-driven bot strategies fail in live trading. A strategy that looks brilliant in historical data was never exposed to the real-time book disappearing right when it needed to execute.
As contracts approach settlement, spreads widen because the downside of being wrong approaches 100%. A 95¢ contract with a 2¢ spread costs you 40% of the remaining upside.
Bots that chase apparently free money near expiry lose to spread drag, not to being wrong about the outcome. The math that looked like guaranteed profit in a backtest becomes a trap when execution costs are real.
Why 99¢ bets aren't free money →At 10 trades per day, even small per-trade fees compound into meaningful drag. A strategy with a 2¢ edge per trade can lose its entire margin to fees alone.
Fee calculator →Prediction market exchanges use price-time priority. If your bot posts at the same price as another participant but arrives later, you're last in the queue.
API rate limits vary by platform. There is no co-location or direct market access on prediction market exchanges. Unlike crypto DEXes, you can't pay for transaction priority.
The result: your bot's fills are systematically worse than what a faster participant gets at the same price level, and that disadvantage is invisible in backtests.
The previous mechanisms on this page — slippage, liquidity cliffs, market-vs-limit, fee drag, queue priority — are all order-book mechanics. They describe how your order interacts with the book between submission and fill. Oracle-source latency is a different axis: it describes how the resolution mechanism interacts with the underlying real-world observation.
Some prediction markets resolve against third-party data providers — weather data, sports stats, economic releases — whose refresh cadence is set by the upstream source, not by the exchange. The market-implied probability can move on cleared sensor or news observations while the resolution oracle still references a stale upstream snapshot.
That gap between observable reality and oracle-state is a distinct mechanism from any of the order-book mechanics above. It has its own mitigation considerations and breaks the implicit assumption — present in slippage, liquidity, and queue analyses — that the resolution oracle is real-time.
This is a different axis from slippage. Slippage describes how the price moves against your order as it walks the book. Paper-vs-live divergence describes the gap between the displayed quote your backtest assumed it could fill against and the fillable quote that actually exists once every other participant's behavior is priced in.
A backtest typically assumes a 100% fill on the displayed top-of-book quote. Live execution sees something different: order-queue priority is time-ordered, counterparties skip stale quotes, mispriced quotes get swept by faster participants, and maker-rebate competition prices in any obvious edge before slower bots can capture it. The displayed quote and the conditionally-fillable quote are not the same number.
The structural result: backtests overstate edge by the fraction of quotes that would not have been fillable in adversarial real time. That gap is invisible in historical replay because the historical book did not have to react to your bot's specific order. Backtests cannot fully model the counterfactual where your participation changes other participants' behavior.
Fee data sourced from each platform's published fee schedules. Check platform docs for the latest.
| Platform | Maker Fee | Taker Fee | Fee Summary |
|---|---|---|---|
| Kalshi | Price-based (varies by contract) | Price-based (varies by contract) | ≤1.75¢/contract (formula-based) |
| Polymarket | 0% (makers receive category-specific rebates: Sports 25%, Crypto 20%) | Probability-based, category-dependent (March 30, 2026): Sports 0.75% peak; Crypto 1.80% peak; Politics/Finance/Tech/Economics/Culture: 0.75%–1.80%; Geopolitics free. US venue (QCX LLC DCM) sports: 0.75% peak (probability-based), 25% maker rebate. | Sports 0.75% peak; Crypto 1.80% peak; Politics/Finance/Tech 1.00%; most fee-free at extremes |
| PredictIt | 10% on profits | 5% on withdrawals | 10% profit fee + 5% withdrawal |
What actually reduces execution bleed: