Data

Coverage

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

Coverage by year

YearMatchesWith serve statsCoverage
20265,8905,41892.0%
202514,06713,24694.2%
202434,08114,29742.0%
202332,45213,44741.4%
202230,70812,70341.4%
202122,90410,09744.1%
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 2025

Tournament Matches β–ΌServe stats Coverage
Australian Open23912753.1%
Roland Garros23912552.3%
Wimbledon23912753.1%
US Open23912652.7%
Indian Wells13112998.5%
Miami13111890.1%
Madrid13112796.9%
Rome13112897.7%
Cincinnati13112998.5%
Shanghai13112897.7%
Montreal11111099.1%
Monte Carlo7676100.0%
Paris767497.4%
Washington646296.9%
Winston Salem595796.6%
Barcelona494898.0%
Nonthaburi#2795494898.0%
Nottingham4949100.0%
Oeiras494898.0%
Oeiras#28334949100.0%
Nonthaburi#2801494898.0%
Tigre4949100.0%
Quimper4949100.0%
Koblenz494898.0%
Brisbane#29674949100.0%
Rosario494898.0%
Lille494898.0%
Brisbane#29694949100.0%
Manama494795.9%
New Delhi4949100.0%
Pau494898.0%
Pune494898.0%
Glasgow494898.0%
Bengaluru4949100.0%
San Diego4949100.0%
Lugano494795.9%
Cordoba494795.9%
Thionville494898.0%
Cherbourg4949100.0%
Hersonissos#2985494898.0%
Zadar494795.9%
Naples494898.0%
Girona4949100.0%
Concepcion494795.9%
Campinas4949100.0%
Mexico City4949100.0%
Madrid#96874949100.0%
Monza494795.9%
Sarasota494898.0%
Oeiras#9514494693.9%
Tallahassee494898.0%
Savannah4949100.0%
San Miguel De Tucuman494898.0%
Guangzhou4949100.0%
Ostrava4949100.0%
Wuxi4949100.0%
Francavilla Al Mare4949100.0%
Prague494898.0%
Skopje494898.0%
Little Rock494898.0%
Vicenza494795.9%
Chisinau494898.0%
Birmingham4949100.0%
Heilbronn Bad Rappenau494795.9%
Prostejov494898.0%
Tyler494693.9%
Ilkley4949100.0%
Bratislava4949100.0%
Nottingham#7740493979.6%
Royan493775.5%
Brasov4949100.0%
Modena494898.0%
Troyes4949100.0%
Newport4949100.0%
Iasi4949100.0%
Winnipeg494795.9%
Nottingham#3007494898.0%
San Marino494898.0%
Granby494898.0%
Bunschoten4949100.0%
Pozoblanco4949100.0%
Zug4949100.0%
Bloomfield Hills494898.0%
Tampere494898.0%
Porto4949100.0%
Lexington494693.9%
Hagen494898.0%
Liberec4949100.0%
Chicago494898.0%
Bonn494898.0%
Sofia494898.0%
Sofia#2945494898.0%
Zhangjiagang494693.9%
Como4949100.0%
Seville494898.0%
Shanghai#6313494795.9%
Istanbul4949100.0%
Cassis4949100.0%
Winston Salem#30114949100.0%
Targu Mures4949100.0%
Saint Tropez494898.0%
Columbus4949100.0%
Villa Maria494898.0%
Targu Mures#30234949100.0%
Orleans494898.0%
Jingshan494898.0%
Buenos Aires#73954949100.0%
Villena4949100.0%
Antofagasta494898.0%
Tiburon4949100.0%
Mouilleron Le Captif4949100.0%
Jinan4949100.0%
Valencia4949100.0%
Roanne4949100.0%
Shenzhen494795.9%
Hersonissos#3029494898.0%
Hamburg#8297494898.0%
Seoul493775.5%
Charlottesville494081.6%
Helsinki494898.0%
Knoxville4949100.0%
Brisbane#3037494898.0%
Bergamo494898.0%
Sydney494795.9%
Maia494795.9%
Playford494898.0%
Piracicaba484797.9%
Tenerife#2839484593.8%
Kigali484797.9%
Kigali#29154848100.0%
Santiago#3406484797.9%
Asuncion484797.9%
Merida484593.8%
Murcia484593.8%
Morelia484695.8%
Menorca484695.8%
Barletta484593.8%
Busan4848100.0%
San Luis Potosi484797.9%
Gwangju484593.8%
Santos4848100.0%
Tunis484797.9%
Bogota484797.9%
Tbilisi484695.8%
Perugia4848100.0%
Lyon#75364848100.0%
Santa Fe4848100.0%
Poznan483981.3%
Santa Cruz484185.4%
Braunschweig484797.9%
Trieste4848100.0%
Segovia484797.9%
Astana4848100.0%
Cordenons484695.8%
Grodzisk Mazowiecki484797.9%
Hersonissos#3017484695.8%
Hersonissos#3019484797.9%
Porto#29334848100.0%
Manacor484797.9%
Genoa484797.9%
Rennes4848100.0%
Bad Waltersdorf484593.8%
Lisbon484695.8%
Las Vegas4848100.0%
Braga4848100.0%
Cali4848100.0%
Hersonissos#3025484593.8%
Olbia484797.9%
Costa Do Sauipe484797.9%
Sioux Falls4848100.0%
Brest4848100.0%
Suzhou484491.7%
Monastir484695.8%
Taipei4848100.0%
Lima#65794848100.0%
Champaign484797.9%
Drummondville484797.9%
Kobe484797.9%
Lyon#29634848100.0%
Alicante484797.9%
Bogota#30414848100.0%
Manama#3045484797.9%
Punta Del Este4747100.0%
Chennai4747100.0%
Morelos4747100.0%
Abidjan#2997474697.9%
Rome#2151474595.7%
Porto Alegre474493.6%
Oeiras#28714700.0%
Zagreb4747100.0%
Parma474289.4%
Milan474595.7%
Lima474697.9%
Cary4747100.0%
Barranquilla474493.6%
Todi474697.9%
Tulln474697.9%
Szczecin4747100.0%
Biella474595.7%
Fairfield4747100.0%
Curitiba4747100.0%
Lincoln4747100.0%
Matsuyama4747100.0%
Montevideo474595.7%
Oeiras#2979464597.8%
Abidjan464495.7%
Guangzhou#2937464597.8%
Bratislava#444464495.7%
Guayaquil4646100.0%
Yokohama464597.8%
Soma Bay4646100.0%
Cleveland454497.8%
Tenerife454395.6%
Mauthausen454497.8%
Augsburg454497.8%
Florianopolis4545100.0%
Hersonissos4444100.0%
Lima#3049443579.5%
Dallas4343100.0%
Rotterdam4343100.0%
Doha434297.7%
Rio De Janeiro4343100.0%
Dubai4343100.0%
Acapulco434195.3%
Munich4343100.0%
Hamburg434297.7%
Halle4343100.0%
London4343100.0%
Tokyo4343100.0%
Beijing434297.7%
Vienna434297.7%
Athens#3043434297.7%
Basel413995.1%
Temuco403895.0%
Adelaide393794.9%
Auckland3939100.0%
Montpellier393794.9%
Lyon393794.9%
Delray Beach393692.3%
Buenos Aires393692.3%
Santiago3939100.0%
Houston393794.9%
Bucharest3939100.0%
Marrakech393897.4%
Geneva3939100.0%
Stuttgart3939100.0%
S Hertogenbosch393794.9%
Mallorca393897.4%
Eastbourne3939100.0%
Los Cabos393897.4%
Bastad3939100.0%
Gstaad3939100.0%
Umag3939100.0%
Kitzbuhel3939100.0%
Chengdu393897.4%
Hangzhou393794.9%
Almaty393897.4%
Brussels393897.4%
Stockholm3939100.0%
Athens3939100.0%
Metz393794.9%
Phoenix393692.3%
Estoril3939100.0%
Aix En Provence393897.4%
Bordeaux393897.4%
Turin3939100.0%
Cancun393897.4%
Cap Cana373594.6%
Sumter3737100.0%
Brazzaville3030100.0%
Islamabad3030100.0%
Nitto Atp Finals1515100.0%
Next Gen Atp Finals1515100.0%
Laver Cup99100.0%

