How the rating is computed

Every rule this build applied, the number it used, and why that number and not another. Config values and build figures are read from the build itself, so this page cannot claim a rule the fit did not use.

 

What the number means

1500 means no measurable edge over the market. Most traders belong there, and a leaderboard that does not put most traders there is measuring something else — usually bankroll, activity, or luck.

A rating is only as good as its interval. 1700 ± 250 is not better than 1600 ± 40; it is a claim with almost nothing behind it. Every rating on the board carries its interval, and a wallet is only ranked once it clears the eligibility bar in section 4.

Ranks follow Elo, 1 to N with no gaps. Flagged wallets are listed with their rating but not ranked. Ties break on the interval's lower bound, then on evidence. The board can be re-sorted by that lower bound — "most certain edge" — for a reader who wants to penalise uncertainty rather than reward it.

The first public board ranked by the lower bound. Readers saw rank 3 above a higher Elo at rank 4, plus gaps where flagged wallets had been skipped, and reasonably read it as broken. Ordering by the number printed in the Elo column, with the bar excluding thin samples, is the same information presented the way it is read.

The model

The market is the opponent and its price is the expected score. A trader taking direction d — +1 for YES, −1 for NO — in a market the book prices at p is asserting a different probability:

 

θ is their edge in log-odds over the market consensus. Fitting maximises the weighted Bernoulli log-likelihood of what actually happened under q, with a normal prior θ ~ N(0, σ²) that shrinks thin records toward no edge.

Where the prior width comes from

σ is estimated from the population by empirical Bayes — an EM loop over every trader — not chosen by hand:

σ² ← mean over traders of ( θ̂ᵢ² + varᵢ )

Including varᵢ matters. Dropping it collapses σ toward zero, shrinks everyone to 1500, and produces a board with no signal at all.

Why the fit is cheap

Because d is always ±1, d² = 1 and the curvature collapses to a plain sum of q(1−q). Each trader's posterior is one-dimensional and concave, so Newton's method converges in a handful of steps, and the posterior standard deviation is a Laplace approximation at the mode.

The Elo scale

Elo is a presentation of θ, nothing more:

 

This preserves standard Elo semantics: a 400-point gap means the higher-rated trader's implied odds ratio is ten times the market's. The scale carries no extra information — it exists because 1638 is easier to read than 0.80.

What counts as one bet

The unit of evidence is a bet, not a fill. One order routinely fills against many counterparties, and a resting limit order fills over hours. Counting fills would reward splitting an order into pieces.

A bet's weight is shared across its fills in proportion to stake, so every fill keeps its own pre-trade price and splitting an order changes nothing at all. Eligibility and every count on the board are in bets.

What per-fill weighting actually did

Measured on the real tape: splitting multiplied a trader's weight by a median 1.4×, and 8× at the 99th percentile. 3,759 of 8,023 wallets with 50+ fills had fewer than 50 separate bets. Of consecutive same-direction fills, 17% land in the same second, 29% within ten seconds, 43% within a minute and 80% within an hour. Moving to bets took out-of-sample ρ from 0.074 to 0.080 and cut the rating's correlation with stake size from 0.13 to 0.09.

Why the weight has that shape

  • Root of stake, not stake. So one whale position cannot outvote a hundred considered ones. The cap bounds it further.
  • Time decay. A record from years ago says less about today than last month's does.
  • Damping within an event. Buying five strikes of one election is close to one call made five times, so each bet inside an event cluster is divided by a power of how many there are.

What the sweep settled

Each candidate was scored on three time splits, holding the trader set and the target fixed at the baseline's, with a paired bootstrap over traders. A variant shipped only if its 95% interval excluded zero.

VariantDifference in ρ95% intervalShipped
One bet per day+0.0129+0.0036 to +0.0235yes
Damp bets per event (0.5)+0.0110+0.0012 to +0.0193yes
Price under 2 minutes old+0.0010+0.0002 to +0.0019yes
All three together+0.0166+0.0027 to +0.0287yes
One bet per 6 hours+0.0041−0.0028 to +0.0115no
Half-life 120 days+0.0026−0.0031 to +0.0086no
Blend the rating with CLV−0.0016−0.0116 to +0.0078no
Stake cap $2,500−0.0030−0.0062 to −0.0000no

