Data

Coverage

Data quality and serve-stats coverage across the canonical match database.

Coverage by year

YearMatchesWith serve statsCoverage
202611,9535,20743.6%
202543,51213,11230.1%
202432,33414,26844.1%
202330,75113,41743.6%
202228,95912,65343.7%
202122,00310,09745.9%
20209,3334,67150.0%
201928,01011,35040.5%
201830,14612,68942.1%
201730,54411,50337.7%
201632,62612,23537.5%
201531,1278,43027.1%
201429,9488,62728.8%
201329,3528,87330.2%
201227,9759,15532.7%
201125,9858,82934.0%
201024,6959,18137.2%
20093100.0%

Tournaments in 2021

Tournament Matches β–ΌServe stats Coverage
Roland Garros239239100.0%
Wimbledon23923899.6%
Us Open239239100.0%
Miami Masters13113099.2%
Indian Wells Masters13113099.2%
Australian Open12712699.2%
Doha Aus Open Qualies11211098.2%
Santiago CH9494100.0%
M15 Heraklion9300.0%
M15 Cairo9000.0%
M15 Heraklion9000.0%
Belgrade CH8282100.0%
Marbella CH8282100.0%
Paris Masters767598.7%
Monte Carlo Masters7676100.0%
Rome Masters767598.7%
Cincinnati Masters7676100.0%
Madrid Masters7676100.0%
Washington656498.5%
Canada Masters656498.5%
Barcelona6565100.0%
Tokyo Olympics6400.0%
Dubai6363100.0%
M15 Cairo6200.0%
M15 Antalya6200.0%
M15 Sharm El Sheikh6200.0%
M15 Sharm El Sheikh6200.0%
M15 Sharm El Sheikh6200.0%
M15 Sharm El Sheikh6200.0%
M15 Cairo6200.0%
M15 Cairo6200.0%
M15 Cairo6200.0%
M15 Cairo6200.0%
M15 Sharm El Sheikh6200.0%
M15 Cairo6200.0%
M15 Cancun6200.0%
M15 Cancun6200.0%
M15 Cancun6200.0%
M15 Ulcinj6200.0%
M15 Ulcinj6200.0%
M25 Lima6200.0%
M25 Idanha-a-Nova6200.0%
M25 Sintra6200.0%
M15 Doha6200.0%
M15 Doha6200.0%
M15 St. Petersburg6200.0%
M15 St. Petersburg6200.0%
M15 Novi Sad6200.0%
M15 Bratislava6200.0%
M15 Bratislava6200.0%
M15 Monastir6200.0%
M15 Monastir6200.0%
M15 Monastir6200.0%
M15 Monastir6200.0%
M15 Monastir6200.0%
M15 Monastir6200.0%
M15 Monastir6200.0%
M15 Monastir6200.0%
M15 Monastir6200.0%
M15 Monastir6200.0%
M15 Monastir6200.0%
M15 Monastir6200.0%
M15 Monastir6200.0%
M15 Monastir6200.0%
M15 Monastir6200.0%
M15 Monastir6200.0%
M15 Antalya6200.0%
M15 Antalya6200.0%
M15 Antalya6200.0%
M15 Antalya6200.0%
M15 Antalya6200.0%
M15 Antalya6200.0%
M15 Antalya6200.0%
M15 Antalya6200.0%
M15 Antalya6200.0%
M15 Antalya6200.0%
M15 Novomoskovsk6200.0%
M25 Naples FL6200.0%
M15 Naples FL6200.0%
M15 Manacor6100.0%
M15 Bad Waltersdorf6100.0%
M15 Sozopol6100.0%
M15 Santo Domingo6100.0%
M15 Sharm El Sheikh6100.0%
M15 Sharm El Sheikh6100.0%
M15 Platja D'Aro6100.0%
M15 Heraklion6100.0%
M15 Nur-Sultan6100.0%
M15 Shymkent6100.0%
M15 Shymkent6100.0%
M25 Nur-Sultan6100.0%
M15 Cancun6100.0%
M15 Monastir6100.0%
M15 Antalya6100.0%
M15 Antalya6100.0%
M15 Monastir6000.0%
M15 Monastir6000.0%
M15 Monastir6000.0%
M15 Monastir6000.0%
M15 Antalya6000.0%
M15 Antalya6000.0%
Winston-Salem5959100.0%
M25 Santo Domingo5900.0%
M15 Sharm El Sheikh5900.0%
M15 Monastir5900.0%
M15 Monastir5900.0%
M15 Antalya5900.0%
M15 Antalya5900.0%
Acapulco585798.3%
M15 Antalya5800.0%
M15 Monastir5700.0%
Buenos Aires5555100.0%
Cordoba5555100.0%
Great Ocean Road Open5555100.0%
Murray River Open555498.2%
M15 Cairo5500.0%
M15 Skopje5400.0%
Halle4949100.0%
Antalya484797.9%
M15 Monastir4700.0%
Hamburg454497.8%
Salinas 1 CH4343100.0%
Queen's Club4343100.0%
Vienna4343100.0%
Knoxville CH4343100.0%
Rotterdam4343100.0%
Bratislava 1 CH4343100.0%
Szczecin CH4343100.0%
Heilbronn CH4343100.0%
Lugano CH4343100.0%
Braunschweig CH4343100.0%
Montevideo CH4343100.0%
Prostejov CH4343100.0%
Lexington CH4343100.0%
Champaign CH434297.7%
Segovia CH4343100.0%
Seville CH434297.7%
Poznan CH4343100.0%
Bergamo CH4343100.0%
Ostrava CH4343100.0%
Rome 1 CH4343100.0%
Orleans CH4343100.0%
Como CH4343100.0%
Nur-Sultan 1 CH4343100.0%
Bratislava 2 CH4343100.0%
Rome 2 CH4343100.0%
Charlottesville CH4343100.0%
Ortisei CH4343100.0%
Quimper 1 CH4343100.0%
Lima 1 CH4343100.0%
Sibiu CH4343100.0%
Mouilleron-Le-Captif CH434297.7%
Aix-En-Provence CH4343100.0%
Istanbul 1 CH434297.7%
Biella 1 CH4343100.0%
Brest CH434297.7%
Barletta CH4343100.0%
Lyon CH4343100.0%
Nottingham 1 CH4343100.0%
Almaty 1 CH4343100.0%
Ismaning CH434297.7%
Lille CH4343100.0%
Villena CH4343100.0%
Puerto Vallarta CH4343100.0%
Maia 1 CH434297.7%
Potchefstroom 1 CH4343100.0%
Todi CH4343100.0%
Cassis CH4343100.0%
Barcelona CH4343100.0%
Orlando 1 CH4343100.0%
Murcia CH434297.7%
Little Rock CH4343100.0%
Orlando 2 CH434297.7%
Forli CH4343100.0%
Antalya 1 CH4343100.0%
Antalya 2 CH4343100.0%
Biella 2 CH4343100.0%
Potchefstroom 2 CH4343100.0%
Quimper 2 CH434297.7%
Las Palmas 2 CH4343100.0%
St. Petersburg 1 CH4343100.0%
Biella 3 CH4343100.0%
St. Petersburg 2 CH4343100.0%
Biella 4 CH4343100.0%
Biella 7 CH4343100.0%
Zagreb CH4343100.0%
Biella 6 CH434297.7%
Oeiras 4 CH4343100.0%
Oeiras 3 CH4343100.0%
Nottingham 2 CH4343100.0%
Almaty 2 CH4343100.0%
Porto CH4343100.0%
Salzburg CH4343100.0%
Nur-Sultan 3 CH4343100.0%
San Marino CH434297.7%
Warsaw CH4343100.0%
Prague 3 CH4343100.0%
Tulln CH4343100.0%
Kyiv CH4343100.0%
Lima 2 CH4343100.0%
Tenerife CH4343100.0%
Roanne CH434195.3%
Antalya 3 CH4343100.0%
Antalya 4 CH434297.7%
Florianopolis CH4343100.0%
Maia 2 CH434297.7%
Eckental CH4242100.0%
Oeiras 1 CH4242100.0%
Prague 1 CH4242100.0%
Banja Luka CH424197.6%
Cordenons CH4242100.0%
Milan CH4242100.0%
Rennes CH4242100.0%
Liberec CH4242100.0%
Meerbusch CH424197.6%
Prague 2 CH4242100.0%
Cary 1 CH424197.6%
Las Vegas CH4242100.0%
Bogota CH4242100.0%
Guayaquil CH4242100.0%
Lisboa CH4242100.0%
Braga CH4242100.0%
Manacor CH4242100.0%
Nur-Sultan 2 CH4242100.0%
Helsinki CH4242100.0%
Sao Paulo CH424197.6%
Pau CH424197.6%
Columbus CH4242100.0%
Trieste CH4242100.0%
Concepcion CH4242100.0%
Las Palmas 1 CH4242100.0%
Split 2 CH4242100.0%
Biella 5 CH4242100.0%
Salinas 2 CH4242100.0%
Nur-Sultan 4 CH424197.6%
Cary 2 CH4242100.0%
Istanbul 2 CH4242100.0%
Biel CH4242100.0%
Bucharest CH4242100.0%
Santiago 1 CH4242100.0%
Manama CH4242100.0%
Forli 2 CH4242100.0%
Cherbourg CH4141100.0%
Tallahassee CH414097.6%
Campinas CH4141100.0%
Split 1 CH4141100.0%
Iasi CH4141100.0%
Cleveland CH4141100.0%
Amersfoort CH4141100.0%
Zadar CH4141100.0%
Oeiras 2 CH414097.6%
Verona CH4141100.0%
Napoli CH414097.6%
Ercolano CH4141100.0%
Santiago 2 CH4141100.0%
Losinj CH414097.6%
Bari CH4141100.0%
Forli 3 CH4141100.0%
Rio De Janeiro CH4141100.0%
Tampere CH4040100.0%
Buenos Aires CH4040100.0%
Luedenscheid CH403997.5%
Ambato CH4040100.0%
Brasilia CH4040100.0%
Munich393897.4%
Gstaad3939100.0%
Newport3939100.0%
Bastad393897.4%
Kitzbuhel3939100.0%
Stuttgart3939100.0%
Geneva3939100.0%
Montpellier3939100.0%
Stockholm3939100.0%
Umag3939100.0%
Marseille3939100.0%
Delray Beach3939100.0%
St. Petersburg3939100.0%
Eastbourne3939100.0%
Atlanta3939100.0%
Estoril393897.4%
Sofia393897.4%
Antwerp3939100.0%
Lyon3939100.0%
Mallorca393897.4%
Perugia CH3939100.0%
Nur-Sultan3939100.0%
Singapore3939100.0%
Cagliari3939100.0%
Parma3939100.0%
Belgrade 2393897.4%
San Diego3939100.0%
Metz3838100.0%
Los Cabos3838100.0%
Moscow3737100.0%
Pozoblanco CH3737100.0%
St. Tropez CH3737100.0%
Doha343294.1%
Quito CH3232100.0%
M15 Villa Maria3100.0%
M15 Cordoba3100.0%
M25 Villa Allende3100.0%
M25 Rio Cuarto3100.0%
M25 Kottingbrunn3100.0%
M15 Warmbad-Villach3100.0%
M25 Koksijde3100.0%
M25 Eupen3100.0%
M15 Doboj3100.0%
M15 Cochabamba3100.0%
M15 Brasilia3100.0%
M25 Rio do Sul3100.0%
M25 Aparecida de Goiania3100.0%
M15 Sofia3100.0%
M25 Medellin3100.0%
M15 Porec3100.0%
M15 Rovinj3100.0%
M15 Opatija3100.0%
M15 Sibenik3100.0%
M25 Most3100.0%
M25 Prostejov3100.0%
M25 Ricany3100.0%
M25 Pardubice3100.0%
M15 Opava3100.0%
M25 Prague3100.0%
M15 Ostrava3100.0%
M15 Vejle3100.0%
M15 Frederiksberg3100.0%
M25 Portoviejo3100.0%
M25 Guayaquil3100.0%
M25 Guayaquil3100.0%
M15 Cairo3100.0%
M15 Cairo3100.0%
M25 Villena3100.0%
M15 La Nucia3100.0%
M25 La Nucia3100.0%
M25 Reus3100.0%
M15 Valldoreix3100.0%
M25 Bakio3100.0%
M15 Marbella3100.0%
M15 Majadahonda3100.0%
M15 Las Palmas de Gran Canaria3100.0%
M25 Vic3100.0%
M25 Gandia3100.0%
M15 Girona3100.0%
M25 Santander3100.0%
M25 Oviedo3100.0%
M15 Melilla3100.0%
M25 Madrid3100.0%
M15 Madrid3100.0%
M15 Torello3100.0%
M15 Benicarlo3100.0%
M15 Parnu3100.0%
M15 Helsinki3100.0%
M15 Kouvola3100.0%
M15 Grenoble3100.0%
M15 Poitiers3100.0%
M25 Angers3100.0%
M25 Montauban3100.0%
M25 Grasse3100.0%
M25 Bourg-en-Bresse3100.0%
M25+H Ajaccio3100.0%
M25 Uriage3100.0%
M25+H Plaisir3100.0%
M15 Forbach3100.0%
M25 Nevers3100.0%
M25+H Rodez3100.0%
M25 Toulouse3100.0%
M25 Villers Les Nancy3100.0%
M25 Saint Dizier3100.0%
M15 Tbilisi3100.0%
M25 Telavi3100.0%
M15 Telavi3100.0%
M15 Troisdorf3100.0%
M25 Frankfurt am Main3100.0%
M25 Wetzlar3100.0%
M25 Trier3100.0%
M25 Ueberlingen3100.0%
M15 Allershausen3100.0%
M25 Hamburg3100.0%
M15 Guatemala3100.0%
M25 Budapest3100.0%
M15 Indore3100.0%
M15 Lucknow3100.0%
M15 Pune3100.0%
M15 New Delhi3100.0%
M15 Indore3100.0%
M15 New Delhi3100.0%
M15 Gurugram3100.0%
M15 Ramat Hasharon3100.0%
M25 Meitar3100.0%
M25 Afula3100.0%
M15 L'Aquila3100.0%
M15 Gaiba3100.0%
M15 Bergamo3100.0%
M15 Genova3100.0%
M25 Casinalbo3100.0%
M15 Perugia3100.0%
M25+H Lesa3100.0%
M25 Bolzano3100.0%
M15 Pescara3100.0%
M15 Selva Gardena3100.0%
M25 Nur-Sultan3100.0%
M15 EschAlzette3100.0%
M15 Cancun3100.0%
M25 Skopje3100.0%
M25 Alkmaar3100.0%
M15 Lambare3100.0%
M25 Grodzisk Mazowiecki3100.0%
M25 Poznan3100.0%
M15 Gdynia3100.0%
M15 Lodz3100.0%
M25 Vale do Lobo3100.0%
M25 Faro3100.0%
M25 Vale do Lobo3100.0%
M15 Castelo Branco3100.0%
M15 Almada3100.0%
M25 Setubal3100.0%
M25 Loule3100.0%
M25 Quinta Do Lago3100.0%
M15 Doha3100.0%
M15 Doha3100.0%
M15 Curtea de Arges3100.0%
M25 Pitesti3100.0%
M25+H Bacau3100.0%
M25 Johannesburg Markspark3100.0%
M25 Johannesburg Ellispark3100.0%
M25 Pretoria3100.0%
M15 Kazan3100.0%
M15 Kazan3100.0%
M15 Kazan3100.0%
M25 Velenje3100.0%
M25 Belgrade3100.0%
M15 Pirot3100.0%
M25 Sierre3100.0%
M25 Muttenz3100.0%
M25 Caslano3100.0%
M15 Poprad3100.0%
M15 Zilina3100.0%
M25 Jonkoping3100.0%
M25 Falun3100.0%
M25 Pensacola FL3100.0%
M25 Tulsa OK3100.0%
M25 Wichita KS3100.0%
M15 Edwardsville IL3100.0%
M25 Champaign IL3100.0%
M25 Decatur IL3100.0%
M15 Champaign IL3100.0%
M15 Fayetteville AR3100.0%
M15 Lubbock TX3100.0%
M15 Ithaca NY3100.0%
M15 Vero Beach FL3100.0%
M25 Calabasas CA3100.0%
M15 Tallahassee FL3100.0%
M15 Ithaca NY3100.0%
M15 Fayetteville AR3100.0%
M25 Harlingen TX3100.0%
M25 Austin TX3100.0%
M25 Columbus OH3100.0%
M15 East Lansing MI3100.0%
Atp Cup3030100.0%
M15 Cordoba3000.0%
M15 Huy3000.0%
M15 Recife3000.0%
M15 Sozopol3000.0%
M15 Ibague3000.0%
M15 Sibenik3000.0%
M15 Sharm El Sheikh3000.0%
M25 Denia3000.0%
M15 Xativa3000.0%
M15 Nules3000.0%
M15 Parnu3000.0%
M25 Bagneres-De-Bigorre3000.0%
M25 Sarreguemines3000.0%
M25 Meerbusch3000.0%
M25 Marburg3000.0%
M15 Heraklion3000.0%
M15 Jerusalem3000.0%
M25 The Hague3000.0%
M25 Portimao3000.0%
M15 Zlatibor3000.0%
M15 Chornomorsk3000.0%
M15 Vyshkovo3000.0%
M15 Brcko2900.0%
M25 Kiseljak2900.0%
M15 Sarajevo2900.0%
M15 Prijedor2900.0%
M15 Oldenzaal2900.0%
M25 Klosters2900.0%
M15 Cundinamarca2800.0%
M15 Bucharest2800.0%
M15 Champaign IL2800.0%
M25 Jablonec nad Nisou2700.0%
M25 Wroclaw2700.0%
M25 Biel2600.0%
M25 Trimbach2500.0%
M15 Weston FL2500.0%
M25 Telfs2400.0%
M15+H Bressuire2200.0%
M25 Prague2100.0%
Tour Finals1515100.0%
NextGen Finals1515100.0%
Laver Cup600.0%
Davis Cup WG1 R1: ARG vs BLR44100.0%
Davis Cup WG1 R1: BEL vs BOL44100.0%
Davis Cup WG1 R1: BIH vs PER44100.0%
Davis Cup WG1 R1: ISR vs UKR44100.0%
Davis Cup WG2 R1: DOM vs TUN44100.0%
Davis Cup WG2 R1: SUI vs EST44100.0%
Davis Cup WG2 R1: THA vs DEN44100.0%
Davis Cup WG1 PO: UKR vs NOR33100.0%
Davis Cup WG1 R1: BRA vs LBN33100.0%
Davis Cup WG1 R1: CHI vs SVK33100.0%
Davis Cup WG1 R1: IND vs FIN33100.0%
Davis Cup WG1 R1: JPN vs PAK33100.0%
Davis Cup WG1 R1: KOR vs NZL33100.0%
Davis Cup WG1 R1: NED vs URU33100.0%
Davis Cup WG1 R1: POR vs ROU33100.0%
Davis Cup WG1 R1: UZB vs NOR33100.0%
Davis Cup WG2 PO: TUN vs ZIM33100.0%
Davis Cup WG2 R1: BAR vs INA33100.0%
Davis Cup WG2 R1: LTU vs GRE33100.0%
Davis Cup WG2 R1: MEX vs BUL300.0%
Davis Cup WG2 R1: POL vs ESA300.0%
Davis Cup WG2 R1: RSA vs VEN33100.0%
Davis Cup WG2 R1: SLO vs PAR33100.0%
Davis Cup WG2 R1: TUR vs LAT33100.0%
Davis Cup Finals RR: ESP vs ECU22100.0%
Davis Cup Finals RR: ESP vs RTF22100.0%
Davis Cup Finals RR: RTF vs ECU22100.0%
Davis Cup Finals RR: CAN vs KAZ22100.0%
Davis Cup Finals RR: CAN vs SWE22100.0%
Davis Cup Finals RR: KAZ vs SWE22100.0%
Davis Cup Finals RR: FRA vs CZE22100.0%
Davis Cup Finals RR: FRA vs GBR22100.0%
Davis Cup Finals RR: GBR vs CZE22100.0%
Davis Cup Finals RR: AUS vs HUN22100.0%
Davis Cup Finals RR: CRO vs AUS22100.0%
Davis Cup Finals RR: CRO vs HUN22100.0%
Davis Cup Finals RR: ITA vs COL22100.0%
Davis Cup Finals RR: USA vs COL22100.0%
Davis Cup Finals RR: USA vs ITA22100.0%
Davis Cup Finals RR: GER vs AUT22100.0%
Davis Cup Finals RR: SRB vs AUT22100.0%
Davis Cup Finals RR: SRB vs GER22100.0%
Davis Cup Finals SF: CRO vs SRB22100.0%
Davis Cup Finals QF: GBR vs GER22100.0%
Davis Cup Finals QF: ITA vs CRO22100.0%
Davis Cup Finals F: RTF vs CRO22100.0%
Davis Cup Finals SF: RTF vs GER22100.0%
Davis Cup Finals QF: RTF vs SWE22100.0%
Davis Cup Finals QF: SRB vs KAZ22100.0%

