Performance audit
Am I good, and am I safe, answered for any Polymarket wallet from public data. No account, no API key, nothing to install.
Scoring a forecast requires knowing what someone believed before the outcome, which is why every other tool asks traders to log a probability against each position and then wait dozens of trades to learn anything. That step is unnecessary here. Every fill on Polymarket settles on Polygon with a price and a timestamp attached, so the record already exists: the price paid is the probability revealed.
Am I good
Each row is a band of entry prices. Paid is the average price actually paid, which is the probability the wallet revealed by buying. Happened is how often those positions paid out. A well-calibrated trader has the two columns tracking each other.
| Entry band | Positions | Paid | Happened | Gap |
|---|---|---|---|---|
| 0–10% | 43 | 5% | 2% | −2pp |
| 10–25% | 45 | 17% | 18% | +1pp |
| 25–40% | 53 | 33% | 36% | +3pp |
| 40–60% | 60 | 51% | 50% | −1pp |
| 60–75% | 40 | 68% | 73% | +5pp |
| 75–90% | 69 | 82% | 83% | +0pp |
| 90–100% | 72 | 95% | 99% | +3pp |
A positive gap means the wallet was under-confident in that band, it won more often than the price it paid implied. Negative means over-confident.
Am I safe
The resolved record
Every settled position, rebuilt from on-chain fills. Realised −$15.6K across 382 positions, with $42 of entry fees paid.
| Market | Paid | Result | Size | P&L |
|---|---|---|---|---|
| Monterrey Open: Diane Parry vs Ann Li — Ann Li | 0.2696 | lost | 1,484 | −$400 |
| Monterrey Open: Diane Parry vs Ann Li — Diane Parry | 0.6600 | won | 1,515 | $515 |
| Winston-Salem Open: James Duckworth vs Arthur Fery — Arthur Fery | 0.9600 | won | 427 | $17 |
| Winston-Salem Open: James Duckworth vs Arthur Fery — James Duckworth | 0.0616 | lost | 12,905 | −$795 |
| ITF MEN - SINGLES: M25 Poznan (Poland), clay: Campana Lee Gerard vs Filip Pieczonka — Filip Pieczonka | 0.5600 | won | 27 | $12 |
| ITF MEN - SINGLES: M15 Monastir 28 (Tunisia), hard: Louis Larue vs Toufik Sahtali — Louis Larue | 0.4300 | lost | 35 | −$15 |
| Kingston 2: Andrew Fenty vs Luis Guto Miguel — Luis Guto Miguel | 0.9282 | won | 1,472 | $106 |
| Kingston 2: Andrew Fenty vs Luis Guto Miguel — Andrew Fenty | 0.0224 | lost | 8,089 | −$181 |
| Philadelphia: Fiona Crawley vs Julia Grabher — Julia Grabher | 0.9260 | won | 221 | $16 |
| Philadelphia: Fiona Crawley vs Julia Grabher — Fiona Crawley | 0.4950 | lost | 808 | −$400 |
| US Open, Qualification WTA: Yue Yuan vs Mary Stoiana — Yue Yuan | 0.2900 | lost | 282 | −$82 |
| US Open, Qualification WTA: Tamara Zidansek vs Bianca Andreescu — Tamara Zidansek | 0.8518 | won | 3,439 | $510 |
| US Open, Qualification ATP: Zsombor Piros vs Christopher O'Connell — Zsombor Piros | 0.7348 | won | 6,299 | $1.7K |
| US Open, Qualification ATP: Zsombor Piros vs Christopher O'Connell — Christopher OConnell | 0.5665 | lost | 1,762 | −$998 |
| ITF WOMEN - SINGLES: W35 Barueri (Brazil), hard: Martina Capurro Taborda vs Victoria Luiza Barros — Victoria Luiza Barros | 0.3110 | won | 395 | $272 |
| Winston-Salem Open: Juan Manuel Cerundolo vs Ignacio Buse — Juan Manuel Cerundolo | 0.5695 | lost | 467 | −$266 |
| Winston-Salem Open: Juan Manuel Cerundolo vs Ignacio Buse — Ignacio Buse | 0.6300 | won | 35 | $13 |
| ITF WOMEN - SINGLES: W35 Barueri (Brazil), hard: Martina Capurro Taborda vs Victoria Luiza Barros — Martina Capurro Taborda | 0.4054 | lost | 28 | −$11 |
| Monterrey Open: Alycia Parks vs Ann Li — Ann Li | 0.9300 | won | 222 | $16 |
| ITF WOMEN - SINGLES: W50 Oldenzaal (Netherlands), clay: Beatrise Zeltina vs Britt Du Pree — Beatrise Zeltina | 0.2931 | lost | 2,222 | −$651 |
| ITF WOMEN - SINGLES: W50 Oldenzaal (Netherlands), clay: Beatrise Zeltina vs Britt Du Pree — Britt Du Pree | 0.4100 | won | 488 | $288 |
| US Open, Qualification WTA: Elvina Kalieva vs Sofia Costoulas — Sofia Costoulas | 0.2700 | lost | 1,431 | −$386 |
| US Open, Qualification ATP: Federico Cina vs Hugo Dellien — Hugo Dellien | 0.0988 | lost | 1,253 | −$124 |
| Philadelphia: Oksana Selekhmeteva vs Capucine Jauffret — Capucine Jauffret | 0.5913 | lost | 13,523 | −$8.0K |
| Philadelphia: Oksana Selekhmeteva vs Capucine Jauffret — Oksana Selekhmeteva | 0.4100 | won | 9 | $5 |
| US Open, Qualification WTA: Katie Swan vs Mary Stoiana — Mary Stoiana | 0.6610 | won | 1,084 | $367 |
| US Open, Qualification WTA: Katie Swan vs Mary Stoiana — Katie Swan | 0.4300 | lost | 1,015 | −$436 |
| US Open, Qualification ATP: Otto Virtanen vs Jack Pinnington Jones — Jack Pinnington Jones | 0.0300 | lost | 100 | −$3 |
| US Open, Qualification ATP: Otto Virtanen vs Jack Pinnington Jones — Otto Virtanen | 0.8600 | won | 13 | $2 |
| US Open, Qualification WTA: Despina Papamichail vs Ekaterine Gorgodze — Ekaterine Gorgodze | 0.7600 | won | 20 | $5 |
| US Open, Qualification WTA: Despina Papamichail vs Ekaterine Gorgodze — Despina Papamichail | 0.1992 | lost | 12,063 | −$2.4K |
| ITF WOMEN - SINGLES: W75 Bytom (Poland), clay: Irene Burillo Escorihuela vs Laura Hietaranta — Laura Hietaranta | 0.5747 | won | 69 | $29 |
| ITF WOMEN - SINGLES: W75 Bytom (Poland), clay: Aneta Laboutkova vs Vivian Wolff — Aneta Laboutkova | 0.8205 | won | 304 | $55 |
| US Open, Qualification WTA: Anouk Koevermans vs Linda Klimovicova — Linda Klimovicova | 0.0100 | lost | 870 | −$9 |
| Philadelphia: Lizette Cabrera vs Mananchaya Sawangkaew — Lizette Cabrera | 0.0790 | lost | 100 | −$8 |
| US Open, Qualification ATP: Kyrian Jacquet vs Aziz Dougaz — Kyrian Jacquet | 0.4474 | lost | 1,110 | −$496 |
| ITF WOMEN - SINGLES: W35 Trieste (Italy), clay: Amarissa Kiara Toth vs Pia Lovric — Pia Lovric | 0.9696 | won | 515 | $16 |
| Roehampton 2: Oliver Tarvet vs Oliver Bonding — Oliver Tarvet | 0.7019 | won | 105 | $31 |
| Roehampton 2: Anton Matusevich vs Michele Ribecai — Anton Matusevich | 0.2135 | lost | 402 | −$86 |
| US Open, Qualification ATP: Dalibor Svrcina vs Felipe Meligeni Alves — Felipe Meligeni Alves | 0.0109 | lost | 11,353 | −$124 |
| Kingston 2: Edward Winter vs Andres Andrade — Edward Winter | 0.1880 | lost | 1,106 | −$208 |
| US Open, Qualification ATP: Spencer Johnson vs Cristian Garin — Cristian Garin | 0.5063 | won | 703 | $347 |
| US Open, Qualification ATP: Spencer Johnson vs Cristian Garin — Spencer Johnson | 0.5676 | lost | 348 | −$197 |
| Philadelphia: Lois Boisson vs Capucine Jauffret — Capucine Jauffret | 0.9401 | won | 6,065 | $363 |
| US Open, Qualification WTA: Rebeka Masarova vs Iryna Shymanovich — Rebeka Masarova | 0.6575 | lost | 14,470 | −$9.5K |
| US Open, Qualification WTA: Rebeka Masarova vs Iryna Shymanovich — Iryna Shymanovich | 0.3600 | won | 3,906 | $2.5K |
| US Open, Qualification ATP: Kimmer Coppejans vs Jurij Rodionov — Jurij Rodionov | 0.8900 | won | 562 | $62 |
| US Open, Qualification ATP: Kimmer Coppejans vs Jurij Rodionov — Kimmer Coppejans | 0.1100 | lost | 494 | −$54 |
| Monterrey Open, Qualification: Panna Udvardy vs Darja Vidmanova — Panna Udvardy | 0.0924 | lost | 570 | −$53 |
| Cincinnati Open: Arthur Fils vs Frances Tiafoe — Arthur Fils | 0.5945 | won | 3,887 | $1.6K |
| Cincinnati Open: Arthur Fils vs Frances Tiafoe — Frances Tiafoe | 0.5600 | lost | 357 | −$200 |
| Monterrey Open, Qualification: Panna Udvardy vs Emiliana Arango — Emiliana Arango | 0.5515 | lost | 1,269 | −$700 |
| Quebec City: Hugo Gaston vs Luca Van Assche — Luca Van Assche | 0.8041 | won | 1,271 | $249 |
| LoL: HANJIN BRION vs BNK FEARX - Game 3 Winner — BNK FEARX | 0.0099 | lost | 5,842 | −$58 |
| LoL: HANJIN BRION vs BNK FEARX - Game 3 Winner — HANJIN BRION | 0.7705 | won | 2,781 | $638 |
| Kingston: Pedro Martinez vs Daniil Glinka — Pedro Martinez | 0.5300 | won | 94 | $44 |
| Cincinnati Open: Sara Bejlek vs Madison Keys — Madison Keys | 0.1100 | lost | 123 | −$14 |
| Cincinnati Open: Sara Bejlek vs Madison Keys — Sara Bejlek | 0.1874 | won | 714 | $580 |
| Will FK Austria Wien vs. SC Braga end in a draw? — Yes | 0.9410 | won | 55 | $3 |
| Aarhus GF vs. Sport Lisboa e Benfica: O/U 4.5 — Under | 0.9900 | won | 789 | $8 |
Swipe the table sideways to see every column.
Polymarket only. Kalshi is a regulated exchange with a private database, its per-account endpoints require the account holder's own credentials, so there is no equivalent public record to read. Method →