Six hours was too short and three days added nothing, so a day is a plateau rather than a lucky cut. Asked again on top of the combination, a $2,500 stake cap scored −0.0113 and a 120-day half-life −0.0067, so neither shipped.

Which markets count

Resolved only

A market counts once it has resolved, and the resolution has to be clean: markets that refunded or voided are dropped rather than scored as a loss for everyone. An open position is not evidence, however good it looks.

The volume floor

Dust markets are mostly wash and self-trade noise, and a thin book is a weak opponent — its pre-trade midpoint carries little information, so beating it is not evidence of skill. They also cost a full trade-tape walk each.

Measured across every resolved market discovered: the floor drops 932,019 of 1,459,457 markets — 64% of the work — for $379M of $63.7B in volume, which is 0.6%.

Price freshness

Each bet is priced against the last midpoint strictly before its timestamp. If the nearest earlier sample is older than the freshness limit, the bet is dropped rather than scored against a stale book.

98% of fills are scored against a midpoint under 60 seconds old. Tightening the limit to 120 seconds dropped 2,854 fills out of 8.8M — the ones in books nobody was quoting, where the apparent edge is really the gap in the samples.

Topic boards stand alone

A topic board is a fresh fit on that topic's markets only, so an Elections rating comes from Elections bets.

Shrinking a topic rating toward the trader's record outside the topic was implemented and scored on a time split: out-of-sample ρ was +0.140 for the topic's own fit, +0.066 for the outside record alone, and +0.142 for the two combined. The gain is noise, so the boards stay separate. Topic ratings predict their own topic better than the overall board predicts overall, which says skill here is specialised.

Who gets ranked, and who is flagged

Everyone rated gets a number. Only those past both bars are ranked, which is what keeps a lucky handful of bets off the top.

Two bars rather than one, because fifty bets on a single election is not fifty pieces of evidence — the event count is the one that resists padding.

Market makers

Quoting is not forecasting: a market maker earns the spread and holds no directional view. Flagging one requires all of:

  • at least 200 fills,
  • net exposure no more than 15% of gross,
  • at least 25% of fills reversing the previous fill in that market within an hour,
  • at least 5 such reversals per market.
The first version of this rule was wrong. It flagged wallets trading both directions at near-zero net exposure, or mostly maker-side, and caught 946 of 1,730 eligible traders. Buying into a position and later selling out trades both directions and nets to zero, and nearly everyone uses limit orders — the median maker share among eligible wallets was 0.98. Neither is market making. The current rule flags 137 eligible wallets, none in the top 25, and they rate about 1478–1512, which is where a spread-earner with no view belongs.

Wash and linked wallets

The rule looks for concentration: one side of a pair doing most of its trading with the other, which is what washing looks like.

The first version required only that two wallets met often, and flagged 3,486 wallets in 218 clusters — including 9 of the top 15. It was wrong: both legs of any ordinary match are reported as complementary-token buys at the same timestamp and size, so "these two met 20+ times" simply describes active counterparties in a liquid market. The median flagged pair met on only 12% of the smaller wallet's fills.
A flag describes a trading pattern. It is not an accusation of wrongdoing, and any wallet can ask to be removed from the page entirely.

Elo after costs

The same bets, scored against the price each fill actually got instead of the midpoint. Paying the spread counts against a taker; a better fill counts for a maker.

On a time split, later edge after costs was predicted by Elo after costs at ρ 0.067 and by the midpoint Elo at 0.055; later edge over the midpoint was predicted by the midpoint Elo at 0.079. The two ratings correlate 0.92. Each predicts its own kind of later result best, which is why both are published and neither replaces the other.

The midpoint Elo stays the headline because it measures the forecast. After costs tracks the money.

Where the ranges come from

Every rating carries a 95% range and every rank a plausible band. Both rest on one idea: correlated bets are not independent evidence.

Events

The cluster-robust interval sums each event's score before squaring, so fifty bets on one election count as one piece of evidence rather than fifty.

Subjects

Events about one subject are not independent either. Each event belongs to a theme — its broadest tag — and the interval takes whichever of the event-level and theme-level variance is larger, so themes can widen an interval but never narrow it.

