Kalshi KXATPMATCH 2m · 1770rKalshi KXWTAMATCH 2m · 1672rKalshi KXFRENCHOPEN 2mKalshi KXFOPENMENSINGLE 2mKalshi KXATPGRANDSLAM 2m · 14rKalshi KXUSOPEN 2mKalshi KXATPSETWINNER 2m · 3516rKalshi KXATPTOTALSETS 2mKalshi KXATPSETSWEEP 2mKalshi KXATPGAMESPREAD 2mKalshi KXATPEXACTMATCH 2m · 1016rKalshi KXWTADOUBLES 2mKalshi KXATP1RANK 2m · 16relo last computed 2m · 20051rrankings last pulled 2m · 3745rrankings atp latest date 16drankings wta latest date 16dmirror atp schedule 0m · 93rh2h last computed 3dh2h 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
24
scheduled
ELITE edges
0
across Kalshi + PP
STRONG edges
0
tier 2
MED edges
0
tier 3
Paper locks
3
Kalshi + PP
Real Money YTD
-$10.00
paper-gate restored
Qualifying skipped
26
filtered out today
Last refresh
17:41
2026-05-20 UTC
🏆 Best Bet (main-draw)
No main-draw Kalshi pick survived qualifying filter today.
🎯 Safest (P ≥ 65%)
Mariano Navone
64%
Heavy main-draw favorite · PAPER
Edge +8.1pp
Ask 56¢
Ask 56¢
💎 Biggest Payout (ELITE)
No ELITE main-draw longshot today.
| # | Match | Tournament | Round | Surface | Start | ELO A | ELO B | ELO diff | Kalshi event |
|---|---|---|---|---|---|---|---|---|---|
| 1 | ? vs Harmony Tan | Roland Garros | Qualifying 2nd Round | clay | May 20 14:50 | — | 1464 | — | |
| 2 | ? vs Harmony Tan | Roland Garros | Qualifying 2nd Round | clay | May 20 14:50 | — | 1464 | — | |
| 3 | Darja Semenistaja vs Katarina Zavatska | Roland Garros | Qualifying 2nd Round | clay | May 20 14:55 | 1765 | 1734 | +31 | KXWTAMATCH-26MAY20SEMZAV |
| 4 | Darja Semenistaja vs Katarina Zavatska | Roland Garros | Qualifying 2nd Round | clay | May 20 14:55 | 1765 | 1734 | +31 | KXWTAMATCH-26MAY20SEMZAV |
| 5 | Luka Pavlovic vs Tomas Barrios Vera | Roland Garros | Qualifying 2nd Round | clay | May 20 15:20 | 1583 | 1678 | -96 | KXATPMATCH-26MAY20PAVBAR |
| 6 | Luka Pavlovic vs Tomas Barrios Vera | Roland Garros | Qualifying 2nd Round | clay | May 20 15:20 | 1583 | 1678 | -96 | KXATPMATCH-26MAY20PAVBAR |
| 7 | Alejandro Davidovich Fokina vs Alex De Minaur | Bitpanda Hamburg Open | Round 2 | clay | May 20 15:25 | 1572 | 1652 | -80 | KXATPMATCH-26MAY19DAVDE |
| 8 | Maria Lourdes Carle vs Maria Timofeeva | Roland Garros | Qualifying 2nd Round | clay | May 20 15:30 | 1630 | 1648 | -19 | KXWTAMATCH-26MAY20CARTIM |
| 9 | Maria Lourdes Carle vs Maria Timofeeva | Roland Garros | Qualifying 2nd Round | clay | May 20 15:30 | 1630 | 1648 | -19 | KXWTAMATCH-26MAY20CARTIM |
| 10 | Emma Navarro vs Iva Jovic | Internationaux de Strasbourg presented by Mammotion | Round 2 | clay | May 20 15:35 | 1578 | 1663 | -85 | KXWTAMATCH-26MAY19NAVJOV |
| 11 | Polina Kudermetova vs Viktoriya Tomova | Roland Garros | Qualifying 2nd Round | clay | May 20 15:45 | 1716 | 1506 | +210 | KXWTAMATCH-26MAY20KUDTOM |
| 12 | Polina Kudermetova vs Viktoriya Tomova | Roland Garros | Qualifying 2nd Round | clay | May 20 15:45 | 1716 | 1506 | +210 | KXWTAMATCH-26MAY20KUDTOM |
| 13 | Stan Wawrinka vs Alex Michelsen | Gonet Geneva Open | Round 2 | clay | May 20 16:05 | 1464 | 1488 | -24 | KXATPSETWINNER-26MAY20WAWMIC-2 |
| 14 | Gianluca Cadenasso vs Leandro Riedi | Roland Garros | Qualifying 2nd Round | clay | May 20 16:25 | 1609 | 1542 | +67 | KXATPMATCH-26MAY20CADRIE |
| 15 | Yuliia Starodubtseva vs Anhelina Kalinina | Grand Prix Son Altesse Royale La Princesse Lalla Meryem | Round 2 | clay | May 20 16:25 | 1619 | 1767 | -148 | KXWTAMATCH-26MAY20STAKAL |
| 16 | Gianluca Cadenasso vs Leandro Riedi | Roland Garros | Qualifying 2nd Round | clay | May 20 16:25 | 1609 | 1542 | +67 | KXATPMATCH-26MAY20CADRIE |
| 17 | Lucia Bronzetti vs Lucrezia Stefanini | Roland Garros | Qualifying 2nd Round | clay | May 20 16:55 | 1533 | 1501 | +32 | KXWTAMATCH-26MAY20BROSTE |
| 18 | Lucia Bronzetti vs Lucrezia Stefanini | Roland Garros | Qualifying 2nd Round | clay | May 20 16:55 | 1533 | 1501 | +32 | KXWTAMATCH-26MAY20BROSTE |
| 19 | Tristan Schoolkate vs Darwin Blanch | Roland Garros | Qualifying 2nd Round | clay | May 20 17:00 | 1510 | 1530 | -20 | KXATPSETWINNER-26MAY20SCHBLA-2 |
| 20 | Tristan Schoolkate vs Darwin Blanch | Roland Garros | Qualifying 2nd Round | clay | May 20 17:00 | 1510 | 1530 | -20 | KXATPSETWINNER-26MAY20SCHBLA-2 |
| 21 | Rebecca Sramkova vs Francisca Jorge | Roland Garros | Qualifying 2nd Round | clay | May 20 17:05 | 1582 | 1491 | +92 | KXWTAMATCH-26MAY20SRAJOR |
| 22 | Rebecca Sramkova vs Francisca Jorge | Roland Garros | Qualifying 2nd Round | clay | May 20 17:05 | 1582 | 1491 | +92 | KXWTAMATCH-26MAY20SRAJOR |
| 23 | Edas Butvilas vs Alexander Bublik | Gonet Geneva Open | Round 2 | clay | May 20 17:50 | 1501 | 1724 | -223 | KXATPSETWINNER-26MAY20BUTBUB-1 |
| 24 | Luciano Darderi vs Yannick Hanfmann | Bitpanda Hamburg Open | Round 2 | clay | May 20 18:30 | 1767 | 1668 | +98 | KXATPSETWINNER-26MAY20DARHAN-2 |
| # | Match | Our pick | Our P | Mkt P | Ask | Edge | Tier | Decision | Vol 24h | Surface | Round | EV/$ |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Viktoriya Tomova vs Polina Kudermetova Qual | Viktoriya Tomova | 45.0% | 8.0% | 8¢ | +37.0pp | LOW | SKIP | 100944 | clay | Qualifying 2nd Round | +0.370 |
| 2 | Tristan Schoolkate vs Darwin Blanch Qual | Tristan Schoolkate | 50.6% | 15.0% | 15¢ | +35.6pp | LOW | SKIP | 103023 | hard | Qualification Round 2 | +0.356 |
| 3 | Camila Osorio vs Panna Udvardy | Panna Udvardy | 57.9% | 91.0% | 91¢ | -33.1pp | LOW | PAPER | 0 | clay | Quarterfinal | -0.331 |
| 4 | Jil Teichmann vs Yasmine Kabbaj | Yasmine Kabbaj | 51.8% | 19.0% | 19¢ | +32.8pp | LOW | PAPER | 12 | clay | Quarterfinal | +0.328 |
| 5 | Frances Tiafoe vs Camilo Ugo Carabelli | Frances Tiafoe | 63.7% | 31.0% | 31¢ | +32.7pp | LOW | PAPER | 1002301 | hard | Round Of 16 | +0.327 |
| 6 | Francisca Jorge vs Rebecca Sramkova Qual | Francisca Jorge | 45.0% | 14.0% | 14¢ | +31.0pp | LOW | SKIP | 17010 | clay | Qualifying 2nd Round | +0.310 |
| 7 | Alex de Minaur vs Alejandro Davidovich Fokina | Alejandro Davidovich Fokina | 44.2% | 14.0% | 14¢ | +30.2pp | LOW | PAPER | 637156 | clay | Round 2 | +0.302 |
| 8 | Thomas Faurel vs Dalibor Svrcina Qual | Thomas Faurel | 45.0% | 20.0% | 20¢ | +25.0pp | LOW | PAPER | 1385 | hard | Qualification Final | +0.250 |
| 9 | Andrea Pellegrino vs Marco Cecchinato Qual | Marco Cecchinato | 54.2% | 33.0% | 33¢ | +21.2pp | LOW | PAPER | 372 | hard | Qualification Final | +0.212 |
| 10 | Ashlyn Krueger vs Mary Stoiana Qual | Mary Stoiana | 55.0% | 34.0% | 34¢ | +21.0pp | LOW | PAPER | 123 | clay | Qualifying Final | +0.210 |
| 11 | Maja Chwalinska vs Suzan Lamens Qual | Suzan Lamens | 45.0% | 26.0% | 26¢ | +19.0pp | LOW | PAPER | 52 | clay | Qualifying Final | +0.190 |
| 12 | Sinja Kraus vs Anna-Lena Friedsam Qual | Anna-Lena Friedsam | 41.4% | 24.0% | 24¢ | +17.4pp | LOW | PAPER | 13 | clay | Qualifying Final | +0.174 |
| 13 | August Holmgren vs Facundo Diaz Acosta Qual | August Holmgren | 45.0% | 28.0% | 28¢ | +17.0pp | LOW | PAPER | 147 | clay | Qualifying Final | +0.170 |
| 14 | Sloane Stephens vs Leyre Romero Gormaz Qual | Leyre Romero Gormaz | 58.6% | 42.0% | 42¢ | +16.6pp | LOW | PAPER | 25 | clay | Qualifying Final | +0.166 |
| 15 | Alexander Bublik vs Edas Butvilas | Edas Butvilas | 44.4% | 28.0% | 28¢ | +16.4pp | LOW | PAPER | 42242 | hard | Round Of 16 | +0.163 |
| 16 | Stan Wawrinka vs Alex Michelsen | Stan Wawrinka | 38.1% | 22.0% | 22¢ | +16.1pp | LOW | PAPER | 370456 | hard | Round Of 16 | +0.161 |
| 17 | Lucrezia Stefanini vs Lucia Bronzetti Qual | Lucrezia Stefanini | 43.5% | 28.0% | 28¢ | +15.5pp | LOW | PAPER | 23902 | clay | Qualifying 2nd Round | +0.155 |
| 18 | Ignacio Buse vs Ugo Humbert | Ugo Humbert | 59.7% | 45.0% | 45¢ | +14.7pp | LOW | PAPER | 21 | hard | Quarterfinal | +0.147 |
| 19 | Alina Korneeva vs Julia Riera Qual | Julia Riera | 58.6% | 44.0% | 44¢ | +14.6pp | LOW | PAPER | 0 | clay | Qualifying Final | +0.146 |
| 20 | Maria Carle vs Maria Timofeeva Qual | Maria Timofeeva | 66.3% | 52.0% | 52¢ | +14.3pp | LOW | PAPER | 103196 | clay | Qualifying 2nd Round | +0.143 |
| 21 | Iva Jovic vs Emma Navarro | Iva Jovic | 56.9% | 43.0% | 43¢ | +13.9pp | LOW | PAPER | 1208372 | clay | Round 2 | +0.139 |
| 22 | Michael Zheng vs Jesper De Jong Qual | Michael Zheng | 45.0% | 33.0% | 33¢ | +12.0pp | LOW | PAPER | 1696 | clay | Qualifying Final | +0.120 |
| 23 | Alexei Popyrin vs Casper Ruud | Alexei Popyrin | 35.2% | 26.0% | 26¢ | +9.2pp | LOW | PAPER | 376 | hard | Quarterfinal | +0.092 |
| 24 | Jessica Bouzas Maneiro vs Petra Marcinko | Petra Marcinko | 56.1% | 47.0% | 47¢ | +9.1pp | LOW | PAPER | 0 | clay | Quarterfinal | +0.091 |
| 25 | Coleman Wong vs Juan Carlos Prado Angelo Qual | Coleman Wong | 55.0% | 64.0% | 64¢ | -9.0pp | LOW | PAPER | 260 | hard | Qualification Final | -0.090 |
| 26 | Harmony Tan vs Xinyu Gao Qual | Harmony Tan | 54.5% | 46.0% | 46¢ | +8.5pp | LOW | PAPER | 272265 | hard | Qualification Round 2 | +0.085 |
| 27 | Yannick Hanfmann vs Luciano Darderi | Yannick Hanfmann | 44.2% | 36.0% | 36¢ | +8.2pp | LOW | PAPER | 134081 | hard | Round Of 16 | +0.082 |
| 28 | Mariano Navone vs Jaume Munar | Mariano Navone | 64.1% | 56.0% | 56¢ | +8.1pp | LOW | PAPER | 118 | clay | Quarterfinal | +0.081 |
| 29 | Elena Pridankina vs Himeno Sakatsume Qual | Himeno Sakatsume | 45.0% | 38.0% | 38¢ | +7.0pp | LOW | PAPER | 0 | clay | Qualifying Final | +0.070 |
| 30 | Federico Cina vs Alexis Galarneau Qual | Alexis Galarneau | 50.4% | 57.0% | 57¢ | -6.6pp | LOW | PAPER | 9 | hard | Qualification Final | -0.066 |
| 31 | Darja Semenistaja vs Katarina Zavatska Qual | Darja Semenistaja | 53.0% | 47.0% | 47¢ | +6.0pp | LOW | PAPER | 282378 | clay | Qualifying 2nd Round | +0.060 |
| 32 | Jaqueline Cristian vs Daria Kasatkina | Jaqueline Cristian | 45.0% | 39.0% | 39¢ | +6.0pp | LOW | PAPER | 247 | clay | Quarterfinal | +0.060 |
| 33 | Hanyu Guo vs Sofia Costoulas Qual | Hanyu Guo | 47.6% | 42.0% | 42¢ | +5.6pp | LOW | PAPER | 66 | hard | Qualification Final | +0.056 |
| 34 | Ann Li vs Marie Bouzkova | Marie Bouzkova | 54.6% | 49.0% | 49¢ | +5.6pp | LOW | PAPER | 386 | clay | Quarterfinal | +0.056 |
| 35 | Leandro Riedi vs Gianluca Cadenasso Qual | Leandro Riedi | 45.2% | 41.0% | 41¢ | +4.2pp | LOW | PAPER | 170305 | clay | Qualifying 2nd Round | +0.042 |
| 36 | Guiomar Maristany Zuleta de Reales vs Kaitlin Quevedo Qual | Guiomar Maristany Zuleta de Reales | 53.0% | 49.0% | 49¢ | +4.0pp | LOW | PAPER | 0 | clay | Qualifying Final | +0.040 |
| 37 | Marina Bassols Ribera vs Aliaksandra Sasnovich Qual | Marina Bassols Ribera | 55.0% | 52.0% | 52¢ | +3.0pp | LOW | PAPER | 0 | clay | Qualifying Final | +0.030 |
| 38 | Victoria Mboko vs Leylah Fernandez | Leylah Fernandez | 41.1% | 40.0% | 40¢ | +1.1pp | LOW | SKIP | 535 | clay | Quarterfinal | +0.011 |
| 39 | Gonzalo Bueno vs Toby Samuel Qual | Toby Samuel | 55.0% | 56.0% | 56¢ | -1.0pp | LOW | SKIP | 278 | hard | Qualification Final | -0.010 |
| 40 | Tommy Paul vs Daniel Altmaier | Daniel Altmaier | 31.7% | 31.0% | 31¢ | +0.7pp | LOW | SKIP | 242 | hard | Quarterfinal | +0.007 |
| 41 | Marcelo Tomas Barrios Vera vs Luka Pavlovic Qual | Marcelo Tomas Barrios Vera | 50.6% | 50.0% | 50¢ | +0.6pp | LOW | SKIP | 353194 | clay | Qualifying 2nd Round | +0.006 |
| 42 | Lukas Neumayer vs Jaime Faria Qual | Jaime Faria | 51.3% | 51.0% | 51¢ | +0.3pp | LOW | SKIP | 241 | clay | Qualifying Final | +0.003 |
| # | Player | Stat | PP line | Our proj | Edge % | Side | Tier | Opp | Surface | Demon | Payout |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Yasmine Kabbaj | Total Games Won | 7.5 | 10.28 | +37.1% | MORE | LOW | Jil Teichmann | clay | — | 0.5x |
| 2 | Thomas Faurel | Total Games Won | 7.5 | 10.05 | +34.0% | MORE | LOW | Dalibor Svrcina | clay | — | 1.0x |
| 3 | Marina Bassols Ribera🟨 WARM | Total Games Won | 8.5 | 10.91 | +28.3% | MORE | LOW | Aliaksandra Sasnovich | clay | — | 1.0x |
| 4 | Dalibor Svrcina🟨 WARM | Total Games | 19.5 | 24.83 | +27.3% | MORE | LOW | Thomas Faurel | clay | — | 0.5x |
| 5 | Jil Teichmann🧊 COLD | Total Games | 19.5 | 24.51 | +25.7% | MORE | LOW | Yasmine Kabbaj | clay | — | 0.5x |
| 6 | Aliaksandra Sasnovich | Total Games | 19.5 | 24.34 | +24.8% | MORE | LOW | Marina Bassols Ribera | clay | — | 0.5x |
| 7 | Jessica Bouzas Maneiro | Total Games | 20.5 | 24.29 | +18.5% | MORE | LOW | Petra Marcinko | clay | — | 0.5x |
| 8 | Suzan Lamens | Total Games Won | 8.5 | 10.05 | +18.2% | MORE | LOW | Maja Chwalinska | clay | — | 1.0x |
| 9 | Andrea Pellegrino | Total Games | 21.5 | 25.31 | +17.7% | MORE | LOW | Marco Cecchinato | clay | — | 0.5x |
| 10 | Sofia Costoulas | Total Games | 20.5 | 24.12 | +17.6% | MORE | LOW | Hanyu Guo | clay | — | 0.5x |
| 11 | Ashlyn Krueger | Total Games | 20.5 | 24.09 | +17.5% | MORE | LOW | Mary Stoiana | clay | — | 0.5x |
| 12 | Andrea Pellegrino | Total Games Won | 12.5 | 10.35 | +17.2% | LESS | LOW | Marco Cecchinato | clay | — | 1.0x |
| 13 | Lukas Neumayer🟨 WARM | Total Games Won | 12.5 | 10.37 | +17.0% | LESS | LOW | Jaime Faria | clay | — | 1.0x |
| 14 | Daniel Altmaier | Total Games Won | 11.5 | 9.62 | +16.4% | LESS | LOW | Tommy Paul | clay | — | 0.5x |
| 15 | Jaime Faria🟨 WARM | Total Games Won | 12.5 | 10.58 | +15.4% | LESS | LOW | Lukas Neumayer | clay | — | 1.0x |
| 16 | Sloane Stephens🧊 COLD | Total Games | 20.5 | 23.62 | +15.2% | MORE | LOW | Leyre Romero Gormaz | clay | — | 0.5x |
| 17 | Sinja Kraus🟨 WARM | Total Games | 20.0 | 22.86 | +14.3% | MORE | LOW | Anna-Lena Friedsam | clay | — | 0.5x |
| 18 | Toby Samuel🟨 WARM | Total Games | 21.5 | 24.55 | +14.2% | MORE | LOW | Gonzalo Bueno | clay | — | 0.5x |
| 19 | Jesper De Jong | Total Games | 21.5 | 24.50 | +14.0% | MORE | LOW | Michael Zheng | clay | — | 0.5x |
| 20 | Daria Kasatkina🟨 WARM | Total Games | 21.5 | 24.34 | +13.2% | MORE | LOW | Jaqueline Cristian | clay | — | 0.5x |
| 21 | Himeno Sakatsume | Total Games Won | 11.5 | 10.05 | +12.6% | LESS | LOW | Elena Pridankina | clay | — | 2.0x |
| 22 | Michael Zheng⏳ RTRN | Total Games Won | 11.5 | 10.05 | +12.6% | LESS | LOW | Jesper De Jong | clay | — | 1.0x |
| 23 | Facundo Diaz Acosta⏳ RTRN | Total Games Won | 12.5 | 10.95 | +12.4% | LESS | LOW | August Holmgren | clay | — | 1.0x |
| 24 | Jesper De Jong | Total Games Won | 12.5 | 10.95 | +12.4% | LESS | LOW | Michael Zheng | clay | — | 1.0x |
| 25 | Anna-Lena Friedsam🧊 COLD | Total Games Won | 8.5 | 9.55 | +12.3% | MORE | LOW | Sinja Kraus | clay | — | 1.0x |
| 26 | Jaime Faria🟨 WARM | Total Games | 22.5 | 25.22 | +12.1% | MORE | LOW | Lukas Neumayer | clay | — | 0.5x |
| 27 | Alexei Popyrin | Total Games Won | 10.5 | 9.26 | +11.8% | LESS | LOW | Casper Ruud | clay | — | 0.5x |
| 28 | Marie Bouzkova🟨 WARM | Total Games | 22.0 | 24.28 | +10.3% | MORE | LOW | Ann Li | clay | — | 0.5x |
| 29 | Mariano Navone🟨 WARM | Total Games | 22.5 | 24.66 | +9.6% | MORE | LOW | Jaume Munar | clay | — | 0.5x |
| 30 | Tommy Paul🟨 WARM | Total Games | 22.5 | 24.54 | +9.1% | MORE | LOW | Daniel Altmaier | clay | — | 0.5x |
| 31 | Facundo Diaz Acosta⏳ RTRN | Total Games | 21.5 | 23.31 | +8.4% | MORE | LOW | August Holmgren | clay | — | 0.5x |
| 32 | Alina Korneeva🧊 COLD | Total Games | 21.5 | 23.23 | +8.0% | MORE | LOW | Julia Riera | clay | — | 0.5x |
| 33 | Marco Cecchinato | Total Games Won | 11.5 | 10.59 | +7.9% | LESS | LOW | Andrea Pellegrino | clay | — | 1.0x |
| 34 | Mariano Navone🟨 WARM | Total Games Won | 12.5 | 11.52 | +7.9% | LESS | LOW | Jaume Munar | clay | — | 0.5x |
| 35 | Maja Chwalinska⏳ RTRN | Total Games | 21.5 | 22.70 | +5.6% | MORE | LOW | Suzan Lamens | clay | — | 0.5x |
| 36 | Ignacio Buse | Total Games | 22.5 | 23.61 | +5.0% | MORE | LOW | Ugo Humbert | clay | — | 0.5x |
| 37 | August Holmgren🟨 WARM | Total Games Won | 10.5 | 10.05 | +4.3% | LESS | LOW | Facundo Diaz Acosta | clay | — | 1.0x |
| 38 | Mary Stoiana🟨 WARM | Total Games Won | 10.5 | 10.95 | +4.3% | MORE | LOW | Ashlyn Krueger | clay | — | 1.0x |
| 39 | Ignacio Buse | Total Games Won | 12.5 | 11.99 | +4.1% | LESS | LOW | Ugo Humbert | clay | — | 0.5x |
| 40 | Elena Pridankina🟨 WARM | Total Games | 21.5 | 22.13 | +2.9% | MORE | LOW | Himeno Sakatsume | clay | — | 0.5x |
| 41 | Juan Carlos Prado Angelo⏳ RTRN | Total Games | 22.5 | 23.13 | +2.8% | MORE | LOW | Coleman Wong | clay | — | 0.5x |
Kalshi tennis — 3 picks · $6.00 staked
Day 1 - paper only, grade EOD before scaling · locked 2026-05-20T13:11:03.127967+00:00
| # | Match | Pick | Our P | Ask | Edge | Tier | Surface | Stake | Status | P&L |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Roman Safiullin vs Joel Schwaerzler | Joel Schwaerzler | 53.5% | 37¢ | 16.5pp | ELITE | hard | $2.00 | OPEN | +0.00 |
| 2 | Coleman Wong vs Zdenek Kolar | Coleman Wong | 55.0% | 41¢ | 14.0pp | ELITE | hard | $2.00 | OPEN | +2.88 |
| 3 | Maria Carle vs Maria Timofeeva | Maria Carle | 33.9% | 21¢ | 12.9pp | ELITE | clay | $2.00 | OPEN | +0.00 |
PrizePicks tennis — 0 picks · $0.00 staked
Day 1 - paper only, grade EOD before scaling · locked 2026-05-20T13:11:03.064972+00:00
| # | Player | Stat | Line | Our proj | Side | Edge | Tier | Surface | Stake | Status | P&L |
|---|
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-20T10:41:18 · 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 | 12.5% | 17.5% | +5.0pp · PUBLIC HIGHER | Fre 5%, Wim 10%, US 3% |
| Lorenzo Musetti · exact | 4.5% | 1.6% | -2.9pp · SHARP HIGHER | Fre 0%, Wim 1%, US 1% |
| Daniil Medvedev · exact | 8.0% | 5.5% | -2.5pp · SHARP HIGHER | Fre 2%, Wim 2%, US 2% |
| Alex de Minaur · exact | 3.0% | 1.5% | -1.5pp · SHARP HIGHER | Fre 0%, Wim 1% |
| Karen Khachanov · exact | 2.0% | 0.5% | -1.5pp · SHARP HIGHER | Fre 0%, Wim 0% |
| Felix Auger-Aliassime · exact | 2.0% | 0.5% | -1.5pp · SHARP HIGHER | Wim 1% |
| Ben Shelton · exact | 4.5% | 5.9% | +1.4pp · PUBLIC HIGHER | Fre 1%, Wim 4%, US 2% |
| Jack Draper · exact | 4.5% | 5.6% | +1.1pp · PUBLIC HIGHER | Fre 0%, Wim 3%, US 3% |
| Alexander Bublik · exact | 3.0% | 2.0% | -1.0pp · SHARP HIGHER | Fre 0%, Wim 0%, US 1% |
| Frances Tiafoe · exact | 0.5% | 1.4% | +0.9pp · PUBLIC HIGHER | Fre 0%, Wim 0%, US 1% |
| Alexander Zverev · exact | 15.0% | 14.1% | -0.9pp · SHARP HIGHER | Fre 7%, Wim 5%, US 3% |
| Taylor Fritz · exact | 4.5% | 5.3% | +0.8pp · PUBLIC HIGHER | Fre 1%, Wim 3%, US 2% |
| Jannik Sinner · exact | 94.5% | 95.1% | +0.6pp · PUBLIC HIGHER | Fre 70%, Wim 66%, US 52% |
| Casper Ruud · exact | 3.5% | 3.3% | -0.2pp · 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 | Sinja Kraus | Total Games | Anna-Lena Friedsam | 21.5 | 20.0 | -1.50 | 1.50 | DOWN |
| 2 | Darwin Blanch | Total Games | Tristan Schoolkate | 22.5 | 21.5 | -1.00 | 1.00 | DOWN |
| 3 | Sofia Costoulas | Total Games | Hanyu Guo | 21.5 | 20.5 | -1.00 | 1.00 | DOWN |
| 4 | Andrea Pellegrino | Total Games | Marco Cecchinato | 22.5 | 21.5 | -1.00 | 1.00 | DOWN |
| 5 | Toby Samuel | Total Games | Gonzalo Bueno | 22.5 | 21.5 | -1.00 | 1.00 | DOWN |
| 6 | Michael Zheng | Total Games Won | Jesper De Jong | 10.5 | 11.5 | +1.00 | 1.00 | UP |
| 7 | Maja Chwalinska | Total Games | Suzan Lamens | 20.5 | 21.5 | +1.00 | 1.00 | UP |
| 8 | Suzan Lamens | Total Games Won | Maja Chwalinska | 9.5 | 8.5 | -1.00 | 1.00 | DOWN |
| 9 | Sloane Stephens | Total Games | Leyre Romero Gormaz | 21.5 | 20.5 | -1.00 | 1.00 | DOWN |
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-20T17:39:10.301279+00:00 | 2m | 1770 | fresh |
| Kalshi KXWTAMATCH | tennis_kalshi.sqlite | 2026-05-20T17:39:10.301279+00:00 | 2m | 1672 | fresh |
| Kalshi KXFRENCHOPEN | tennis_kalshi.sqlite | 2026-05-20T17:39:10.301279+00:00 | 2m | 0 | fresh |
| Kalshi KXFOPENMENSINGLE | tennis_kalshi.sqlite | 2026-05-20T17:39:10.301279+00:00 | 2m | 0 | fresh |
| Kalshi KXATPGRANDSLAM | tennis_kalshi.sqlite | 2026-05-20T17:39:10.301279+00:00 | 2m | 14 | fresh |
| Kalshi KXUSOPEN | tennis_kalshi.sqlite | 2026-05-20T17:39:10.301279+00:00 | 2m | 0 | fresh |
| Kalshi KXATPSETWINNER | tennis_kalshi.sqlite | 2026-05-20T17:39:10.301279+00:00 | 2m | 3516 | fresh |
| Kalshi KXATPTOTALSETS | tennis_kalshi.sqlite | 2026-05-20T17:39:10.301279+00:00 | 2m | 0 | fresh |
| Kalshi KXATPSETSWEEP | tennis_kalshi.sqlite | 2026-05-20T17:39:10.301279+00:00 | 2m | 0 | fresh |
| Kalshi KXATPGAMESPREAD | tennis_kalshi.sqlite | 2026-05-20T17:39:10.301279+00:00 | 2m | 0 | fresh |
| Kalshi KXATPEXACTMATCH | tennis_kalshi.sqlite | 2026-05-20T17:39:10.301279+00:00 | 2m | 1016 | fresh |
| Kalshi KXWTADOUBLES | tennis_kalshi.sqlite | 2026-05-20T17:39:10.301279+00:00 | 2m | 0 | fresh |
| Kalshi KXATP1RANK | tennis_kalshi.sqlite | 2026-05-20T17:39:10.301279+00:00 | 2m | 16 | fresh |
| elo last computed | tennis.sqlite | 2026-05-20T17:39:05+00:00 | 2m | 20051 | fresh |
| rankings last pulled | tennis.sqlite | 2026-05-20T17:39:09+00:00 | 2m | 3745 | fresh |
| rankings atp latest date | tennis.sqlite | 2026-05-04 | 401.69h | — | stale |
| rankings wta latest date | tennis.sqlite | 2026-05-04 | 401.69h | — | stale |
| mirror atp schedule | tennis.sqlite | 2026-05-20T17:40:41.935272+00:00 | 0m | 93 | fresh |
| h2h last computed | tennis.sqlite | 2026-05-17T10:11:57.514615+00:00 | 79.49h | — | stale |
| h2h n pairs | tennis.sqlite | 190184 | missing | — | missing |
| last player db run | tennis.sqlite | 1779298858 | missing | — | missing |
| results last_run | tennis_results.sqlite | [2026-05-20T17:40:43.956932+00:00] 2026-05-20T17:40:42.265653+00:00; dates=['20260519']; rows=491; resolved=475 | missing | — | missing |
| pp_edges CSV | pp_edges_tennis_2026-05-20.csv | 2026-05-20T17:41:06.351404+00:00 | 0m | — | fresh |
| kalshi edges JSON | tennis_kalshi_edges_2026-05-20.json | 2026-05-20T17:41:04.319084+00:00 | 0m | — | fresh |
| paper trades PP | paper_trades_pp_tennis_2026-05-20.json | 2026-05-20T17:41:08.107613+00:00 | 0m | — | fresh |
| paper trades Kalshi | paper_trades_kalshi_tennis_2026-05-20.json | 2026-05-20T17:41:08.587620+00:00 | 0m | — | fresh |
| daily payload | daily_tennis_2026-05-20.json | 2026-05-20T17:41:09.250124+00:00 | 0m | — | fresh |
| PP movement | pp_line_movement_tennis_2026-05-20.csv | 2026-05-20T17:41:08.770127+00:00 | 0m | — | fresh |
| PP calibration | pp_calibration_tennis.json | 2026-05-20T17:41:08.704455+00:00 | 0m | — | fresh |