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 2026

Tournament Matches β–ΌServe stats Coverage
Australian Open23512452.8%
M15 Monastir14800.0%
Indian Wells13112998.5%
Miami131131100.0%
M15 Sharm ElSheikh13000.0%
M15 Villena12900.0%
M15 Maanshan12300.0%
M15 Heraklion11200.0%
Madrid1119484.7%
M15 Sharm ElSheikh11100.0%
M15 Antalya10800.0%
M15 Maanshan10700.0%
M15 Monastir10600.0%
M15 Monastir10400.0%
M15 Naples, FL10300.0%
M15 Heraklion10100.0%
M25 Maanshan10000.0%
M25 Vila Real de Santo AntΓ³nio10000.0%
Nonthaburi989799.0%
Oeiras989495.9%
Phan Thiet989698.0%
Brisbane#2967989799.0%
Kigali989698.0%
Hersonissos9898100.0%
M15 Monastir9800.0%
Tigre9696100.0%
M25 Santa Margherita di Pula9600.0%
M25 Winston-Salem, NC9600.0%
Wuning9595100.0%
Tenerife949398.9%
M15 Hyderabad9200.0%
M15 Hurghada9100.0%
M25 Monastir9000.0%
M15 Monastir8900.0%
M15 Sharm ElSheikh8800.0%
M25 Monastir8500.0%
M15 Sharm ElSheikh8200.0%
M15 Manacor8000.0%
M25 Antalya7900.0%
M15 Punta del Este7900.0%
M25 Monastir7800.0%
M25 Sharm ElSheikh7700.0%
Monte Carlo767598.7%
M15 Huamantla7600.0%
M15 Zahra7400.0%
Shymkent706998.6%
M15 Antalya6700.0%
M25 Santiago6600.0%
M15 Sharm ElSheikh6400.0%
M25 Tarragona6400.0%
M25 Reus6200.0%
M15 Rovinj6100.0%
M25 Heraklion6100.0%
M25 Badalona5900.0%
M25 Nussloch5900.0%
M25 Chennai5900.0%
M15 Porec5800.0%
M15 Opatija5800.0%
M15 Almoradi5800.0%
M15 Oberhaching5600.0%
Abidjan535298.1%
M15 La Plata5300.0%
M15 Kashiwa5100.0%
M15 The Hague5100.0%
M15 Torello5000.0%
M15 Naples, FL5000.0%
M15 Sunrise, FL5000.0%
Brisbane494795.9%
Barcelona494795.9%
Bengaluru494387.8%
Canberra494898.0%
Noumea4949100.0%
Nottingham4949100.0%
Buenos Aires#1210494795.9%
Glasgow4949100.0%
Itajai494693.9%
Soma Bay494898.0%
Manama494898.0%
Quimper4949100.0%
San Diego4949100.0%
Concepcion494898.0%
Rosario4949100.0%
Koblenz4949100.0%
Cesenatico494898.0%
Pau494795.9%
Lille494898.0%
Metepec4949100.0%
New Delhi494898.0%
St Brieuc494898.0%
Lugano4949100.0%
Thionville4949100.0%
Brasilia4949100.0%
Santiago#3406494898.0%
Cherbourg494898.0%
Morelos494898.0%
Murcia4949100.0%
Zadar4949100.0%
Morelia494795.9%
Naples494898.0%
Sao Paulo494795.9%
Alicante494898.0%
Bucaramanga494795.9%
Yokkaichi494898.0%
Menorca4949100.0%
San Luis Potosi4949100.0%
Sao Leopoldo4949100.0%
Barletta4949100.0%
Miyazaki494795.9%
Mexico City4949100.0%
Monza4949100.0%
Campinas494898.0%
Sarasota494898.0%
Madrid#9687494795.9%
Busan494898.0%
Oeiras#95144949100.0%
Santa Cruz4949100.0%
Tallahassee494898.0%
Gwangju494898.0%
Savannah4949100.0%
Rome#2151494898.0%
M25 Toulouse-Balma4900.0%
M25 Mumbai4900.0%
M25 Trento4900.0%
M25 Pszczyna4900.0%
Cleveland484797.9%
Baton Rouge484797.9%
Split4848100.0%
M15 San Jose4800.0%
M15 Javea4800.0%
M25 Hazebrouck4800.0%
M25 Saint-Dizier4800.0%
M25 Heraklion4800.0%
M25 Santa Margherita di Pula4800.0%
M15 Nishi-Tokyo4800.0%
M15 Palm Coast, FL4800.0%
Chennai474697.9%
Pune474697.9%
M15 Dubrovnik4700.0%
M25 Creteil4700.0%
M15 Heraklion4700.0%
M15 Orlando4700.0%
M15 Manacor4600.0%
M15 CEUTA4600.0%
M15 Hinode4600.0%
M15 Boca Raton4600.0%
M15 Foggia4500.0%
M15 Tsukuba4500.0%
M25 Faro4500.0%
M25 Las Vegas, NV4500.0%
Asuncion444295.5%
M25 Kolkata4400.0%
M25 Vale do Lobo4400.0%
M15 Pretoria4400.0%
M15 Monastir4400.0%
M25 Antalya4400.0%
Dallas4343100.0%
Rotterdam4343100.0%
Doha434297.7%
Rio De Janeiro4343100.0%
Dubai434297.7%
Acapulco434093.0%
Munich434297.7%
M25 Yerba Buena4200.0%
M15 Ahmedabad4100.0%
M25 Antalya4100.0%
M25 Launceston4000.0%
M25 San Jose4000.0%
M15 Cadolzburg4000.0%
Hong Kong3939100.0%
Adelaide393897.4%
Auckland3939100.0%
Montpellier393897.4%
Buenos Aires3939100.0%
Delray Beach3939100.0%
Santiago3939100.0%
Houston3939100.0%
Marrakech393794.9%
Bucharest3939100.0%
Phoenix393794.9%
Cap Cana3939100.0%
M25 Sheffield3900.0%
M15 Altamura3900.0%
M15 Montreal3800.0%
M15 Oslo3800.0%
M15 Singapore3800.0%
M25 Trimbach3800.0%
M15 Lannion3700.0%
M15 Bagnoles de l'Orne +H3700.0%
M15 Antalya3700.0%
M25 Bakersfield, CA3700.0%
M25 Burnie3600.0%
M15 Sherbrooke3500.0%
M25 Anning3500.0%
M15 Bressuire3500.0%
M25 Glasgow3500.0%
M15 Poitiers3400.0%
Davis Cup Qualifiers 1St Rd3300.0%
M15 Monastir3300.0%
M15 Wodonga3200.0%
M15 Swan Hill3000.0%
Perth Sydney25936.0%
Mauthausen2323100.0%
Ostrava222195.5%
Jiujiang2121100.0%
M25 Timaru1900.0%
Fujairah1414100.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