Career 2025 2024 2023 2022 2021 2020 2019 2018 2017 2016 2015 2014 2013 2012
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 Pau Challenger Chennai Challenger Portugal F2 Portugal F3 Egypt F1 Egypt F2 Egypt F3 Egypt F4 France F12 France F13 Belgium F6 Belgium F7 Canada F6 Sweden F4 France F16 France F17 Sweden F6 Sweden F7 Greece F17 Greece F18 France F1 Israel F1 France F2 Israel F2 France F3 Israel F3 Portugal F2 Great Britain F5 Portugal F3 Great Britain F6 Egypt F12 Egypt F13 Egypt F14 France F9 Sweden F2 Spain F10 Romania F3 Netherlands F1 Netherlands F2 Netherlands F3 Belgium F5 Tunisia F4 Tunisia F5 Italy F34 Portugal F12 Senegal F2 Egypt F2 Egypt F3 Spain F2 Spain F3 Spain F4 Great Britain F7 Turkey F13 Turkey F14 France F8 France F9 Ukraine F2 Ukraine F3 France F14 Israel F7 Turkey F25 Turkey F26 Italy F5 Serbia F4 Serbia F5 France F16 Finland F2 Finland F3 Iran F7 Iran F8 Portugal F12 Portugal F13 Israel F5 Israel F6 France F8 France F9 Netherlands F2 France F12 France F15 Serbia F4 Poland F5 Poland F6 France F1 (Bagnoles-de-l'Orne) Italy F9 (Santa Margherita Di Pula) France F9 (Angers) Serbia F6 France F4 (Toulouse) Portugal F7 (Porto) Spain F16 (Palma del Rio) Italy F6 France F1 Switzerland F5 Italy F33 Italy F35 Portugal F1 M25+H Mulhouse M15 Madrid M25 Glasgow Tampere Challenger Liberec Challenger Cordenons Challenger Napa Challenger Sacramento Challenger M25 Gentofte Helsinki Challenger Quimper Challenger Turin Challenger Braunschweig Challenger Mons Challenger Brescia Challenger Noumea Challenger New Delhi Challenger Kyoto Challenger Jonkoping Challenger M25 Muttenz Barletta Challenger Aix En Provence Challenger Bordeaux Challenger Prostejov Challenger Segovia Challenger Manerbio Challenger Como Challenger Rome Challenger Casablanca Challenger Brest Challenger Guayaquil Challenger Poznan Challenger Raanana Challenger Quimper Challenger Cherbourg Challenger Barletta Challenger Aix En Provence Challenger Bordeaux Challenger Lyon Challenger Mohammedia Challenger San Benedetto Challenger Dallas Challenger Cordenons Challenger Meerbusch Challenger Seville Challenger Istanbul Challenger Poprad Tatry Challenger Canberra Challenger Rennes Challenger Quimper Challenger Bastad Challenger St. Brieuc Challenger Tunis Challenger Aix En Provence Challenger Astana Challenger Stockton Challenger Seville Challenger Stockton Challenger Bangalore Challenger Phoenix Challenger Aix En Provence Challenger Furth Challenger Caltanissetta Challenger Andria Challenger Caltanissetta Challenger Verona Challenger Prostejov Challenger Brest Challenger St. Brieuc Challenger Brest Challenger Lyon Challenger Pau Challenger Budapest Challenger Bordeaux Challenger Bergamo Challenger Phoenix Challenger Lille Challenger Bangkok Challenger Tenerife 1 Challenger Nur-Sultan Challenger Mexico City Challenger Ostrava Challenger Sassuolo Challenger Zug Challenger Aix En Provence Challenger Cassis Challenger Tiburon Challenger Mouilleron-Le-Captif Challenger Prague Challenger Poznan Challenger Cary Challenger Recanati Challenger Biella Challenger Matsuyama Challenger Oeiras 5 Challenger Heilbronn Challenger Cassis Challenger Lima 2 Challenger M25 Creteil Aix En Provence Challenger Rome Challenger Nanchang Challenger St. Tropez Challenger Roanne Challenger M25 Toulouse-Balma Bordeaux Challenger Ilkley Challenger Prostejov Challenger Lyon Challenger Monza Challenger Rome Challenger Aptos Challenger San Marino Challenger Vancouver Challenger Rennes Challenger Blois Challenger Istanbul Challenger St. Brieuc Challenger Izmir Challenger Bangalore Challenger Pune Challenger Bratislava Challenger Chicago Challenger Orleans Challenger Tampere Challenger Lille Challenger St. Brieuc Challenger Ludwigshafen Challenger Perugia Challenger Orleans Challenger Kobe Challenger Barcelona Challenger Biella 4 Challenger Lille Challenger St. Remy Challenger Lille Challenger Meknes Challenger Forli 6 Challenger Prostejov Challenger Perugia Challenger Budapest Challenger Montechiarugolo - Parma Challenger Santiago Challenger Como Challenger Toulouse Challenger Sophia Antipolis Challenger Rennes Challenger Prague Challenger Granby Challenger Manerbio Challenger Genova Challenger Oeiras 3 Challenger Izmir Challenger Savannah Challenger Cali Challenger Porto Challenger Cassis Challenger Bangalore Challenger Noumea Challenger Santo Domingo Challenger Cherbourg Challenger Taipei 2 Challenger Milan Challenger Seoul Challenger Grodzisk Mazowiecki Challenger Seoul Challenger Fairfield Challenger Traralgon Challenger Canberra Challenger Mouilleron-Le-Captif Challenger Pune Challenger Noumea Challenger Rennes Challenger Lyon Challenger Salzburg Challenger Zug Challenger Grodzisk Mazowiecki Challenger Mallorca Challenger Taipei City Challenger Valencia Challenger St. Tropez Challenger Lisbon Challenger Lyon Challenger Tampere Challenger Aptos Challenger Prague Challenger Cherbourg Challenger Rome 1 Challenger Eckental Challenger Prague Challenger Heilbronn Challenger Oeiras 3 Challenger Lyon Challenger Porto Challenger Braunschweig Challenger Pozoblanco Challenger Poznan Challenger Tulln Challenger Roanne Challenger Pau Challenger Orleans Challenger Maia 2 Challenger Cherbourg Challenger Pau Challenger Monterrey Challenger Marbella Challenger Mexico City Challenger Noumea Challenger Buenos Aires 2 Challenger Aix En Provence Challenger Bordeaux Challenger Tunis Challenger Vicenza Challenger Vilnus Challenger Blois Challenger Milan Challenger Troyes Challenger San Marino Challenger Granby Challenger Tulln Challenger Orleans Challenger Brest Challenger Roanne Challenger Kobe Challenger Maia Challenger Tenerife 1 Challenger St. Brieuc Challenger Troyes Challenger Braunschweig Challenger Prague 3 Challenger Seville Challenger St. Tropez Challenger Malaga Challenger Quimper Challenger Phoenix Challenger New Delhi Challenger Yokohama Challenger Brisbane 2 Challenger Cuernavaca Challenger Kigali 2 Challenger Cherbourg Challenger Naples Challenger Oeiras 4 Challenger Vicenza Challenger San Luis Potosi Challenger Savannah Challenger Maia Challenger Brisbane 1 Challenger Sassuolo Challenger Cordenons Challenger Nottingham 3 Challenger Szczecin Challenger Furth Challenger Hamburg Challenger Mouilleron-Le-Captif Challenger Canberra Challenger Rennes Challenger Quimper Challenger Cherbourg Challenger Indian Wells Challenger Cordenons Challenger Orleans Challenger Aix En Provence Challenger Split Challenger Lisbon Challenger Istanbul Challenger Marbella Challenger Cary Challenger Quimper 2 Challenger Split 1 Challenger Split 2 Challenger St. Tropez Challenger Rennes Challenger Orleans Challenger Mouilleron-Le-Captif Challenger Bergamo Challenger San Francisco Challenger Anning Challenger Mouilleron-Le-Captif Challenger Lexington Challenger Cary 2 Challenger Antofagasta Challenger Caltanissetta Challenger Bordeaux Challenger Arad Challenger Drummondville Challenger Francavilla Challenger Braunschweig Challenger Poznan Challenger Lisbon Challenger Braga Challenger Salzburg Challenger Tiburon Challenger SkiStar Swedish Open - Bastad If Stockholm Open - Stockholm Ecuador Open - Quito Barcelona Open BancSabadell - Barcelona Open Sud de France - Montpellier Grand Prix Hassan II - Marrakech If Stockholm Open - Stockholm Memphis Open - Memphis Gazprom Hungarian Open - Budapest Abierto Mexicano de Tenis Mifel - Los Cabos Orlando Challenger Bratislava Challenger SkiStar Swedish Open - Bastad Open 13 Provence - Marseille Open de Nice Cote d'Azur - Nice Nordea Open - Bastad Sao Paulo Challenger SkiStar Swedish Open - Bastad Millennium Estoril Open - Estoril Astana Open - Nur-Sultan Adelaide International 1 - Adelaide Tata Open Maharashtra - Pune Helsinki Challenger Tata Open Maharashtra - Pune Quimper Challenger Banja Luka Open - Banja Luka Open Parc - Lyon Nordea Open - Bastad Granby Challenger Intrum Stockholm Open - Stockholm Argentina Open - Buenos Aires Kremlin Cup - Moscow M25 Cordoba Poznan Challenger Qatar ExxonMobil Open - Doha Nordea Open - Bastad Eckental Challenger Seville Challenger Swiss Open - Gstaad Istanbul Challenger Rakuten Japan Open - Tokyo Stockholm Open - Stockholm Rothesay International - Eastbourne Nordea Open - Bastad Hamburg European Open - Hamburg Shanghai Challenger Pune Challenger Merida Challenger Morelia Challenger Mexico City Challenger BNP Paribas Nordic Open - Stockholm Oeiras 1 Challenger Quimper Challenger Braunschweig Challenger Bastad Challenger Meerbusch Challenger Open Sud de France - Montpellier Cordenons Challenger Brest Challenger San Marino Challenger Todi Challenger Rennes Challenger Bogota Challenger Koblenz Challenger Rennes Challenger Buenos Aires Challenger Guadalajara Challenger Le Gosier Challenger Heilbronn Challenger If Stockholm Open - Stockholm Aircel Chennai Open - Chennai Brasil Open - Sao Paulo Rio Open - Rio de Janeiro Biella Challenger Rome Challenger Stockholm Open - Stockholm Orleans Challenger Lima Challenger Mouilleron-Le-Captif Challenger Pau Challenger Tiriac Open - Bucharest Aircel Chennai Open - Chennai Pune Challenger Bratislava Challenger Hamburg Open - Hamburg Prague Challenger Cordoba Open - Cordoba Vicenza Challenger Barcelona Open BancSabadell - Barcelona Bastad Challenger Tunis Challenger Biel Challenger Sopot Challenger Tenerife Challenger If Stockholm Open - Stockholm Istanbul Challenger Delray Beach Open - Delray Beach Millennium Estoril Open - Estoril Budapest Challenger Cherbourg Challenger SkiStar Swedish Open - Bastad Alicante Challenger Alicante Challenger Rennes Challenger Guayaquil Challenger Winnipeg Challenger Vancouver Challenger Istanbul Challenger Mouilleron-Le-Captif Challenger Kremlin Cup - Moscow Genova Challenger TEB BNP Paribas Istanbul Open - Istanbul Charlottesville Challenger Gerry Weber Open - Halle Sardegna Open - Cagliari SkiStar Swedish Open - Bastad Helsinki Challenger Moselle Open - Metz Vilnius Challenger Koblenz Challenger Prague II Challenger Mallorca Championships - Mallorca Dubai Duty Free Tennis Championships - Dubai Parma Challenger Prostejov Challenger Rio Open - Rio de Janeiro Brasil Open - Sao Paulo Grand Prix Hassan II - Marrakech Marbella Challenger Belgrade Challenger Millennium Estoril Open - Estoril SkiStar Swedish Open - Bastad Iasi Challenger Liberec Challenger San Marino Challenger Porto 2 Challenger Moselle Open - Metz Seville Challenger Intrum Stockholm Open - Stockholm Cary Challenger Murray River Open - Melbourne Open Sud de France - Montpellier Yokkaichi Challenger Pozoblanco Challenger Dubai Duty Free Tennis Championships - Dubai EFG Swiss Open - Gstaad Open Parc - Lyon Helsinki Challenger Andria Challenger Citi Open - Washington Barletta Challenger Pau Challenger Lugano Challenger Florianopolis Challenger Buenos Aires Challenger Troisdorf Challenger Montechiarugolo Challenger Barcelona Open Banc Sabadell - Barcelona BMW Open - Munich Heilbronn Challenger Perugia Challenger Lyon Challenger Plava Laguna Croatia Open - Umag Korea Open - Seoul Braunschweig Challenger Open Sud de France - Montpellier Abierto Mexicano Telcel - Acapulco Grand Prix Hassan II - Marrakech Stockholm Open - Stockholm Bad Waltersdorf Challenger Abierto de Tenis Mifel - Los Cabos Open 13 Provence - Marseille Montevideo Challenger Drummondville Challenger Seoul Challenger Maia Challenger Oeiras 1 Challenger Oeiras 2 Challenger Chennai Challenger Taipei Challenger New Delhi Challenger Citi Open - Washington Ostrava Challenger Mauthausen Challenger Heilbronn Challenger Lyon Challenger Suisse Open - Gstaad Como Challenger If Stockholm Open - Stockholm Erste Bank Open - Vienna Qatar ExxonMobil Open - Doha Naples Challenger Swiss Open - Gstaad Abierto Mexicano - Los Cabos Open 13 Provence - Marseille Buenos Aires Challenger Irving Challenger Oeiras 2 Challenger Drummondville Challenger Ottignies-Louvain-la-Neuve Challenger Quimper Challenger Braunschweig Challenger Gatineau Challenger Bordeaux Challenger Bratislava Challenger Biella 7 Challenger Brest Challenger Koblenz Challenger Manama Challenger Quimper Challenger Lille Challenger Acapulco Challenger SkiStar Swedish Open - Bastad Tunis Challenger Vancouver Challenger Iasi Challenger Split Challenger Zadar Challenger Aix En Provence Challenger Modena Challenger Bogota Challenger BNP Paribas Open - Indian Wells Miami Open - Miami Miami Open - Miami BNP Paribas Open - Indian Wells Miami Open - Miami Olbia Challenger Sony Open Tennis - Miami ASB Classic - Auckland Nordea Open - Bastad Rogers Cup - Toronto BNP Paribas Open - Indian Wells Miami Open - Miami Monte-Carlo Rolex Masters - Monte-Carlo ABN AMRO World Tennis Tournament - Rotterdam Abierto Mexicano de Tenis Mifel - Los Cabos Truist Atlanta Open - Atlanta Internazionali BNL d'Italia - Rome Qatar ExxonMobil Open - Doha Dubai Duty Free Tennis Championships - Dubai BNP Paribas Open - Indian Wells Open Parc - Lyon BNP Paribas Nordic Open - Stockholm Miami Open - Miami Miami Open - Miami Monte-Carlo Rolex Masters - Monte-Carlo Miami Open - Miami Miami Open - Miami BNP Paribas Open - Indian Wells Internazionali BNL d'Italia - Rome Brisbane International - Brisbane Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris Australian Open - Melbourne French Open - Paris French Open - Paris French Open - Paris Australian Open - Melbourne French Open - Paris U.S. Open - New York French Open - Paris Wimbledon - London Australian Open - Melbourne French Open - Paris Wimbledon - London Australian Open - Melbourne U.S. Open - New York Mutua Madrid Open - Madrid Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne Wimbledon - London Australian Open Qualifying - Doha U.S. Open - New York U.S. Open - New York Australian Open - Melbourne Wimbledon - London French Open - Paris U.S. Open - New York BNP Paribas Open - Indian Wells Wimbledon - London Australian Open - Melbourne U.S. Open - New York Davis Cup, Group I, PO, SWE-DEN 3-2 Davis Cup, Group I, PO, ROU-SWE 3-1 Davis Cup, Group I, 1R, SWE-AUT 2-3 Davis Cup, Group II, 2R, TUR-SWE 1-4 Davis Cup, Group I, 2R, SWE-POR 3-2 Davis Cup, Finals, Group B Davis Cup, Qualifiers, 1R, SWE-JPN 3-2 Davis Cup, World Group, PO, SWE-BIH 3-1 Davis Cup, Group A, Bologna Davis Cup, World Group, Q, SWE-BRA 1-3 Manacor Challenger Davis Cup, Group I, PO, ISR-SWE 3-1 Wimbledon (juniors) Australian Open (juniors) French Open (juniors) Wimbledon (juniors) U.S. Open (juniors) Davis Cup, World Group, QR, SWE-CHI 3-1 French Open (juniors) All Lower level tournaments Davis Cup, Group A, Bologna Davis Cup, Finals, QF, RUS-SWE 2-0 Davis Cup, Group I, PO, SWE-NED 0-5 Davis Cup, Group II, 3R, SWE-LTU 5-0 Davis Cup, Group I, 1R, UKR-SWE 2-3 Davis Cup, World Group, QR, COL-SWE 4-0 Davis Cup, World Group I, 1R, SWE-IND 4-0 U.S. Open (juniors) National Bank Open - Toronto Bengaluru Challenger Kigali 1 Challenger