Career 2025 2024 2023 2022 2021 2020 2019 2018 2017 2016 2015 2014 2013 2012 2011 2010 2009 2008 2007 2006 2004
All Rounds Final 1/2 1/4 First Second Third Fourth Pre-q Rubber 1 Rubber 2 Rubber 3 Rubber 4 Rubber 5 Robin Bronze Q3 N/A Q2 Q1 ER Q4 CR QF Q5 N/A
All Courts Acrylic N/A Clay Grass Carpet Hard I.hard
All Tour M25 Porto Karlsruhe Challenger Tampere Challenger Wimbledon - London M25 Roehampton Mallorca Challenger Porto Challenger M25 Edmonton U.S. Open - New York M15 Monastir Charleston Challenger Tiburon Challenger Mouilleron-Le-Captif Challenger M25 Monastir Fairfield Challenger M25 Saint-Augustin Calgary Challenger Bergamo Challenger M25 Benicarlo M15 Valencia Drummondville Challenger M25 Hammamet Naples Challenger Hong Kong Tennis Open - Hong Kong Girona Challenger Nonthaburi 3 Challenger Australian Open - Melbourne Oeiras 1 Challenger Hamburg Challenger M15 Azay-le-Rideau M15 Poitiers Chennai Challenger M15 Bressuire Pau Challenger Manama Challenger Quimper Challenger M15+H Bagnoles de l'Orne M25 Toulouse-Balma Koblenz Challenger Cherbourg Challenger Dubai Duty Free Tennis Championships - Dubai Lille Challenger M25 Hammamet M25 Kursumlijska Banja M25 Angers Vicenza Challenger Grand Prix Hassan II - Marrakech Barcelona Challenger Tampere Challenger M15 Gijon M25 Mataro French Open - Paris Zagreb Challenger M25 Vic M25 Villeneuve-Loubet Tunis Challenger Porto Challenger M25+H Ajaccio Wimbledon - London Pozoblanco Challenger Hamburg Open - Hamburg M25 Padova M25+H Bagneres-de-Bigorre M25 Porto M25 Guiyang Manacor Challenger Rennes Challenger M25 Fuzhou Istanbul Challenger M15 Monastir Mouilleron-Le-Captif Challenger Shanghai Rolex Masters - Shanghai Qatar ExxonMobil Open - Doha Calgary Challenger M25 Edmonton M15 Bressuire Roanne Challenger St. Brieuc Challenger M25 Monastir M25 Monastir Drummondville Challenger M15 Monastir Lille Challenger M15 Monastir St. Tropez Challenger M15 Poitiers M25 Les Franqueses del Valles Thionville Challenger M15 Monastir M25 Monastir M15 Monastir Mexico City Challenger M25 Esch/Alzette Zug Challenger Iasi Challenger Cherbourg Challenger Abidjan 2 Challenger M25 Doha Abidjan 1 Challenger Manzanillo Challenger Puerto Vallarta Challenger Hong Kong Tennis Open - Hong Kong Manama Challenger M25 Hazebrouck Australian Open - Melbourne Dubai Duty Free Tennis Championships - Dubai M25 Monastir M15 Monastir M25 Toulouse-Balma Troyes Challenger Oeiras 5 Challenger M25 Santo Domingo Tyler Challenger Porto 2 Challenger Cuernavaca Challenger M15 Lons-le-Saunier Tunis Challenger M25 Carnac Little Rock Challenger M25 Villeneuve-Loubet M25 Mataro French Open - Paris M25 Monastir Wimbledon - London Royan Challenger Nottingham 3 Challenger Pozoblanco Challenger M15 Monastir Segovia Challenger Cassis Challenger Rennes Challenger Roanne Challenger Orleans Challenger Mouilleron-Le-Captif Challenger France F19 France F12 France F12 France F2 France F3 France F13 France F15 France F17 France F20 France F1 France F2 France F4 France F8 France F9 France F10 France F12 Belgium F2 Belgium F3 France F13 France F15 France F18 France F19 France F20 France F1 France F2 France F4 France F5 Spain F11 France F7 Spain F14 France F8 France F10 France F11 France F12 Spain F27 Spain F29 Belgium F2 France F13 France F14 France F15 France F17 France F18 France F19 France F20 Rodez Great Britain F1 Great Britain F2 France F1 France F2 France F4 France F5 France F6 France F10 France F4 France F5 France F4 Morocco F2 Morocco F3 Tunisia F4 Tunisia F6 Morocco F5 Morocco F2 BNP Paribas Masters - Paris Tunisia F16 Tunisia F17 Tunisia F20 Tunisia F21 Tunisia F22 Tunisia F23 Tunisia F24 Tunisia F25 Tunisia F26 Tunisia F27 Tunisia F28 Tunisia F30 Tunisia F31 Tunisia F32 Tunisia F33 Tunisia F20 Tunisia F21 Mozambique F1 Mozambique F2 Egypt F13 Egypt F14 Egypt F16 Morocco F4 Morocco F5 Morocco F6 USA F32 USA F35 USA F40 Tunisia F21 (Hammamet) Tunisia F22 (Hammamet) Tunisia F23 (Hammamet) Tunisia F24 (Hammamet) USA F24 (Champaign) USA F26 (Decatur) USA F27 (Edwardsville) Belgium F9 (Koksijde) Belgium F10 (Lambermont) Tunisia F25 (Hammamet) Tunisia F26 (Hammamet) Tunisia F28 (Hammamet) Tunisia F29 (Hammamet) Tunisia F30 (Hammamet) Tunisia F31 (Hammamet) Tunisia F32 (Hammamet) Tunisia F33 (Hammamet) Tunisia F38 (Hammamet) Tunisia F39 (Hammamet) Tunisia F40 (Hammamet) Tunisia F5 (Jerba) USA F10 (Little Rock) Tunisia F20 (Jerba) Tunisia F22 (Hammamet) Tunisia F23 (Hammamet) Tunisia F24 (Hammamet) USA F19 (Wichita) USA F19b (Iowa City) USA F20 (Champaign) USA F21 (Decatur) USA F22 (Edwardsville) Romania F10 (Curtea de Arges) Tunisia F29 (La Marsa) Tunisia F37 (Monastir) Tunisia F38 (Monastir) Tunisia F39 (Monastir) Egypt F28 (Sharm El Sheikh) Cameroon F1 (Yaounde) Cameroon F2 (Yaounde) Tunisia F44 (Monastir) Tunisia F45 (Monastir) M25 Los Angeles M25 Tucson M15 Tabarka M15 Tabarka M15 Tabarka M15 Tabarka M15 Tabarka M15 Tabarka M25 Pardubice M25 Iowa City M25 Champaign M15 Tabarka M25+H Bydgoszcz M25 La Marsa M15 Tabarka M15 Tabarka M25+H Lagos M25+H Lagos M25 Monastir M15 Meshref M15 Monastir M15 Monastir M15 Monastir M15 Manacor M15+H Bagnoles-de-l'Orne M15 Monastir M15+H Bressuire M15 Monastir M15 Monastir M15 Vale Do Lobo M15 Faro M15 Toulouse M15 Sintra M15 Monastir M25+H Rodez M15 Monastir M15 Monastir M15 Benicarlo M15 Madrid M15 Manacor M15 Manacor M15 Monastir M15+H Bressuire M15 Monastir M15 Monastir M15 Monastir M25 Vale do Lobo M15 Monastir M25 Faro M15 Monastir M25 Vale do Lobo M15 Poitiers M15 Monastir M15 Monastir M15 Monastir M25 Reus M25 Angers M15 Las Palmas de Gran Canaria M15 Monastir M15 Monastir M25 Klosters M25 Montauban M25 Wroclaw M25+H Ajaccio M15 Monastir M15 Xativa M15 Monastir M25 Santander M25 Bagneres-De-Bigorre M25+H Rodez M15 Monastir M25 Toulouse M15 Monastir M25 Monastir M15 Manacor M25 Monastir M15 Monastir M25 Vale do Lobo M15 Creteil M15 Monastir M15 Poitiers M25 Toulouse-Balma M15 Monastir M15 Monastir M25 Reus M25 Angers M25 Monastir M25 Vic M15 Oran M15 Oran M15 Monastir M15 Monastir M15 Monastir M25 Montauban M15 Monastir M15 Monastir M15 Monastir M15 Monastir M15 Monastir M15 Monastir M25 Saint-Augustin M25 Monastir M25 Monastir M25 Monastir M25 Monastir M15 Madrid Challenger DCNS de Cherbourg - Cherbourg Open D'Orleans - Orleans Cherbourg Challenger Cherbourg Challeger St. Brieuc Challenger Bordeaux Challenger Quimper Challenger Cherbourg Challenger St. Brieuc Challenger Monza Challenger Bordeaux Challenger Pozoblanco Challenger Recanati Challenger Segovia Challenger St. Remy Challenger Istanbul Challenger Mons Challenger Rennes Challenger Orleans Challenger Bratislava Challenger Helsinki Challenger Noumea Challenger Quimper Challenger Cherbourg Challenger Bath Challenger St. Brieuc Challenger Tunis Challenger Bordeaux Challenger Nottingham Challenger Scheveningen Challenger Recanati Challenger Pozoblanco Challenger Cordenons Challenger Segovia Challenger St. Remy Challenger Petange Challenger Orleans Challenger Mons Challenger Rennes Challenger Seoul Challenger Geneva Challenger Bratislava Challenger Heilbronn Challenger Quimper Challenger Cherbourg Challenger St. Brieuc Challenger Tunis Challenger Bordeaux Challenger Nottingham Challenger St. Remy Challenger Petange Challenger Orleans Challenger Mons Challenger Rennes Challenger Casablanca Challenger Bratislava Challenger Heilbronn Challenger Cherbourg Challenger Guadalajara Challenger Le Gosier Challenger Tunis Challenger Bordeaux Challenger Nottingham Challenger St. Remy Challenger Orleans Challenger Mons Challenger Rennes Challenger Noumea Challenger Cherbourg Challenger Quimper Challenger Le Gosier Challenger Bordeaux Challenger Cordenons Challenger Manerbio Challenger Como Challenger Genova Challenger Orleans Challenger Mons Challenger Cherbourg Challenger Quimper Challenger Mouilleron-Le-Captif Challenger Rome Challenger Braunschweig Challenger Segovia Challenger Manerbio Challenger Como Challenger Genova Challenger Orleans Challenger Mons Challenger Budapest Challenger Eckental Challenger Mouilleron-Le-Captif Challenger Noumea Challenger Koblenz Challenger Rennes Challenger Cherbourg Challenger Wroclaw Challenger St. Brieuc Challenger Sophia Antipolis Challenger Aix En Provence Challenger Bordeaux Challenger Surbiton Challenger Nottingham Challenger Recanati Challenger Perugia Challenger Como Challenger Genova Challenger Szczecin Challenger Orleans Challenger Ortisei Challenger Eckental Challenger Mouilleron-Le-Captif Challenger Noumea Challenger Koblenz Challenger Rennes Challenger Cherbourg Challenger Lille Challenger St. Brieuc Challenger Alicante Challenger Tallahassee Challenger Aix En Provence Challenger Bordeaux Challenger Poznan Challenger Lyon Challenger Blois Challenger Winnetka Challenger Perugia Challenger Mallorca Challenger Seville Challenger Szczecin Challenger Orleans Challenger Florence Challenger Barcelona Challenger Eckental Challenger Mouilleron-Le-Captif Challenger Noumea Challenger Koblenz Challenger Lille Challenger St. Brieuc Challenger Sophia Antipolis Challenger Tunis Challenger Bordeaux Challenger Aix En Provence Challenger Lisbon Challenger Vicenza Challenger Prostejov Challenger Blois Challenger Recanati Challenger Winnetka Challenger Perugia Challenger Amersfoort Challenger Prague Challenger Segovia Challenger Portoroz Challenger Pune Challenger Cherbourg Challenger Morelos Challenger Calgary Challenger Todi Challenger Forli Challenger Orlando Challenger Sao Paulo Challenger Campinas Challenger Cherbourg Challenger Salinas Challenger Salinas 2 Challenger Biella 7 Challenger Bratislava Challenger Aix En Provence Challenger Braunschweig Challenger Iasi Challenger Pozoblanco Challenger Barletta Challenger Kyiv Challenger Rennes Challenger Mouilleron-Le-Captif Challenger Brest Challenger Tenerife Challenger Roanne Challenger Pau Challenger Bari Challenger Antalya 3 Challenger Maia 1 Challenger Cherbourg Challenger Pau Challenger Turin Challenger Salinas Challenger San Luis Potosi Challenger Aguascalientes Challenger Rome 1 Challenger Morelos Challenger Prague 2 Challenger Bordeaux Challenger Vicenza Challenger Forli 6 Challenger Lyon Challenger Troyes Challenger Porto Challenger Pozoblanco Challenger Segovia Challenger Chicago Challenger Vancouver Challenger Granby Challenger Prague 3 Challenger Como Challenger Cassis Challenger Rennes Challenger Orleans Challenger Mouilleron-Le-Captif Challenger Hamburg Challenger Brest Challenger Bergamo Challenger Charlottesville Challenger Roanne Challenger Calgary Challenger Drummondville Challenger Valencia Challenger Maia Challenger Oeiras 1 Challenger Oeiras 2 Challenger Tenerife 1 Challenger Ottignies-Louvain-la-Neuve Challenger Koblenz Challenger Cherbourg Challenger Rome Challenger Pau Challenger Waco Challenger Puerto Vallarta Challenger Lugano Challenger Szekesfehervar Challenger Biel Challenger Lille Challenger San Luis Potosi Challenger Madrid Challenger Oeiras 3 Challenger Morelos Challenger Rome Challenger Savannah Challenger Leon Challenger Aix En Provence Challenger Francavilla Challenger Tunis Challenger Skopje Challenger Little Rock Challenger Troisdorf Challenger Tyler Challenger Perugia Challenger Blois Challenger Cordenons Challenger Orleans Challenger Porto 2 Challenger San Marino Challenger Istanbul Challenger Columbus Challenger BMW Open - Munich AEGON Championships - London Open de Moselle - Metz Open Sud de France - Montpellier Open 13 - Marseille Open de Nice Cote d'Azur - Nice AEGON Championships - London Moselle Open - Metz Aircel Chennai Open - Chennai Apia International - Sydney Open Sud de France - Montpellier Grand Prix Hassan II - Casablanca Barcelona Open BancSabadell - Barcelona AEGON Championships - London AEGON International - Eastbourne Hall of Fame Tennis Championships - Newport Credit Agricole Suisse Open - Gstaad Bet-at-home Cup - Kitzbuhel Winston-Salem Open - Winston-Salem Moselle Open - Metz If Stockholm Open - Stockholm Swiss Indoors Basel - Basel Apia International - Sydney Open Sud de France - Montpellier ABN AMRO World Tennis Tournament - Rotterdam Open 13 - Marseille Grand Prix Hassan II - Casablanca Barcelona Open BancSabadell - Barcelona Open de Nice Cote d'Azur - Nice AEGON Championships - London Topshelf Open - 's-Hertogenbosch SkiStar Swedish Open - Bastad Bet-at-home Open - Hamburg Credit Agricole Suisse Open - Gstaad Bet-at-home Cup - Kitzbuhel Moselle Open - Metz Swiss Indoors Basel - Basel Heineken Open - Auckland Open Sud de France - Montpellier Open 13 - Marseille Barcelona Open BancSabadell - Barcelona Topshelf Open - 's-Hertogenbosch SkiStar Swedish Open - Bastad Credit Agricole Suisse Open - Gstaad Austrian Open - Kitzbuhel Moselle Open - Metz Erste Bank Open - Vienna Valencia Open - Valencia Millennium Estoril Open - Estoril Open Sud de France - Montpellier Open 13 - Marseille Grand Prix Hassan II - Marrakech Barcelona Open BancSabadell - Barcelona Millennium Estoril Open - Estoril AEGON Championships - London Bet-at-home Open - Hamburg Generali Open - Kitzbuhel Moselle Open - Metz Maia Challenger European Open - Antwerp Open Sud de France - Montpellier Barcelona Open BancSabadell - Barcelona Millennium Estoril Open - Estoril AEGON Championships - London Konzum Croatia Open - Umag Bet-at-home Open - Hamburg Moselle Open - Metz European Open - Antwerp Swiss Indoors Basel - Basel Open Sud de France - Montpellier Open 13 Provence - Marseille Barcelona Open BancSabadell - Barcelona Millennium Estoril Open - Estoril Plava Laguna Croatia Open - Umag Swiss Open - Gstaad Moselle Open - Metz European Open - Antwerp Open Sud de France - Montpellier Open Parc - Lyon Nature Valley International - Eastbourne Delray Beach Open - Delray Beach Qatar ExxonMobil Open - Doha Abierto de Tenis Mifel - Los Cabos Sofia Open - Sofia Rakuten Japan Open - Tokyo Firenze Open - Florence Tennis Napoli Open - Naples BNP Paribas Masters - Paris Sony Open Tennis - Miami Monte-Carlo Rolex Masters - Monte-Carlo Sony Open Tennis - Miami Monte-Carlo Rolex Masters - Monte-Carlo BNP Paribas Masters - Paris Miami Open - Miami Mutua Madrid Open - Madrid BNP Paribas Masters - Paris Miami Open - Miami Monte-Carlo Rolex Masters - Monte-Carlo Internazionali BNL d'Italia - Rome French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris Wimbledon - London Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris Wimbledon - London Australian Open - Melbourne French Open - Paris Wimbledon - London Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne Hopman Cup - Perth Davis Cup, Group II, PO, TUN-BUL 3-2 Davis Cup, Group II, 1R, TUN-SWE 2-3 Davis Cup, Group II, PO, CYP-TUN 1-4 Davis Cup, Group II, 1R, TUN-FIN 2-3 Davis Cup, World Group II, PO, GUA-TUN 1-3 Davis Cup, Group II, 1R, TUN-GRE 1-3 Australian Open (juniors) French Open (juniors) Wimbledon (juniors) All Lower level tournaments Davis Cup, World Group II, 1R, TUN-IRL 3-2 Davis Cup, Group I, PO, TUN-UKR 3-2 Davis Cup, Group II, 1R, GEO-TUN 4-1