In February 2026, Polymarket quietly pushed two changes that broke a significant portion of automated trading strategies on the platform overnight.
I know this because I was watching my bot's performance logs in real time when it happened.
This is what changed, what broke, what survived, and what I had to rewrite - from actual numbers, not theory.
What Polymarket changed
Two things, both significant:
1. The 500ms taker delay was removed.
Previously, there was a built-in 500ms window between an order submission and execution. Bots that exploited timing gaps between Binance/Bybit price feeds and Polymarket's order book used this window to enter positions before the market repriced. When the delay disappeared, so did that window. The entire class of pure latency arbitrage strategies - enter before the book catches up - stopped working the same day.
2. Dynamic taker fees were introduced.
Taker fees now vary by market and price proximity to 50¢, reaching up to approximately 1.56% on 5-minute and 15-minute crypto markets. At thin margins, a 1.56% fee on a taker order doesn't just reduce profit - it eliminates it entirely and flips the trade negative.
These two changes together ended one era of Polymarket bot trading and started another.
What my bot was doing at the time
My strategy - crowd-momentum confirmation on 5-minute and 15-minute Up/Down crypto markets - enters when one side is priced at 70¢ or above, following the dominant direction after cross-referencing a live Chainlink oracle feed.
The important detail: I was already using limit orders on the maker side, not taker orders.
That wasn't because I anticipated the fee change. It was because maker rebates made financial sense from the start - at 78 trades per day, the difference between paying a taker fee and earning a maker rebate compounds into a meaningful daily number.
That single architectural decision is why the February changes hit my bot differently than most.
The week of the change - in actual numbers
Here's what my rolling 7-day EV per trade looked like across the transition:
Week of Feb 10: $0.031 ev/trade (baseline)
Week of Feb 17: $0.029 ev/trade (normal variance)
Week of Feb 24: $0.028 ev/trade (slight dip, noise)
Week of Mar 3: $0.031 ev/trade (recovered)
Almost nothing changed for my bot.
The win rate held. The EV per trade held. The maker rebate structure meant I wasn't touched by the taker fee introduction at all.
Meanwhile, I was watching other bots in my feed - bots I'd been benchmarking against - go silent. Wallets that had been active across dozens of 5-minute markets every hour simply stopped trading. The latency arbitrage plays that had been running on those markets dried up almost immediately.
What actually broke - and why
The bots that broke were built on one of two assumptions that February 2026 invalidated:
Assumption 1: The 500ms delay creates a riskless entry window.
The logic was: detect a price move on Binance, submit a taker order to Polymarket before the book reprices, profit from the lag. This required the 500ms delay to exist. When Polymarket removed it, the window closed. Not "got smaller" - closed. The edge wasn't "reduced by the rule change." It was contingent on the rule existing.
Assumption 2: Taker orders are viable at thin margins.
A bot entering at 80¢ and paying a 1.56% taker fee is paying 1.25¢ per share in fees. At 80¢ entry, the profit if correct is 20¢. The fee is 1.25¢ - 6.25% of the potential profit, consumed immediately on entry. Stack that across 78 trades per day and the fee drag is significant. For bots with even thinner margins, it pushed EV negative entirely.
Both of these failure modes share the same root: the strategy was built around a platform behaviour, not a market inefficiency.
The 500ms delay was a platform artefact. When Polymarket removed it, the strategy disappeared with it.
My strategy is built around the crowd's implied confidence being slightly wrong slightly more often than it should be. That's a market inefficiency — it exists in the order book behaviour, not in Polymarket's execution infrastructure. Platform rule changes don't touch it.
What I did change after February
The rule changes didn't break my strategy, but they changed the competitive landscape around me in ways that affected signal quality.
Change 1: Tightened the minimum entry threshold from 70¢ to 72¢.
With latency arbs gone, the 5-minute order books started pricing more efficiently at lower probability levels. The crowd signal at 70-71¢ became slightly noisier - not because the market got smarter, but because the bots that had been creating pricing noise at those levels were no longer operating. I moved the entry floor up 2¢ to compensate.
Change 2: Added a competition density check.
I now track how many distinct wallets have traded a given 5-minute market in the last 3 cycles. When density drops significantly below normal, I reduce position size. Low competition density in a market can mean opportunity or it can mean the market is pricing efficiently for a reason - a Chainlink feed anomaly, a thin liquidity event, or a market that just hasn't attracted real volume yet.
Change 3: Widened the oracle gap threshold.
With fewer bots on the other side of the order book, Chainlink oracle lag occasionally creates short-lived pricing gaps that weren't there before. I widened the acceptable gap threshold from 0.1% to 0.15% before I consider it a caution zone - because at current competition levels, some of that lag is an opportunity, not a risk.
These were incremental adjustments, not rewrites. Total development time: two evenings.
The broader lesson
Most post-February content I've seen frames the rule changes as "Polymarket got harder." That's partially right but misses the real point.
Polymarket didn't get harder for everyone. It got harder for a specific class of strategy - infrastructure-dependent arbitrage - and easier for a different class: maker-side, signal-quality-dependent strategies with real statistical edges.
The bots that broke were fragile not because they were badly built. They were fragile because their edge was rented from a platform rule rather than earned from market behaviour.
The bots that held - including mine - weren't sophisticated. They just had edges that lived in the market structure itself, not in the gap between Polymarket's execution layer and the outside world.
What this means for building now
If you're building a Polymarket bot in 2026, the February changes are the most important context you need.
A few things that follow directly from them:
Always use limit orders. Not for edge reasons - for survival reasons. Taker fees at current rates eliminate thin margins before the trade even resolves.
Your edge needs to exist in the order book, not in execution speed. Sub-millisecond execution is still valuable. But it's not sufficient on its own. The arbitrage window that made speed a standalone edge no longer exists in the same form.
Signal quality now matters more than it used to. With fewer bots providing noise and liquidity at the edges of 5-minute markets, price signals are slightly cleaner - but also less forgiving. A 2–3% edge above break-even is real. A 0.5% edge probably isn't, and the fee structure will find it.
Measure win rate by entry bucket, not in aggregate. The fee curve is non-linear - it changes with price proximity to 50¢. A strategy that was profitable at 73¢ entry under the old fee structure may not be at the same entry under the new one. The only way to know is to measure at the bucket level.
Closing
The February 2026 changes were real and significant. They didn't make Polymarket bot trading impossible - they changed which strategies work.
A bot built on platform-dependent timing is a bot that lives or dies by Polymarket's product decisions. A bot built on a real statistical edge in how markets price uncertainty is a different kind of system.
February clarified which one I'd built.
This is part of an ongoing series on building and running a Polymarket trading bot. Earlier articles:
Full bot code: github.com/MalcolmMcGough/polymarket-trading-bot-scalping
Not financial advice. Prediction markets carry real risk of loss.