Source breakdown

SourceMatch count
sackmann413,569
itf36,188
atp19,528

Fill failures

Total failures 75
Resolved 68
Unresolved 7

By reason

ReasonTotalResolvedUnresolved
no_canonical_match71656
player_resolution431

Recent unresolved

Player APlayer BCompetitionReasonScan date
Svyatoslav GulinDenys KlokShymkent Challenger 2026no_canonical_match2026-04-26
Blake EllisRigele TeJiujiang Challenger 2026no_canonical_match2026-04-26
Oleg PrihodkoAlexandr BindaShymkent Challenger 2026no_canonical_match2026-04-26
Manas DhamneNikita BelozertsevShymkent Challenger 2026player_resolution2026-04-26
Diego Dedura-PalomeroBilly HarrisMauthausen Challenger 2026no_canonical_match2026-04-26
Maxim ShinDenys KlokShymkent Challenger 2026no_canonical_match2026-04-25
Tai Leonard SachHayato MatsuokaGwangju Challenger 2026no_canonical_match2026-04-18

Canonical overrides

KindSourceExpected nameReasonCreated
playeratpAlex de Minaur835: ATP bootstrap dup Alex De Minaur (10007632) vs TML Alex de Minaur (10013677) -- pin ATP to TML canonical2026-04-26 18:25
playeratpMackenzie McDonald835: ATP bootstrap dup Mackenzie Mcdonald (10001890) vs TML Mackenzie McDonald (10013601) -- pin ATP to TML canonical2026-04-26 18:25
playeratpJesper de Jong835: ATP bootstrap dup Jesper De Jong (10009200) vs TML Jesper de Jong (10013597) -- pin ATP to TML canonical2026-04-26 18:25
playeratpBotic van de Zandschulp835: ATP bootstrap dup Botic Van De Zandschulp (10003782) vs TML Botic van de Zandschulp (10013646) -- pin ATP to TML canonical2026-04-26 18:25
playersackmannAlbert Ramos-VinolasSackmann short-name dup: Albert Ramos (sack:105077, 973 matches) is Albert Ramos-Vinolas (atp:r772, 27 matches)2026-04-26 18:25
playersackmannRicardo Rodriguez - PaceSackmann short-name dup: Ricardo Rodriguez (sack:106175, 727 matches) is Ricardo Rodriguez - Pace (atp:rb00)2026-04-26 18:25
playersackmannVictor Estrella BurgosSackmann short-name dup: Victor Estrella (sack:103607, 503 matches) is Victor Estrella Burgos (atp:e224)2026-04-26 18:25
playersackmannJose Hernandez-FernandezSackmann short-name dup: Jose Hernandez (sack:105497, 498 matches) is Jose Hernandez-Fernandez (atp:h896)2026-04-26 18:25
playersackmannRoberto Cid SuberviSackmann short-name dup: Roberto Cid (sack:106232, 482 matches) is Roberto Cid Subervi (atp:cf88, 38 matches)2026-04-26 18:25
playersackmannAlex Bogomolov Jr.Sackmann short-name dup: Alex Bogomolov Jr (sack:104166) is Alex Bogomolov Jr. (atp:b842, 326 matches) -- period-only diff2026-04-26 18:25
playersackmannArklon Huertas Del Pino CordovaSackmann short-name dup: Arklon Huertas Del Pino (sack:207736, 252 matches) is Arklon Huertas Del Pino Cordova (atp:h0c9, 37 matches)2026-04-26 18:25
playersackmannIgnacio Parisca RomeraSackmann short-name dup: Ignacio Parisca (sack:212306, 124 matches) is Ignacio Parisca Romera (atp:p0i5)2026-04-26 18:25
playersackmannDaniel MeridaSackmann long-name dup: Daniel Merida Aguilar (sack:210017, 226 matches pre-2025) is Daniel Merida (atp:m0n7, 101 matches 2025+)2026-04-26 18:25
playersackmannMarcelo ZormannSackmann long-name dup: Marcelo Zormann Da Silva (sack:110774, 264 matches pre-2025) is Marcelo Zormann (atp:z363, 3 matches 2025+)2026-04-26 18:25
playersackmannAmr ElsayedSackmann long-name dup: Amr Elsayed Abdou Ahmed Mohamed (sack:209871, 175 matches pre-2025) is Amr Elsayed (atp:a0g8, 77 matches 2025+)2026-04-26 18:25
playersackmannJordan CorreiaSackmann long-name dup: Jordan Correia Passos Do Carmo (sack:144756, 187 matches pre-2025) is Jordan Correia (atp:cn08, 3 matches 2025+)2026-04-26 18:25
playersackmannYounes LalamiSackmann long-name dup: Younes Lalami Laaroussi (sack:207794, 61 matches pre-2025) is Younes Lalami (atp:l0ck, 71 matches 2025+)2026-04-26 18:25
playersackmannDiego DeduraSackmann long-name dup: Diego Dedura Palomero (sack:212309, 79 matches pre-2025) is Diego Dedura (atp:d0lj, 56 matches 2025+)2026-04-26 18:25
playersackmannDaniel SalazarSackmann long-name dup: Daniel Salazar Martinez (sack:202369, 37 matches pre-2025) is Daniel Salazar (atp:s0gm, 71 matches 2025+)2026-04-26 18:25
playersackmannNicolas VillalonSackmann long-name dup: Nicolas Villalon Valdes (sack:211477, 88 matches pre-2025) is Nicolas Villalon (atp:v0f6, 40 matches 2025+)2026-04-26 18:25
playersackmannLuis Carlos AlvarezSackmann long-name dup: Luis Carlos Alvarez Valdes (sack:211468, 46 matches pre-2025) is Luis Carlos Alvarez (atp:a0iy, 17 matches 2025+)2026-04-26 18:25
playersackmannJohan Alexander RodriguezSackmann long-name dup: Johan Alexander Rodriguez Rodriguez (sack:208909, 101 matches) is Johan Alexander Rodriguez (atp:r0f1, 29 matches 2025+)2026-04-26 18:25
playersackmannMichael QuinteroSackmann long-name dup: Michael Quintero Aguilar (sack:209376, 7 matches) is Michael Quintero (sack:103590 + atp:q017, 193 matches)2026-04-26 18:25
playersackmannDarrshan SureshSackmann long-name dup: Darrshan Suresh Kumar (sack:212578, 2 matches) is Darrshan Suresh (sack:207559 + atp:s0gg, 77 matches)2026-04-26 18:25
playersackmannYi ZhouSackmann long-name dup: Yi Zhou Liu (sack:207528, 1 match) is Yi Zhou (atp:z0cq, 154 matches)2026-04-26 18:25
playersackmannArkadiusz KocylaSackmann data corruption: 'Arkadiusz Kocyla Kd20' (sack:106258) has ATP ID 'Kd20' embedded in name -- same as Arkadiusz Kocyla (sack:111177 + atp:kd20, 118 matches)2026-04-26 18:25
playeritfJustin RobertsITF typo: 'Justin Robertsm' (itf:800602232, 9 matches) is Justin Roberts (sack:134490 + atp:rh17, 201 matches) -- trailing 'm' is garbage in raw ITF CSV2026-04-26 18:25
playersackmannDimitar GrabulSackmann truncation dup: Dimitar Grabuloski (sack:103872, 126 matches) is Dimitar Grabul (atp:g580) -- ATP truncated surname2026-04-26 18:25
playeratpMiloslav Mecir JrATP name-variant dup: Miloslav Mecir (atp:mf36) is Miloslav Mecir Jr (sack:105080, DOB:1988-01-20) -- ATP drops 'Jr', father is sack:101036 (DOB:1964)2026-04-26 18:25
playersackmannJaime Fermosell DelgadoSackmann double-entry dup: Jaime Fermosell (sack:126744) and Jaime Fermosell Delgado (sack:126222, atp:fa33) share DOB 1997-12-06 ESP -- same person, two sackmann IDs2026-04-26 18:25
playersackmannMubarak Shannan ZayidSackmann long-name dup: Mubarak Shannan Zayid Alharrasi (sack:212512, 9 matches QAT) is Mubarak Shannan Zayid (sack:122570, DOB:1995-04-14 QAT, 89 matches) -- tribal name variant2026-04-26 18:25
playersackmannNils BrinkmannSackmann truncation dup: Nils Brinkman (sack:121777, 93 matches) is Nils Brinkmann (atp:bj48) -- missing final 'n'2026-04-26 18:25
playersackmannPruchya IsaroSackmann truncation dup: Pruchya Isarow (sack:111181, 213 matches) is Pruchya Isaro (atp:i326) -- trailing 'w' in sackmann2026-04-26 18:25
playersackmannInigo Cervantessackmann/atp name mismatch: Inigo Cervantes Huegun (sack:105438) is Inigo Cervantes (atp:ca33) β€” dropped 'Huegun'2026-04-26 18:25
playersackmannSoonwoo Kwonsackmann/atp name mismatch: Soon Woo Kwon (sack:126952) is Soonwoo Kwon (atp:kf17) β€” spacing2026-04-26 18:25
playersackmannGonzalo Oliveirasackmann/atp name mismatch: Goncalo Oliveira (sack:123819) is Gonzalo Oliveira (atp:o482) β€” spelling2026-04-26 18:25
playersackmannRubin Stathamsackmann/atp name mismatch: Jose Rubin Statham (sack:104907) is Rubin Statham (atp:sf89) β€” dropped 'Jose'2026-04-26 18:25
playersackmannMukund Sasikumarsackmann/atp name mismatch: Sasi Kumar Mukund (sack:124154) is Mukund Sasikumar (atp:mp13) β€” name reorder + spacing2026-04-26 18:25
playersackmannDuckhee Leesackmann/atp name mismatch: Duck Hee Lee (sack:117353) is Duckhee Lee (atp:le01) β€” spacing2026-04-26 18:25
playersackmannFred Gilsackmann/atp name mismatch: Frederico Gil (sack:104523) is Fred Gil (atp:g717) β€” Frederico β†’ Fred2026-04-26 18:25
playersackmannJ.J. Wolfsackmann/atp name mismatch: J J Wolf (sack:200670) is J.J. Wolf (atp:w09g) β€” formatting (real name Jeffrey John Wolf)2026-04-26 18:25
playersackmannYun seong Chungsackmann/atp name mismatch: Yunseong Chung (sack:126283) is Yun seong Chung (atp:ch90) β€” spacing2026-04-26 18:25
playersackmannSantiago Rodriguez Tavernasackmann/atp name mismatch: Santiago Fa Rodriguez Taverna (sack:144973) is Santiago Rodriguez Taverna (atp:rh59) β€” dropped 'Fa'2026-04-26 18:25
playersackmannSeongchan Hongsackmann/atp name mismatch: Seong Chan Hong (sack:111805) is Seongchan Hong (atp:hc21) β€” spacing2026-04-26 18:25
playersackmannJiSung Namsackmann/atp name mismatch: Ji Sung Nam (sack:106227) is JiSung Nam (atp:n652) β€” spacing2026-04-26 18:25
playersackmannYunchaokete Busackmann/atp name mismatch: Bu Yunchaokete (sack:207352) is Yunchaokete Bu (atp:y09v) β€” name order reversed2026-04-26 18:25
playersackmannMurkel Delliensackmann/atp name mismatch: Murkel Alejandro Dellien Velasco (sack:123961) is Murkel Dellien (atp:dc48) β€” dropped middle/last2026-04-26 18:25
playersackmannAbdullah Shelbayhsackmann/atp name mismatch: Abedallah Shelbayh (sack:209406) is Abdullah Shelbayh (atp:s0nv) β€” Abedallah β†’ Abdullah2026-04-26 18:25
playersackmannAlafia Ayenisackmann/atp name mismatch: Olukayode Alafia Damina Ayeni (sack:200366) is Alafia Ayeni (atp:a09p) β€” shortened2026-04-26 18:25
playersackmannMiloslav Mecirsackmann/atp name mismatch: Miloslav Mecir Jr (sack:105080) is Miloslav Mecir (atp:mf36) β€” dropped Jr suffix2026-04-26 18:25
Clunter β€” AI-powered tennis betting tips & tracking
Model: WElo + serve stats | Exchange: Betfair