Source breakdown

SourceMatch count
sackmann414,983
atp70,585

Fill failures

Total failures 173
Resolved 159
Unresolved 14

By reason

ReasonTotalResolvedUnresolved
no_canonical_match16415014
player_resolution990

Recent unresolved

Player APlayer BCompetitionReasonScan date
Jody MaginleyMatteo CovatoBrazzaville Challenger 2026no_canonical_match2026-05-05
Brandon PerezYounes LalamiBrazzaville Challenger 2026no_canonical_match2026-05-05
Joao SchiesslGustavo AlbieriSantos Challenger 2026no_canonical_match2026-05-05
Aditya Vishal BalsekarGray VoelzkeBrazzaville Challenger 2026no_canonical_match2026-05-05
Bernard TomicAlafia AyeniWuxi Challenger 2026no_canonical_match2026-05-05
Jody MaginleyLenny PetitBrazzaville Challenger 2026no_canonical_match2026-05-04
Soonwoo KwonKaichi UchidaWuxi Challenger 2026no_canonical_match2026-05-04
Bruno FernandezHenrique Ortenblad NoguSantos Challenger 2026no_canonical_match2026-05-03
Gabriel SchenekenbergJoao Vitor Scramin Do LSantos Challenger 2026no_canonical_match2026-05-03
Blake EllisRigele TeJiujiang Challenger 2026no_canonical_match2026-04-26
Luca Van AsscheDusan LajovicAix-en-Provence Challenger 2026no_canonical_match2026-04-28
Rei SakamotoGianluca CadenassoCagliari Challenger 2026no_canonical_match2026-04-28
Nicolas Villalon ValdesVictor BragaSantos Challenger 2026no_canonical_match2026-05-03
Rai Vicente De AraujoFermin TentiSantos Challenger 2026no_canonical_match2026-05-03

