WhaleGrader Log inSign up
Methodology

How we flag and grade whale trades

WhaleGrader is a scorekeeper. It records what large Polymarket traders did and grades the result against the odds they paid. It does not tell anyone what to trade.

Current results

Scored flags
10562
Called
5759
Implied by price
6143.5
Edge
-3.6 pts

Citable summary: Of 10562 scored Polymarket whale flags between Feb 01, 17:59 EST and Oct 23, 21:41 EDT, 5759 were called against 6143.5 implied by entry prices, an edge of -3.6 pts (±0.4 pts standard error). Source: WhaleGrader, https://whalegrader.com/methodology. Data updated 1m ago.

Definitions

  1. Whale flag. A taker trade of $10,000 or more from the Polymarket Data API. Fills by the same wallet on the same market, outcome and side within one hour are merged into one flag.
  2. Odds-move flag. A market that moved 10+ points in 24 hours on at least $25,000 of volume. Near-settled prices (under 3¢ or over 97¢) and ended markets are skipped.
  3. Resolution. Outcomes come from the Gamma API once Polymarket marks the market resolved.
  4. Called / missed. Called if the flagged side won. A sell counts as a position against that outcome.
  5. Implied (expected). The entry price for buys, 1 − price for sells. A trade at 72¢ is expected to win 72% of the time.
  6. Edge. (called − implied) ÷ n, in percentage points. Positive means the flags beat the market's own odds.

What counts as a graded flag

Every number on the site (home, scoreboard, leaderboards, API) uses one definition: the market has resolved; the last trade was ≥1 hour before the market's start or close; the entry price was between 3¢ and 97¢; the outcome is named; and the wallet did not trade both sides of the same market. The scoreboard API returns this definition in its definition field.

Independent check of our grades

Each day we re-check a random sample of graded whale trades against Polymarket's own on-chain resolution payouts, a source separate from the market data we grade from. So far 537 of 537 checked grades (100.0%) agree; the last check ran Oct 24, 01:01 EDT. Markets that paid out 50/50 or are not yet settled on-chain are skipped. A disagreement counts against us in this number; it is not hidden.

Out-of-sample test

Most whales lose to the price on average. A leaderboard of past winners could just be luck chosen after the fact. To check, we pick "proven" wallets using only markets that resolved before a cutoff date. Then we score only the bets those wallets placed after it. The scoreboard shows the live result for two cutoffs, with standard errors, whatever it says.

Backtest and $5k feed

The backtest puts a fixed stake on each of a wallet's graded flags at its entry price. A win pays stake × (1/price − 1), and a loss costs the stake. You can add a worse fill and limit it to bets after the out-of-sample cutoff. It ignores fees, liquidity and early exits, and it is hypothetical. The $5k+ feed also lists $5k–$10k trades. Those are not graded and never enter any stat.

Kalshi

We also cover Kalshi using its public market-data API (no login). Kalshi trades don't show who placed them, so we only flag single trades of $10k+. Fills in the same market, on the same side and in the same second count as one trade. We also flag 20-point 24h odds moves on active markets. Each flag is graded the same way: expected = the entry price of the side taken, and the flag must be placed ≥1 hour before the event's start or close. Parlays (multi-leg) and 15-minute or hourly crypto/index markets are excluded. Kalshi numbers are shown separately and never mixed into the Polymarket scoreboard or wallet features.

Why no Brier score?

Some tools rank wallets by Brier score. A whale trade tells us the side and the price, not the trader's own probability. Brier computed from entry prices scores the market's forecast on the bets the wallet picked, not the wallet. Our edge (won − price-implied) is the calibration gap that matters for these bets. The calibration bars on each wallet page show it by price band.

Snapshots

Every week we freeze the scoreboard and top-50 leaderboard in snapshots that are never edited. Live numbers can change when markets resolve or methods improve. Snapshots show what we published at the time.

Coverage and history

Which Polymarket: we cover Polymarket's international, on-chain platform, where every trade is tied to a public wallet. Polymarket US, the separate CFTC-regulated exchange, is a different venue with its own data and isn't included. Pipeline health and data latency are public on /status.

Live tracking started Oct 20, 14:45 EDT. To give wallets meaningful sample sizes, we also backfilled history from Polymarket's public trade data back to Feb 01, 17:59 EST: $10k+ taker trades on resolved markets (the highest-volume resolved markets in each of the last 12 months), merged and graded with exactly the same rules below. Backfilled flags are tagged internally and counted in the scoreboard (38,090 graded). Backfill covers the biggest markets, not every market, so wallets that only trade small markets are under-represented.

Wallets need at least 20 graded flags to be ranked or counted as "proven".

Exclusions and limits

  • Flags placed less than 1 hour before a market's start or close are shown but not scored.
  • Small samples are noisy. Every headline shows n and a standard error.
  • Categories are assigned by keyword and can be wrong at the edges.
  • Near-certain entries (price at or below 3¢, or at or above 97¢) are shown but not scored: they carry almost no information.
  • Flags with no recorded outcome are excluded from scoring.
  • Market-maker style activity is excluded: if a wallet trades both sides of the same market (for example buys Yes and buys No, or buys and sells the same outcome), its flags in that market are not scored.
  • High-frequency farming is excluded too: a wallet with 20 or more $10k+ fills in one market is treated as a market maker or farmer there, and those flags are not scored.
  • Trades placed after a market has closed or its game has ended (for example selling a winner at 99.9¢ to cash out) are settlement trades, not calls. They show as excluded, never as called or missed.
  • Severity (HIGH / MED / LOW) is a display label from size, price, fills, wallet age and wallet record. It does not affect grading.
  • The live tape reads Polymarket's trade feed every 10 seconds. Stored flags refresh every 15 minutes; grading runs hourly.

Data and privacy

All trade data comes from Polymarket's public APIs. Wallets are pseudonymous public addresses, shown abbreviated. We count page views with a daily-rotating hashed visitor ID and do not store IP addresses. No affiliate links. Not affiliated with Polymarket.

Data only, not financial advice. Nothing here is a recommendation to buy, sell or hold anything.

The graded brief, free

unsubscribe anytime

Yesterday's biggest flags and how they graded. Misses included.