Back to blog
Execution4 min read

The Fill Is the Strategy

Why prediction market bots should treat fills, slippage, and partial execution as first-class strategy inputs.

A trading bot begins life as a forecast. It becomes real at the fill.

This is the part beginners want to skip, because it feels like plumbing. The model says the contract is worth 61 cents. The market shows 56. The bot buys. In a spreadsheet, this is profit. In a live book, it is only the start of a negotiation.

The book may have five contracts at 56 and two hundred at 62. The quote may move while the order is traveling. A limit order may wait behind everyone already there. A market order may fill at a price that makes the original signal irrelevant. The bot was right about the event and wrong about the trade.

The missing object

The missing object in many paper traders is not probability. It is fill probability.

A simulated order should not become a position merely because the bot wanted it. For a market order, walk the visible depth and compute the volume-weighted average price. For a limit order, record the depth at that level, then make the order earn its place in line. Add latency. Add fees. Add the possibility of no fill.

The awkward truth is that no fill is information. If a strategy only works when every order fills instantly, the strategy is not a trading strategy yet. It is an opinion about prices.

Right is not enough

Prediction markets make this especially sharp because the unit of price is small. Six cents of slippage can turn a good looking edge into a bad habit. A one second delay can matter in short crypto markets. A thin book can make ten contracts sensible and one hundred absurd.

So the core log line for a bot is not just the forecast. It is the whole path:

intended_price
observed_depth
order_type
latency_ms
filled_count
average_fill_price
fee
rejection_reason
post_fill_drift

This turns execution from a vague excuse into a measured surface. If slippage is consistent, the bot is probably leaking through its order type, timing, or sizing. If slippage is random, the market is telling you something about liquidity. These are different problems.

The better test

A useful paper trader should be conservative in boring ways. It should reject orders when there is not enough depth. It should charge fees where they happen. It should leave some orders unfilled. It should make the equity curve uglier.

This is not pessimism. It is kindness. The cheap lie is a smooth backtest that dies on the first live session. The useful lie is a simulation strict enough to make the bot earn its confidence.

The market does not pay a bot for being right. It pays for being right at a price the bot can actually get. That means the fill is not an implementation detail. The fill is the strategy touching the world.

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.

Create a free sandbox keyRead the API docs

Related reading

ExecutionWhat Paper Trading HidesStrategiesThe Fee-Gated Scalper Still Paid the Toll