Canonical overrides

KindSourceExpected nameReasonCreated
playeratpJesper de Jong835: ATP bootstrap dup Jesper De Jong (10009200) vs TML Jesper de Jong (10013597) -- pin ATP to TML canonical2026-05-02 07:57
playeratpAlex de Minaur835: ATP bootstrap dup Alex De Minaur (10007632) vs TML Alex de Minaur (10013677) -- pin ATP to TML canonical2026-05-02 07:57
playeratpMackenzie McDonald835: ATP bootstrap dup Mackenzie Mcdonald (10001890) vs TML Mackenzie McDonald (10013601) -- pin ATP to TML canonical2026-05-02 07:57
playeratpBotic van de Zandschulp835: ATP bootstrap dup Botic Van De Zandschulp (10003782) vs TML Botic van de Zandschulp (10013646) -- pin ATP to TML canonical2026-05-02 07:57
playeratpAlexandr BindaAlexandr/Alexander Binda spelling variant2026-05-02 07:57
playeratpSeungri ChoiName variant: Seung Ri Choi is same person as Seungri Choi (registry merge, confirmed no same-day matches)2026-05-02 07:57
playeratpDiego Dedura PalomeroDiego Dedura Palomero / Diego Dedura name variant2026-05-02 07:57
playeratpNicolo InserraName variant: Niccolo Inserra is same person as Nicolo Inserra (registry merge, confirmed no same-day matches)2026-05-02 07:57
playeratpHogi KangName variant: Ho Gi Kang is same person as Hogi Kang (registry merge, confirmed no same-day matches)2026-05-02 07:57
playeratpDenys KlokDenys/Denis Klok spelling variant2026-05-02 07:57
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-05-02 07:57
playeratpJi Sung NamName variant: Jisung Nam is same person as Ji Sung Nam (registry merge, confirmed no same-day matches)2026-05-02 07:57
playeratpPaul C OosterbaanName variant: Paul Oosterbaan is same person as Paul C Oosterbaan (registry merge, confirmed no same-day matches)2026-05-02 07:57
playeratpJ J WolfJ J Wolf / J.J. Wolf punctuation variant2026-05-02 07:57
playeratpRuixuan WangName variant: Rui Xuan Wang is same person as Ruixuan Wang (registry merge, confirmed no same-day matches)2026-05-02 07:57
playeratpCheng Yu YuName variant: Ching Mou Yu is same person as Cheng Yu Yu (registry merge, confirmed no same-day matches)2026-05-02 07:57
playeratpWeiqiang ZhengName variant: Wei Qiang Zheng is same person as Weiqiang Zheng (registry merge, confirmed no same-day matches)2026-05-02 07:57
playeratp_shortAlexandr BindaAlexandr/Alexander Binda spelling variant2026-05-02 07:57
playeratp_shortSeungri ChoiName variant: Seung Ri Choi is same person as Seungri Choi (registry merge, confirmed no same-day matches)2026-05-02 07:57
playeratp_shortDiego Dedura PalomeroDiego Dedura Palomero / Diego Dedura name variant2026-05-02 07:57
playeratp_shortNicolo InserraName variant: Niccolo Inserra is same person as Nicolo Inserra (registry merge, confirmed no same-day matches)2026-05-02 07:57
playeratp_shortHogi KangName variant: Ho Gi Kang is same person as Hogi Kang (registry merge, confirmed no same-day matches)2026-05-02 07:57
playeratp_shortDenys KlokDenys/Denis Klok spelling variant2026-05-02 07:57
playeratp_shortJi Sung NamName variant: Jisung Nam is same person as Ji Sung Nam (registry merge, confirmed no same-day matches)2026-05-02 07:57
playeratp_shortPaul C OosterbaanName variant: Paul Oosterbaan is same person as Paul C Oosterbaan (registry merge, confirmed no same-day matches)2026-05-02 07:57
playeratp_shortJ J WolfJ J Wolf / J.J. Wolf punctuation variant2026-05-02 07:57
playeratp_shortRuixuan WangName variant: Rui Xuan Wang is same person as Ruixuan Wang (registry merge, confirmed no same-day matches)2026-05-02 07:57
playeratp_shortCheng Yu YuName variant: Ching Mou Yu is same person as Cheng Yu Yu (registry merge, confirmed no same-day matches)2026-05-02 07:57
playeratp_shortWeiqiang ZhengName variant: Wei Qiang Zheng is same person as Weiqiang Zheng (registry merge, confirmed no same-day matches)2026-05-02 07:57
playeritfJi Sung NamName variant: Jisung Nam is same person as Ji Sung Nam (registry merge, confirmed no same-day matches)2026-05-02 07:57
playeritfCheng Yu YuName variant: Ching Mou Yu is same person as Cheng Yu Yu (registry merge, confirmed no same-day matches)2026-05-02 07:57
playeritfDenys KlokDenys/Denis Klok spelling variant2026-05-02 07:57
playeritfBekkhan AtlangerievName variant: Bekhan Atlangeriev is same person as Bekkhan Atlangeriev (registry merge, confirmed no same-day matches)2026-05-02 07:57
playeritfJames TrotterName variant: James Kent Trotter is same person as James Trotter (registry merge, confirmed no same-day matches)2026-05-02 07:57
playeritfJ J WolfJ J Wolf / J.J. Wolf punctuation variant2026-05-02 07:57
playeritfTai SachTai Sach / Tai Leonard Sach name variant2026-05-02 07:57
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-05-02 07:57
playersackmannAndre Sasackmann/atp name mismatch: Andre Sa (sack:102987) is Andre Sa (atp:s604) β€” pre-2010 player, ATP ID not in rankings snapshots2026-05-02 07:57
playersackmannVictor Estrella BurgosSackmann short-name dup: Victor Estrella (sack:103607, 503 matches) is Victor Estrella Burgos (atp:e224)2026-05-02 07:57
playersackmannAlexander SatschkoName variant: Alex Satschko is same person as Alexander Satschko (registry merge, confirmed no same-day matches)2026-05-02 07:57
playersackmannEric Butoracsackmann/atp name mismatch: Eric Butorac (sack:103780) is Eric Butorac (atp:bc35) β€” pre-2010 doubles specialist, ATP ID not in rankings snapshots2026-05-02 07:57
playersackmannCatalin-Ionut Gardsackmann/atp name mismatch: Catalin Gard (sack:103805) is Catalin-Ionut Gard (atp:g493) β€” name extension2026-05-02 07:57
playersackmannScott Lipskysackmann/atp name mismatch: Scott Lipsky (sack:103822) is Scott Lipsky (atp:l580) β€” pre-2010 player, ATP ID not in rankings snapshots2026-05-02 07:57
playersackmannDimitar GrabulSackmann truncation dup: Dimitar Grabuloski (sack:103872, 126 matches) is Dimitar Grabul (atp:g580) -- ATP truncated surname2026-05-02 07:57
playersackmannCarlos Poch-Gradinsackmann/atp name mismatch: Carles Poch Gradin (sack:104083) is Carlos Poch-Gradin (atp:p646) β€” Carles β†’ Carlos2026-05-02 07:57
playersackmannAlex Bogomolov Jr.Sackmann short-name dup: Alex Bogomolov Jr (sack:104166) is Alex Bogomolov Jr. (atp:b842, 326 matches) -- period-only diff2026-05-02 07:57
playersackmannFred Gilsackmann/atp name mismatch: Frederico Gil (sack:104523) is Fred Gil (atp:g717) β€” Frederico β†’ Fred2026-05-02 07:57
playersackmannTreat Hueysackmann/atp name mismatch: Treat Conrad Huey (sack:104600) is Treat Huey (atp:h788) β€” dropped 'Conrad'2026-05-02 07:57
playersackmannDenis Matsukevichsackmann/atp name mismatch: Denis Matsukevitch (sack:104707) is Denis Matsukevich (atp:mc18) β€” transliteration2026-05-02 07:57
playersackmannYuya Kibisackmann/atp name mismatch: Yuuya Kibi (sack:104771) is Yuya Kibi (atp:ka46) β€” Yuuya β†’ Yuya2026-05-02 07:57
Clunter β€” AI-powered tennis betting tips & tracking
Model: WElo + serve stats | Exchange: Betfair