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 2020

Tournament Matches β–ΌServe stats Coverage
Roland Garros239239100.0%
Australian Open23923899.6%
Us Open127127100.0%
Rome Masters107107100.0%
Prague CH989698.0%
Bangkok CH9898100.0%
Bendigo CH9898100.0%
Cincinnati Masters9191100.0%
Atp Cup8686100.0%
Paris Masters767598.7%
M15 Santo Domingo6200.0%
M15 Cairo6200.0%
M15 Sharm El Sheikh6200.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 Manacor6200.0%
M15 Heraklion6200.0%
M15 Heraklion6200.0%
M15 Heraklion6200.0%
M25 Aktobe6200.0%
M15 Cancun6200.0%
M15 Cancun6200.0%
M15 Cancun6200.0%
M25 Lima6200.0%
M15 Sintra6200.0%
M25 Nonthaburi6200.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 Heraklion6100.0%
M15 Antalya6100.0%
M15 Monastir5700.0%
M15 Antalya5600.0%
Cherbourg CH4949100.0%
Dallas CH4949100.0%
Noumea CH4949100.0%
Rennes CH4949100.0%
Burnie CH4949100.0%
Quimper CH494898.0%
Cuernavaca CH4949100.0%
Launceston CH4949100.0%
Drummondville CH4949100.0%
Ann Arbor CH4949100.0%
Koblenz CH494898.0%
Bengaluru CH4949100.0%
Newport Beach CH4949100.0%
Indian Wells CH4949100.0%
Punta Del Este CH4949100.0%
Calgary CH4949100.0%
Cleveland CH4949100.0%
Pau CH4949100.0%
M15 Sharm El Sheikh4900.0%
Monterrey CH4848100.0%
Columbus CH484797.9%
Bergamo CH4747100.0%
Kitzbuhel4545100.0%
Hamburg4343100.0%
Dubai4343100.0%
Delray Beach4343100.0%
Prostejov CH4343100.0%
St Petersburg4343100.0%
Ostrava CH4343100.0%
Cordenons CH4343100.0%
Sibiu CH4343100.0%
Aix En Provence CH4343100.0%
Istanbul CH4343100.0%
Cary CH434195.3%
Guayaquil CH4343100.0%
Lisbon CH4343100.0%
Ismaning CH4343100.0%
Marbella CH4343100.0%
Alicante CH4343100.0%
Hamburg CH434297.7%
Maia CH434297.7%
Iasi CH4343100.0%
Barcelona CH4343100.0%
Orlando CH4343100.0%
Parma CH4343100.0%
Acapulco4343100.0%
Vienna4242100.0%
Ortisei CH424197.6%
Campinas CH423071.4%
Todi CH4242100.0%
Trieste CH4242100.0%
Forli CH4242100.0%
Parma CH424197.6%
Rotterdam414097.6%
ATP Rio de Janeiro4141100.0%
Biella CH4141100.0%
Split CH4141100.0%
Eckental CH4040100.0%
Bratislava CH403895.0%
Sao Paulo CH4040100.0%
Montpellier3939100.0%
New York3939100.0%
Doha3939100.0%
Marseille3939100.0%
Buenos Aires393897.4%
Pune393897.4%
Sofia3939100.0%
Antwerp393897.4%
Cordoba3939100.0%
Cologne 13939100.0%
Cologne 23939100.0%
Sardinia3939100.0%
Nur-Sultan3939100.0%
Nur-Sultan CH383489.5%
Santiago3838100.0%
Adelaide3838100.0%
Auckland3737100.0%
Lima CH3737100.0%
Potchefstroom CH3232100.0%
M25 Rio Cuarto3100.0%
M25 Hurlingham3100.0%
M25 Mildura3100.0%
M15 Anif3100.0%
M25 Prague3100.0%
M25 Jablonec Nad Nisou3100.0%
M25 Pardubice3100.0%
M15 Cairo3100.0%
M15 Sharm El Sheikh3100.0%
M15 Cairo3100.0%
M15 Palmanova3100.0%
M15 Paguera3100.0%
M25 Murcia3100.0%
M15 Melilla3100.0%
M15 Benicarlo3100.0%
M15 Madrid3100.0%
M15 Valldoreix3100.0%
M15 Torello3100.0%
M15 Villena3100.0%
M15 Parnu3100.0%
M15+H Bagnoles-de-l'Orne3100.0%
M15+H Bressuire3100.0%
M15 Veigy-Foncenex3100.0%
M15 Grenoble3100.0%
M15 Toulouse3100.0%
M15 Forbach3100.0%
M25+H Rodez3100.0%
M25 Barnstaple3100.0%
M25 Glasgow3100.0%
M25 Sunderland3100.0%
M25 Nussloch3100.0%
M15 Oberhaching3100.0%
M25 Hamburg3100.0%
M15 Heraklion3100.0%
M15 Hong Kong3100.0%
M25 Trento3100.0%
M15 Alkmaar3100.0%
M25 Poznan3100.0%
M15 Vale Do Lobo3100.0%
M15 Faro3100.0%
M15 Castelo Branco3100.0%
M25 Porto3100.0%
M15 Setubal3100.0%
M25 Vale do Lobo3100.0%
M15 Quinta Do Lago3100.0%
M15 Bucharest3100.0%
M15 Curtea de Arges3100.0%
M25 Potchefstroom3100.0%
M15 Kazan3100.0%
M25 Klosters3100.0%
M15 Caslano3100.0%
M15 Trnava3100.0%
M15 Bratislava3100.0%
M15 Monastir3100.0%
M15 Antalya3100.0%
M25 Antalya3100.0%
M15 Novomoskovsk3100.0%
M25 Punta del Este3100.0%
M25 Los Angeles CA3100.0%
M25 Rancho Santa Fe CA3100.0%
M25 Weston FL3100.0%
M25 Palm Coast FL3100.0%
M25 Naples FL3100.0%
M25 Las Vegas NV3100.0%
M15 Fayetteville AR3100.0%
M25+H Plaisir3000.0%
M25 Geelong2400.0%
M15 Porec2400.0%
M15 Sarreguemines2400.0%
M15 Heraklion2400.0%
M15 Kolkata2400.0%
M15 Loule2400.0%
M15 Doha2400.0%
M15 Kazan2400.0%
M15 Cancun1900.0%
Tour Finals1515100.0%
Davis Cup QLS R1: BEL vs HUN44100.0%
Davis Cup QLS R1: GER vs BLR44100.0%
Davis Cup WG1 PO: MEX vs FIN44100.0%
Davis Cup WG1 PO: UKR vs TPE44100.0%
Davis Cup WG2 PO: CRC vs BUL400.0%
Davis Cup WG2 PO: DEN vs PUR400.0%
Davis Cup WG2 PO: GEO vs EST400.0%
Davis Cup WG2 PO: LAT vs EGY400.0%
Davis Cup WG2 PO: PHI vs GRE400.0%
Davis Cup QLS R1: ARG vs COL33100.0%
Davis Cup QLS R1: AUS vs BRA33100.0%
Davis Cup QLS R1: AUT vs URU33100.0%
Davis Cup QLS R1: CRO vs IND33100.0%
Davis Cup QLS R1: CZE vs SVK33100.0%
Davis Cup QLS R1: KAZ vs NED33100.0%
Davis Cup QLS R1: SWE vs CHI33100.0%
Davis Cup QLS R1: USA vs UZB33100.0%
Davis Cup WG1 PO: BIH vs RSA33100.0%
Davis Cup WG1 PO: BOL vs DOM33100.0%
Davis Cup WG1 PO: LBN vs THA33100.0%
Davis Cup WG1 PO: LTU vs POR33100.0%
Davis Cup WG1 PO: NOR vs BAR33100.0%
Davis Cup WG1 PO: PER vs SUI33100.0%
Davis Cup WG1 PO: TUR vs ISR33100.0%
Davis Cup WG1 PO: VEN vs NZL33100.0%
Davis Cup WG2 PO: ESA vs JAM300.0%
Davis Cup WG2 PO: GUA vs TUN300.0%
Davis Cup WG2 PO: INA vs KEN300.0%
Davis Cup WG2 PO: MAR vs VIE300.0%
Davis Cup WG2 PO: PAR vs SRI300.0%
Davis Cup WG2 PO: POL vs HKG300.0%
Davis Cup WG2 PO: SYR vs ZIM300.0%
Davis Cup QLS R1: JPN vs ECU22100.0%
Davis Cup WG1 PO: PAK vs SLO22100.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