FollowCheck 中文

Methodology: How FollowCheck Backtests Polymarket Copy Trading

A chain of blocks feeding a line of processing steps.

FollowCheck answers one question: if you had copied this trader, a few minutes late, at the prices that were actually available, how much of their return would you have kept?

Data

  1. PolygonOrderFilled events from the v2 exchange contracts
  2. IndexerEvery fill, with block number and log index
  3. Backtest engineReplays each of the trader's buys and sells
  4. Delay simulationReal taker buys after 0, 1, 5 or 30 minutes
  5. BreakdownDelay cost, slippage, fees and what the follower keeps
From the chain to the numbers on each wallet page.

Simulating a copy

For every buy the trader made at time t, and for each delay d of 0, 1, 5 and 30 minutes:

  1. Starting at t + d, we walk forward through the real taker buys in the same outcome token, in time order, excluding the trader’s own fills. At a 0-minute delay the walk starts in the block after the trader’s fill: a copier reacting to that fill can’t be in the same block.
  2. We accumulate those fills until the copy order reaches your size (default $100). The copy price is the volume-weighted average of the fills used.
  3. If the size can’t be filled within 10 minutes, the copy is partial (whatever was filled) or, when nobody bought that outcome in those 10 minutes, no buyers in window. Such a copy is treated as never placed: it adds nothing to the follower’s PnL, and it counts against the fill rate.
  4. Sells are mirrored the same way, so a copier exits when the trader exits, with the same delay.
  5. Copy orders share the market. When the trader buys the same outcome several times in a few minutes, each buy is a separate copy order, but a fill used by an earlier copy order is gone for the later ones. Orders are served in the trader’s order. Without this, a burst of small buys would count the same seller’s shares several times.

Using fills that really happened after the delay is deliberately conservative: it assumes you pay what other buyers paid then, not the trader’s price.

Why fill rates can look low

There is no historical order book on-chain — only the trades that actually happened. So a copy can only fill against taker buys of the same outcome within 10 minutes after the delay. Resting sell orders that were sitting in the book, and that a real copier could have bought from, are invisible to us. In quiet markets this means many copies come out partial or with no buyers in the window, even though a real order might have filled. The fill rate is a lower bound, and the follower PnL only covers the part of the trading that could be copied. When fewer than half of a trader’s buys fill completely, the wallet page says so first, before any PnL.

Conservative vs including estimates

Every number in the headline, the breakdown and the charts is conservative about fills: it only counts fills that real trades prove. Next to the follower PnL and the fill rate, the wallet page also shows a clearly secondary figure, including estimates, that asks a second question: where no trade proved a fill, does other evidence say your size was fillable anyway?

Each copied buy gets a fill basis:

Fill basis Meaning Counted in
Measured Real taker buys in the 10-minute window covered the copy (or the part shown) both views
Estimated (high / medium / low) No trade (or too few) proved the fill, but the evidence says the size — or a share of it — was fillable “including estimates” only
Thin The evidence says the size was most likely not fillable neither (0)
Pending The data after the trade isn’t indexed yet neither

The evidence, shown for every buy under Details → Can this size be filled?:

The rule (version 1), for the part of your size that real buys didn’t fill:

  1. With an order-book snapshot (confidence high): the fillable amount is what sat within 2 cents of the best ask, up to your size; the price is the average up the book.
  2. Without one (a proxy): if the leader’s own trade or the 24-hour average per 10 minutes is at least the unfilled size, all of it counts (confidence medium); if it is at least a third of it, only that much counts (confidence low); otherwise the buy is thin. The price is the minute price plus half the typical spread. Without a minute price we use the last traded price and the confidence is low.

Estimated fills pay the same taker fees and are then followed exactly like real ones — copied sells and settlement. Pending trades are left out of both views.

Limitations. Order-book snapshots only exist since our collector started; older trades can only use the proxy (medium or low confidence). Proxies can overstate what was fillable in fast markets — 24-hour averages hide bursts, and the leader’s own trade may have taken the very liquidity a copier would have needed. Read “including estimates” as an upper view, and the conservative numbers as the floor.

Trades too recent to evaluate

