BrainResearchHub
Independent research on prediction markets, perpetual futures, and trading infrastructure

Is My Prediction Market Price Sane? A Pre-Trade Sanity Checklist (With Free CLI)

Marcus Webb· access · Updated October 2026

The most expensive trade I ever analyzed wasn’t a wrong prediction — it was a right prediction executed against a broken quote: 12 minutes stale, 9-cent spread, filled at the ask into a book with no depth behind it. The direction was correct. The execution cost more than the edge. Sanity checks sound boring until one saves your month. Here’s the 6-check routine I run before any size — as a manual checklist and as a free CLI that runs all six in one command.

How do I sanity-check a prediction market price before trading?

Check six things, in order: (1) depth — can your size actually fill within 2-3 ticks; (2) spread — above 5-6 cents, you’re paying the edge away on entry alone; (3) freshness — last trade older than ~10 minutes on an event market means you’re pricing off a ghost; (4) cross-source consistency — does an independent venue or model agree within a few points; (5) commission drag — taker fees + spread vs your edge; (6) fill cost — the true all-in cost of your target size. A price that fails any one of these is a trap regardless of how right your read is.

The six checks in detail

1. Depth. Ask: what happens to the price if I eat the first three levels? If a $200 order moves the quote 4 cents, the “price” you saw belongs to nobody — it evaporates under your own size. Event markets especially show thin tops over deep-looking aggregate books.

2. Spread. The spread is the toll booth on both legs of your trade. At a 6-cent spread you need a >6-cent edge just to break even on a round trip. My rule: no directional trade where spread + commission exceeds half of my estimated edge.

3. Freshness. Timestamp the last trade, not the last quote. Quotes can sit untouched for hours on dead markets; trades prove someone crossed the spread recently. Stale + event-adjacent is the classic setup for the drift traps in my common PM mistakes piece.

4. Cross-source. One book is an opinion; two are evidence. Compare against an independent venue, a model price, or at minimum the correlated market in the same event. Divergences beyond a few points are either your edge or your trap — the sanity layer tells you which questions to ask before sizing. This is exactly the discipline behind evidence-tiering in primary sources vs polls.

5. Commission. Taker fees compound with spread: a 2% fee on a 40-cent entry is 5% of your risk unit. Known fee levels and their drift over time are tracked in the fees guide.

6. Fill cost. The honest number: price + half-spread + fees + depth impact for your actual size. If that number exceeds your edge, the trade is a donation with extra steps.

Free tool: sanity-checker (CLI)

All six checks in one command, read-only, standard library, no keys:

git clone https://github.com/cyrusthornemchn/sanity-checker.git
cd sanity-checker
python3 sanity_check.py --market <slug> --size 200

Output:

Market     : will-the-fed-cut-rates-in-december
Size       : $200
Depth ok   : YES (3 levels absorb $200 within 2 ticks)
Spread     : 3.2c  [ok]
Freshness  : last trade 4m ago  [ok]
Cross-src  : +2.1c vs reference  [ok]
Commission : 2.0% taker → 0.8c on entry  [ok]
Fill cost  : entry + 1.6c + fees ≈ 43.4c all-in
VERDICT    : SANITY OK — edge needed > 4.4c to clear costs

Any check fails → VERDICT: FAIL with the failing line flagged, exit code 1 (scriptable). It’s the checklist I run manually, automated — the same philosophy as my insider-trading sanity framework: mechanical checks first, judgment second.

What sanity checks can’t save you from

FAQ

Q: How do I check if a prediction market price is fair before trading? A: Run the six-check routine: depth, spread, freshness, cross-source, commission, fill cost. The free CLI at github.com/cyrusthornemchn/sanity-checker automates all six for any market in one command.

Q: What spread is too wide to trade on prediction markets? A: As a working rule: if spread + commission exceeds half your estimated edge, the trade doesn’t clear costs. On event markets I skip anything above a 5-6 cent spread unless the edge is structural (e.g. a genuine arbitrage leg).

Q: Why did my “sure thing” lose money on execution? A: Almost always one of: stale quote, wide spread, or depth thinner than the top-of-book suggested. All three are catchable pre-trade with the checks above — direction being right doesn’t survive a bad execution.

Q: Can I automate sanity checks before every trade? A: Yes — the CLI exits non-zero on failure, so it drops straight into a trading bot’s pre-trade gate or a cron monitor. Read-only, no keys needed.

Q: Do these checks apply to sportsbooks and polls too? A: The mechanism differs but the discipline transfers — that’s the point of comparing venues in the vs sportsbooks and vs polls pieces.

Educational content, not financial advice. Not affiliated with any platform mentioned. Last updated October 2026.