Measured on 7,081 traders with 10+ events: standardized results on two events sharing a subject tag correlate +0.053 more than on unrelated events. A random grouping of the same sizes gave +0.002; narrow tags and whole categories gave about zero. On real data the median eligible trader's interval widened 0.8%, and 395 of 2,001 widened by more than 10%.

Rank bands

Each ranked trader shows the 5th to 95th percentile of their rank across 400 joint draws of every ranked trader's Elo from its interval. A trader in the top ten whose band reaches fiftieth is telling you the sample is thin — that is the honest reading of a rank, and it is why the bands are on the page.

Why not win rate, profit or volume

This is the single most important design decision on the page. Against a calibrated book, any strategy whose direction depends only on the price has zero expected edge, because the outcome minus the price averages to zero at every price.

Measured on 8,000 synthetic observations each:

StrategyWin rateElo95% interval
Always buy the favourite76.6%14971489–1504
Always buy the longshot22.3%14961489–1503
Random direction48.7%14941487–1501
Copy the market69.1%15001493–1508

Fifty-four percentage points of win rate apart. One Elo point apart. A trader who only backs favourites wins three bets in four and has no skill; a board sorted by win rate, profit or volume ranks them highly. In the same pool, a genuinely skilled trader simulated at θ=0.8 recovers to Elo 1638 against a true 1639.

If any of those null strategies ever ranks highly, the model is broken and the build does not ship. The test suite enforces it.

Checks that run on every build

The rating is re-tested on every build and the results are published whether or not they flatter it. The out-of-sample test splits the history in time, fits on the earlier part only, and asks whether those ratings predict each trader's realized edge in the later part.

The two correlations that should sit near zero are the point of the exercise: a rating tracking how much someone bets, or how much money they moved, would be measuring activity rather than accuracy.

Market calibration

Each build also fits P(YES) = sigmoid(a + b·logit price) with every market weighted equally, and reports it above. At the moments people trade, YES has won somewhat more often than its price implied.

Rating against the recalibrated price correlates 0.98 with the published rating and predicted later edge slightly worse (0.0745 against 0.0795). A trader's share of stake buying YES correlates +0.04 with their rating. So the rating is not recalibrated, and the check is published instead.

Properties asserted in the test suite

  • Unbiased recovery across 40 replications at each of θ = 0, 0.2, 0.5, 1.0: mean error within three standard errors of zero.
  • Honest intervals: the nominal 95% interval covers the truth 90–99% of the time across 200 replications.
  • Traders with no edge do not drift, in batch or online fitting.
  • Intervals narrow with evidence, monotonically.
  • Skill ordering is preserved across θ from −0.8 to +0.9.

Known limitations

  • Inside information looks like skill. Public trades cannot show why someone was right, and no rule here tries to guess.
  • Wallets, not people. One person's several wallets are not linked, which would need on-chain funding data this pipeline does not read.
  • The book is not perfectly calibrated. The null baselines above assume it is; the real one leans slightly, and a trader who exploits that beats the posted price and the model says so. Measured, it barely moves ratings.
  • Maker and taker attribution is derived, not published, so it is reported where known and flags nobody.
  • Open positions do not count until their markets resolve, so an active trader's newest and best work is invisible here for a while.
  • Coverage is partial. The figures in section 11 say how partial, on this build.

What is deliberately not done

  • No attempt to link several wallets to one person.
  • No profit-based ranking. Profit follows stake size and risk appetite, not accuracy.
  • No trading, no orders, no custody. Positions can be copied out as a file; nothing is ever placed.
  • No tracking, cookies, analytics or third-party requests. The fonts are bundled into the page, so no visitor request reaches anyone else.
  • No recalibration of the market price, and no blending of closing line value into the rating — both were tested and neither predicted better.
  • No accusation of wrongdoing about any wallet.

Data, coverage and updates

Everything comes from Polymarket's public endpoints: resolved markets and their events, the trade tape for each market, and the midpoint series each bet is scored against. Nothing private, nothing behind a login, and well inside the published rate limits.

Coverage grows biggest-market-first, so the largest markets are in well before the long tail. Markets whose tape is too long to page through in one pass are walked in exact time windows and stored separately, which is why the biggest events are present rather than half-counted.

The page rebuilds once a day. Raw trades are immutable and inserted once, so a rebuild re-reads rather than re-fetches, and every run records the configuration it ran under.