A copy at delay d needs market data up to t + d + 10 minutes. For the newest trades that data may not be indexed yet. Those trades are marked data not in yet (pending) and left out of that delay’s numbers entirely — fill rate, follower PnL, and the leader PnL it is compared with — rather than being counted as unfilled. A pending sell is skipped for both the copier and the leader, and the shares stay valued at the latest price. The result is shown as provisional and is recalculated as new data arrives.

A timeline. After the trader’s fill and the delay, later taker buys are used in time order until the copy reaches its size; the rest are not needed. A marker shows the 10-minute limit.Trader's fillDelay dTaker buys used for your copyNot needed10-minute limitTime
Simulating one copy: real taker buys after the delay fill your order in time order. Anything still open at the 10-minute mark is partial or unfilled.

Settlement and open positions

Resolved markets pay out 1 or 0 per share. Positions in markets that are still open are marked at the last traded price and counted on each wallet page as “unsettled positions marked”.

Per-buy size, peak capital in use and drawdown

The size you set (default $100) is spent on every buy the trader makes — it is not a total budget. A trader with 3,000 buys copied at $100 means roughly $300,000 flowing through many positions, several of them open at the same time. Follower PnL and the chart are the sum over all of those positions, which is why the curve can dip well below −$100 and still end positive in the simulation.

A fixed-budget mode — copying only while your bankroll has room, and skipping buys once it is fully in use — is not modelled yet.

Fees

Taker fees follow Polymarket’s 2026 fee schedule, which varies by market category and price. A copier buying after the leader is almost always taking liquidity, so we charge taker fees on every copy. Each copy fill pays fee = shares × rate × p × (1 − p), where p is the fill price and rate is the category’s taker rate: 7% for Crypto; 5% for Sports, Economy, Culture, Weather and Other (the default for unlisted categories); 4% for Finance, Politics, Mentions and Tech; 0% for Geopolitics. Fees are rounded to 5 decimal places of USDC. The rates come from Polymarket’s fee documentation (October 2026) and are applied to the whole indexed period, including trades from before a category’s fees started; they may change. More in fees.

Where the returns go

Every backtest splits the leader’s PnL — scaled to your per-trade size — into four parts that add up exactly. Scaling never gives the leader more shares than they actually bought: a $1 buy at 1¢ counts as the 100 shares the leader got, not as $100 worth, because no more was available at that price.

Part Meaning
Delay cost The price moved between the leader’s fill and the moment you could act
Slippage Walking through several fills to complete your size
Fees Taker fees on the copy orders
Follower PnL What would have been left for the follower (simulated)

leader PnL − delay cost − slippage − fees = follower PnL

Returns kept, fill rate and backtest score

Boards are ranked by backtest score — that is, by simulated returns after delay — never by the trader’s own PnL. A ranking describes simulated past results only; it is not a recommendation to copy any trader.

Shadow copy (live simulation)

The shadow copy page is a public, real-time paper simulation. For a small list of Polymarket wallets, every buy is copied on paper about 2 seconds after the trader’s fill, priced against the real Polymarket order book at that moment, with taker fees, and held to settlement. No order is placed and no money is involved. Copies are simulated at $10, $100 and $1,000 per buy, so the page shows how fill rate and returns change with size.

The wallets are split into strategy groups so they can be compared under the same rules: Tail sweep (wallets that buy near-certain outcomes at about 0.90–0.98), Closing-line value (wallets whose buys were often followed by favourable price moves) and a Control group of randomly drawn ordinary wallets as a baseline. The groups are chosen from past on-chain data for testing; inclusion is not a recommendation, and a group’s simulated result does not predict its future results.

Exclusions

Limitations

Disclaimer

FollowCheck is a strategy-testing and simulated-validation tool. Every figure on the site — backtests, leaderboards, scores and the shadow copy — is a simulation built from public on-chain data and algorithms, not a record of real trades. FollowCheck does not trade, place orders for anyone, hold or manage funds, run promotions or referral programs, or offer a copy-trading service. Nothing on the site is investment advice or a recommendation to copy any trader or buy any position. Past results don’t predict future results. FollowCheck is independent and not affiliated with Polymarket.

See also: slippage, fees, out-of-sample testing and data reconciliation.

FollowCheck backtests are simulations from historical on-chain fills. Past results don't predict future results. Not investment advice.