Kalshi KXATPMATCH 3m · 1942rKalshi KXWTAMATCH 3m · 1910rKalshi KXFRENCHOPEN 3mKalshi KXFOPENMENSINGLE 3mKalshi KXATPGRANDSLAM 3m · 14rKalshi KXUSOPEN 3mKalshi KXATPSETWINNER 3m · 4482rKalshi KXATPTOTALSETS 3mKalshi KXATPSETSWEEP 3m · 2rKalshi KXATPGAMESPREAD 3mKalshi KXATPEXACTMATCH 3m · 4430rKalshi KXWTADOUBLES 3m · 266rKalshi KXATP1RANK 3m · 16relo last computed 23d · 20430rrankings last pulled 29d · 11348rrankings atp latest date 37drankings wta latest date 37dmirror atp schedule 1m · 74rh2h last computed 59dh2h 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
30
scheduled
ELITE edges
0
across Kalshi + PP
STRONG edges
0
tier 2
MED edges
0
tier 3
Paper locks
0
Kalshi + PP
Real Money YTD
-$10.00
paper-gate restored
Qualifying skipped
0
filtered out today
Last refresh
13:14
2026-07-15 UTC
🏆 Best Bet (main-draw)
No main-draw Kalshi pick survived qualifying filter today.
🎯 Safest (P ≥ 65%)
Alycia Parks
61%
Heavy main-draw favorite · SKIP
Edge +0.8pp
Ask 60¢
Ask 60¢
💎 Biggest Payout (ELITE)
No ELITE main-draw longshot today.
| # | Match | Tournament | Round | Surface | Start | ELO A | ELO B | ELO diff | Kalshi event |
|---|---|---|---|---|---|---|---|---|---|
| 1 | Hanne Vandewinkel vs Weronika Falkowska | Enka Open | Round 2 | hard | Jul 15 11:05 | 1848 | 1636 | +212 | |
| 2 | Erika Andreeva vs Mia Ristic | Generali Open Ladies Kitzbühel | Round 2 | hard | Jul 15 12:05 | 1616 | 1523 | +93 | |
| 3 | Nuno Borges vs Grigor Dimitrov | Nordea Open | Round 2 | hard | Jul 15 12:25 | 1596 | 1665 | -69 | KXATPMATCH-26JUL15BORDIM |
| 4 | Nuno Borges vs Grigor Dimitrov | Nordea Open | Round 2 | hard | Jul 15 12:25 | 1596 | 1665 | -69 | KXATPMATCH-26JUL15BORDIM |
| 5 | Anna Bondar vs Tamara Zidansek | Unicredit Iasi Open | Round 2 | hard | Jul 15 12:45 | 1588 | 1583 | +5 | KXWTAMATCH-26JUL15BONZID |
| 6 | Kristina Penickova vs Aliona Falei | Enka Open | Round 2 | hard | Jul 15 13:15 | 1610 | 1819 | -209 | |
| 7 | ? vs Lanlana Tararudee | Enka Open | Round 2 | hard | Jul 15 13:20 | — | 1814 | — | |
| 8 | Stefano Travaglia vs Mariano Navone | Nordea Open | Round 2 | hard | Jul 15 13:30 | 1604 | 1507 | +97 | KXATPSETWINNER-26JUL15TRANAV-1 |
| 9 | Yannick Hanfmann vs Valentin Vacherot | EFG Swiss Open Gstaad | Round 2 | clay | Jul 15 13:30 | 1663 | 1695 | -33 | KXATPSETWINNER-26JUL15HANVAC-2 |
| 10 | Stefano Travaglia vs Mariano Navone | Nordea Open | Round 2 | hard | Jul 15 13:30 | 1604 | 1507 | +97 | KXATPSETWINNER-26JUL15TRANAV-1 |
| 11 | Maria Lourdes Carle vs Barbora Palicova | Generali Open Ladies Kitzbühel | Round 2 | hard | Jul 15 13:30 | 1543 | 1529 | +14 | |
| 12 | Juan Carlos Prado Angelo vs Damir Dzumhur | Plava Laguna Croatia Open Umag | Round 2 | clay | Jul 15 14:00 | 1648 | 1567 | +81 | KXATPMATCH-26JUL15PRADZU |
| 13 | Tomas Martin Etcheverry vs ? | Plava Laguna Croatia Open Umag | Round 2 | clay | Jul 15 14:00 | 1656 | — | — | KXATPSETWINNER-26JUL15ETCMER-2 |
| 14 | Federico Agustin Gomez vs Matteo Arnaldi | Plava Laguna Croatia Open Umag | Round 2 | clay | Jul 15 14:00 | 1530 | 1676 | -147 | KXATPSETWINNER-26JUL15GOMARN-2 |
| 15 | Francesca Jones vs Federica Urgesi | ATV Bancomat Tennis Open | Round 2 | clay | Jul 15 14:00 | 1740 | 1691 | +49 | |
| 16 | Darya Astakhova vs Noma Noha Akugue | ATV Bancomat Tennis Open | Round 2 | clay | Jul 15 14:00 | 1754 | 1671 | +83 | |
| 17 | Daniel Altmaier vs Luciano Darderi | Nordea Open | Round 2 | hard | Jul 15 14:30 | 1516 | 1466 | +50 | KXATPSETWINNER-26JUL15ALTDAR-2 |
| 18 | Daniel Altmaier vs Luciano Darderi | Nordea Open | Round 2 | hard | Jul 15 14:30 | 1516 | 1466 | +50 | KXATPSETWINNER-26JUL15ALTDAR-2 |
| 19 | Elena Micic vs ? | Vanda Pharmaceuticals Athens Open | Round 2 | hard | Jul 15 14:30 | 1584 | — | — | |
| 20 | Clara Burel vs Elsa Jacquemot | Unicredit Iasi Open | Round 2 | hard | Jul 15 14:30 | 1508 | 1611 | -103 | KXWTAMATCH-26JUL15BURJAC |
| 21 | Jerome Kym vs Stefanos Tsitsipas | EFG Swiss Open Gstaad | Round 2 | clay | Jul 15 15:30 | 1614 | 1652 | -37 | KXATPMATCH-26JUL15KYMTSI |
| 22 | Pablo Carreno Busta vs Camilo Ugo Carabelli | Plava Laguna Croatia Open Umag | Round 2 | clay | Jul 15 15:30 | 1672 | 1698 | -26 | KXATPMATCH-26JUL15CARUGO |
| 23 | Flavio Cobolli vs Roman Andres Burruchaga | Plava Laguna Croatia Open Umag | Round 2 | clay | Jul 15 16:00 | 1754 | 1736 | +18 | KXATPSETWINNER-26JUL15COBBUR-2 |
| 24 | Marco Trungelliti vs Alejandro Davidovich Fokina | Plava Laguna Croatia Open Umag | Round 2 | clay | Jul 15 16:00 | 1684 | 1593 | +91 | KXATPMATCH-26JUL15TRUDAV |
| 25 | Elina Avanesyan vs Petra Marcinko | Unicredit Iasi Open | Round 2 | hard | Jul 15 16:00 | 1566 | 1633 | -67 | KXWTAMATCH-26JUL15AVAMAR |
| 26 | Harriet Dart vs Maria Sakkari | Vanda Pharmaceuticals Athens Open | Round 2 | hard | Jul 15 16:30 | 1740 | 1658 | +82 | KXWTAMATCH-26JUL15DARSAK |
| 27 | Luca Van Assche vs Titouan Droguet | Plava Laguna Croatia Open Umag | Round 2 | clay | Jul 15 17:30 | 1547 | 1674 | -127 | KXATPSETWINNER-26JUL15VANDRO-2 |
| 28 | Mai Hontama vs Alycia Parks | Vanda Pharmaceuticals Athens Open | Round 2 | hard | Jul 15 17:30 | 1565 | 1630 | -65 | KXWTAMATCH-26JUL15HONPAR |
| 29 | Lilli Tagger vs Sara Bejlek | Vanda Pharmaceuticals Athens Open | Round 2 | hard | Jul 15 18:00 | 1695 | 1653 | +42 | KXWTAMATCH-26JUL15TAGBEJ |
| 30 | Dino Prizmic vs Alex Molcan | Plava Laguna Croatia Open Umag | Round 2 | clay | Jul 15 19:00 | 1757 | 1733 | +24 | KXATPSETWINNER-26JUL15PRIMOL-1 |
| # | Match | Our pick | Our P | Mkt P | Ask | Edge | Tier | Decision | Vol 24h | Surface | Round | EV/$ |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Nuno Borges vs Grigor Dimitrov | Grigor Dimitrov | 49.4% | 5.0% | 5¢ | +44.4pp | LOW | PAPER | 258887 | hard | Round 2 | +0.444 |
| 2 | Mariano Navone vs Stefano Travaglia | Stefano Travaglia | 37.9% | 17.0% | 17¢ | +20.9pp | LOW | PAPER | 23073 | hard | Round Of 16 | +0.209 |
| 3 | Qinwen Zheng vs Elena Micic | Elena Micic | 27.9% | 7.0% | 7¢ | +20.9pp | LOW | PAPER | 61389 | hard | Round Of 16 | +0.209 |
| 4 | Barbora Krejcikova vs Carole Monnet | Carole Monnet | 31.0% | 11.0% | 11¢ | +20.0pp | LOW | PAPER | 1470 | hard | Round 2 | +0.200 |
| 5 | Maria Sakkari vs Harriet Dart | Harriet Dart | 41.1% | 22.0% | 22¢ | +19.1pp | LOW | PAPER | 7736 | hard | Round 2 | +0.191 |
| 6 | Paula Badosa vs Alevtina Ibragimova | Alevtina Ibragimova | 34.0% | 15.0% | 15¢ | +19.0pp | LOW | PAPER | 1765 | hard | Round 2 | +0.190 |
| 7 | Clara Burel vs Elsa Jacquemot | Elsa Jacquemot | 57.4% | 40.0% | 40¢ | +17.4pp | LOW | PAPER | 4076 | hard | Round 2 | +0.174 |
| 8 | Casper Ruud vs Jaime Faria | Jaime Faria | 35.5% | 19.0% | 19¢ | +16.5pp | LOW | PAPER | 400 | clay | Round 2 | +0.165 |
| 9 | Valentin Vacherot vs Yannick Hanfmann | Valentin Vacherot | 52.9% | 38.0% | 38¢ | +14.9pp | LOW | PAPER | 63685 | hard | Round Of 16 | +0.149 |
| 10 | Nikoloz Basilashvili vs Thiago Agustin Tirante | Nikoloz Basilashvili | 45.6% | 33.0% | 33¢ | +12.6pp | LOW | PAPER | 1435 | hard | Round 2 | +0.125 |
| 11 | Dino Prizmic vs Alex Molcan | Alex Molcan | 41.8% | 30.0% | 30¢ | +11.8pp | LOW | PAPER | 5942 | hard | Round Of 16 | +0.118 |
| 12 | Petra Marcinko vs Elina Avanesyan | Elina Avanesyan | 49.5% | 38.0% | 38¢ | +11.5pp | LOW | PAPER | 49922 | hard | Round 2 | +0.115 |
| 13 | Juan Carlos Prado Angelo vs Damir Dzumhur | Juan Carlos Prado Angelo | 46.0% | 35.0% | 35¢ | +11.0pp | LOW | PAPER | 2039 | clay | Round 2 | +0.110 |
| 14 | Alejandro Davidovich Fokina vs Marco Trungelliti | Marco Trungelliti | 36.0% | 26.0% | 26¢ | +10.0pp | LOW | PAPER | 8367 | clay | Round 2 | +0.100 |
| 15 | Sebastian Baez vs Jesper De Jong | Sebastian Baez | 55.5% | 46.0% | 46¢ | +9.5pp | LOW | PAPER | 94 | hard | Round 2 | +0.095 |
| 16 | Stefanos Tsitsipas vs Jerome Kym | Jerome Kym | 35.8% | 27.0% | 27¢ | +8.8pp | LOW | PAPER | 23625 | clay | Round 2 | +0.088 |
| 17 | Dominic Stricker vs Aleksandr Shevchenko | Aleksandr Shevchenko | 58.5% | 50.0% | 50¢ | +8.5pp | LOW | PAPER | 20 | clay | Round 2 | +0.085 |
| 18 | Alexander Bublik vs Quentin Halys | Quentin Halys | 38.1% | 30.0% | 30¢ | +8.1pp | LOW | PAPER | 3331 | hard | Round Of 16 | +0.081 |
| 19 | Pablo Carreno Busta vs Camilo Ugo Carabelli | Camilo Ugo Carabelli | 47.9% | 40.0% | 40¢ | +8.0pp | LOW | PAPER | 7595 | clay | Round 2 | +0.079 |
| 20 | Anna Bondar vs Tamara Zidansek | Tamara Zidansek | 48.6% | 41.0% | 41¢ | +7.6pp | LOW | PAPER | 49140 | hard | Round 2 | +0.076 |
| 21 | Alejandro Tabilo vs Lautaro Midon | Lautaro Midon | 31.7% | 25.0% | 25¢ | +6.7pp | LOW | PAPER | 1411 | hard | Round 2 | +0.067 |
| 22 | Luca Van Assche vs Titouan Droguet | Luca Van Assche | 51.6% | 45.0% | 45¢ | +6.6pp | LOW | PAPER | 15353 | hard | Round Of 16 | +0.066 |
| 23 | Tomas Martin Etcheverry vs Daniel Merida | Daniel Merida | 45.3% | 39.0% | 39¢ | +6.3pp | LOW | PAPER | 8319 | hard | Round Of 16 | +0.063 |
| 24 | Matteo Arnaldi vs Federico Agustin Gomez | Federico Agustin Gomez | 29.5% | 24.0% | 24¢ | +5.5pp | LOW | PAPER | 5381 | hard | Round Of 16 | +0.055 |
| 25 | Arthur Rinderknech vs Clement Tabur | Clement Tabur | 38.6% | 34.0% | 34¢ | +4.6pp | LOW | PAPER | 401366 | hard | Round Of 16 | +0.046 |
| 26 | Luciano Darderi vs Daniel Altmaier | Daniel Altmaier | 42.5% | 38.0% | 38¢ | +4.5pp | LOW | PAPER | 21955 | hard | Round Of 16 | +0.045 |
| 27 | Juan Manuel Cerundolo vs Miomir Kecmanovic | Miomir Kecmanovic | 52.3% | 49.0% | 49¢ | +3.3pp | LOW | PAPER | 9304 | hard | Round Of 16 | +0.033 |
| 28 | Andrey Rublev vs Andrea Pellegrino | Andrea Pellegrino | 30.1% | 28.0% | 28¢ | +2.1pp | LOW | PAPER | 5859 | hard | Round Of 16 | +0.021 |
| 29 | Alycia Parks vs Mai Hontama | Alycia Parks | 60.8% | 60.0% | 60¢ | +0.8pp | LOW | SKIP | 7622 | hard | Round 2 | +0.008 |
| 30 | Sara Bejlek vs Lilli Tagger | Lilli Tagger | 45.3% | 46.0% | 46¢ | -0.7pp | LOW | SKIP | 8430 | hard | Round 2 | -0.007 |
| 31 | Katarzyna Kawa vs Panna Udvardy | Panna Udvardy | 53.4% | 54.0% | 54¢ | -0.6pp | LOW | SKIP | 0 | hard | Round 2 | -0.006 |
| 32 | Oleksandra Oliynykova vs Elena Pridankina | Elena Pridankina | 46.2% | 46.0% | 46¢ | +0.2pp | LOW | SKIP | 548 | hard | Round 2 | +0.002 |
| 33 | Flavio Cobolli vs Roman Andres Burruchaga | Roman Andres Burruchaga | 30.9% | 31.0% | 31¢ | -0.1pp | LOW | SKIP | 13297 | hard | Round Of 16 | -0.001 |
| # | Player | Stat | PP line | Our proj | Edge % | Side | Tier | Opp | Surface | Demon | Payout |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Carole Monnet | Break Points Won | 1.5 | 5.18 | +245.6% | MORE | LOW | Barbora Krejcikova | clay | — | 1.0x |
| 2 | Alex Molcan⏳ RTRN | Aces | 2.5 | 6.43 | +157.3% | MORE | LOW | Dino Prizmic | clay | — | 0.5x |
| 3 | Alexander Bublik🧊 COLD | Break Points Won | 1.5 | 3.40 | +126.9% | MORE | LOW | Quentin Halys | clay | — | 1.0x |
| 4 | Dino Prizmic🔥 HOT | Aces | 3.5 | 6.75 | +92.7% | MORE | LOW | Alex Molcan | clay | — | 0.5x |
| 5 | Flavio Cobolli🟨 WARM | Aces | 3.5 | 6.42 | +83.5% | MORE | LOW | Roman Andres Burruchaga | clay | — | 0.5x |
| 6 | Carole Monnet | Total Games Won | 5.5 | 9.18 | +66.9% | MORE | LOW | Barbora Krejcikova | clay | — | 0.5x |
| 7 | Alexandra Shubladze🟨 WARM | Break Points Won | 3.5 | 5.43 | +55.1% | MORE | LOW | Anastasia Zakharova | clay | — | 1.0x |
| 8 | Miriana Tona⏳ RTRN | Total Games Won | 5.5 | 8.51 | +54.7% | MORE | LOW | Clara Tauson | clay | — | 0.5x |
| 9 | Elena Micic | Total Games Won | 5.5 | 8.47 | +54.0% | MORE | LOW | Qinwen Zheng | clay | — | 0.5x |
| 10 | Thiago Agustin Tirante🟨 WARM | Break Points Won | 2.5 | 3.54 | +41.6% | MORE | LOW | Nikoloz Basilashvili | clay | — | 1.0x |
| 11 | Clara Tauson⏳ RTRN | Total Games | 17.5 | 24.50 | +40.0% | MORE | LOW | Miriana Tona | clay | — | 0.5x |
| 12 | Luciano Darderi🟨 WARM | Aces | 4.5 | 6.21 | +38.1% | MORE | LOW | Daniel Altmaier | clay | — | 0.5x |
| 13 | Barbora Krejcikova⏳ RTRN | Total Games | 17.5 | 24.08 | +37.6% | MORE | LOW | Carole Monnet | clay | — | 0.5x |
| 14 | Qinwen Zheng | Total Games | 17.5 | 23.89 | +36.5% | MORE | LOW | Elena Micic | clay | — | 0.5x |
| 15 | Roman Andres Burruchaga🟨 WARM | Break Points Won | 2.5 | 3.40 | +36.1% | MORE | LOW | Flavio Cobolli | clay | — | 1.0x |
| 16 | Valentin Vacherot🟨 WARM | Aces | 9.5 | 6.40 | +32.6% | LESS | LOW | Yannick Hanfmann | clay | — | 1.0x |
| 17 | Aliaksandra Sasnovich | Break Points Won | 3.5 | 4.58 | +30.9% | MORE | LOW | Tereza Valentova | clay | — | 1.0x |
| 18 | Damir Dzumhur | Break Points Won | 4.5 | 3.29 | +26.9% | LESS | LOW | Juan Carlos Prado Angelo | clay | — | 1.0x |
| 19 | Alina Korneeva🧊 COLD | Total Games Won | 12.5 | 9.36 | +25.1% | LESS | LOW | Ann Li | clay | — | 0.5x |
| 20 | Yannick Hanfmann🟨 WARM | Aces | 8.5 | 6.42 | +24.4% | LESS | LOW | Valentin Vacherot | clay | — | 1.0x |
| 21 | Mariano Navone🟨 WARM | Total Games | 20.0 | 24.68 | +23.4% | MORE | LOW | Stefano Travaglia | clay | — | 0.5x |
| 22 | Miomir Kecmanovic🧊 COLD | Total Games Won | 12.5 | 9.75 | +22.0% | LESS | LOW | Juan Manuel Cerundolo | clay | — | 0.5x |
| 23 | Sinja Kraus🟨 WARM | Total Games | 19.5 | 23.66 | +21.3% | MORE | LOW | Eva Bennemann | clay | — | 1.0x |
| 24 | Jerome Kym⏳ RTRN | Total Games Won | 11.5 | 9.23 | +19.8% | LESS | LOW | Stefanos Tsitsipas | clay | — | 0.5x |
| 25 | Maria Sakkari🧊 COLD | Total Games | 19.5 | 23.36 | +19.8% | MORE | LOW | Harriet Dart | clay | — | 0.5x |
| 26 | Arantxa Rus🧊 COLD | Total Games Won | 11.5 | 9.23 | +19.7% | LESS | LOW | Marina Bassols Ribera | clay | — | 0.5x |
| 27 | Harriet Dart🟨 WARM | Total Games Won | 7.5 | 8.96 | +19.4% | MORE | LOW | Maria Sakkari | clay | — | 0.5x |
| 28 | Marina Bassols Ribera🟨 WARM | Total Games | 20.5 | 24.41 | +19.1% | MORE | LOW | Arantxa Rus | clay | — | 1.0x |
| 29 | Gina Feistel🟨 WARM | Total Games Won | 11.5 | 9.31 | +19.1% | LESS | LOW | Laura Samson | clay | — | 0.5x |
| 30 | Eva Bennemann🧊 COLD | Break Points Won | 3.5 | 4.16 | +18.9% | MORE | LOW | Sinja Kraus | clay | — | 1.0x |
| 31 | Francesca Jones | Total Games | 20.5 | 24.30 | +18.6% | MORE | LOW | Federica Urgesi | clay | — | 0.5x |
| 32 | Valentin Vacherot🟨 WARM | Total Games Won | 12.5 | 10.20 | +18.4% | LESS | LOW | Yannick Hanfmann | clay | — | 0.5x |
| 33 | Alejandro Tabilo🟨 WARM | Total Games | 21.5 | 25.23 | +17.4% | MORE | LOW | Lautaro Midon | clay | — | 0.5x |
| 34 | Dino Prizmic🔥 HOT | Total Games | 21.5 | 25.20 | +17.2% | MORE | LOW | Alex Molcan | clay | — | 0.5x |
| 35 | Jesper De Jong | Total Games Won | 12.5 | 10.37 | +17.1% | LESS | LOW | Sebastian Baez | clay | — | 0.5x |
| 36 | Andrey Rublev🟨 WARM | Total Games | 21.5 | 25.12 | +16.8% | MORE | LOW | Andrea Pellegrino | clay | — | 0.5x |
| 37 | Julia Riera🟨 WARM | Total Games | 19.5 | 22.73 | +16.6% | MORE | LOW | Danka Kovinic | clay | — | 1.0x |
| 38 | Damir Dzumhur | Total Games | 21.5 | 25.05 | +16.5% | MORE | LOW | Juan Carlos Prado Angelo | clay | — | 0.5x |
| 39 | Jeline Vandromme🟨 WARM | Total Games | 20.5 | 23.77 | +16.0% | MORE | LOW | Polona Hercog | clay | — | 1.0x |
| 40 | Casper Ruud🟨 WARM | Total Games | 21.5 | 24.86 | +15.6% | MORE | LOW | Jaime Faria | clay | — | 0.5x |
| 41 | Laura Samson🟨 WARM | Total Games | 20.5 | 23.58 | +15.0% | MORE | LOW | Gina Feistel | clay | — | 1.0x |
| 42 | Nikoloz Basilashvili | Total Games Won | 11.5 | 9.78 | +14.9% | LESS | LOW | Thiago Agustin Tirante | clay | — | 0.5x |
| 43 | Stefanos Tsitsipas | Aces | 7.5 | 6.39 | +14.8% | LESS | LOW | Jerome Kym | clay | — | 1.0x |
| 44 | Pablo Carreno Busta🟨 WARM | Total Games Won | 12.5 | 10.68 | +14.5% | LESS | LOW | Camilo Ugo Carabelli | clay | — | 0.5x |
| 45 | Flavio Cobolli🟨 WARM | Total Games | 22.0 | 25.19 | +14.5% | MORE | LOW | Roman Andres Burruchaga | clay | — | 0.5x |
| 46 | Matteo Arnaldi🟨 WARM | Total Games | 21.5 | 24.59 | +14.4% | MORE | LOW | Federico Agustin Gomez | clay | — | 0.5x |
| 47 | Alejandro Davidovich Fokina | Total Games | 22.0 | 25.12 | +14.2% | MORE | LOW | Marco Trungelliti | clay | — | 0.5x |
| 48 | Jerome Kym⏳ RTRN | Aces | 7.5 | 6.44 | +14.1% | LESS | LOW | Stefanos Tsitsipas | clay | — | 1.0x |
| 49 | Juan Manuel Cerundolo🟨 WARM | Total Games Won | 12.5 | 10.74 | +14.1% | LESS | LOW | Miomir Kecmanovic | clay | — | 0.5x |
| 50 | Teodora Kostovic | Total Games | 20.5 | 23.33 | +13.8% | MORE | LOW | Lucia Bronzetti | clay | — | 1.0x |
| 51 | Federico Agustin Gomez🧊 COLD | Total Games Won | 9.5 | 8.19 | +13.8% | LESS | LOW | Matteo Arnaldi | clay | — | 0.5x |
| 52 | Panna Udvardy🟨 WARM | Total Games | 21.5 | 24.46 | +13.8% | MORE | LOW | Katarzyna Kawa | clay | — | 0.5x |
| 53 | Eva Vedder🟨 WARM | Total Games | 21.5 | 24.46 | +13.8% | MORE | LOW | Nuria Brancaccio | clay | — | 1.0x |
| 54 | Clara Burel🧊 COLD | Total Games | 21.5 | 24.44 | +13.7% | MORE | LOW | Elsa Jacquemot | clay | — | 0.5x |
| 55 | Vera Zvonareva⏳ RTRN | Total Games | 21.5 | 24.42 | +13.6% | MORE | LOW | Viktoria Hruncakova | clay | — | 0.5x |
| 56 | Vendula Valdmannova🟨 WARM | Total Games | 21.5 | 24.38 | +13.4% | MORE | LOW | Xinyu Gao | clay | — | 1.0x |
| 57 | Sara Bejlek⏳ RTRN | Total Games | 21.5 | 24.37 | +13.4% | MORE | LOW | Lilli Tagger | clay | — | 0.5x |
| 58 | Noma Noha Akugue🟨 WARM | Total Games | 21.5 | 24.34 | +13.2% | MORE | LOW | Darya Astakhova | clay | — | 1.0x |
| 59 | Damir Dzumhur | Total Games Won | 12.5 | 10.86 | +13.1% | LESS | LOW | Juan Carlos Prado Angelo | clay | — | 0.5x |
| 60 | Alycia Parks🟨 WARM | Total Games | 21.5 | 24.30 | +13.0% | MORE | LOW | Mai Hontama | clay | — | 0.5x |
| 61 | Martina Trevisan🟨 WARM | Total Games | 21.5 | 24.30 | +13.0% | MORE | LOW | Aurora Zantedeschi | clay | — | 1.0x |
| 62 | Sebastian Baez | Total Games | 22.5 | 25.30 | +12.4% | MORE | LOW | Jesper De Jong | clay | — | 0.5x |
| 63 | Titouan Droguet🟨 WARM | Total Games Won | 12.5 | 10.96 | +12.3% | LESS | LOW | Luca Van Assche | clay | — | 0.5x |
| 64 | Pablo Carreno Busta🟨 WARM | Total Games | 22.5 | 25.21 | +12.0% | MORE | LOW | Camilo Ugo Carabelli | clay | — | 0.5x |
| 65 | Roman Andres Burruchaga🟨 WARM | Total Games Won | 10.5 | 9.24 | +12.0% | LESS | LOW | Flavio Cobolli | clay | — | 0.5x |
| 66 | Marco Trungelliti | Total Games Won | 10.5 | 9.24 | +12.0% | LESS | LOW | Alejandro Davidovich Fokina | clay | — | 0.5x |
| 67 | Juan Carlos Prado Angelo⏳ RTRN | Total Games Won | 11.5 | 10.14 | +11.8% | LESS | LOW | Damir Dzumhur | clay | — | 0.5x |
| 68 | Petra Marcinko | Total Games | 21.5 | 24.02 | +11.7% | MORE | LOW | Elina Avanesyan | clay | — | 0.5x |
| 69 | Thiago Agustin Tirante🟨 WARM | Total Games | 22.5 | 25.12 | +11.6% | MORE | LOW | Nikoloz Basilashvili | clay | — | 0.5x |
| 70 | Titouan Droguet🟨 WARM | Total Games | 22.5 | 24.90 | +10.7% | MORE | LOW | Luca Van Assche | clay | — | 0.5x |
| 71 | Thiago Agustin Tirante🟨 WARM | Total Games Won | 12.5 | 11.22 | +10.3% | LESS | LOW | Nikoloz Basilashvili | clay | — | 1.0x |
| 72 | Elina Avanesyan🟨 WARM | Total Games Won | 11.5 | 10.33 | +10.2% | LESS | LOW | Petra Marcinko | clay | — | 0.5x |
| 73 | Stefanos Tsitsipas | Total Games | 23.0 | 25.05 | +8.9% | MORE | LOW | Jerome Kym | clay | — | 0.5x |
| 74 | Miomir Kecmanovic🧊 COLD | Total Games | 22.5 | 24.39 | +8.4% | MORE | LOW | Juan Manuel Cerundolo | clay | — | 0.5x |
| 75 | Danka Kovinic⏳ RTRN | Total Games Won | 8.5 | 9.15 | +7.6% | MORE | LOW | Julia Riera | clay | — | 0.5x |
| 76 | Yannick Hanfmann🟨 WARM | Total Games | 23.5 | 25.19 | +7.2% | MORE | LOW | Valentin Vacherot | clay | — | 0.5x |
| 77 | Alexander Bublik🧊 COLD | Total Games | 23.5 | 25.15 | +7.0% | MORE | LOW | Quentin Halys | clay | — | 0.5x |
| 78 | Dino Prizmic🔥 HOT | Total Games Won | 12.5 | 11.64 | +6.9% | LESS | LOW | Alex Molcan | clay | — | 0.5x |
| 79 | Lautaro Midon⏳ RTRN | Total Games Won | 9.5 | 8.89 | +6.4% | LESS | LOW | Alejandro Tabilo | clay | — | 0.5x |
| 80 | Alejandro Davidovich Fokina | Total Games Won | 12.5 | 11.76 | +5.9% | LESS | LOW | Marco Trungelliti | clay | — | 1.0x |
| 81 | Flavio Cobolli🟨 WARM | Total Games Won | 12.5 | 11.76 | +5.9% | LESS | LOW | Roman Andres Burruchaga | clay | — | 0.5x |
| 82 | Alina Korneeva🧊 COLD | Total Games | 22.5 | 23.81 | +5.8% | MORE | LOW | Ann Li | clay | — | 0.5x |
| 83 | Alex Molcan⏳ RTRN | Total Games Won | 10.5 | 9.92 | +5.5% | LESS | LOW | Dino Prizmic | clay | — | 0.5x |
| 84 | Federica Urgesi⏳ RTRN | Total Games Won | 9.5 | 10.01 | +5.3% | MORE | LOW | Francesca Jones | clay | — | 0.5x |
| 85 | Daniel Altmaier | Aces | 6.5 | 6.16 | +5.3% | LESS | LOW | Luciano Darderi | clay | — | 0.5x |
| 86 | Nuria Brancaccio🧊 COLD | Break Points Won | 4.5 | 4.73 | +5.1% | MORE | LOW | Eva Vedder | clay | — | 1.0x |
| 87 | Alycia Parks🟨 WARM | Break Points Won | 4.5 | 4.71 | +4.6% | MORE | LOW | Mai Hontama | clay | — | 1.0x |
| 88 | Sinja Kraus🟨 WARM | Break Points Won | 5.5 | 5.27 | +4.2% | LESS | LOW | Eva Bennemann | clay | — | 1.0x |
| 89 | Eva Bennemann🧊 COLD | Total Games Won | 8.5 | 8.17 | +3.9% | LESS | LOW | Sinja Kraus | clay | — | 0.5x |
| 90 | Aliaksandra Sasnovich | Total Games Won | 10.5 | 10.09 | +3.9% | LESS | LOW | Tereza Valentova | clay | — | 0.5x |
| 91 | Anastasia Zakharova🧊 COLD | Total Games | 21.5 | 22.30 | +3.7% | MORE | LOW | Alexandra Shubladze | clay | — | 0.5x |
| 92 | Martina Trevisan🟨 WARM | Break Points Won | 4.5 | 4.65 | +3.3% | MORE | LOW | Aurora Zantedeschi | clay | — | 1.0x |
| 93 | Jaime Faria🟨 WARM | Total Games Won | 9.5 | 9.19 | +3.2% | LESS | LOW | Casper Ruud | clay | — | 0.5x |
| 94 | Alejandro Tabilo🟨 WARM | Total Games Won | 12.5 | 12.11 | +3.1% | LESS | LOW | Lautaro Midon | clay | — | 1.0x |
| 95 | Sebastian Baez | Break Points Won | 3.5 | 3.40 | +2.8% | LESS | LOW | Jesper De Jong | clay | — | 1.0x |
| 96 | Elina Avanesyan🟨 WARM | Break Points Won | 4.5 | 4.62 | +2.6% | MORE | LOW | Petra Marcinko | clay | — | 1.0x |
| 97 | Julia Riera🟨 WARM | Break Points Won | 5.5 | 5.39 | +2.1% | LESS | LOW | Danka Kovinic | clay | — | 1.0x |
| 98 | Andrea Pellegrino | Total Games Won | 9.5 | 9.31 | +2.0% | LESS | LOW | Andrey Rublev | clay | — | 0.5x |
| 99 | Andrea Pellegrino | Total Games Won | 9.5 | 9.31 | +2.0% | LESS | LOW | Andrey Rublev | clay | — | 0.5x |
| 100 | Elena Pridankina🟨 WARM | Break Points Won | 4.5 | 4.57 | +1.6% | MORE | LOW | Oleksandra Oliynykova | clay | — | 1.0x |
| 101 | Jesper De Jong | Break Points Won | 3.5 | 3.46 | +1.0% | LESS | LOW | Sebastian Baez | clay | — | 1.0x |
| 102 | Matteo Arnaldi🟨 WARM | Total Games Won | 12.5 | 12.38 | +1.0% | LESS | LOW | Federico Agustin Gomez | clay | — | 1.0x |
Kalshi tennis — 0 picks · $0.00 staked
Day 1 - paper only, grade EOD before scaling · locked 2026-07-15T13:14:32.192466+00:00
| # | Match | Pick | Our P | Ask | Edge | Tier | Surface | Stake | Status | P&L |
|---|
PrizePicks tennis — 0 picks · $0.00 staked
Day 1 - paper only, grade EOD before scaling · locked 2026-07-15T13:14:32.080356+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-07-15T06:14:50 · flagged threshold = ±3.0pp · 4 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 |
|---|---|---|---|---|
| Daniil Medvedev · exact | 5.5% | 1.6% | -3.9pp · SHARP HIGHER | US 2% |
| Jack Draper · exact | 4.0% | 0.3% | -3.7pp · SHARP HIGHER | US 0% |
| Taylor Fritz · exact | 5.5% | 1.9% | -3.6pp · SHARP HIGHER | US 2% |
| Novak Djokovic · exact | 7.5% | 4.3% | -3.2pp · SHARP HIGHER | US 4% |
| Lorenzo Musetti · exact | 3.0% | 0.3% | -2.7pp · SHARP HIGHER | US 0% |
| Alexander Bublik · exact | 2.0% | 0.5% | -1.5pp · SHARP HIGHER | US 1% |
| Frances Tiafoe · exact | 1.5% | 0.6% | -0.9pp · SHARP HIGHER | US 1% |
| Ben Shelton · exact | 1.5% | 1.6% | +0.1pp · PUBLIC HIGHER | US 2% |
| Karen Khachanov · no-match | 1.0% | — | no Poly match | — |
| Felix Auger-Aliassime · no-match | 17.5% | — | no Poly match | — |
| Casper Ruud · no-match | 1.0% | — | no Poly match | — |
| Alex de Minaur · no-match | 8.0% | — | no Poly match | — |
Per-match overlaps
No active per-match overlaps right now (Polymarket tennis volume concentrates in Grand Slam futures).
Per-stat-type MAE (n_graded=18)
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=13
Ours
PP
Us 5.11
PP 4.96
NULL
PP 4.96
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=2
Ours
PP
Us 6.75
PP 9.00
INSUFFICIENT_N
PP 9.00
INSUFFICIENT_N
No AAR available yet.
Expected:
Expected:
~/.claude/projects/.../memory/aar_tennis_<date>.mdNo actionable PP line movement yet.
Expected:
Expected:
pp_line_movement_tennis_2026-07-15.csv. Needs at least 2 PP snapshots in pp_snapshots_tennis/.ATP top 50
| Rk | Player | Country | Pts | ELO overall | ELO clay | ELO grass | ELO hard |
|---|---|---|---|---|---|---|---|
| 1 | Jannik Sinner | ITA | 13500 | 2167 | 1879 | 1695 | 2062 |
| 2 | Carlos Alcaraz | ESP | 9960 | 2070 | 1867 | 1717 | 1956 |
| 3 | Alexander Zverev | GER | 7305 | 1994 | 1865 | 1594 | 1863 |
| 4 | Felix Auger Aliassime | CAN | 4440 | 1854 | 1642 | 1517 | 1803 |
| 5 | Ben Shelton | USA | 3920 | 1816 | 1665 | 1561 | 1765 |
| 6 | Alex De Minaur | AUS | 3905 | 1851 | 1677 | 1590 | 1806 |
| 7 | Novak Djokovic | SRB | 3760 | 1929 | 1729 | 1636 | 1846 |
| 8 | Daniil Medvedev | RUS | 3760 | 1884 | 1659 | 1585 | 1845 |
| 9 | Taylor Fritz | USA | 3720 | 1793 | 1551 | 1722 | 1749 |
| 10 | Flavio Cobolli | ITA | 3540 | 1833 | 1754 | 1557 | 1655 |
| 11 | Alexander Bublik | KAZ | 2930 | 1785 | 1681 | 1569 | 1703 |
| 12 | Jiri Lehecka | CZE | 2575 | 1814 | 1632 | 1574 | 1754 |
| 13 | Andrey Rublev | RUS | 2460 | 1804 | 1705 | 1516 | 1683 |
| 14 | Casper Ruud | NOR | 2425 | 1866 | 1805 | 1502 | 1685 |
| 15 | Karen Khachanov | RUS | 2320 | 1723 | 1622 | 1567 | 1639 |
| 16 | Lorenzo Musetti | ITA | 2315 | 1832 | 1764 | 1607 | 1723 |
| 17 | Jakub Mensik | CZE | 2300 | 1825 | 1661 | 1497 | 1747 |
| 18 | Luciano Darderi | ITA | 2300 | 1772 | 1790 | 1466 | 1466 |
| 19 | Learner Tien | USA | 2270 | 1847 | 1622 | 1506 | 1789 |
| 20 | Valentin Vacherot | MON | 2145 | 1800 | 1695 | 1467 | 1738 |
| 21 | Arthur Fils | FRA | 1940 | 1892 | 1746 | 1546 | 1771 |
| 22 | Alejandro Davidovich Fokina | ESP | 1860 | 1749 | 1593 | 1545 | 1703 |
| 23 | Rafael Jodar | ESP | 1849 | 1893 | 1755 | — | 1765 |
| 24 | Arthur Rinderknech | FRA | 1776 | 1713 | 1576 | 1530 | 1631 |
| 25 | Joao Fonseca | BRA | 1735 | 1837 | 1673 | 1495 | 1795 |
| 26 | Frances Tiafoe | USA | 1705 | 1775 | 1640 | 1488 | 1719 |
| 27 | Francisco Cerundolo | ARG | 1660 | 1790 | 1700 | 1426 | 1698 |
| 28 | Tommy Paul | USA | 1645 | 1851 | 1758 | 1587 | 1743 |
| 29 | Cameron Norrie | GBR | 1595 | 1738 | 1631 | 1529 | 1682 |
| 30 | Tomas Martin Etcheverry | ARG | 1510 | 1751 | 1656 | 1456 | 1636 |
| 31 | Alejandro Tabilo | CHI | 1428 | 1798 | 1705 | 1575 | 1637 |
| 32 | Brandon Nakashima | USA | 1385 | 1713 | 1582 | 1590 | 1660 |
| 33 | Ugo Humbert | FRA | 1370 | 1715 | 1498 | 1517 | 1697 |
| 34 | Matteo Arnaldi | ITA | 1336 | 1719 | 1676 | 1455 | 1558 |
| 35 | Ignacio Buse | PER | 1316 | 1773 | 1732 | 1482 | 1562 |
| 36 | Corentin Moutet | FRA | 1283 | 1673 | 1567 | 1574 | 1640 |
| 37 | Alexander Blockx | BEL | 1280 | 1820 | 1688 | 1508 | 1713 |
| 38 | Alex Michelsen | USA | 1205 | 1727 | 1522 | 1538 | 1702 |
| 39 | Mariano Navone | ARG | 1165 | 1767 | 1722 | 1460 | 1507 |
| 40 | Zizou Bergs | BEL | 1150 | 1681 | 1547 | 1521 | 1631 |
| 41 | Tallon Griekspoor | NED | 1150 | 1680 | 1576 | 1564 | 1645 |
| 42 | Denis Shapovalov | CAN | 1130 | 1668 | 1483 | 1472 | 1698 |
| 43 | Tomas Machac | CZE | 1120 | 1745 | 1602 | 1500 | 1682 |
| 44 | Jaume Munar | ESP | 1105 | 1695 | 1589 | 1508 | 1635 |
| 45 | Juan Manuel Cerundolo | ARG | 1055 | 1756 | 1753 | 1469 | 1532 |
| 46 | Adrian Mannarino | FRA | 1031 | 1565 | 1369 | 1584 | 1569 |
| 47 | Marin Cilic | CRO | 994 | 1684 | 1513 | 1611 | 1635 |
| 48 | Matteo Berrettini | ITA | 985 | 1749 | 1689 | 1524 | 1694 |
| 49 | Miomir Kecmanovic | SRB | 980 | 1688 | 1584 | 1500 | 1595 |
| 50 | Nuno Borges | POR | 970 | 1656 | 1596 | 1493 | 1596 |
WTA top 50
| Rk | Player | Country | Pts | ELO overall | ELO clay | ELO grass | ELO hard |
|---|---|---|---|---|---|---|---|
| 1 | Aryna Sabalenka | BLR | 9090 | 2089 | 1801 | 1588 | 2045 |
| 2 | Elena Rybakina | KAZ | 8143 | 2040 | 1766 | 1580 | 1972 |
| 3 | Iga Swiatek | POL | 6733 | 1957 | 1809 | 1658 | 1852 |
| 4 | Jessica Pegula | USA | 6056 | 1979 | 1701 | 1583 | 1901 |
| 5 | Amanda Anisimova | USA | 5848 | 1906 | 1580 | 1638 | 1822 |
| 6 | Mirra Andreeva | RUS | 5751 | 1995 | 1867 | 1513 | 1797 |
| 7 | Coco Gauff | USA | 4879 | 1980 | 1824 | 1519 | 1871 |
| 8 | Elina Svitolina | UKR | 4315 | 1996 | 1824 | 1550 | 1824 |
| 9 | Victoria Mboko | CAN | 3670 | 1937 | 1726 | 1515 | 1891 |
| 10 | Karolina Muchova | CZE | 3438 | 1927 | 1602 | 1494 | 1869 |
| 11 | Belinda Bencic | SUI | 3385 | 1904 | 1636 | 1561 | 1831 |
| 12 | Marta Kostyuk | UKR | 3157 | 1959 | 1801 | 1449 | 1755 |
| 13 | Linda Noskova | CZE | 3054 | 1869 | 1599 | 1583 | 1763 |
| 14 | Jasmine Paolini | ITA | 2617 | 1809 | 1701 | 1585 | 1741 |
| 15 | Naomi Osaka | JPN | 2571 | 1855 | 1688 | 1514 | 1734 |
| 16 | Diana Shnaider | RUS | 2506 | 1841 | 1701 | 1565 | 1686 |
| 17 | Ekaterina Alexandrova | RUS | 2449 | 1711 | 1556 | 1584 | 1662 |
| 18 | Sorana Cirstea | ROU | 2415 | 1919 | 1714 | 1429 | 1797 |
| 19 | Iva Jovic | USA | 2366 | 1833 | 1667 | 1601 | 1759 |
| 20 | Anna Kalinskaya | RUS | 2212 | 1834 | 1631 | 1546 | 1721 |
| 21 | Maja Chwalinska | POL | 1996 | 1860 | 1795 | 1483 | 1693 |
| 22 | Elise Mertens | BEL | 1918 | 1811 | 1619 | 1581 | 1714 |
| 23 | Leylah Fernandez | CAN | 1844 | 1760 | 1569 | 1546 | 1679 |
| 24 | Clara Tauson | DEN | 1800 | 1719 | 1527 | 1520 | 1679 |
| 25 | Emma Navarro | USA | 1779 | 1759 | 1653 | 1590 | 1613 |
| 26 | Madison Keys | USA | 1772 | 1864 | 1732 | 1558 | 1766 |
| 27 | Anastasia Potapova | RUS | 1640 | 1855 | 1743 | 1484 | 1640 |
| 28 | Marie Bouzkova | CZE | 1631 | 1787 | 1702 | 1476 | 1648 |
| 29 | Ann Li | USA | 1601 | 1759 | 1646 | 1478 | 1647 |
| 30 | Hailey Baptiste | USA | 1513 | 1790 | 1667 | 1488 | 1667 |
| 31 | Xin Yu Wang | CHN | 1431 | 1719 | 1537 | 1591 | 1616 |
| 32 | Katerina Siniakova | CZE | 1422 | 1771 | 1559 | 1578 | 1693 |
| 33 | Alexandra Eala | PHI | 1416 | 1837 | 1495 | 1665 | 1748 |
| 34 | Cristina Bucsa | ESP | 1406 | 1705 | 1443 | 1514 | 1684 |
| 35 | Liudmila Samsonova | RUS | 1405 | 1680 | 1593 | 1619 | 1566 |
| 36 | Jelena Ostapenko | LAT | 1404 | 1762 | 1660 | 1534 | 1621 |
| 37 | Maria Sakkari | GRE | 1328 | 1729 | 1589 | 1486 | 1658 |
| 38 | Jaqueline Cristian | ROU | 1294 | 1767 | 1631 | 1432 | 1698 |
| 39 | Mccartney Kessler | USA | 1289 | 1751 | 1547 | 1583 | 1688 |
| 40 | Janice Tjen | INA | 1267 | 1780 | 1634 | 1503 | 1785 |
| 41 | Elisabetta Cocciaretto | ITA | 1260 | 1800 | 1586 | 1577 | 1689 |
| 42 | Emma Raducanu | GBR | 1241 | 1727 | 1548 | 1577 | 1658 |
| 43 | Magdalena Frech | POL | 1238 | 1655 | 1530 | 1434 | 1613 |
| 44 | Laura Siegemund | GER | 1230 | 1691 | 1553 | 1541 | 1592 |
| 45 | Barbora Krejcikova | CZE | 1211 | 1743 | 1550 | 1606 | 1647 |
| 46 | Sara Bejlek | CZE | 1205 | 1783 | 1736 | 1486 | 1653 |
| 47 | Tereza Valentova | CZE | 1165 | 1829 | 1727 | 1517 | 1788 |
| 48 | Marketa Vondrousova | CZE | 1133 | 1728 | 1606 | 1578 | 1609 |
| 49 | Dayana Yastremska | UKR | 1126 | 1743 | 1640 | 1575 | 1594 |
| 50 | Petra Marcinko | CRO | 1123 | 1771 | 1743 | 1467 | 1633 |
Top Kalshi edges
#1 Marco Cecchinato ELITE_LOW_N
Marco Cecchinato vs Marcelo Tomas Barrios Vera on hard — model 45% vs market 15% (+30.0pp). ELITE_LOW_N, ask 15¢.
#2 Andres Andrade ELITE_LOW_N
Andres Andrade vs Colton Smith on hard — model 49% vs market 20% (+29.4pp). ELITE_LOW_N, ask 20¢. Form: Andres Andra=COLD | Colton Smith=WARM.
#3 Gonzalo Bueno STRONG_LOW_N
Gonzalo Bueno vs Jerome Kym on hard — model 45% vs market 16% (+29.0pp). STRONG_LOW_N, ask 16¢.
#4 Adam Walton ELITE_LOW_N
Adam Walton vs Nick Kyrgios on hard — model 64% vs market 93% (+-28.5pp). ELITE_LOW_N, ask 93¢.
#5 Florent Bax ELITE_LOW_N
Florent Bax vs Chris Rodesch on hard — model 45% vs market 17% (+28.0pp). ELITE_LOW_N, ask 17¢.
Top PrizePicks edges
#1 Martin Landaluce ELITE_LOW_N
Martin Landaluce LESS 0.5 Total Tie Breaks vs Jan-Lennard Struff — proj 0.2 (+50.0% edge). Surface: clay.
#2 Rei Sakamoto ELITE_LOW_N
Rei Sakamoto LESS 0.5 Total Tie Breaks vs Anton Matusevich — proj 0.2 (+49.9% edge). Surface: clay.
#3 Jack Draper STRONG_LOW_N
Jack Draper LESS 0.5 Total Tie Breaks vs Brandon Nakashima — proj 0.2 (+49.9% edge). Surface: clay.
Fade signals
- Clara Tauson (RETURNING): RETURNING form tag — fade or fade-against.
- Gabriel Diallo (COLD): COLD form tag — fade or fade-against.
- Raphael Collignon (RETURNING): RETURNING form tag — fade or fade-against.
- Maya Joint (RETURNING): RETURNING form tag — fade or fade-against.
- Antonia Ruzic (COLD): COLD form tag — fade or fade-against.
- Francisco Comesana (COLD): COLD form tag — fade or fade-against.
- Jan Lennard Struff (COLD): COLD form tag — fade or fade-against.
- Alexei Popyrin (COLD): COLD form tag — fade or fade-against.
Surface leans
| Surface | Matches | % strong fav | Lean |
|---|---|---|---|
| hard | 5 | 0.0% | pick'em slate |
| grass | 154 | 3.9% | pick'em slate |
ATP (current surface: grass, top 50 by composite)
| Rk | Player | Country | Composite | ELO overall | ELO grass | Form | Off. rank |
|---|---|---|---|---|---|---|---|
| 1 | Jannik Sinner | ITA | 2051.6 | 2167 | 1695 | WARM | 1 |
| 2 | Carlos Alcaraz | ESP | 1923.6 | 2070 | 1717 | RETURNING | 2 |
| 3 | Rafael Jodar | ESP | 1913.0 | 1893 | 1893 | WARM | 23 |
| 4 | Alexander Zverev | GER | 1898.3 | 1994 | 1594 | WARM | 3 |
| 5 | Daniil Medvedev | RUS | 1808.0 | 1884 | 1585 | WARM | 8 |
| 6 | Arthur Fils | FRA | 1791.0 | 1892 | 1546 | WARM | 21 |
| 7 | Novak Djokovic | SRB | 1788.6 | 1929 | 1636 | RETURNING | 7 |
| 8 | Tommy Paul | USA | 1778.5 | 1851 | 1587 | WARM | 28 |
| 9 | Felix Auger Aliassime | CAN | 1777.3 | 1854 | 1517 | WARM | 4 |
| 10 | Adolfo Daniel Vallejo | PAR | 1775.3 | 1755 | 1755 | WARM | 72 |
| 11 | Alex De Minaur | AUS | 1775.0 | 1851 | 1590 | NEUTRAL | 6 |
| 12 | Daniel Merida Aguilar | ESP | 1767.7 | 1748 | 1748 | WARM | 82 |
| 13 | Yibing Wu | CHN | 1766.8 | 1747 | 1747 | WARM | 101 |
| 14 | Ben Shelton | USA | 1764.8 | 1816 | 1561 | WARM | 5 |
| 15 | Flavio Cobolli | ITA | 1759.5 | 1833 | 1557 | WARM | 10 |
| 16 | Casper Ruud | NOR | 1758.5 | 1866 | 1502 | WARM | 14 |
| 17 | Lorenzo Musetti | ITA | 1753.5 | 1832 | 1607 | NEUTRAL | 16 |
| 18 | Dino Prizmic | CRO | 1753.2 | 1813 | 1499 | HOT | 70 |
| 19 | Jiri Lehecka | CZE | 1750.1 | 1814 | 1574 | WARM | 12 |
| 20 | Alejandro Tabilo | CHI | 1739.8 | 1798 | 1575 | WARM | 31 |
| 21 | Joao Fonseca | BRA | 1737.3 | 1837 | 1495 | WARM | 25 |
| 22 | Alexander Blockx | BEL | 1730.5 | 1820 | 1508 | WARM | 37 |
| 23 | Jakub Mensik | CZE | 1730.1 | 1825 | 1497 | WARM | 17 |
| 24 | Toby Samuel | GBR | 1728.8 | 1709 | 1709 | WARM | 150 |
| 25 | Learner Tien | USA | 1727.2 | 1847 | 1506 | NEUTRAL | 19 |
| 26 | Taylor Fritz | USA | 1724.0 | 1793 | 1722 | RETURNING | 9 |
| 27 | Stefanos Sakellaridis | GRE | 1711.7 | 1692 | 1692 | WARM | 155 |
| 28 | Alexander Bublik | KAZ | 1709.5 | 1785 | 1569 | NEUTRAL | 11 |
| 29 | Rei Sakamoto | JPN | 1706.3 | 1686 | 1686 | WARM | 149 |
| 30 | Valentin Vacherot | MON | 1703.4 | 1800 | 1467 | WARM | 20 |
| 31 | Andrey Rublev | RUS | 1703.1 | 1804 | 1516 | NEUTRAL | 13 |
| 32 | Zachary Svajda | USA | 1696.9 | 1722 | 1650 | NEUTRAL | 62 |
| 33 | Michael Mmoh | USA | 1695.3 | 1675 | 1675 | WARM | 195 |
| 34 | Alex Molcan | SVK | 1694.0 | 1744 | 1744 | RETURNING | 102 |
| 35 | Nikolas Sanchez Izquierdo | ESP | 1691.4 | 1641 | 1641 | HOT | 226 |
| 36 | Kilian Feldbausch | SUI | 1688.9 | 1669 | 1669 | WARM | 287 |
| 37 | Pablo Carreno Busta | ESP | 1684.3 | 1761 | 1484 | WARM | 71 |
| 38 | Buvaysar Gadamauri | BEL | 1684.1 | 1664 | 1664 | WARM | 261 |
| 39 | Francisco Cerundolo | ARG | 1682.9 | 1790 | 1426 | WARM | 27 |
| 40 | Jack Draper | GBR | 1682.2 | 1806 | 1594 | RETURNING | 112 |
| 41 | Mariano Navone | ARG | 1679.8 | 1767 | 1460 | WARM | 39 |
| 42 | Franco Roncadelli | URU | 1679.0 | 1659 | 1659 | WARM | 227 |
| 43 | Alejandro Davidovich Fokina | ESP | 1677.3 | 1749 | 1545 | NEUTRAL | 22 |
| 44 | Roman Andres Burruchaga | ARG | 1676.8 | 1733 | 1514 | WARM | 63 |
| 45 | Juan Manuel Cerundolo | ARG | 1675.7 | 1756 | 1469 | WARM | 45 |
| 46 | Hubert Hurkacz | POL | 1675.6 | 1714 | 1547 | WARM | 96 |
| 47 | Ignacio Buse | PER | 1671.0 | 1773 | 1482 | NEUTRAL | 35 |
| 48 | Matteo Berrettini | ITA | 1670.6 | 1749 | 1524 | NEUTRAL | 48 |
| 49 | Brandon Nakashima | USA | 1670.4 | 1713 | 1590 | NEUTRAL | 32 |
| 50 | Bu Yunchaokete | CHN | 1668.7 | 1709 | 1536 | WARM | 131 |
WTA (current surface: grass, top 50 by composite)
| Rk | Player | Country | Composite | ELO overall | ELO grass | Form | Off. rank |
|---|---|---|---|---|---|---|---|
| 1 | Aryna Sabalenka | BLR | 1963.9 | 2089 | 1588 | WARM | 1 |
| 2 | Elena Rybakina | KAZ | 1925.9 | 2040 | 1580 | WARM | 2 |
| 3 | Alexandra Shubladze | RUS | 1898.6 | 1879 | 1879 | WARM | 184 |
| 4 | Jeline Vandromme | BEL | 1883.0 | 1863 | 1863 | WARM | 176 |
| 5 | Jessica Pegula | USA | 1881.7 | 1979 | 1583 | WARM | 4 |
| 6 | Iga Swiatek | POL | 1876.4 | 1957 | 1658 | NEUTRAL | 3 |
| 7 | Elina Svitolina | UKR | 1869.3 | 1996 | 1550 | WARM | 8 |
| 8 | Lisa Pigato | ITA | 1866.5 | 1846 | 1846 | WARM | 132 |
| 9 | Mirra Andreeva | RUS | 1861.0 | 1995 | 1513 | WARM | 6 |
| 10 | Coco Gauff | USA | 1850.8 | 1980 | 1519 | WARM | 7 |
| 11 | Akasha Urhobo | USA | 1843.4 | 1823 | 1823 | WARM | 180 |
| 12 | Tyra Caterina Grant | USA | 1840.5 | 1820 | 1820 | WARM | 157 |
| 13 | Dayeon Back | KOR | 1825.7 | 1806 | 1806 | WARM | 279 |
| 14 | Kaitlin Quevedo | USA | 1824.7 | 1825 | 1825 | NEUTRAL | 107 |
| 15 | Victoria Mboko | CAN | 1815.1 | 1937 | 1515 | WARM | 9 |
| 16 | Laura Samson | CZE | 1810.3 | 1810 | 1810 | NEUTRAL | 137 |
| 17 | Alice Tubello | FRA | 1810.1 | 1790 | 1790 | WARM | 222 |
| 18 | Belinda Bencic | SUI | 1804.3 | 1904 | 1561 | WARM | 11 |
| 19 | Carol Young Suh Lee | POC | 1801.3 | 1781 | 1781 | WARM | 192 |
| 20 | Jennifer Ruggeri | ITA | 1801.1 | 1781 | 1781 | WARM | 213 |
| 21 | Marta Kostyuk | UKR | 1800.2 | 1959 | 1449 | WARM | 12 |
| 22 | Anastasia Zolotareva | RUS | 1798.0 | 1778 | 1778 | WARM | 233 |
| 23 | Kristina Liutova | RUS | 1796.5 | 1777 | 1777 | WARM | 229 |
| 24 | Luisina Giovannini | ARG | 1793.4 | 1843 | 1843 | RETURNING | 173 |
| 25 | Angela Fita Boluda | ESP | 1793.2 | 1773 | 1773 | WARM | 195 |
| 26 | Eva Guerrero Alvarez | ESP | 1791.5 | 1772 | 1772 | WARM | 274 |
| 27 | Linda Noskova | CZE | 1788.9 | 1869 | 1583 | WARM | 13 |
| 28 | Hayu Kinoshita | JPN | 1787.3 | 1767 | 1767 | WARM | 217 |
| 29 | Martyna Kubka | POL | 1784.6 | 1765 | 1765 | WARM | 243 |
| 30 | Darya Astakhova | RUS | 1782.7 | 1763 | 1763 | WARM | 236 |
| 31 | Amanda Anisimova | USA | 1780.3 | 1906 | 1638 | RETURNING | 5 |
| 32 | Samira De Stefano | ITA | 1779.4 | 1759 | 1759 | WARM | 263 |
| 33 | Alexandra Eala | PHI | 1776.5 | 1837 | 1665 | NEUTRAL | 33 |
| 34 | Caijsa Wilda Hennemann | SWE | 1773.6 | 1774 | 1774 | NEUTRAL | 276 |
| 35 | Lilli Tagger | AUT | 1770.9 | 1771 | 1771 | NEUTRAL | 86 |
| 36 | Claire Liu | USA | 1770.0 | 1750 | 1750 | WARM | 148 |
| 37 | Sorana Cirstea | ROU | 1767.4 | 1919 | 1429 | WARM | 18 |
| 38 | Lanlana Tararudee | THA | 1766.5 | 1860 | 1536 | WARM | 94 |
| 39 | Daria Snigur | UKR | 1765.8 | 1863 | 1528 | WARM | 84 |
| 40 | Veronika Podrez | UKR | 1764.2 | 1814 | 1814 | RETURNING | 145 |
| 41 | Lucie Havlickova | CZE | 1758.1 | 1738 | 1738 | WARM | 212 |
| 42 | Sohyun Park | KOR | 1756.7 | 1737 | 1737 | WARM | 270 |
| 43 | Julie Struplova | CZE | 1755.7 | 1786 | 1786 | COLD | 272 |
| 44 | Tatiana Prozorova | RUS | 1755.6 | 1806 | 1806 | RETURNING | 172 |
| 45 | Elizara Yaneva | BUL | 1752.5 | 1752 | 1752 | NEUTRAL | 225 |
| 46 | Iva Jovic | USA | 1751.9 | 1833 | 1601 | NEUTRAL | 19 |
| 47 | Oleksandra Oliynykova | CRO | 1748.0 | 1859 | 1485 | WARM | 51 |
| 48 | Hanyu Guo | CHN | 1747.7 | 1728 | 1728 | WARM | 156 |
| 49 | Anhelina Kalinina | UKR | 1746.9 | 1842 | 1513 | WARM | 69 |
| 50 | Rebeka Masarova | ESP | 1746.2 | 1813 | 1623 | NEUTRAL | 140 |
ATP on CLAY (top 15 by surface tilt)
| Player | Δ ELO | ELO clay | ELO overall | Form | Off. rank |
|---|---|---|---|---|---|
| Zdenek Kolar | +27.9 | 1617 | 1589 | NEUTRAL | 162 |
| Gustavo Heide | +25.1 | 1725 | 1700 | RETURNING | 182 |
| Jan Choinski | +19.6 | 1688 | 1668 | COLD | 105 |
| Juan Carlos Prado Angelo | +19.3 | 1648 | 1628 | RETURNING | 161 |
| Gonzalo Bueno | +17.6 | 1637 | 1619 | RETURNING | 180 |
| Luciano Darderi | +17.2 | 1790 | 1772 | WARM | 18 |
| Valentin Royer | +16.5 | 1654 | 1638 | WARM | 74 |
| Alex Barrena | +13.9 | 1571 | 1557 | NEUTRAL | 197 |
| Jesper De Jong | +12.7 | 1672 | 1659 | NEUTRAL | 83 |
| Hugo Dellien | +11.2 | 1688 | 1677 | RETURNING | 165 |
| Timofey Skatov | +11.0 | 1631 | 1620 | NEUTRAL | 175 |
| Tomas Barrios Vera | +9.1 | 1686 | 1677 | COLD | 138 |
| Lukas Neumayer | +8.9 | 1693 | 1684 | WARM | 168 |
| Marco Trungelliti | +8.6 | 1684 | 1675 | NEUTRAL | 80 |
| Facundo Diaz Acosta | +4.7 | 1703 | 1698 | RETURNING | 128 |
WTA on CLAY (top 15 by surface tilt)
| Player | Δ ELO | ELO clay | ELO overall | Form | Off. rank |
|---|---|---|---|---|---|
| Katarzyna Kawa | +26.3 | 1730 | 1704 | HOT | 143 |
| Despina Papamichail | +7.5 | 1686 | 1679 | NEUTRAL | 168 |
| Teodora Kostovic | +4.7 | 1735 | 1730 | NEUTRAL | 182 |
| Anna Bondar | +4.5 | 1779 | 1775 | WARM | 75 |
| Simona Waltert | -2.9 | 1764 | 1767 | WARM | 90 |
| Carole Monnet | -3.1 | 1662 | 1665 | NEUTRAL | 191 |
| Julia Grabher | -4.8 | 1715 | 1720 | NEUTRAL | 116 |
| Andrea Lazaro Garcia | -7.6 | 1791 | 1799 | WARM | 153 |
| Luisina Giovannini | -10.7 | 1833 | 1843 | RETURNING | 173 |
| Veronika Erjavec | -12.4 | 1739 | 1752 | WARM | 89 |
| Darja Semenistaja | -13.5 | 1778 | 1792 | WARM | 102 |
| Mayar Sherif | -13.8 | 1707 | 1720 | RETURNING | 118 |
| Whitney Osuigwe | -13.8 | 1668 | 1682 | WARM | 183 |
| Nuria Brancaccio | -14.1 | 1658 | 1672 | COLD | 177 |
| Tamara Zidansek | -15.2 | 1761 | 1777 | RETURNING | 134 |
ATP on GRASS (top 15 by surface tilt)
| Player | Δ ELO | ELO grass | ELO overall | Form | Off. rank |
|---|---|---|---|---|---|
| Shintaro Mochizuki | +54.6 | 1565 | 1511 | RETURNING | 129 |
| Nicolas Jarry | +29.4 | 1564 | 1535 | RETURNING | 189 |
| Billy Harris | +25.6 | 1541 | 1515 | COLD | 144 |
| Adrian Mannarino | +19.4 | 1584 | 1565 | COLD | 46 |
| Roberto Bautista Agut | -25.0 | 1551 | 1576 | COLD | 116 |
| Aleksandar Vukic | -31.8 | 1537 | 1569 | COLD | 100 |
| Otto Virtanen | -49.0 | 1631 | 1680 | NEUTRAL | 158 |
| Tristan Schoolkate | -50.4 | 1550 | 1600 | WARM | 123 |
| Alex Bolt | -56.1 | 1592 | 1648 | WARM | 157 |
| August Holmgren | -56.7 | 1548 | 1605 | WARM | 148 |
| Gabriel Diallo | -63.2 | 1576 | 1639 | COLD | 54 |
| Marcos Giron | -71.3 | 1570 | 1641 | WARM | 88 |
| Zachary Svajda | -72.3 | 1650 | 1722 | NEUTRAL | 62 |
| Marin Cilic | -73.2 | 1611 | 1684 | NEUTRAL | 47 |
| Ugo Blanchet | -74.7 | 1459 | 1534 | COLD | 173 |
WTA on GRASS (top 15 by surface tilt)
| Player | Δ ELO | ELO grass | ELO overall | Form | Off. rank |
|---|---|---|---|---|---|
| Tatjana Maria | -18.0 | 1598 | 1616 | NEUTRAL | 52 |
| Beatriz Haddad Maia | -64.5 | 1514 | 1578 | COLD | 108 |
| Viktoriya Tomova | -107.0 | 1500 | 1607 | NEUTRAL | 167 |
| Ajla Tomljanovic | -111.2 | 1536 | 1647 | NEUTRAL | 109 |
| Xin Yu Wang | -127.1 | 1591 | 1719 | NEUTRAL | 31 |
| Kamilla Rakhimova | -128.2 | 1576 | 1705 | NEUTRAL | 78 |
| Linda Fruhvirtova | -133.9 | 1543 | 1677 | NEUTRAL | 164 |
| Suzan Lamens | -135.0 | 1489 | 1624 | COLD | 125 |
| Lulu Sun | -136.6 | 1519 | 1655 | NEUTRAL | 110 |
| Victoria Jimenez Kasintseva | -136.9 | 1499 | 1636 | NEUTRAL | 124 |
| Rebecca Sramkova | -137.3 | 1509 | 1646 | NEUTRAL | 120 |
| Dalma Galfi | -138.3 | 1576 | 1714 | NEUTRAL | 117 |
| Ashlyn Krueger | -149.2 | 1563 | 1712 | NEUTRAL | 113 |
| Elena Gabriela Ruse | -159.4 | 1570 | 1730 | NEUTRAL | 88 |
| Bianca Andreescu | -161.6 | 1539 | 1700 | NEUTRAL | 158 |
ATP on HARD (top 15 by surface tilt)
| Player | Δ ELO | ELO hard | ELO overall | Form | Off. rank |
|---|---|---|---|---|---|
| Hugo Gaston | +45.5 | 1666 | 1620 | WARM | 119 |
| Luca Van Assche | +35.7 | 1704 | 1668 | WARM | 98 |
| Toby Samuel | +29.5 | 1738 | 1709 | WARM | 150 |
| Gauthier Onclin | +6.0 | 1613 | 1607 | HOT | 186 |
| Clement Chidekh | +5.5 | 1629 | 1624 | NEUTRAL | 200 |
| Rinky Hijikata | +3.2 | 1683 | 1680 | WARM | 106 |
| Alexis Galarneau | +2.9 | 1613 | 1610 | WARM | 187 |
| Coleman Wong | -1.9 | 1641 | 1643 | WARM | 108 |
| Benjamin Bonzi | -3.0 | 1678 | 1680 | WARM | 99 |
| Michael Mmoh | -10.9 | 1664 | 1675 | WARM | 195 |
| Borna Gojo | -11.2 | 1698 | 1709 | WARM | 178 |
| Ethan Quinn | -13.2 | 1683 | 1696 | WARM | 67 |
| Marcos Giron | -13.6 | 1628 | 1641 | WARM | 88 |
| Sho Shimabukuro | -14.6 | 1643 | 1657 | NEUTRAL | 104 |
| Terence Atmane | -14.7 | 1627 | 1641 | NEUTRAL | 53 |
WTA on HARD (top 15 by surface tilt)
| Player | Δ ELO | ELO hard | ELO overall | Form | Off. rank |
|---|---|---|---|---|---|
| Talia Gibson | +53.5 | 1832 | 1779 | HOT | 63 |
| Hanne Vandewinkel | +51.2 | 1848 | 1796 | HOT | 97 |
| Xiaodi You | +1.4 | 1730 | 1729 | WARM | 170 |
| Kimberly Birrell | -6.3 | 1751 | 1757 | WARM | 74 |
| Victoria Jimenez Kasintseva | -6.9 | 1629 | 1636 | WARM | 124 |
| Ye Xin Ma | -9.4 | 1684 | 1693 | WARM | 189 |
| Sofia Costoulas | -11.2 | 1729 | 1740 | WARM | 150 |
| Taylah Preston | -15.5 | 1796 | 1811 | WARM | 126 |
| Polina Iatcenko | -17.5 | 1721 | 1738 | NEUTRAL | 163 |
| Himeno Sakatsume | -18.4 | 1742 | 1761 | NEUTRAL | 127 |
| Vendula Valdmannova | -18.6 | 1785 | 1804 | WARM | 199 |
| Priscilla Hon | -19.1 | 1646 | 1665 | NEUTRAL | 146 |
| Harriet Dart | -23.5 | 1740 | 1763 | WARM | 160 |
| Francisca Jorge | -27.2 | 1699 | 1727 | RETURNING | 196 |
| Hanyu Guo | -27.7 | 1700 | 1728 | WARM | 156 |
WTA on INDOOR (top 15 by surface tilt)
| Player | Δ ELO | ELO indoor | ELO overall | Form | Off. rank |
|---|---|---|---|---|---|
| Linda Klimovicova | -124.1 | 1616 | 1740 | NEUTRAL | 165 |
| Kimberly Birrell | -177.1 | 1580 | 1757 | NEUTRAL | 74 |
| Ye Xin Ma | -177.9 | 1515 | 1693 | WARM | 189 |
| Carole Monnet | -194.2 | 1471 | 1665 | NEUTRAL | 191 |
| Elvina Kalieva | -209.7 | 1521 | 1731 | WARM | 135 |
| Himeno Sakatsume | -218.0 | 1543 | 1761 | NEUTRAL | 127 |
| Emerson Jones | -222.0 | 1584 | 1806 | WARM | 133 |
| Dalma Galfi | -228.3 | 1486 | 1714 | NEUTRAL | 117 |
| Marina Bassols Ribera | -229.2 | 1503 | 1732 | WARM | 144 |
| Tamara Korpatsch | -240.1 | 1534 | 1774 | WARM | 79 |
| Mona Barthel | -254.2 | 1500 | 1754 | WARM | 193 |
| Polina Iatcenko | -254.5 | 1484 | 1738 | NEUTRAL | 163 |
| Sofia Costoulas | -256.1 | 1484 | 1740 | WARM | 150 |
| Vendula Valdmannova | -269.7 | 1534 | 1804 | WARM | 199 |
| Daria Snigur | -273.9 | 1589 | 1863 | WARM | 84 |
⚠ Caveat: Model CLV anti-correlated with skill (Phase A finding); treat parlays as paper.
Kalshi cross-match (independent fav parlays)
No combos surfaced.
Kalshi same-match (correlated)
No combos surfaced.
PrizePicks slips
| Label | Variance | Legs | Joint P | Payout | EV/$ |
|---|---|---|---|---|---|
| 2-pick MED-variance | MED | Qinwen Zheng MORE 18.0 Total Games, Julia Grabher MORE 18.5 Total Games | 0.425 | 5.00x | 1.123 |
| 2-pick HIGH-variance | HIGH | Tereza Valentova MORE 4.5 Break Points Won, Ann Li LESS 5.0 Break Points Won | 0.314 | 10.00x | 2.143 |
| 3-pick MED-variance | MED | Qinwen Zheng MORE 18.0 Total Games, Julia Grabher MORE 18.5 Total Games, Andrey Rublev MORE 20.5 Total Games | 0.260 | 10.00x | 1.602 |
| 4-pick MED-variance | MED | Qinwen Zheng MORE 18.0 Total Games, Julia Grabher MORE 18.5 Total Games, Andrey Rublev MORE 20.5 Total Games, Miomir Kecmanovic LESS 12.5 Total Games Won | 0.159 | 18.00x | 1.856 |
⚠ Inverted CLV signal: win rate at POSITIVE CLV (0.429) < win rate at NEGATIVE CLV (0.6562). When we beat the close, we LOSE; when we lose the close, we WIN. Model is anti-correlated with skill. Real money gated.
CLV vs Pinnacle close (overall)
| n picks total | 1802 |
| matched Pinnacle | 370 (20.5%) |
| mean CLV (pp) | 16.16 |
| median CLV (pp) | 15.824 |
| win rate at +CLV | 0.429 |
| win rate at -CLV | 0.6562 |
CLV by market price bucket (FLB signal)
| Bucket | n | Mean CLV (pp) |
|---|---|---|
| <10% | 30 | 32.535 |
| 10-30% | 146 | 21.473 |
| 30-50% | 129 | 11.786 |
| 50-70% | 49 | 6.21 |
| 70-90% | 8 | 3.478 |
| >90% | 8 | 1.915 |
Calibration buckets
| n_total | 1321 |
| ECE (pp) | 4.355 |
| Brier Score | 0.2417 |
| Log Loss | 0.6762 |
Predicted vs actual (10pp buckets)
| Bucket | n | Predicted | Actual | Gap (pp) |
|---|---|---|---|---|
| 0.2-0.30 | 20 | 0.2832 | 0.35 | +6.68 |
| 0.3-0.40 | 154 | 0.3585 | 0.2792 | -7.93 |
| 0.4-0.50 | 521 | 0.4513 | 0.4319 | -1.95 |
| 0.5-0.60 | 487 | 0.5448 | 0.4949 | -4.99 |
| 0.6-0.70 | 124 | 0.6405 | 0.5806 | -5.98 |
| 0.7-0.80 | 14 | 0.7179 | 0.8571 | +13.93 |
| 0.8-0.90 | 1 | 0.8232 | 1.0 | +17.68 |
| Source | DB / file | Last pulled | Age | Rows | Status |
|---|---|---|---|---|---|
| Kalshi KXATPMATCH | tennis_kalshi.sqlite | 2026-07-15T13:11:55.583459+00:00 | 3m | 1942 | fresh |
| Kalshi KXWTAMATCH | tennis_kalshi.sqlite | 2026-07-15T13:11:55.583459+00:00 | 3m | 1910 | fresh |
| Kalshi KXFRENCHOPEN | tennis_kalshi.sqlite | 2026-07-15T13:11:55.583459+00:00 | 3m | 0 | fresh |
| Kalshi KXFOPENMENSINGLE | tennis_kalshi.sqlite | 2026-07-15T13:11:55.583459+00:00 | 3m | 0 | fresh |
| Kalshi KXATPGRANDSLAM | tennis_kalshi.sqlite | 2026-07-15T13:11:55.583459+00:00 | 3m | 14 | fresh |
| Kalshi KXUSOPEN | tennis_kalshi.sqlite | 2026-07-15T13:11:55.583459+00:00 | 3m | 0 | fresh |
| Kalshi KXATPSETWINNER | tennis_kalshi.sqlite | 2026-07-15T13:11:55.583459+00:00 | 3m | 4482 | fresh |
| Kalshi KXATPTOTALSETS | tennis_kalshi.sqlite | 2026-07-15T13:11:55.583459+00:00 | 3m | 0 | fresh |
| Kalshi KXATPSETSWEEP | tennis_kalshi.sqlite | 2026-07-15T13:11:55.583459+00:00 | 3m | 2 | fresh |
| Kalshi KXATPGAMESPREAD | tennis_kalshi.sqlite | 2026-07-15T13:11:55.583459+00:00 | 3m | 0 | fresh |
| Kalshi KXATPEXACTMATCH | tennis_kalshi.sqlite | 2026-07-15T13:11:55.583459+00:00 | 3m | 4430 | fresh |
| Kalshi KXWTADOUBLES | tennis_kalshi.sqlite | 2026-07-15T13:11:55.583459+00:00 | 3m | 266 | fresh |
| Kalshi KXATP1RANK | tennis_kalshi.sqlite | 2026-07-15T13:11:55.583459+00:00 | 3m | 16 | fresh |
| elo last computed | tennis.sqlite | 2026-06-21T17:36:52+00:00 | 571.63h | 20430 | stale |
| rankings last pulled | tennis.sqlite | 2026-06-15T17:40:18+00:00 | 715.58h | 11348 | stale |
| rankings atp latest date | tennis.sqlite | 2026-06-08 | 901.25h | — | stale |
| rankings wta latest date | tennis.sqlite | 2026-06-08 | 901.25h | — | stale |
| mirror atp schedule | tennis.sqlite | 2026-07-15T13:13:46.276254+00:00 | 1m | 74 | fresh |
| h2h last computed | tennis.sqlite | 2026-05-17T10:11:57.514615+00:00 | 1419.05h | — | stale |
| h2h n pairs | tennis.sqlite | 190184 | missing | — | missing |
| last player db run | tennis.sqlite | 1784121247 | missing | — | missing |
| results last_run | tennis_results.sqlite | [2026-07-15T13:13:48.212118+00:00] 2026-07-15T13:13:46.702863+00:00; dates=['20260714']; rows=294; resolved=288 | missing | — | missing |
| pp_edges CSV | pp_edges_tennis_2026-07-15.csv | 2026-07-15T13:14:18.037900+00:00 | 0m | — | fresh |
| kalshi edges JSON | tennis_kalshi_edges_2026-07-15.json | 2026-07-15T13:14:12.829891+00:00 | 0m | — | fresh |
| paper trades PP | paper_trades_pp_tennis_2026-07-15.json | 2026-07-15T13:14:32.820240+00:00 | 0m | — | fresh |
| paper trades Kalshi | paper_trades_kalshi_tennis_2026-07-15.json | 2026-07-15T13:14:33.350429+00:00 | 0m | — | fresh |
| daily payload | daily_tennis_2026-07-15.json | 2026-07-15T13:14:36.476146+00:00 | 0m | — | fresh |
| PP movement | pp_line_movement_tennis_2026-07-15.csv | 2026-07-15T13:14:35.911111+00:00 | 0m | — | fresh |
| PP calibration | pp_calibration_tennis.json | 2026-07-15T13:14:35.791001+00:00 | 0m | — | fresh |