Tennis Tracker: Irresistible Collins sets up Kasatkina final, Ruud suffers shock defeat
00:48 CET - Frances Tiafoe (26) is into the Houston final after a 6-2, 7-6(2) win over Luciano Darderi (26).
23:48 CET - Danielle Collins (30) just cannot stop winning! The Miami champion soared past Maria Sakkari (28) 6-3, 6-3 to set up a final in Charleston with Daria Kasatkina (26).
22:42 CET - In another nail-biting match, Ben Shelton (21) battled from a set down to defeat Tomas Martin Etcheverry (24) 6-7(4), 6-4, 6-4 and move into the Houston final.
22:00 CET - Daria Kasatkina (26) is into the Charleston final, battling past home favourite Jessica Pegula in (30) a thrilling encounter, 6-4, 4-6, 7-6(5).
21:38 CET - In an incredible three-hour battle, No.1 seed and defending champion Casper Ruud (25) was stunned by the impressive Pedro Martinez (26), losing 6-4, 4-6, 6-4. The Spaniard will now face Hubert Hurkacz (27) in tomorrow's final.
18:58 CET - Matteo Berrettini (27) continues his recent resurgence with a hard-fought 6-7(4), 6-3, 6-2 victory over Argentine Mariano Navone (23), sealing a place in tomorrow's final in Marrakech.
18:15 CET - Hubert Hurkacz (27) faced a tough test in the way of Chilean Cristian Garin (27) but avoided a potential upset after Garin took the second set to win 6-3, 3-6, 6-3 and book his place in tomorrow's final.
16:12 CET - Despite little seperating them in terms of ATP rankings, Roberto Carballes (31) has defeated Pavel Kotov (25) in straight sets 6-4, 6-2 to make tomorrow's final in Marrahech, giving him a chance to defend his title.
12:15 CET - Our first semi-final clash of the day comes from Marrakech, with Pavel Kotov (25) taking on Roberto Carballes Baena (31) at 14:00 CET.
Meanwhile, over in Estoril, play starts at 16:00 CET as second seed Hubert Hurkacz (27) comes up against Chile's Cristian Garin (27) for a place in tomorrow's showpiece.
12:00 CET - Good afternoon and welcome to today's Tennis Tracker!