polymarket backtester
Your Backtest
Is Lying to You
We capture every Polymarket Up/Down order book tick, 24/7, and run every common strategy against it. They all look profitable on paper. None survive when we model whether your orders would actually fill.
Other backtests claim 100% win rates. It's bots vs. bots out there. Know your real edge before you deploy.
Strategy Gabagool Arb
Markets 2,699 windows
Fills 2,694 (99.9% fill rate)
Win rate 100.0%
Realistic +$855.10
Fees -$790.57 taker, $0.29/fill
Net PnL +$64.53
The $246K strategy. 100% WR. Fees take 92%.
7 Strategies. Thousands of Markets. 0 Profitable.
Every strategy people actually run on Polymarket Up/Down markets — including the famous ones from Twitter — tested against a live, continuously growing order book dataset.
| Strategy | Description | Paper | Real | Gap |
|---|---|---|---|---|
| Gabagool Arb | Buy YES+NO at different times when combined < $1 | +$569 | -$4,646 | $5,216 |
| Last 15 Seconds | Buy the 98¢+ side with <15s left | -$3,476 | -$756 | $2,720 |
| Buy Both Sides | Buy YES + NO at $0.49, hope both legs fill | +$460 | -$1,999 | $2,459 |
| Buy Both, Cancel Loser | Buy both, cancel wrong side mid-window | -$79 | -$477 | $398 |
| Bet Against Streaks | Fade after 3+ same-direction candles | +$256 | -$55 | $311 |
| + 2 more strategies generated zero trades (no signal triggered in test data) | ||||
The gap between paper and reality ranges from $311 to $5,216. That gap has a name: phantom fills.
Even Strategies That Survive Fills Die to Fees
Polymarket charges up to 1.56% per trade on crypto markets using a dynamic fee formula. Most backtests ignore this entirely. Your edge disappears twice — once to phantom fills, again to fees.
Gabagool Arb — the "perfect" strategy
100% win rate. $64 profit. That's fees. 92% of realistic profit evaporates to Polymarket's fee formula.
PhantomFill models the exact Polymarket fee formula with --fee-mode taker or --fee-mode maker.
See what fees actually do to your edge before you trade.
Why Every Polymarket Backtest Looks Profitable
Your backtest places a buy at $0.49.
It assumes the order fills instantly. Every backtest tool does this.
800 shares are already in line ahead of you.
The market resolves before your turn comes. Your order sits in the queue, untouched.
Your backtest says +$0.51 profit. Your wallet says $0.
The order never filled. But your backtest counted it as a win.
That's a phantom fill. Every backtest that doesn't model queue position is lying to you.
We tested it. A popular backtest claims a "Last 15 Seconds" strategy — buy whichever side is 98¢+ with under 15s remaining — has a 100% win rate across 56 trades. We ran it through PhantomFill: 23% fill rate, 87,763 shares ahead of you in the queue. The strategy loses $756. That "100% win rate" is 77% phantom fills.
The famous gabagool22 bot made $246K with combined-price arb. We simulated the same strategy on current data: paper says +$569, reality is -$4,646. The $5,216 gap is the largest of any strategy we tested. The on-chain profits were real — but the market has changed. Queue depth is 40x deeper. Jump Trading is market-making. The edge is gone.
The Market Is Eating Retail Alive
The data is public, on-chain, and brutal.
70%
of 1.7M Polymarket traders have realized losses
Yahoo Finance / CryptoRank, Dec 2025
0.04%
of addresses captured 70% of all profits ($3.7B)
CryptoRank on-chain analysis
2.7s
average arb window, down from 12 seconds
arXiv 2024
500ms
gone
Speed bump removed Feb 18. A $700/day market-making bot went dark. Market makers called it "irreparable damage."
Protos, Feb 2026
"If your strategy dies when latency assumptions change, it was luck wearing a quant costume."
PhantomFill explains the mechanism. It's not that strategies are bad in theory — it's that fill quality has degraded to the point where paper edges evaporate on contact with the real order book.
how it works
The first backtester that models whether your orders actually fill
Queue position tracking
When you place an order at $0.49, you join a queue. PhantomFill tracks exactly where you are in line — behind every share already resting at that price.
Fill-through simulation
As the market trades, shares ahead of you get filled. PhantomFill replays every tick to determine whether your turn ever comes before the market resolves.
Adverse selection detection
If the market moves against you, informed traders hit your stale order. PhantomFill detects when you get filled for the wrong reasons — the fills that make your PnL worse.
Fee modeling
Polymarket's exact fee formula built in. Taker fees, maker rebates, per-fill cost. See what fees actually do to your edge before you trade.
Rust · 160 tests · Millions of ticks captured daily · Academic model (DeLise 2024, Lalor & Swishchuk 2024)
for bot builders
Know before you deploy
As one bot builder put it: "Backtests lie because they assume you can fill at historical prices." They're right. But the only honest backtest isn't a live one — it's one that models fills.
Run your strategy through thousands of real markets — with new data captured every day. See naive vs. realistic PnL. Find your phantom fill gap before you put real money in.
~ Tick-by-tick order book replay
~ Monte Carlo simulation (configurable runs + seed)
~ 7 built-in strategies, custom strategy API
~ CSV export for external analysis
~ Fee modeling (taker/maker/none)
~ Live data capture — dataset grows every day
Available strategies:
spread_arb Buy Both Sides
gabagool Combined-Price Arb
last_15s Last 15 Seconds
post_cancel Buy Both, Cancel Loser
fade Bet Against Streaks
momentum Follow BTC Price
depth Read the Order Book
$ pf run -s last_15s --db hf.db --native
Fill rate 23.3%
Queue 87,763 shares ahead
Real PnL -$756.30
"100% win rate." 23% fill rate.
coming soon
PhantomFill Cloud
Web UI. Live data feed pre-loaded and growing daily. Custom strategy builder. One-click backtest. No Rust required.
$49/mo — less than one phantom fill costs you
Or install the CLI now: cargo install phantomfill
FAQ
What is a phantom fill? +
A phantom fill occurs when a backtest assumes your limit order was executed, but in a real market, the order would never have been reached in the queue. On Polymarket's order book, when you place a bid at $0.49, hundreds or thousands of shares may already be waiting at that price. A phantom fill backtest ignores this queue and credits you with fills that would never happen. PhantomFill is the first backtester that models queue position, fill probability, and adverse selection to give you realistic results.
Is Polymarket spread arbitrage profitable? +
Based on our analysis of thousands of real Up/Down markets — with new data captured every day — the answer is no. The "Buy Both Sides" strategy consistently shows paper profit but loses money under realistic fill simulation. The gabagool22 combined-price arb survives fills (99.9% fill rate, 100% win rate) but taker fees of $790 across 2,699 windows leave just $64 profit. The gap is explained by two forces: phantom fills and fees.
Why do backtests show profit but real trading loses money? +
Most backtests assume that placing a limit order at a price means it gets filled. In reality, Polymarket uses a central limit order book where orders queue by time priority. Your order joins behind existing orders at the same price. In fast-moving 5-minute markets, the window often resolves before your order reaches the front of the queue. Your backtest counts these as wins. Your wallet counts them as nothing.
How does PhantomFill model order fills? +
PhantomFill uses an academic fill simulation model based on DeLise (2024) with three rules: (1) queue position tracking — your order joins behind existing depth at your price level, (2) fill-through simulation — fills only occur when enough volume trades through your queue position, and (3) adverse selection detection — identifying when fills happen because informed traders are hitting your stale orders. The model is validated against millions of real market ticks from our live capture infrastructure.
Is PhantomFill free? +
The CLI is open source and free. Install with cargo install phantomfill. PhantomFill Cloud (web UI, pre-loaded data, custom strategy builder) will be $49/month.
Does the Buy Both Sides strategy work? +
No. "Buy Both Sides" (spread arb) involves buying YES and NO at $0.49, hoping both legs fill for $0.02 profit per share. Our data shows ~33% chance of getting stuck with one side (single-leg risk). One loss wipes out 25 wins. After realistic fill simulation across thousands of markets, the strategy consistently loses money. The gabagool22 variant (buying at different times when combined < $1.00) is even worse.
Does PhantomFill account for trading fees? +
Yes. Polymarket charges taker fees up to 1.56% on crypto markets using the formula fee = shares × 0.25 × (p × (1-p))². Makers pay 0% and earn a 20% rebate on taker fees. Most backtests ignore fees entirely. PhantomFill models the exact formula with --fee-mode taker or --fee-mode maker. Example: the gabagool strategy shows 100% win rate but $790 in taker fees across 2,694 fills leaves just $64 profit.
What happened to Polymarket latency arbitrage? +
Polymarket removed their 500ms speed bump on February 18, 2026 with no announcement. Market makers called it "irreparable damage." Bots that relied on the delay broke overnight. Latency arb is effectively dead for retail. Jump Trading and Susquehanna now operate on Polymarket with institutional infrastructure.