Loading this page’s records…
Loading this page’s records…
The evidence layer
Everything below is published so it can be checked. Our source data is public, so anyone who disagrees with a ranking can recompute it and show us where we are wrong.
Records are read from Polymarket, a prediction market where positions settle on a public ledger. Nothing is self-reported. A record is a wallet address, and because settlement is public, a losing position cannot be quietly removed after the fact.
Anyone can look up any wallet without an account, because the underlying data is public regardless. Claiming a wallet as yours is a separate step and requires proving you control it.
A sportsbook bet is atomic: one stake, one price, one result. A prediction market position is a trading record — you can add to it, trim it, or exit before the event happens. We resolve that with two units rather than forcing one.
Fill. One trade at one price and one moment. This is the unit for closing line value.
Position. Every fill on one outcome, netted together. Reviewed records use cash paid and received in the public trade activity, including execution fees, for cost basis and sale proceeds. This is the unit for profit and loss.
We publish two records from these. The settlement record counts only positions held to resolution, and gives wins, losses and pushes. The trading return covers every position including early exits. Showing both tells you whether you are looking at someone who picks or someone who trades — genuinely different behaviour, and worth knowing before you follow either.
Market makers are the single largest data-quality risk in this dataset. Providing two-sided liquidity generates thousands of near-zero-edge trades, and across that many observations noise alone will make someone look either brilliant or hopeless.
We classify every fill as maker or taker directly from the exchange, and exclude any wallet whose fills are 30% or more market making. This matters more than it sounds: the top of Polymarket’s own sports leaderboard is heavily populated by market makers, because that leaderboard sorts on profit and volume.
We also exclude wallets trading at a cadence no human handicapper could sustain. Above roughly 400 fills a day, a wallet is running an algorithm, and a statistic computed over its trades measures execution speed rather than judgement about games.
A wallet is ranked only if it clears every one of these:
| Taker fills | at least 100 |
| Settled positions | at least 50 |
| Cost basis deployed | at least $2,000 |
| History | at least 60 days between first and last activity |
| Market making | under 30% of fills |
| Typical position size | median of at least $25 |
A wallet below these thresholds can still have a visible record, but it does not have enough evidence to rank. Eligibility does not establish that its source history is current; check the freshness message separately.
On the median position size. Total money deployed is a poor measure on its own, because volume substitutes for size: 969 bets of $3.40 clears a $2,000 threshold exactly as easily as 50 bets of $200, and those are not the same trader. We therefore require the typical position to be at least $25.
Measured across our own ranked set, this removed 96 of 154 wallets while retaining 84% of all money deployed — the wallets it excludes carry almost none of the capital. The median position size is published on every profile so you can judge it yourself rather than take the threshold on trust.
We publish two return figures on purpose. They answer different questions, and collapsing them into one number is how longshot lottery tickets end up looking like skill.
Typical return (headline). Equal-weight mean of per-position returns after each position is clamped to −100%…+300% (the measured 99th percentile). Then empirical-Bayes shrinkage toward the population mean of that same series:
typical_raw = mean( clamp(pnl_i / cost_i, −1, +3) ) typical = (n × typical_raw + k × μ_typical) / (n + k)
This is the same series the ranking t-statistic uses. A wallet that is 4–156 with a few massive longshot wins will often show a negative typical return even when dollar P&L is positive — which is the honest skill read.
Bankroll return (secondary). Total realized P&L divided by total deployed capital, then shrunk toward the bankroll population mean. Longshot payouts are not capped here — if you netted +$10k on $9k deployed, that dollar fact is real and we show it. We just refuse to call it “sample-adjusted skill.”
bankroll_raw = Σ pnl / Σ cost bankroll = (n × bankroll_raw + k × μ_bankroll) / (n + k)
k is 200 for both. Confidence intervals on the profile centre on typical return, not bankroll.
Closing line value measures how the market price moved between a pre-event trade and the recorded closing price. It contributes 35% of the composite score once there are at least 30 measured fills. It provides price evidence alongside returns; it does not establish that a trade was profitable.
buy at p, close at c → clv = c / p − 1 sell at p, close at c → clv = (1 − c) / (1 − p) − 1
The sell case uses the complement because selling one side is economically buying the other. The calculation compares quoted prices before fees. It does not measure total net return, and a positive CLV can be smaller than the costs of trading.
Fills made at or after the event start receive no CLV — there is no closing line value on an in-play trade. Markets with no price observation near the close are left blank rather than estimated.
Per-fill closing line value is capped at plus or minus 50% before averaging. This matters and we would rather explain it than bury it. The formula above is not scale-invariant: a one-cent longshot drifting to five cents scores +400%, while a fifty-cent favourite moving to fifty-two cents scores +4%. Averaged together, a handful of cheap longshot trades can swamp thousands of ordinary ones.
Measured across 122,331 trades in our own data, average closing line value was +302.8% for trades made under two cents and −0.2% for trades between forty and sixty cents. Roughly 0.6% of trades were dominating the figure entirely. Without the cap, this measure ranks people by the price they paid rather than by the quality of their decisions — one wallet read +44.3% uncapped and is actually −4.2%.
The cap keeps the number in units that mean something to a reader. It is a real limitation and it is stated here because a ranking adjustment nobody is told about would undermine the point of publishing this page at all.
Each input is converted to a percentile within the eligible population, then weighted:
| t-statistic on winsorized per-position returns | 40% |
| Average closing line value | 35% |
| Typical return (winsorized, then shrunk) | 15% |
| Return consistency (Sharpe-like on bankroll path) | 10% |
Those weights are nominal, and three of the four inputs are not independent. The return statistic, typical return and consistency use the same underlying position returns. Together they carry 65% of the nominal weight. Closing line value compares market prices and carries the other 35%. These are overlapping measures, so the four inputs should not be interpreted as four independent tests.
Closing line value only counts once a wallet has at least 30 pre-event fills with a measured closing price. Below that the input is treated as neutral rather than scored, matching the rule that no cell computed from fewer than 30 observations is published — a figure too thin to show a reader is too thin to rank on.
No single position may contribute more than 2% of a wallet’s ranked exposure, so one enormous winner cannot carry an otherwise ordinary record.
Per-position returns are capped at +300% before the skill test. A position bought at one cent returns almost 10,000% if it lands, and across the ranked set the top 1% of positions carry 68.8% of all return. Left uncapped, the measure scores the price someone paid rather than the judgement they showed — the same problem the closing-line cap above exists to solve. The cap sits at the 99th percentile of observed per-position return, so it touches under 1% of positions, and every position counts equally regardless of stake so that the test measures judgement rather than bankroll.
When this cap was introduced it moved 33 of 58 ranked wallets by five places or more and changed four tier labels. We publish that rather than quietly restating the board: one wallet had been labelled proven on the strength of fourteen longshots, and is measurably losing once they are capped.
The t-statistic is used but never displayed. It is an input to an ordering, not a number that means anything on its own to a reader, and publishing it would invite exactly the kind of decontextualised comparison the rest of this page exists to prevent.
Stating these plainly is part of the method, not a disclaimer bolted onto it.
Found an error in any of this? That is genuinely useful to us — the source data is public, so a disagreement about a ranking is a solvable question rather than an argument.