Method
How CALIBRE measures a wallet's record, what the study found, and what none of it can show.
The data behind it
Plain sums over the study outputs, written by scripts/scale-stats.ts. Nothing is estimated or extrapolated.
- $1.78B
- Polymarket's own trading-volume figure, summed over the 4,587 closed sports markets in the square-money replay (142 leagues).
- $197.6M
- Money that pushed the 11,975 replayed moves, traced to 10,113 distinct taker wallets.
- 790,185
- Bets scored against the price paid in the wallet index: 5,740 wallets, 69,914 wallet-by-league records, 197 leagues and categories.
- 356,116
- Bets scored in the profit-blind study of 1,006 wallets that the label test uses.
How edge is measured
Edge is the average of (won minus price paid) over a wallet's resolved bets, in probability points. A bet bought at 40 cents that wins counts +0.60, one that loses counts -0.40. If prices were fair, the average would be zero.
- One bet is counted per wallet per market, so splitting one bet into twenty fills does not count twenty times. A sell is scored as a bet on the other side at one minus the price.
- Under "prices are fair", edge has a known standard error, the square root of the sum of p(1-p), divided by the number of bets. That gives a z-score and the error band you see as edge ± 2 standard errors.
- Pre-game bets (placed before the game or event started) and in-play bets (placed once it was live) are scored separately: the first is forecasting, the second is reaction speed.
- Sniping is a bet at 97 cents or more, or 3 cents or less, where the outcome was effectively decided. These are set apart, with their own share and edge, and never counted as an edge.
- The call: proven edge only if z is at least 2 and there are at least 100 bets in a phase; negative edge if z is -2 or lower; too early under 30 bets; otherwise no proven edge (consistent with luck). A wallet is flagged mostly sniping when more than 40% of its resolved bets are sniping.
The X-ray labels and square money
The wallet X-ray puts every wallet in one of five labels, read in this order from its overall record (pre-game and in-play together, one bet per market, sniping excluded):
- Proven losing record: overall z of -2 or lower over at least 30 bets. Lost again in testing (−3.8 pts next, 81% of wallets).
- Mostly sniping: more than 40% of resolved markets were bought at 97 cents or more, or 3 cents or less.
- Too early: under 30 scored bets.
- Proven winning record: overall z of 2 or more over at least 100 bets. Rare; stayed ahead modestly in testing (+2.2 pts next).
- No proven edge: everything else.
Square money on a market is the share of the money pushing its latest move (4 points or more in the last 6 hours) that came from wallets labeled proven losing record. Only the six biggest takers are audited, so every figure comes with its coverage: the share of the pushing money that could be judged. It is a caution signal, not a trade recommendation: see the replay below, which is early evidence and not conclusive.
Label validation: the labels predict what a wallet does next
Do the labels predict? Each wallet gets the label it would have had from its older bets; the table shows its edge on its newer bets. 97 of the 983 wallets earned one of the two proven labels.
| Label from the older half | Wallets | Older edge | Next edge (pts) | 95% interval | Negative next half |
|---|---|---|---|---|---|
| Proven losing record | 57 | −9.1 | −3.8 | −5.1 to −2.4 | 81% |
| Proven winning record | 40 | +8.3 | +2.2 | +0.5 to +4.1 | 38% |
| No proven edge | 801 | +0.2 | −1.0 | −1.3 to −0.7 | 60% |
| Too early | 85 | +2.7 | −1.9 | −4.3 to +1.0 | 60% |
| All wallets | 983 | +0.2 | −1.1 | −1.5 to −0.7 | 61% |
Reading it. A proven losing record is the strongest label: 57 wallets, −3.8 pts per bet on their next bets (interval −5.1 to −2.4), against −1.1 for all wallets. A proven winning record is rare and modest: 40 wallets, +2.2 pts (interval +0.5 to +4.1). Most wallets (the "no proven edge" row) did slightly worse than zero.
Method.
- Source: the per-wallet lines of the 1,000-wallet skill-persistence study (profit-blind wallets drawn from random sports markets, already-decided bets at 97 cents or more, or 3 cents or less, excluded). 983 wallets have a result line.
- Each wallet's bets are split at the middle. The older half is what the X-ray would have known; the newer half is what happened next. The label comes from the older half with the live rules.
- Edge is points won above the price paid, per bet, one pick per market. Intervals are 95% bootstrap over wallets (2,000 resamples, fixed seed); each wallet counts once.
- The sniping label cannot be derived from the study logs and is left out.
Caveats.
- The result is mostly driven by in-play bets. By phase, the losing label: in-play −3.5 (−5.1 to −2.0, 47 wallets), pre-game −1.2 (−3.8 to +1.6, 21 wallets). The winning label: in-play +0.9 (−1.2 to +3.1, 15 wallets), pre-game −1.0 (−3.1 to +1.3, 11 wallets). The winning label is not significant in either phase on its own.
- Older and newer halves of the same wallet share its style, and wallets trade the same events, so the intervals are optimistic. This is a test of whether labels carry information, not a trading backtest.
- Edge ignores fees, bet size and bankroll. It is not profit.
Square-money replay: early evidence, not conclusive
11,975 real moves of 6 points or more within 60 minutes, in 4,587 closed sports markets. The six biggest takers of each move are labeled using only bets that resolved before the move.
| Moves pushed by | Moves | Follow edge, pts [95% CI] |
|---|---|---|
| proven losers (50% or more of the labeled flow) | 436 | −2.4 [−6.4, +1.4] |
| mixed | 556 | −1.0 [−4.4, +2.5] |
| no proven losers (clean) | 3,597 | +0.7 [−0.7, +2.1] |
| all labeled moves | 4,589 | +0.2 [−1.0, +1.5] |
Reading it. Following a loser-driven move did −3.1 pts worse than following a clean one (one-sided permutation p = 0.073). The interval for loser-driven moves spans zero, so this is early evidence, not conclusive. An earlier, smaller run (4,355 moves) gave -3.8 pts at p about 0.14: the larger run narrowed the interval and the gap held in direction.
- Follow edge is the final result minus the price at the end of the move, in the move's direction. Negative means the move overshot.
- A move counts as loser-driven when proven losers are 50% or more of the labeled flow; "mixed" sits between that and none. 4,589 of the 11,975 moves had takers with enough resolved bets to label.
- By phase: pre-game, loser-driven 147 moves at −1.8 against −0.8 for clean ones; in-play, 289 moves at −2.8 against +1.5.
- Moves in the same market, and markets on the same event, are not independent, so the interval and the p-value are optimistic. Only 176 moves were loser-driven.
- CALIBRE shows square money as a caution signal about who pushed the price. It does not tell anyone what to trade.
The earlier studies, and their correction
The earlier sections of docs/FINDINGS.md, rendered as is. The first study was corrected on 3 Nov 2026 after a stricter test.
Earlier: wide study of 1,000 wallets, best and worst thirds (3 Nov 2026)
Same method as below (scripts/wide-study.sh, already-decided bets at ≥0.97/≤0.03 excluded), with 1,000 wallets sampled without regard to profit from 2,000 random sports markets, plus the 25 top earners. Full report: research/wide-study on the build machine; summary:
| Bets counted, profit-blind wallets | Wallets | Rank correlation, older vs newer edge | p | Best third by older edge: newer edge | Worst third: newer edge |
|---|---|---|---|---|---|
| All | 983 | 0.17 | <0.0001 | −0.2 pts | −2.1 pts |
| All, 100+ bets | 840 | 0.21 | <0.0001 | +0.3 pts | −2.1 pts |
| Pre-game, 100+ bets | 403 | 0.07 | 0.09 | −0.8 pts | −1.9 pts |
| In-play, 100+ bets | 683 | 0.14 | <0.0001 | −0.5 pts | −2.0 pts |
| Top earners (all) | 23 | −0.04 | 0.57 | −1.1 pts | +0.4 pts |
- With enough wallets, track records do persist, but almost entirely on the losing side: wallets in the best third roughly break even afterwards, while wallets in the worst third keep losing about 2 points per bet.
- No third showed a reliably positive future edge. The stricter label above (z of 2 or more over 100+ bets) does show a modest one, so a rare proven winning record carries some information, while ranking wallets by raw edge does not.
- The profit leaderboard carries no persistent signal.
- The 40-wallet study below lacked the power to see this; it is kept as the record of how the method was corrected.
---
Earlier: apparent trader "skill" does not persist once you remove already-decided bets (40 wallets)
Studies run 2–3 Nov 2026 with scripts/skill-persistence.ts (SOURCE=public SAMPLE=active TRADES=1000, plus PHASE). This file was corrected on 3 Nov after a stricter test; the first version reported persistence that came from an artefact.
Question
Does a Polymarket sports trader's edge against the price they paid in their older bets predict their edge in their newer bets? If yes, weighting a market move by who traded it carries real information.
Method
- Edge = mean of (won − price paid), one pick per wallet per market, sells scored as the opposite side (
packages/core/src/edge.ts,picks.ts). Under "prices are fair", edge has standard error √(Σ p(1−p))/n. - Each wallet's last ≤1,000 trades are split chronologically into an older and a newer half.
- Two samples: 25 top earners from the SPORTS profit leaderboard (biased: chosen for recent profit), and 40 profit-blind wallets active in at least 3 of 120 random sports markets (chosen without looking at profit).
- Bet phases (
PHASE): pre-game (placed before the game started, from GammagameStartTime/eventStartTime), in-play (placed after it started), all. Bets at prices ≥0.97 or ≤0.03, where the outcome was effectively decided, are excluded in the corrected runs. - Trades from Polymarket's public Data API, resolutions and start times from Gamma. Significance by permutation test on the rank correlation (5,000 shuffles).
Results (profit-blind sample unless noted)
| Bets counted | Wallets | Rank correlation, older vs newer edge | p |
|---|---|---|---|
| All, including already-decided bets (first run) | 40 | 0.41 | ≈0.005 |
| All, already-decided bets excluded | 40 | 0.12 | ≈0.23 |
| Pre-game only | 30 | 0.03 | ≈0.45 |
| In-play only | 40 | −0.10 | ≈0.73 |
| Top earners, all, already-decided excluded | 23 | −0.07 | ≈0.63 |
- The persistence in the first run came from wallets that repeatedly buy outcomes that are already decided (for example at 98¢). That strategy earns a small, steady edge, so it looks persistent, but it is not forecasting and it says nothing about whether a market move is informed.
- Once those bets are removed, no group of wallets shows edge that carries over from older to newer bets, pre-game or in-play. Few wallets clear z ≥ 2 at all (1 of 40 profit-blind wallets on all phases).
- The profit leaderboard is no better: past edge of top earners does not predict their future edge.
What it means
- With the bet counts individual wallets have (a few hundred), a wallet's measured edge is dominated by luck. Most "smart money" a copy-trader would follow is either luck or already-decided-bet sniping.
- CALIBRE therefore must not label a move "sharp money" from wallet history alone. Its honest job is to show who moved a market, what each wallet's record really is once sniping and luck are accounted for, and to say plainly when nobody behind a move has a proven edge.
Caveats
- 65 wallets, one split per wallet; wallets trade the same events, so they are not independent.
- Real skill smaller than about ±3 points per bet cannot be detected per wallet at these sample sizes; it may exist and be invisible. Cohort-level tests with many more wallets could detect it.
- Raw rows of the first run:
docs/skill-persistence-results.json.
Limitations
- A wallet audit reads at most the newest 1,000 trades. Older history is not counted.
- Polymarket accounts trade through a proxy wallet, and one person can run several wallets. The audit sees an address, not a person.
- A past record is not a promise. The label test found a proven losing record predicts well, a proven winning record only modestly, and raw edge or leaderboard rank not at all.
- Edge is measured against the price paid. It ignores fees, bet size and bankroll, so it is not profit.
- Resolutions and start times come from Polymarket's Gamma API. A market without a start time treats the last 3 hours before its close as in-play.
- Verdicts sealed before model v2 can carry forecasts far from the price. They stay as sealed because Walrus Memory is append-only.
- This is not financial advice.