Career 2023 2022 2021 2020 2019 2018 2017 2016 2015 2014 2013 2012 2011 2010 2009 2008 2007 2006
All Surfaces Clay Grass Hard I.hard
All Rounds Final 1/2 1/4 First Second Third Fourth Qualifying q-First q-Second Pre-q Rubber 1 Rubber 2 Rubber 3 Rubber 4 Rubber 5 Robin Bronze N/A ER Q4 CR QF Q5 N/A
All Tournaments Millennium Estoril Open - Estoril Miami Open - Miami Girona Challenger Internazionali BNL d'Italia - Rome French Open - Paris Oeiras 3 Challenger Oeiras 4 Challenger Barcelona Open Banc Sabadell - Barcelona Madrid Challenger Mutua Madrid Open - Madrid Estoril Open - Estoril French Open (juniors) Wimbledon (juniors) U.S. Open (juniors) Davis Cup, Group 1, PO, MAR-POR 2-3 Estoril Open - Estoril Davis Cup, Group 1, 1R, GEO-POR 3-2 Wimbledon - London Estoril Open - Estoril Grand Prix Hassan II - Casablanca Estoril Open - Estoril Tunis Challenger San Benedetto Challenger Guayaquil Challenger Cancun Challenger Brasil Open - Costa do Sauipe Estoril Open - Estoril Tanger Challenger Davis Cup, Group 2, 1R, POR-DEN 4-1 Turin Challenger San Benedetto Challenger San Sebastian Challenger Seville Challenger Cancun Challenger Estoril Open - Estoril Rijeka Challenger Trani Challenger San Sebastian Challenger Como Challenger Seville Challenger Campinas Challenger Recife Challenger Quito Challenger Guayaquil Challenger Estoril Open - Estoril French Open - Paris Wimbledon - London U.S. Open - New York Barranquilla Challenger Barletta Challenger Rome Challenger Napoli Challenger Bordeaux Challenger Marburg Challenger Orbetello Challenger San Marino Challenger Alphen Challenger Trnava Challenger Madrid Challenger San Juan Challenger Rio De Janeiro Challenger Porto Alegre Challenger Medellin Challenger Guayaquil Challenger Portugal Open - Oeiras French Open - Paris Sao Paulo Challenger Bucaramanga Challenger Sarajevo Challenger Davis Cup, Group II, 1R, POR-BEN 5-0 Barranquilla Challenger Panama City Challenger Bordeaux Challenger Tanger Challenger Davis Cup, Group II, 2R, POR-LTU 5-0 Todi Challenger San Benedetto Challenger Campinas Challenger Porto Alegre Challenger Sao Paulo Challenger Sao Jose Do Rio Preto Challenger Buenos Aires Challenger Montevideo Challenger Bogota Challenger Guayaquil Challenger U.S. Open - New York Sao Paulo Challenger Genova Challenger Biella Challenger French Open - Paris Wimbledon - London U.S. Open - New York Mestre Challenger Caltanissetta Challenger Blois Challenger Padova Challenger Millennium Estoril Open - Estoril Biella Challenger Cortina Challenger Meknes Challenger Kenitra Challenger Porto Alegre Challenger Sao Paulo Challenger Corrientes Challenger Millennium Estoril Open - Estoril U.S. Open - New York Tunisia F1 Tunisia F2 Tunisia F3 Tunisia F4 Tunisia F7 Turin Challenger Tunisia F9 Davis Cup, Group I, 1R, POR-AUT 1-4 Tunisia F10 Tunisia F11 Tunisia F12 Tunisia F17 Tunisia F18 Poznan Challenger Tampere Challenger Scheveningen Challenger Tunisia F19 Portugal F7 Netherlands F1 Italy F16 Liberec Challenger Como Challenger Alphen Challenger Kenitra Challenger Campinas Challenger Buenos Aires Challenger Santiago Challenger Lima Challenger Davis Cup, Group I, PO, POR-SLO 5-0 Guayaquil Challenger Australian Open - Melbourne Millennium Estoril Open - Estoril French Open - Paris French Open (juniors) Wimbledon - London Wimbledon (juniors) U.S. Open - New York U.S. Open (juniors) Zhuhai Challenger Shenzhen Challenger Quanzhou Challenger Tunisia F3 (Hammamet) Davis Cup, Group I, 1R, POR-ISR 5-0 Barletta Challenger Francavilla Challenger Aix En Provence Challenger Bordeaux Challenger Lisbon Challenger Blois Challenger Davis Cup, Group I, 2R, POR-UKR 4-1 Portugal F7 (Carcavelos) Perugia Challenger San Benedetto Challenger Tampere Challenger Liberec Challenger Como Challenger Russia F7 (Moscow) Alphen Challenger Rome Challenger Davis Cup, World Group, PO, POR-GER 2-3 Qatar ExxonMobil Open - Doha Australian Open (juniors) Rio Open - Rio de Janeiro Millennium Estoril Open - Estoril French Open - Paris French Open (juniors) Wimbledon (juniors) SkiStar Swedish Open - Bastad U.S. Open (juniors) Punta Del Este Challenger Santiago Challenger Marbella Challenger Barletta Challenger Tunis Challenger Russia F1 (Moscow) Russia F2 (Almetievsk) Russia F3 (Kazan) Braga Challenger Lisbon Challenger Poznan Challenger Lyon Challenger Almaty Challenger Blois Challenger Milan Challenger Marburg Challenger Tampere Challenger Liberec Challenger Pullach Challenger Meerbusch Challenger Como Challenger Seville Challenger Sibiu Challenger Barcelona Challenger Lima Challenger Guayaquil Challenger Belarus F3 (Minsk) Davis Cup, Group I, PO, UKR-POR 3-1 Montevideo Challenger Buenos Aires Challenger Davis Cup, Group I, PO, POR-RSA 4-0 Tata Open Maharashtra - Pune Sydney International - Sydney Australian Open - Melbourne Rio Open - Rio de Janeiro Brasil Open - Sao Paulo Barcelona Open Banc Sabadell - Barcelona Millennium Estoril Open - Estoril Plava Laguna Croatia Open - Umag U.S. Open - New York M15 Antalya M15 Antalya Davis Cup, World Group, QR, KAZ-POR 3-1 M15 Antalya M15 Antalya Marbella Challenger Alicante Challenger Murcia Challenger Tunis Challenger M15 Murcia M25 Shymkent M25 Shymkent Shymkent Challenger Vicenza Challenger M25 Andijan M25 Namangan Poznan Challenger Almaty Challenger Lyon Challenger Shymkent Challenger Blois Challenger Milan Challenger Ludwigshafen Challenger Perugia Challenger Tampere Challenger M25 Bakio M25 Getxo Meerbusch Challenger Como Challenger Sibiu Challenger Florence Challenger Barcelona Challenger M25 Gandia M25 Denia M15 Xativa M25 Santander M25 Donostia-San-Sebastian M25 Seville Davis Cup, Group I, 1R, BLR-POR 3-2 M25 Madrid M15 Melilla Lima Challenger Guayaquil Challenger Maia Challenger M25 Riba - Roja de Turia M15 Getafe Madrid M15 Benicarlo M15 Nules M15 Castellon Australian Open - Melbourne Cordoba Open - Cordoba Argentina Open - Buenos Aires Santiago Open - Santiago French Open - Paris U.S. Open - New York Rolex Paris Masters - Paris Punta Del Este Challenger M15 Antalya M15 Antalya M15 Antalya M15 Palmanova M15 Paguera M25 Murcia M15 Antalya Davis Cup, World Group I, PO, LTU-POR 0-4 All Lower level tournaments Aix En Provence Challenger M25 Vogau M15 Anif M15 Bucharest M15 Curtea de Arges M15 Melilla M15 Sharm El Sheikh Astana Open - Nur-Sultan Split Challenger Barcelona Challenger Lisbon Challenger Marbella Challenger M15 Valldoreix M15 Villena M15 Benicarlo M15 Madrid Guayaquil Challenger Lima Challenger Maia Challenger Murray River Open - Melbourne Australian Open - Melbourne Cordoba Open - Cordoba Chile Dove Men+Care Open - Santiago Miami Open - Miami Millennium Estoril Open - Estoril French Open - Paris Wimbledon - London Nordea Open - Bastad Olympics - Tokyo U.S. Open - New York M15 Manacor M15 Nur-Sultan M15 Nur-Sultan Nur-Sultan 1 Challenger Nur-Sultan 2 Challenger Santiago Challenger M15 La Nucia M25 La Nucia M25 Reus M15 Las Palmas de Gran Canaria Marbella Challenger Split 1 Challenger M15 Antalya M15 Antalya Biella 5 Challenger Zagreb Challenger Oeiras 3 Challenger Oeiras 4 Challenger Almaty 1 Challenger Almaty 2 Challenger Perugia Challenger Trieste Challenger Cordenons Challenger Prague 2 Challenger Barletta Challenger Astana Open - Nur-Sultan Kyiv Challenger Murcia Challenger Barcelona Challenger Napoli 2 Challenger Tenerife Challenger Montevideo Challenger Campinas Challenger Australian Open - Melbourne Barcelona Open Banc Sabadell - Barcelona Millennium Estoril Open - Estoril French Open - Paris Traralgon Challenger Cherbourg Challenger Forli 4 Challenger Gran Canaria Challenger Roseto Degli Abruzzi 1 Challenger Roseto Degli Abruzzi 2 Challenger Oeiras 1 Challenger Nordea Open - Bastad Hamburg European Open - Hamburg U.S. Open - New York Oeiras 2 Challenger Madrid Challenger Rome 1 Challenger Mauthausen Challenger Bordeaux Challenger Forli 6 Challenger Perugia Challenger Blois Challenger Troyes Challenger Porto Challenger Todi Challenger Amersfoort Challenger Nur-Sultan Challenger San Benedetto Challenger Liberec Challenger San Marino Challenger Toulouse Challenger Tulln Challenger Seville Challenger Szczecin Challenger Braga Challenger Lisbon Challenger Parma Challenger Coquimbo 2 Challenger Lima 2 Challenger Valencia Challenger Maia Challenger United Cup - Australia Australian Open - Melbourne Argentina Open - Buenos Aires Rio Open - Rio de Janeiro Oeiras 1 Challenger Oeiras 2 Challenger Concepcion Challenger M25 Vila Real de Santo Antonio M25 Vila Real de Santo Antonio M25 Faro Davis Cup, World Group, PO, CHI-KAZ 3-1 Portugal F4 Portugal F5 Portugal F6 Spain F38 Italy F26 Portugal F4 Portugal F5 Portugal F4 Turkey F1 Great Britain F7 Spain F25 Netherlands F4 Netherlands F5 Dominican Republic F2 Napoli Challenger Portugal F2 Portugal F3 Spain F13 Turin Challenger Spain F22 Spain F23 San Sebastian Challenger Spain F25 Spain F26 Italy F25 Seville Challenger Puebla Challenger Italy F26 Portugal F4 Portugal F5 Brazil F22 Brazil F23 Brazil F24 Meknes Challenger Morocco F1 Portugal F2 Portugal F3 Cremona Challenger Italy F11 Italy F12 Italy F13 Cordenons Challenger San Marino Challenger Geneva Challenger Ljubljana Challenger Sao Paulo Challenger Medellin Challenger Guayaquil Challenger Portugal F4 Portugal F5 Rabat Challenger Marrakech Challenger St. Brieuc Challenger Brazil F4 Brazil F5 Brazil F6 Spain F6 Portugal F1 Napoli Challenger Italy F4 Morocco F2 San Benedetto Challenger San Marino Challenger Sao Jose Do Rio Preto Challenger Sao Leopoldo Challenger Buenos Aires Challenger Montevideo Challenger Morocco F8 USA F2 USA F3 USA F4 Spain F2 Spain F3 Portugal F1 Italy F20 USA F1 USA F2 Portugal F1 Portugal F2 Croatia F5 Croatia F6 Portugal F1 Portugal F2 Portugal F3 Morocco F2 Morocco F3 Spain F9 Russia F5