Kalshi KXATPMATCH 2m · 1836rKalshi KXWTAMATCH 2m · 1736rKalshi KXFRENCHOPEN 2mKalshi KXFOPENMENSINGLE 2mKalshi KXATPGRANDSLAM 2m · 14rKalshi KXUSOPEN 2mKalshi KXATPSETWINNER 2m · 3650rKalshi KXATPTOTALSETS 2mKalshi KXATPSETSWEEP 2mKalshi KXATPGAMESPREAD 2mKalshi KXATPEXACTMATCH 2m · 1190rKalshi KXWTADOUBLES 2mKalshi KXATP1RANK 2m · 16relo last computed 2m · 20051rrankings last pulled 2m · 3745rrankings atp latest date 17drankings wta latest date 17dmirror atp schedule 0m · 299rh2h last computed 4dh2h n pairs missinglast player db run missingresults last_run missingpp_edges CSV 0mkalshi edges JSON 0mpaper trades PP 0mpaper trades Kalshi 0mdaily payload 0mPP movement 0mPP calibration 0m
Matches today
6
scheduled
ELITE edges
0
across Kalshi + PP
STRONG edges
0
tier 2
MED edges
0
tier 3
Paper locks
4
Kalshi + PP
Real Money YTD
-$10.00
paper-gate restored
Qualifying skipped
16
filtered out today
Last refresh
17:41
2026-05-21 UTC
🏆 Best Bet (main-draw)
No main-draw Kalshi pick survived qualifying filter today.
🎯 Safest (P ≥ 65%)
Anhelina Kalinina
71%
Heavy main-draw favorite · PAPER
Edge -8.4pp
Ask 79¢
Ask 79¢
💎 Biggest Payout (ELITE)
No ELITE main-draw longshot today.
| # | Match | Tournament | Round | Surface | Start | ELO A | ELO B | ELO diff | Kalshi event |
|---|---|---|---|---|---|---|---|---|---|
| 1 | Aleksandar Kovacevic vs Camilo Ugo Carabelli | Bitpanda Hamburg Open | Quarterfinal | clay | May 21 15:15 | 1447 | 1721 | -274 | KXATPMATCH-26MAY21KOVUGO |
| 2 | Jil Teichmann vs Yasmine Kabbaj | Grand Prix Son Altesse Royale La Princesse Lalla Meryem | Quarterfinal | clay | May 21 15:50 | 1645 | 1616 | +29 | KXWTAMATCH-26MAY21TEIKAB |
| 3 | Alex Michelsen vs Learner Tien | Gonet Geneva Open | Quarterfinal | clay | May 21 16:05 | 1488 | 1466 | +23 | KXATPMATCH-26MAY21MICTIE |
| 4 | Victoria Mboko vs Leylah Fernandez | Internationaux de Strasbourg presented by Mammotion | Quarterfinal | clay | May 21 16:20 | 1704 | 1590 | +113 | KXWTAMATCH-26MAY21MBOFER |
| 5 | Arthur Rinderknech vs Alexander Bublik | Gonet Geneva Open | Quarterfinal | clay | May 21 18:00 | 1566 | 1724 | -159 | KXATPSETWINNER-26MAY21RINBUB-1 |
| 6 | Luciano Darderi vs Alex De Minaur | Bitpanda Hamburg Open | Quarterfinal | clay | May 21 18:00 | 1767 | 1652 | +115 | KXATPSETWINNER-26MAY21DARDE-1 |
| # | Match | Our pick | Our P | Mkt P | Ask | Edge | Tier | Decision | Vol 24h | Surface | Round | EV/$ |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Ekaterina Alexandrova vs Camila Osorio | Camila Osorio | 52.4% | 90.0% | 90¢ | -37.6pp | LOW | PAPER | 0 | clay | Round 1 | -0.376 |
| 2 | Emma Navarro vs Janice Tjen | Janice Tjen | 52.1% | 88.0% | 88¢ | -35.9pp | LOW | PAPER | 6 | clay | Round 1 | -0.359 |
| 3 | Victoria Mboko vs Leylah Fernandez | Leylah Fernandez | 40.9% | 7.0% | 7¢ | +33.9pp | LOW | PAPER | 603890 | clay | Quarterfinal | +0.339 |
| 4 | Madison Keys vs Hanne Vandewinkel | Madison Keys | 57.9% | 91.0% | 91¢ | -33.1pp | LOW | PAPER | 80 | clay | Round 1 | -0.331 |
| 5 | Tatjana Maria vs Elise Mertens | Elise Mertens | 57.6% | 90.0% | 90¢ | -32.4pp | LOW | PAPER | 1 | clay | Round 1 | -0.324 |
| 6 | Naomi Osaka vs Laura Siegemund | Naomi Osaka | 57.7% | 88.0% | 88¢ | -30.3pp | LOW | PAPER | 13 | clay | Round 1 | -0.303 |
| 7 | Aliaksandra Sasnovich vs Marina Bassols Ribera Qual | Marina Bassols Ribera | 54.6% | 26.0% | 26¢ | +28.6pp | LOW | PAPER | 158 | clay | Qualifying Final | +0.286 |
| 8 | Yulia Putintseva vs Talia Gibson | Yulia Putintseva | 58.8% | 87.0% | 87¢ | -28.2pp | LOW | PAPER | 3 | clay | Round 1 | -0.282 |
| 9 | Tommy Paul vs Rinky Hijikata | Rinky Hijikata | 45.3% | 19.0% | 19¢ | +26.3pp | LOW | PAPER | 464 | hard | Round Of 128 | +0.263 |
| 10 | Aryna Sabalenka vs Jessica Bouzas Maneiro | Jessica Bouzas Maneiro | 37.6% | 12.0% | 12¢ | +25.6pp | LOW | PAPER | 1055 | clay | Round 1 | +0.256 |
| 11 | Rebecca Sramkova vs Maria Carle Qual | Maria Carle | 53.9% | 29.0% | 29¢ | +24.9pp | LOW | PAPER | 16 | clay | Qualifying Final | +0.249 |
| 12 | Alexander Zverev vs Benjamin Bonzi | Benjamin Bonzi | 34.7% | 10.0% | 10¢ | +24.7pp | LOW | PAPER | 182 | hard | Round Of 128 | +0.247 |
| 13 | Jessica Pegula vs Kimberly Birrell | Kimberly Birrell | 33.2% | 9.0% | 9¢ | +24.2pp | LOW | PAPER | 495 | clay | Round 1 | +0.242 |
| 14 | Adrian Mannarino vs Ugo Humbert | Adrian Mannarino | 45.6% | 22.0% | 22¢ | +23.6pp | LOW | PAPER | 51 | clay | Round 1 | +0.236 |
| 15 | Camilo Ugo Carabelli vs Aleksandar Kovacevic | Camilo Ugo Carabelli | 70.1% | 47.0% | 47¢ | +23.1pp | LOW | PAPER | 2011198 | clay | Quarterfinal | +0.231 |
| 16 | Terence Atmane vs Thanasi Kokkinakis | Thanasi Kokkinakis | 50.8% | 28.0% | 28¢ | +22.8pp | LOW | PAPER | 18 | hard | Round Of 128 | +0.228 |
| 17 | James Duckworth vs Gabriel Diallo | James Duckworth | 59.7% | 37.0% | 37¢ | +22.7pp | LOW | PAPER | 78 | clay | Round 1 | +0.227 |
| 18 | Titouan Droguet vs Jakub Mensik | Jakub Mensik | 58.7% | 81.0% | 81¢ | -22.3pp | LOW | PAPER | 0 | hard | Round Of 128 | -0.223 |
| 19 | Emilio Nava vs Pedro Martinez Qual | Pedro Martinez | 51.1% | 29.0% | 29¢ | +22.1pp | LOW | PAPER | 4045 | hard | Qualification Final | +0.221 |
| 20 | Katerina Siniakova vs Simona Waltert | Simona Waltert | 66.5% | 88.0% | 88¢ | -21.5pp | LOW | PAPER | 0 | clay | Round 1 | -0.215 |
| 21 | Karen Khachanov vs Arthur Gea | Arthur Gea | 49.0% | 28.0% | 28¢ | +21.0pp | LOW | PAPER | 95 | hard | Round Of 128 | +0.210 |
| 22 | Katie Boulter vs Akasha Urhobo | Akasha Urhobo | 67.2% | 88.0% | 88¢ | -20.8pp | LOW | PAPER | 0 | clay | Round 1 | -0.208 |
| 23 | Amanda Anisimova vs Tiantsoa Sarah Rakotomanga Rajaonah | Tiantsoa Sarah Rakotomanga Rajaonah | 38.1% | 18.0% | 18¢ | +20.1pp | LOW | PAPER | 309 | clay | Round 1 | +0.201 |
| 24 | Roman Safiullin vs Tom Gentzsch Qual | Tom Gentzsch | 45.0% | 25.0% | 25¢ | +20.0pp | LOW | PAPER | 2452 | clay | Qualifying Final | +0.200 |
| 25 | Arthur Fils vs Stan Wawrinka | Stan Wawrinka | 34.4% | 15.0% | 15¢ | +19.4pp | LOW | PAPER | 197 | hard | Round Of 128 | +0.194 |
| 26 | Alice Tubello vs Donna Vekic | Alice Tubello | 63.0% | 82.0% | 82¢ | -18.9pp | LOW | PAPER | 0 | clay | Round 1 | -0.190 |
| 27 | Taylor Fritz vs Nishesh Basavareddy | Nishesh Basavareddy | 50.7% | 32.0% | 32¢ | +18.7pp | LOW | PAPER | 332 | clay | Round 1 | +0.187 |
| 28 | Novak Djokovic vs Giovanni Mpetshi Perricard | Giovanni Mpetshi Perricard | 32.6% | 14.0% | 14¢ | +18.6pp | LOW | PAPER | 919 | hard | Round Of 128 | +0.186 |
| 29 | Leandro Riedi vs Pierre-Hugues Herbert Qual | Pierre-Hugues Herbert | 45.0% | 27.0% | 27¢ | +18.0pp | LOW | PAPER | 1164 | hard | Qualification Final | +0.180 |
| 30 | Yasmine Kabbaj vs Jil Teichmann | Yasmine Kabbaj | 52.0% | 34.0% | 34¢ | +18.0pp | LOW | PAPER | 379971 | clay | Quarterfinal | +0.180 |
| 31 | Anna Kalinskaya vs Lois Boisson | Lois Boisson | 62.6% | 45.0% | 45¢ | +17.6pp | LOW | PAPER | 4 | clay | Round 1 | +0.176 |
| 32 | Aleksandar Kovacevic vs Rafael Jodar | Aleksandar Kovacevic | 30.4% | 13.0% | 13¢ | +17.4pp | LOW | PAPER | 559 | clay | Round 1 | +0.174 |
| 33 | Panna Udvardy vs Anhelina Kalinina | Panna Udvardy | 46.5% | 30.0% | 30¢ | +16.5pp | LOW | PAPER | 9 | clay | Semifinal | +0.165 |
| 34 | Mattia Bellucci vs Quentin Halys | Mattia Bellucci | 49.7% | 66.0% | 66¢ | -16.3pp | LOW | PAPER | 0 | hard | Round Of 128 | -0.163 |
| 35 | Damir Dzumhur vs Alejandro Davidovich Fokina | Damir Dzumhur | 35.2% | 19.0% | 19¢ | +16.2pp | LOW | PAPER | 51 | hard | Round Of 128 | +0.162 |
| 36 | Alex Michelsen vs Learner Tien | Alex Michelsen | 58.8% | 43.0% | 43¢ | +15.8pp | LOW | PAPER | 649575 | clay | Quarterfinal | +0.158 |
| 37 | Pablo Llamas Ruiz vs Vilius Gaubas Qual | Vilius Gaubas | 50.4% | 35.0% | 35¢ | +15.4pp | LOW | PAPER | 6963 | hard | Qualification Final | +0.154 |
| 38 | Felix Gill vs Kyrian Jacquet Qual | Felix Gill | 53.1% | 39.0% | 39¢ | +14.1pp | LOW | PAPER | 5001 | clay | Qualifying Final | +0.141 |
| 39 | Lucia Bronzetti vs Katarina Zavatska Qual | Katarina Zavatska | 55.0% | 41.0% | 41¢ | +14.0pp | LOW | PAPER | 89 | clay | Qualifying Final | +0.140 |
| 40 | Alexander Shevchenko vs Alex Michelsen | Alexander Shevchenko | 59.6% | 46.0% | 46¢ | +13.6pp | LOW | PAPER | 50 | clay | Round 1 | +0.136 |
| 41 | Maya Joint vs Anastasia Potapova | Maya Joint | 49.9% | 37.0% | 37¢ | +12.9pp | LOW | PAPER | 0 | clay | Round 1 | +0.129 |
| 42 | Harmony Tan vs Linda Fruhvirtova Qual | Harmony Tan | 50.3% | 38.0% | 38¢ | +12.3pp | LOW | PAPER | 560 | clay | Qualifying Final | +0.123 |
| 43 | Jenson Brooksby vs Mariano Navone | Jenson Brooksby | 34.2% | 22.0% | 22¢ | +12.2pp | LOW | PAPER | 64 | clay | Round 1 | +0.122 |
| 44 | Coco Gauff vs Taylor Townsend | Taylor Townsend | 29.8% | 18.0% | 18¢ | +11.8pp | LOW | PAPER | 178 | clay | Round 1 | +0.118 |
| 45 | Ann Li vs Shuai Zhang | Shuai Zhang | 58.5% | 47.0% | 47¢ | +11.5pp | LOW | PAPER | 0 | hard | Round Of 128 | +0.115 |
| 46 | Alex de Minaur vs Luciano Darderi | Alex de Minaur | 64.4% | 53.0% | 53¢ | +11.4pp | LOW | PAPER | 141628 | hard | Quarterfinal | +0.114 |
| 47 | Darwin Blanch vs Luka Pavlovic Qual | Luka Pavlovic | 47.6% | 37.0% | 37¢ | +10.6pp | LOW | PAPER | 1076 | hard | Qualification Final | +0.106 |
| 48 | Casper Ruud vs Mariano Navone | Mariano Navone | 37.4% | 27.0% | 27¢ | +10.4pp | LOW | PAPER | 1099 | hard | Semifinal | +0.104 |
| 49 | Zeynep Sonmez vs Daria Kasatkina | Zeynep Sonmez | 45.2% | 35.0% | 35¢ | +10.2pp | LOW | PAPER | 33 | clay | Round 1 | +0.102 |
| 50 | Borna Gojo vs Jurij Rodionov Qual | Borna Gojo | 55.0% | 45.0% | 45¢ | +10.0pp | LOW | PAPER | 1751 | hard | Qualification Final | +0.100 |
| 51 | Anhelina Kalinina vs Diane Parry | Anhelina Kalinina | 70.6% | 79.0% | 79¢ | -8.4pp | LOW | PAPER | 0 | clay | Round 1 | -0.084 |
| 52 | Hugo Dellien vs Roberto Carballes Baena Qual | Roberto Carballes Baena | 45.0% | 37.0% | 37¢ | +8.0pp | LOW | PAPER | 2362 | clay | Qualifying Final | +0.080 |
| 53 | Guiomar Maristany Zuleta de Reales vs Kaitlin Quevedo Qual | Guiomar Maristany Zuleta de Reales | 53.2% | 47.0% | 47¢ | +6.2pp | LOW | PAPER | 1154 | clay | Qualifying Final | +0.062 |
| 54 | Pablo Carreno Busta vs Jiri Lehecka | Pablo Carreno Busta | 43.1% | 37.0% | 37¢ | +6.1pp | LOW | PAPER | 0 | hard | Round Of 128 | +0.061 |
| 55 | Alexander Bublik vs Arthur Rinderknech | Arthur Rinderknech | 44.9% | 39.0% | 39¢ | +5.9pp | LOW | PAPER | 45619 | hard | Quarterfinal | +0.059 |
| 56 | Andrey Rublev vs Ignacio Buse | Ignacio Buse | 41.3% | 37.0% | 37¢ | +4.3pp | LOW | PAPER | 976 | hard | Round Of 128 | +0.043 |
| 57 | Yannick Hanfmann vs Hamad Medjedovic | Yannick Hanfmann | 53.1% | 49.0% | 49¢ | +4.1pp | LOW | PAPER | 0 | hard | Round Of 128 | +0.041 |
| 58 | Nuno Borges vs Tomas Martin Etcheverry | Nuno Borges | 43.1% | 47.0% | 47¢ | -3.9pp | LOW | PAPER | 0 | hard | Round Of 128 | -0.039 |
| 59 | Emma Navarro vs Ann Li | Emma Navarro | 45.3% | 49.0% | 49¢ | -3.7pp | LOW | SKIP | 146 | clay | Semifinal | -0.037 |
| 60 | Zizou Bergs vs Tomas Machac | Zizou Bergs | 50.6% | 47.0% | 47¢ | +3.6pp | LOW | PAPER | 0 | hard | Round Of 128 | +0.036 |
| 61 | Lulu Sun vs Claire Liu Qual | Lulu Sun | 41.6% | 38.0% | 38¢ | +3.6pp | LOW | PAPER | 516 | clay | Qualifying Final | +0.036 |
| 62 | Diana Shnaider vs Renata Zarazua | Renata Zarazua | 51.0% | 48.0% | 48¢ | +3.0pp | LOW | PAPER | 0 | clay | Round 1 | +0.030 |
| 63 | Susan Bandecchi vs Viktoria Hruncakova Qual | Viktoria Hruncakova | 45.0% | 43.0% | 43¢ | +2.0pp | LOW | SKIP | 192 | clay | Qualifying Final | +0.020 |
| 64 | Maria Sakkari vs Linda Noskova | Maria Sakkari | 44.0% | 46.0% | 46¢ | -2.0pp | LOW | SKIP | 5 | clay | Round 1 | -0.020 |
| 65 | Victoria Mboko vs Nikola Bartunkova | Nikola Bartunkova | 50.2% | 49.0% | 49¢ | +1.2pp | LOW | SKIP | 6 | clay | Round 1 | +0.012 |
| 66 | Xiyu Wang vs Polina Kudermetova Qual | Polina Kudermetova | 45.0% | 44.0% | 44¢ | +1.0pp | LOW | SKIP | 190 | hard | Qualification Final | +0.010 |
| 67 | Miomir Kecmanovic vs Fabian Marozsan | Fabian Marozsan | 59.9% | 59.0% | 59¢ | +0.9pp | LOW | SKIP | 0 | clay | Round 1 | +0.009 |
| 68 | Alexandra Eala vs Iva Jovic | Alexandra Eala | 36.4% | 37.0% | 37¢ | -0.6pp | LOW | SKIP | 1 | clay | Round 1 | -0.006 |
| # | Player | Stat | PP line | Our proj | Edge % | Side | Tier | Opp | Surface | Demon | Payout |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Luciano Darderi🟨 WARM | Aces | 2.5 | 6.36 | +154.4% | MORE | LOW | Alex de Minaur | clay | — | 0.5x |
| 2 | Alexander Bublik🧊 COLD | Total Tie Breaks | 0.5 | 0.12 | +75.4% | LESS | LOW | Arthur Rinderknech | clay | — | 1.0x |
| 3 | Alexander Bublik🧊 COLD | Total Tie Breaks | 0.5 | 0.12 | +75.3% | LESS | LOW | Jan-Lennard Struff | clay | — | 1.0x |
| 4 | Matteo Berrettini | Total Tie Breaks | 0.5 | 0.25 | +50.7% | LESS | LOW | Marton Fucsovics | clay | — | 1.0x |
| 5 | Hubert Hurkacz🟨 WARM | Total Tie Breaks | 0.5 | 0.25 | +50.6% | LESS | LOW | Jaume Munar | clay | — | 1.0x |
| 6 | Jakub Mensik🟨 WARM | Total Tie Breaks | 0.5 | 0.25 | +50.5% | LESS | LOW | Titouan Droguet | clay | — | 1.0x |
| 7 | Cameron Norrie🟨 WARM | Total Tie Breaks | 0.5 | 0.25 | +50.4% | LESS | LOW | Adolfo Daniel Vallejo | clay | — | 1.0x |
| 8 | Marcos Giron | Total Games | 39.5 | 24.59 | +37.7% | LESS | LOW | Yibing Wu | clay | — | 1.0x |
| 9 | Miomir Kecmanovic🧊 COLD | Total Games | 39.5 | 25.03 | +36.6% | LESS | LOW | Fabian Marozsan | clay | — | 0.5x |
| 10 | Hubert Hurkacz🟨 WARM | Total Games | 38.5 | 24.59 | +36.1% | LESS | LOW | Jaume Munar | clay | — | 0.5x |
| 11 | Quentin Halys🧊 COLD | Total Games | 39.5 | 25.34 | +35.9% | LESS | LOW | Mattia Bellucci | clay | — | 0.5x |
| 12 | Raphael Collignon⏳ RTRN | Total Games | 34.5 | 22.18 | +35.7% | LESS | LOW | Aleksandar Vukic | clay | — | 0.5x |
| 13 | Jakub Mensik🟨 WARM | Total Games | 38.5 | 24.82 | +35.5% | LESS | LOW | Titouan Droguet | clay | — | 0.5x |
| 14 | Cameron Norrie🟨 WARM | Total Games | 38.5 | 24.88 | +35.4% | LESS | LOW | Adolfo Daniel Vallejo | clay | — | 0.5x |
| 15 | Sebastian Baez | Total Games | 37.5 | 24.29 | +35.2% | LESS | LOW | Roman Andres Burruchaga | clay | — | 0.5x |
| 16 | Francisco Comesana🧊 COLD | Total Games | 38.5 | 25.14 | +34.7% | LESS | LOW | Ethan Quinn | clay | — | 0.5x |
| 17 | Patrick Kypson🧊 COLD | Total Games | 38.5 | 25.15 | +34.7% | LESS | LOW | Luca Van Assche | clay | — | 0.5x |
| 18 | Andrey Rublev🟨 WARM | Total Games | 38.5 | 25.17 | +34.6% | LESS | LOW | Ignacio Buse | clay | — | 0.5x |
| 19 | Hamad Medjedovic⏳ RTRN | Total Games | 38.5 | 25.20 | +34.6% | LESS | LOW | Yannick Hanfmann | clay | — | 0.5x |
| 20 | Alexander Bublik🧊 COLD | Total Games | 37.5 | 24.54 | +34.6% | LESS | LOW | Jan-Lennard Struff | clay | — | 0.5x |
| 21 | Felix Auger-Aliassime🟨 WARM | Total Games | 38.5 | 25.20 | +34.5% | LESS | LOW | Daniel Altmaier | clay | — | 0.5x |
| 22 | Tallon Griekspoor🧊 COLD | Total Games | 38.5 | 25.22 | +34.5% | LESS | LOW | Matteo Arnaldi | clay | — | 0.5x |
| 23 | Matteo Berrettini | Total Games | 37.5 | 24.60 | +34.4% | LESS | LOW | Marton Fucsovics | clay | — | 0.5x |
| 24 | Hugo Gaston | Total Games | 38.5 | 25.34 | +34.2% | LESS | LOW | Gael Monfils | clay | — | 0.5x |
| 25 | Gabriel Diallo🧊 COLD | Total Games | 37.5 | 25.07 | +33.1% | LESS | LOW | James Duckworth | clay | — | 0.5x |
| 26 | Corentin Moutet | Total Games | 37.5 | 25.09 | +33.1% | LESS | LOW | Vit Kopriva | clay | — | 1.0x |
| 27 | Luciano Darderi🟨 WARM | Total Games | 36.5 | 24.50 | +32.9% | LESS | LOW | Sebastian Ofner | clay | — | 0.5x |
| 28 | Karen Khachanov🧊 COLD | Total Games | 37.5 | 25.21 | +32.8% | LESS | LOW | Arthur Gea | clay | — | 0.5x |
| 29 | Tomas Machac | Total Games | 37.5 | 25.23 | +32.7% | LESS | LOW | Zizou Bergs | clay | — | 0.5x |
| 30 | Raphael Collignon⏳ RTRN | Total Sets | 3.5 | 2.38 | +31.9% | LESS | LOW | Aleksandar Vukic | clay | — | 1.0x |
| 31 | Juan Manuel Cerundolo🟨 WARM | Total Games | 36.5 | 24.91 | +31.8% | LESS | LOW | Jacob Fearnley | clay | — | 0.5x |
| 32 | Alexei Popyrin | Total Games | 36.5 | 25.05 | +31.4% | LESS | LOW | Zachary Svajda | clay | — | 0.5x |
| 33 | Stefanos Tsitsipas | Total Games | 36.5 | 25.17 | +31.1% | LESS | LOW | Alexandre Muller | clay | — | 0.5x |
| 34 | Brandon Nakashima | Total Games | 36.5 | 25.17 | +31.0% | LESS | LOW | Roberto Bautista Agut | clay | — | 0.5x |
| 35 | Taylor Fritz⏳ RTRN | Total Games | 36.5 | 25.18 | +31.0% | LESS | LOW | Nishesh Basavareddy | clay | — | 0.5x |
| 36 | Novak Djokovic⏳ RTRN | Total Games | 35.5 | 24.51 | +31.0% | LESS | LOW | Giovanni Mpetshi Perricard | clay | — | 0.5x |
| 37 | Alejandro Tabilo🟨 WARM | Total Games | 36.5 | 25.20 | +31.0% | LESS | LOW | Kamil Majchrzak | clay | — | 0.5x |
| 38 | Novak Djokovic⏳ RTRN | Total Sets | 3.5 | 2.46 | +29.6% | LESS | LOW | Giovanni Mpetshi Perricard | clay | — | 1.0x |
| 39 | Francisco Cerundolo🟨 WARM | Total Sets | 3.5 | 2.49 | +29.0% | LESS | LOW | Botic Van de Zandschulp | clay | — | 1.0x |
| 40 | Jessica Pegula🟨 WARM | Total Games | 17.5 | 22.57 | +29.0% | MORE | LOW | Kimberly Birrell | clay | — | 0.5x |
| 41 | Frances Tiafoe⏳ RTRN | Total Sets | 3.5 | 2.50 | +28.7% | LESS | LOW | Eliot Spizzirri | clay | — | 1.0x |
| 42 | Arthur Fils🟨 WARM | Total Games | 31.5 | 22.79 | +27.7% | LESS | LOW | Stan Wawrinka | clay | — | 0.5x |
| 43 | Mariano Navone🟨 WARM | Total Games | 33.5 | 24.26 | +27.6% | LESS | LOW | Jenson Brooksby | clay | — | 0.5x |
| 44 | Francisco Cerundolo🟨 WARM | Total Games | 34.5 | 25.06 | +27.4% | LESS | LOW | Botic Van de Zandschulp | clay | — | 0.5x |
| 45 | Alejandro Davidovich Fokina | Total Games | 34.5 | 25.18 | +27.0% | LESS | LOW | Damir Dzumhur | clay | — | 0.5x |
| 46 | Arthur Rinderknech | Aces | 8.5 | 6.23 | +26.6% | LESS | LOW | Alexander Bublik | clay | — | 0.5x |
| 47 | Rafael Jodar🟨 WARM | Total Games | 31.5 | 23.22 | +26.3% | LESS | LOW | Aleksandar Kovacevic | clay | — | 0.5x |
| 48 | Francisco Comesana🧊 COLD | Total Tie Breaks | 0.5 | 0.37 | +25.5% | LESS | LOW | Ethan Quinn | clay | — | 1.0x |
| 49 | Anhelina Kalinina🟨 WARM | Total Games | 19.5 | 24.44 | +25.3% | MORE | LOW | Panna Udvardy | clay | — | 0.5x |
| 50 | Brandon Nakashima | Total Tie Breaks | 0.5 | 0.37 | +25.3% | LESS | LOW | Roberto Bautista Agut | clay | — | 1.0x |
| 51 | Tallon Griekspoor🧊 COLD | Total Tie Breaks | 0.5 | 0.37 | +25.1% | LESS | LOW | Matteo Arnaldi | clay | — | 1.0x |
| 52 | Felix Auger-Aliassime🟨 WARM | Total Tie Breaks | 0.5 | 0.37 | +25.1% | LESS | LOW | Daniel Altmaier | clay | — | 1.0x |
| 53 | Alejandro Tabilo🟨 WARM | Total Tie Breaks | 0.5 | 0.37 | +25.1% | LESS | LOW | Kamil Majchrzak | clay | — | 1.0x |
| 54 | Leylah Fernandez🟨 WARM | Total Games | 19.5 | 24.38 | +25.0% | MORE | LOW | Alycia Parks | clay | — | 0.5x |
| 55 | Karen Khachanov🧊 COLD | Total Tie Breaks | 0.5 | 0.38 | +24.9% | LESS | LOW | Arthur Gea | clay | — | 1.0x |
| 56 | Hugo Gaston | Total Tie Breaks | 0.5 | 0.38 | +24.7% | LESS | LOW | Gael Monfils | clay | — | 1.0x |
| 57 | Ann Li | Total Games | 19.5 | 24.28 | +24.5% | MORE | LOW | Emma Navarro | clay | — | 0.5x |
| 58 | Arthur Rinderknech | Total Games Won | 12.5 | 9.50 | +24.0% | LESS | LOW | Alexander Bublik | clay | — | 0.5x |
| 59 | Frances Tiafoe⏳ RTRN | Total Games | 32.5 | 25.11 | +22.7% | LESS | LOW | Eliot Spizzirri | clay | — | 0.5x |
| 60 | Alex de Minaur | Total Games Won | 12.5 | 9.76 | +21.9% | LESS | LOW | Luciano Darderi | clay | — | 0.5x |
| 61 | Alexander Zverev🟨 WARM | Total Games | 28.5 | 22.64 | +20.6% | LESS | LOW | Benjamin Bonzi | clay | — | 0.5x |
| 62 | Tommy Paul🟨 WARM | Total Games | 28.5 | 22.83 | +19.9% | LESS | LOW | Rinky Hijikata | clay | — | 0.5x |
| 63 | Rebecca Sramkova | Total Games | 20.5 | 24.57 | +19.9% | MORE | LOW | Maria Carle | clay | — | 0.5x |
| 64 | Aliaksandra Sasnovich | Total Games | 20.5 | 24.34 | +18.7% | MORE | LOW | Marina Bassols Ribera | clay | — | 0.5x |
| 65 | Jaqueline Cristian | Total Games | 20.5 | 24.15 | +17.8% | MORE | LOW | Kamilla Rakhimova | clay | — | 1.0x |
| 66 | Roman Safiullin🟨 WARM | Total Games | 21.5 | 25.19 | +17.1% | MORE | LOW | Tom Gentzsch | clay | — | 0.5x |
| 67 | Pablo Llamas Ruiz🟨 WARM | Total Games | 21.5 | 25.18 | +17.1% | MORE | LOW | Vilius Gaubas | clay | — | 0.5x |
| 68 | Casper Ruud🟨 WARM | Total Games | 21.5 | 25.17 | +17.1% | MORE | LOW | Mariano Navone | clay | — | 0.5x |
| 69 | Leandro Riedi🟨 WARM | Total Games | 21.5 | 25.16 | +17.0% | MORE | LOW | Pierre-Hugues Herbert | clay | — | 0.5x |
| 70 | Daniil Medvedev | Total Games | 29.5 | 24.48 | +17.0% | LESS | LOW | Adam Walton | clay | — | 0.5x |
| 71 | Borna Gojo🟨 WARM | Total Games Won | 12.5 | 10.38 | +17.0% | LESS | LOW | Jurij Rodionov | clay | — | 1.0x |
| 72 | Karolina Muchova⏳ RTRN | Total Games | 20.5 | 23.90 | +16.6% | MORE | LOW | Anastasia Zakharova | clay | — | 0.5x |
| 73 | Katie Volynets | Total Games | 20.5 | 23.86 | +16.4% | MORE | LOW | Clara Burel | clay | — | 1.0x |
| 74 | Vilius Gaubas | Total Games Won | 12.0 | 10.06 | +16.1% | LESS | LOW | Pablo Llamas Ruiz | clay | — | 1.0x |
| 75 | Emilio Nava | Total Games | 21.5 | 24.94 | +16.0% | MORE | LOW | Pedro Martinez | clay | — | 0.5x |
| 76 | Jurij Rodionov🟨 WARM | Total Games Won | 12.5 | 10.54 | +15.6% | LESS | LOW | Borna Gojo | clay | — | 1.0x |
| 77 | Marina Bassols Ribera🟨 WARM | Total Games Won | 9.5 | 10.91 | +14.8% | MORE | LOW | Aliaksandra Sasnovich | clay | — | 1.0x |
| 78 | Aliaksandra Sasnovich | Break Points Won | 5.5 | 4.73 | +14.0% | LESS | LOW | Marina Bassols Ribera | clay | — | 1.0x |
| 79 | Hugo Dellien⏳ RTRN | Total Games | 21.5 | 24.49 | +13.9% | MORE | LOW | Roberto Carballes Baena | clay | — | 0.5x |
| 80 | Linda Fruhvirtova🧊 COLD | Total Games | 21.5 | 24.49 | +13.9% | MORE | LOW | Harmony Tan | clay | — | 0.5x |
| 81 | Liudmila Samsonova | Total Games | 21.5 | 24.42 | +13.6% | MORE | LOW | Jil Teichmann | clay | — | 1.0x |
| 82 | Claire Liu🟨 WARM | Total Games | 21.5 | 24.30 | +13.0% | MORE | LOW | Lulu Sun | clay | — | 0.5x |
| 83 | Roberto Carballes Baena⏳ RTRN | Total Games Won | 11.5 | 10.05 | +12.6% | LESS | LOW | Hugo Dellien | clay | — | 1.0x |
| 84 | Roman Safiullin🟨 WARM | Total Games Won | 12.5 | 10.95 | +12.4% | LESS | LOW | Tom Gentzsch | clay | — | 1.0x |
| 85 | Kyrian Jacquet⏳ RTRN | Total Games | 22.5 | 25.17 | +11.9% | MORE | LOW | Felix Gill | clay | — | 0.5x |
| 86 | Darwin Blanch🟨 WARM | Total Games | 22.5 | 25.17 | +11.9% | MORE | LOW | Luka Pavlovic | clay | — | 0.5x |
| 87 | Susan Bandecchi🟨 WARM | Total Games | 21.5 | 24.03 | +11.8% | MORE | LOW | Viktoria Hruncakova | clay | — | 0.5x |
| 88 | Luciano Darderi🟨 WARM | Total Games Won | 12.5 | 11.27 | +9.9% | LESS | LOW | Alex de Minaur | clay | — | 0.5x |
| 89 | Linda Noskova🟨 WARM | Total Games | 22.5 | 24.52 | +9.0% | MORE | LOW | Maria Sakkari | clay | — | 0.5x |
| 90 | Jannik Sinner🟨 WARM | Total Games | 25.5 | 23.24 | +8.9% | LESS | LOW | Clement Tabur | clay | — | 0.5x |
| 91 | Alexander Bublik🧊 COLD | Aces | 6.5 | 5.95 | +8.4% | LESS | LOW | Arthur Rinderknech | clay | — | 0.5x |
| 92 | Lucia Bronzetti | Total Games | 21.5 | 23.08 | +7.4% | MORE | LOW | Katarina Zavatska | clay | — | 0.5x |
| 93 | Borna Gojo🟨 WARM | Total Games | 23.5 | 25.12 | +6.9% | MORE | LOW | Jurij Rodionov | clay | — | 0.5x |
| 94 | Tom Gentzsch🟨 WARM | Total Games Won | 9.5 | 10.05 | +5.8% | MORE | LOW | Roman Safiullin | clay | — | 1.0x |
| 95 | Eva Lys🧊 COLD | Total Games | 22.5 | 23.77 | +5.7% | MORE | LOW | Petra Marcinko | clay | — | 0.5x |
| 96 | Alexander Bublik🧊 COLD | Total Games | 23.5 | 24.49 | +4.2% | MORE | LOW | Arthur Rinderknech | clay | — | 0.5x |
| 97 | Barbora Krejcikova⏳ RTRN | Total Games | 22.5 | 23.25 | +3.4% | MORE | LOW | Hailey Baptiste | clay | — | 1.0x |
| 98 | Solana Sierra🟨 WARM | Total Games | 22.5 | 22.69 | +0.9% | MORE | LOW | Emma Raducanu | clay | — | 0.5x |
Kalshi tennis — 2 picks · $4.00 staked
Day 1 - paper only, grade EOD before scaling · locked 2026-05-21T13:10:45.965796+00:00
| # | Match | Pick | Our P | Ask | Edge | Tier | Surface | Stake | Status | P&L |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Coleman Wong vs Juan Carlos Prado Angelo | Coleman Wong | 45.0% | 22¢ | 23.0pp | ELITE | clay | $2.00 | OPEN | -2.00 |
| 2 | Leandro Riedi vs Pierre-Hugues Herbert | Pierre-Hugues Herbert | 45.0% | 27¢ | 18.0pp | ELITE | hard | $2.00 | OPEN | +0.00 |
PrizePicks tennis — 2 picks · $2.00 staked
Day 1 - paper only, grade EOD before scaling · locked 2026-05-21T13:10:45.902879+00:00
| # | Player | Stat | Line | Our proj | Side | Edge | Tier | Surface | Stake | Status | P&L |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Leandro Riedi | Total Games | 21.5 | 25.16 | MORE | 17.0% | ELITE | clay | $1.00 | OPEN | +0.00 |
| 2 | Shuai Zhang | Total Games Won | 10.0 | 10.72 | MORE | 7.2% | MED | clay | $1.00 | OPEN | +0.00 |
Polymarket = retail/crypto sentiment. We can't bet there from CA, but the divergence vs Kalshi (sharp) reveals where the public is loading up. Generated 2026-05-21T10:41:31 · flagged threshold = ±3.0pp · 1 flagged futures / 0 flagged matches.
Grand-slam futures · ANY 2026 Slam (Kalshi KXATPGRANDSLAM vs Polymarket per-slam aggregate)
Polymarket "any-slam" probability computed naively as
1 - product(1 - p_slam). Positive divergence = public (Polymarket) more bullish than sharp (Kalshi). Sorted by |divergence|.| Player | Sharp (Kalshi) | Public (Poly) | Δ | Poly per-slam |
|---|---|---|---|---|
| Novak Djokovic · exact | 11.5% | 18.3% | +6.8pp · PUBLIC HIGHER | Fre 6%, Wim 10%, US 4% |
| Lorenzo Musetti · exact | 4.5% | 1.6% | -2.9pp · SHARP HIGHER | Fre 0%, Wim 1%, US 1% |
| Ben Shelton · exact | 4.5% | 7.2% | +2.7pp · PUBLIC HIGHER | Fre 1%, Wim 3%, US 4% |
| Daniil Medvedev · exact | 8.0% | 5.8% | -2.2pp · SHARP HIGHER | Fre 2%, Wim 2%, US 2% |
| Alexander Zverev · exact | 12.5% | 14.4% | +1.9pp · PUBLIC HIGHER | Fre 7%, Wim 4%, US 4% |
| Alex de Minaur · exact | 3.0% | 1.4% | -1.6pp · SHARP HIGHER | Fre 1%, Wim 1% |
| Felix Auger-Aliassime · exact | 2.0% | 0.5% | -1.5pp · SHARP HIGHER | Wim 1% |
| Karen Khachanov · exact | 2.0% | 0.7% | -1.3pp · SHARP HIGHER | Fre 0%, Wim 1% |
| Alexander Bublik · exact | 3.0% | 1.9% | -1.1pp · SHARP HIGHER | Fre 0%, Wim 0%, US 1% |
| Jack Draper · exact | 4.5% | 5.5% | +1.0pp · PUBLIC HIGHER | Fre 0%, Wim 3%, US 3% |
| Frances Tiafoe · exact | 0.5% | 1.3% | +0.8pp · PUBLIC HIGHER | Fre 0%, Wim 0%, US 1% |
| Jannik Sinner · exact | 94.5% | 95.2% | +0.7pp · PUBLIC HIGHER | Fre 70%, Wim 66%, US 52% |
| Taylor Fritz · exact | 4.5% | 4.9% | +0.4pp · PUBLIC HIGHER | Fre 1%, Wim 3%, US 2% |
| Casper Ruud · exact | 3.5% | 3.4% | -0.1pp · SHARP HIGHER | Fre 3%, Wim 0% |
Per-match overlaps
No active per-match overlaps right now (Polymarket tennis volume concentrates in Grand Slam futures).
Per-stat-type MAE (n_graded=17)
Bar width = MAE (lower = better). "INSUFFICIENT" = need more graded picks.
Total Games
n=4
Ours
PP
Us 6.45
PP 3.25
INSUFFICIENT_N
PP 3.25
INSUFFICIENT_N
Total Games Won
n=12
Ours
PP
Us 4.93
PP 4.50
NULL
PP 4.50
NULL
Total Tie Breaks
n=1
Ours
PP
Us 0.25
PP 0.50
INSUFFICIENT_N
PP 0.50
INSUFFICIENT_N
Per-tier MAE
Bar width = MAE (lower = better). "INSUFFICIENT" = need more graded picks.
ELITE
n=16
Ours
PP
Us 4.94
PP 3.75
NULL
PP 3.75
NULL
MED
n=0
Ours
PP
Us —
PP —
INSUFFICIENT_N
PP —
INSUFFICIENT_N
STRONG
n=1
Ours
PP
Us 6.23
PP 7.50
INSUFFICIENT_N
PP 7.50
INSUFFICIENT_N
No AAR available yet.
Expected:
Expected:
~/.claude/projects/.../memory/aar_tennis_<date>.md| # | Player | Stat | Opp | Open | Latest | Diff | Abs | Direction |
|---|---|---|---|---|---|---|---|---|
| 1 | Brandon Nakashima | Total Games | Roberto Bautista Agut | 38.5 | 36.5 | -2.00 | 2.00 | DOWN |
| 2 | Frances Tiafoe | Total Games | Eliot Spizzirri | 34.5 | 32.5 | -2.00 | 2.00 | DOWN |
| 3 | Stefanos Tsitsipas | Total Games | Alexandre Muller | 34.5 | 36.5 | +2.00 | 2.00 | UP |
| 4 | Alexei Popyrin | Total Games | Zachary Svajda | 34.5 | 36.5 | +2.00 | 2.00 | UP |
| 5 | Felix Auger-Aliassime | Total Games | Daniel Altmaier | 36.5 | 38.5 | +2.00 | 2.00 | UP |
| 6 | Kyrian Jacquet | Total Games | Felix Gill | 23.5 | 22.5 | -1.00 | 1.00 | DOWN |
| 7 | Novak Djokovic | Total Games | Giovanni Mpetshi Perricard | 36.5 | 35.5 | -1.00 | 1.00 | DOWN |
| 8 | Hamad Medjedovic | Total Games | Yannick Hanfmann | 37.5 | 38.5 | +1.00 | 1.00 | UP |
| 9 | Juan Manuel Cerundolo | Total Games | Jacob Fearnley | 37.5 | 36.5 | -1.00 | 1.00 | DOWN |
| 10 | Tallon Griekspoor | Total Games | Matteo Arnaldi | 39.5 | 38.5 | -1.00 | 1.00 | DOWN |
| 11 | Hubert Hurkacz | Total Games | Jaume Munar | 37.5 | 38.5 | +1.00 | 1.00 | UP |
| 12 | Patrick Kypson | Total Games | Luca Van Assche | 39.5 | 38.5 | -1.00 | 1.00 | DOWN |
| 13 | Alexander Bublik | Total Games | Jan-Lennard Struff | 36.5 | 37.5 | +1.00 | 1.00 | UP |
| 14 | Victoria Mboko | Fantasy Score | Leylah Fernandez | 16.5 | 17.0 | +0.50 | 0.50 | UP |
| 15 | Kyrian Jacquet | Fantasy Score | Felix Gill | 12.0 | 12.5 | +0.50 | 0.50 | UP |
ATP top 50
| Rk | Player | Country | Pts | ELO overall | ELO clay | ELO grass | ELO hard |
|---|---|---|---|---|---|---|---|
| 1 | Jannik Sinner | ITA | 14350 | 2175 | 1857 | 1695 | 2062 |
| 2 | Carlos Alcaraz | ESP | 12960 | 2070 | 1867 | 1717 | 1956 |
| 3 | Alexander Zverev | GER | 5805 | 1961 | 1816 | 1594 | 1863 |
| 4 | Novak Djokovic | SRB | 4700 | 1955 | 1738 | 1636 | 1846 |
| 5 | Felix Auger Aliassime | CAN | 4050 | 1864 | 1605 | 1517 | 1803 |
| 6 | Ben Shelton | USA | 4030 | 1848 | 1683 | 1561 | 1765 |
| 7 | Taylor Fritz | USA | 3770 | 1826 | 1581 | 1722 | 1749 |
| 8 | Alex De Minaur | AUS | 3755 | 1847 | 1652 | 1590 | 1806 |
| 9 | Daniil Medvedev | RUS | 3460 | 1878 | 1641 | 1585 | 1845 |
| 10 | Lorenzo Musetti | ITA | 3415 | 1828 | 1756 | 1607 | 1723 |
| 11 | Alexander Bublik | KAZ | 3355 | 1803 | 1724 | 1569 | 1703 |
| 12 | Flavio Cobolli | ITA | 2750 | 1796 | 1720 | 1557 | 1655 |
| 13 | Jiri Lehecka | CZE | 2715 | 1837 | 1647 | 1574 | 1754 |
| 14 | Andrey Rublev | RUS | 2590 | 1762 | 1658 | 1516 | 1683 |
| 15 | Karen Khachanov | RUS | 2220 | 1691 | 1586 | 1567 | 1639 |
| 16 | Valentin Vacherot | MON | 2147 | 1810 | 1702 | 1467 | 1738 |
| 17 | Arthur Fils | FRA | 2130 | 1912 | 1762 | 1546 | 1771 |
| 18 | Tommy Paul | USA | 1975 | 1842 | 1748 | 1587 | 1743 |
| 19 | Cameron Norrie | GBR | 1918 | 1776 | 1658 | 1529 | 1682 |
| 20 | Luciano Darderi | ITA | 1890 | 1714 | 1767 | 1466 | 1466 |
| 21 | Learner Tien | USA | 1870 | 1800 | 1466 | 1506 | 1789 |
| 22 | Frances Tiafoe | USA | 1865 | 1771 | 1604 | 1488 | 1719 |
| 23 | Alejandro Davidovich Fokina | ESP | 1820 | 1756 | 1572 | 1545 | 1703 |
| 24 | Arthur Rinderknech | FRA | 1736 | 1713 | 1566 | 1530 | 1631 |
| 25 | Casper Ruud | NOR | 1735 | 1792 | 1744 | 1502 | 1685 |
| 26 | Tomas Martin Etcheverry | ARG | 1660 | 1785 | 1693 | 1456 | 1636 |
| 27 | Francisco Cerundolo | ARG | 1620 | 1801 | 1726 | 1426 | 1698 |
| 28 | Jakub Mensik | CZE | 1600 | 1795 | 1589 | 1497 | 1747 |
| 29 | Joao Fonseca | BRA | 1435 | 1818 | 1638 | 1495 | 1795 |
| 30 | Corentin Moutet | FRA | 1413 | 1706 | 1600 | 1574 | 1640 |
| 31 | Tallon Griekspoor | NED | 1360 | 1681 | 1575 | 1564 | 1645 |
| 32 | Brandon Nakashima | USA | 1295 | 1706 | 1570 | 1590 | 1660 |
| 33 | Ugo Humbert | FRA | 1280 | 1712 | 1451 | 1517 | 1697 |
| 34 | Rafael Jodar | ESP | 1273 | 1874 | 1714 | — | 1765 |
| 35 | Alejandro Tabilo | CHI | 1248 | 1786 | 1696 | 1575 | 1637 |
| 36 | Alexander Blockx | BEL | 1200 | 1820 | 1689 | 1508 | 1713 |
| 37 | Denis Shapovalov | CAN | 1170 | 1690 | 1498 | 1472 | 1698 |
| 38 | Jaume Munar | ESP | 1155 | 1695 | 1563 | 1508 | 1635 |
| 39 | Zizou Bergs | BEL | 1140 | 1705 | 1570 | 1521 | 1631 |
| 40 | Holger Rune | DEN | 1110 | 1744 | 1663 | 1515 | 1710 |
| 41 | Tomas Machac | CZE | 1100 | 1737 | 1592 | 1500 | 1682 |
| 42 | Alex Michelsen | USA | 1090 | 1715 | 1488 | 1538 | 1702 |
| 43 | Sebastian Korda | USA | 1050 | 1806 | 1537 | 1556 | 1757 |
| 44 | Mariano Navone | ARG | 1046 | 1718 | 1716 | 1460 | 1507 |
| 45 | Adrian Mannarino | FRA | 1035 | 1589 | 1390 | 1584 | 1569 |
| 46 | Gabriel Diallo | CAN | 1000 | 1651 | 1554 | 1576 | 1615 |
| 47 | Marin Cilic | CRO | 980 | 1710 | 1539 | 1611 | 1635 |
| 48 | Ethan Quinn | USA | 977 | 1731 | 1594 | 1509 | 1683 |
| 49 | Fabian Marozsan | HUN | 975 | 1672 | 1566 | 1450 | 1608 |
| 50 | Jack Draper | GBR | 960 | 1806 | 1634 | 1594 | 1750 |
WTA top 50
| Rk | Player | Country | Pts | ELO overall | ELO clay | ELO grass | ELO hard |
|---|---|---|---|---|---|---|---|
| 1 | Aryna Sabalenka | BLR | 10110 | 2115 | 1808 | 1588 | 2045 |
| 2 | Elena Rybakina | KAZ | 8555 | 2063 | 1760 | 1580 | 1972 |
| 3 | Iga Swiatek | POL | 6948 | 1924 | 1780 | 1658 | 1852 |
| 4 | Coco Gauff | USA | 6749 | 1957 | 1787 | 1519 | 1871 |
| 5 | Jessica Pegula | USA | 6136 | 1997 | 1701 | 1583 | 1901 |
| 6 | Amanda Anisimova | USA | 5985 | 1916 | 1561 | 1638 | 1822 |
| 7 | Mirra Andreeva | RUS | 4181 | 1932 | 1800 | 1513 | 1797 |
| 8 | Jasmine Paolini | ITA | 3722 | 1815 | 1707 | 1585 | 1741 |
| 9 | Victoria Mboko | CAN | 3531 | 1936 | 1704 | 1515 | 1891 |
| 10 | Elina Svitolina | UKR | 3530 | 1922 | 1727 | 1550 | 1824 |
| 11 | Karolina Muchova | CZE | 3318 | 1951 | 1597 | 1494 | 1869 |
| 12 | Belinda Bencic | SUI | 3090 | 1898 | 1584 | 1561 | 1831 |
| 13 | Linda Noskova | CZE | 2999 | 1881 | 1589 | 1583 | 1763 |
| 14 | Ekaterina Alexandrova | RUS | 2669 | 1747 | 1593 | 1584 | 1662 |
| 15 | Marta Kostyuk | UKR | 2507 | 1924 | 1757 | 1449 | 1755 |
| 16 | Naomi Osaka | JPN | 2341 | 1819 | 1628 | 1514 | 1734 |
| 17 | Iva Jovic | USA | 2235 | 1829 | 1663 | 1601 | 1759 |
| 18 | Clara Tauson | DEN | 2030 | 1746 | 1560 | 1520 | 1679 |
| 19 | Madison Keys | USA | 1946 | 1836 | 1706 | 1558 | 1766 |
| 20 | Diana Shnaider | RUS | 1946 | 1782 | 1647 | 1565 | 1686 |
| 21 | Liudmila Samsonova | RUS | 1895 | 1697 | 1604 | 1619 | 1566 |
| 22 | Elise Mertens | BEL | 1858 | 1802 | 1580 | 1581 | 1714 |
| 23 | Leylah Fernandez | CAN | 1851 | 1790 | 1590 | 1546 | 1679 |
| 24 | Anna Kalinskaya | RUS | 1758 | 1784 | 1538 | 1546 | 1721 |
| 25 | Hailey Baptiste | USA | 1747 | 1785 | 1662 | 1488 | 1667 |
| 26 | Marie Bouzkova | CZE | 1651 | 1773 | 1699 | 1476 | 1648 |
| 27 | Sorana Cirstea | ROU | 1595 | 1866 | 1612 | 1429 | 1797 |
| 28 | Jaqueline Cristian | ROU | 1437 | 1770 | 1635 | 1432 | 1698 |
| 29 | Ann Li | USA | 1435 | 1745 | 1638 | 1478 | 1647 |
| 30 | Emma Raducanu | GBR | 1430 | 1753 | 1570 | 1577 | 1658 |
| 31 | Cristina Bucsa | ESP | 1406 | 1738 | 1475 | 1514 | 1684 |
| 32 | Qinwen Zheng | CHN | 1405 | 1819 | 1737 | 1497 | 1737 |
| 33 | Xin Yu Wang | CHN | 1401 | 1735 | 1546 | 1591 | 1616 |
| 34 | Maya Joint | AUS | 1380 | 1711 | 1688 | 1579 | 1641 |
| 35 | Emma Navarro | USA | 1377 | 1680 | 1578 | 1590 | 1613 |
| 36 | Jelena Ostapenko | LAT | 1369 | 1723 | 1632 | 1534 | 1621 |
| 37 | Sara Bejlek | CZE | 1360 | 1832 | 1797 | 1486 | 1653 |
| 38 | Anastasia Potapova | RUS | 1355 | 1787 | 1690 | 1484 | 1640 |
| 39 | Katerina Siniakova | CZE | 1342 | 1777 | 1549 | 1578 | 1693 |
| 40 | Janice Tjen | INA | 1317 | 1817 | 1662 | — | 1785 |
| 41 | Elisabetta Cocciaretto | ITA | 1290 | 1800 | 1584 | 1577 | 1689 |
| 42 | Alexandra Eala | PHI | 1285 | 1786 | 1478 | 1600 | 1748 |
| 43 | Lois Boisson | FRA | 1268 | 1791 | 1811 | 1483 | 1554 |
| 44 | Marketa Vondrousova | CZE | 1263 | 1728 | 1606 | 1578 | 1609 |
| 45 | Magdalena Frech | POL | 1263 | 1649 | 1534 | 1434 | 1613 |
| 46 | Laura Siegemund | GER | 1250 | 1680 | 1535 | 1541 | 1592 |
| 47 | Maria Sakkari | GRE | 1238 | 1707 | 1563 | 1486 | 1658 |
| 48 | Tereza Valentova | CZE | 1231 | 1845 | 1746 | 1517 | 1788 |
| 49 | Peyton Stearns | USA | 1211 | 1710 | 1636 | 1471 | 1621 |
| 50 | Mccartney Kessler | USA | 1204 | 1754 | 1516 | 1583 | 1688 |
| Source | DB / file | Last pulled | Age | Rows | Status |
|---|---|---|---|---|---|
| Kalshi KXATPMATCH | tennis_kalshi.sqlite | 2026-05-21T17:39:14.932928+00:00 | 2m | 1836 | fresh |
| Kalshi KXWTAMATCH | tennis_kalshi.sqlite | 2026-05-21T17:39:14.932928+00:00 | 2m | 1736 | fresh |
| Kalshi KXFRENCHOPEN | tennis_kalshi.sqlite | 2026-05-21T17:39:14.932928+00:00 | 2m | 0 | fresh |
| Kalshi KXFOPENMENSINGLE | tennis_kalshi.sqlite | 2026-05-21T17:39:14.932928+00:00 | 2m | 0 | fresh |
| Kalshi KXATPGRANDSLAM | tennis_kalshi.sqlite | 2026-05-21T17:39:14.932928+00:00 | 2m | 14 | fresh |
| Kalshi KXUSOPEN | tennis_kalshi.sqlite | 2026-05-21T17:39:14.932928+00:00 | 2m | 0 | fresh |
| Kalshi KXATPSETWINNER | tennis_kalshi.sqlite | 2026-05-21T17:39:14.932928+00:00 | 2m | 3650 | fresh |
| Kalshi KXATPTOTALSETS | tennis_kalshi.sqlite | 2026-05-21T17:39:14.932928+00:00 | 2m | 0 | fresh |
| Kalshi KXATPSETSWEEP | tennis_kalshi.sqlite | 2026-05-21T17:39:14.932928+00:00 | 2m | 0 | fresh |
| Kalshi KXATPGAMESPREAD | tennis_kalshi.sqlite | 2026-05-21T17:39:14.932928+00:00 | 2m | 0 | fresh |
| Kalshi KXATPEXACTMATCH | tennis_kalshi.sqlite | 2026-05-21T17:39:14.932928+00:00 | 2m | 1190 | fresh |
| Kalshi KXWTADOUBLES | tennis_kalshi.sqlite | 2026-05-21T17:39:14.932928+00:00 | 2m | 0 | fresh |
| Kalshi KXATP1RANK | tennis_kalshi.sqlite | 2026-05-21T17:39:14.932928+00:00 | 2m | 16 | fresh |
| elo last computed | tennis.sqlite | 2026-05-21T17:39:11+00:00 | 2m | 20051 | fresh |
| rankings last pulled | tennis.sqlite | 2026-05-21T17:39:14+00:00 | 2m | 3745 | fresh |
| rankings atp latest date | tennis.sqlite | 2026-05-04 | 425.69h | — | stale |
| rankings wta latest date | tennis.sqlite | 2026-05-04 | 425.69h | — | stale |
| mirror atp schedule | tennis.sqlite | 2026-05-21T17:40:48.754624+00:00 | 0m | 299 | fresh |
| h2h last computed | tennis.sqlite | 2026-05-17T10:11:57.514615+00:00 | 103.49h | — | stale |
| h2h n pairs | tennis.sqlite | 190184 | missing | — | missing |
| last player db run | tennis.sqlite | 1779385265 | missing | — | missing |
| results last_run | tennis_results.sqlite | [2026-05-21T17:40:51.025286+00:00] 2026-05-21T17:40:49.084825+00:00; dates=['20260520']; rows=556; resolved=538 | missing | — | missing |
| pp_edges CSV | pp_edges_tennis_2026-05-21.csv | 2026-05-21T17:41:19.737844+00:00 | 0m | — | fresh |
| kalshi edges JSON | tennis_kalshi_edges_2026-05-21.json | 2026-05-21T17:41:15.243663+00:00 | 0m | — | fresh |
| paper trades PP | paper_trades_pp_tennis_2026-05-21.json | 2026-05-21T17:41:21.530895+00:00 | 0m | — | fresh |
| paper trades Kalshi | paper_trades_kalshi_tennis_2026-05-21.json | 2026-05-21T17:41:21.999775+00:00 | 0m | — | fresh |
| daily payload | daily_tennis_2026-05-21.json | 2026-05-21T17:41:22.644175+00:00 | 0m | — | fresh |
| PP movement | pp_line_movement_tennis_2026-05-21.csv | 2026-05-21T17:41:22.183298+00:00 | 0m | — | fresh |
| PP calibration | pp_calibration_tennis.json | 2026-05-21T17:41:22.117472+00:00 | 0m | — | fresh |