HYROX Málaga 2025: Pro Men results

400 finishers on 23 Mar 2025. Typical finish 1:16:39, fastest 10% under 1:04:41. Back to the analysis.

# Athlete Age Time Behind 1st Runs Stations Rox Ski Push Pull BBJ Row Carry Lunge WB
1 Hugo Hugemarq 🇸🇪 SWE1st of 85 aged 25-29 25-29 56:32 28:52 23:53 3:51 3:35 2:27 3:07 2:58 3:52 1:25 2:51 3:38
2 Pablo Sánchez Santos 🇪🇸 ESP1st of 102 aged 30-34 30-34 57:19 0:47 27:44 26:03 3:37 3:55 2:52 3:47 2:41 4:07 1:35 3:02 4:04
3 Gabe Heck 🇺🇸 USA2nd of 102 aged 30-34 30-34 57:57 1:25 28:56 25:22 3:45 3:45 2:47 3:34 2:42 4:00 1:26 3:31 3:37
4 Marc Dean 🇬🇧 GBR3rd of 102 aged 30-34 30-34 58:18 1:46 28:38 26:12 3:32 3:43 2:45 3:49 3:01 4:05 1:20 3:20 4:09
5 Bodger Rees 🇬🇧 GBR4th of 102 aged 30-34 30-34 58:31 1:59 30:29 24:27 3:40 3:43 2:09 3:12 2:45 4:07 1:21 3:32 3:38
6 Igor Arruti Salgado 🇪🇸 ESP5th of 102 aged 30-34 30-34 58:39 2:07 29:10 25:53 3:42 3:52 2:52 3:24 2:44 4:08 1:31 3:04 4:18
7 Ollie Russell 🇬🇧 GBR2nd of 85 aged 25-29 25-29 58:56 2:24 29:27 25:42 3:52 3:52 3:03 3:15 3:04 4:04 1:22 3:10 3:52
8 Ruben Patiño Vieites 🇪🇸 ESP6th of 102 aged 30-34 30-34 59:08 2:36 29:35 25:57 3:40 3:54 2:47 3:44 2:36 4:12 1:29 3:12 4:03
9 Michael Stephens 🇬🇧 GBR7th of 102 aged 30-34 30-34 59:20 2:48 30:00 25:34 3:50 3:43 2:42 3:19 2:44 4:00 1:30 3:26 4:10
10 Florian Gast 🇩🇪 GER8th of 102 aged 30-34 30-34 59:44 3:12 30:16 25:43 3:51 3:51 3:10 3:55 2:42 4:00 1:27 2:56 3:42
11 Kenny Steger 🇸🇪 SWE3rd of 85 aged 25-29 25-29 59:50 3:18 29:32 26:48 3:34 3:51 3:13 3:28 2:45 4:13 1:28 3:24 4:26
12 Yeray Toquero Rufas 🇪🇸 ESP1st of 93 aged 35-39 35-39 1:00:21 3:49 30:35 25:46 4:04 3:57 2:57 3:33 2:04 4:09 1:30 3:21 4:15
13 David Parkin 🇬🇧 GBR2nd of 93 aged 35-39 35-39 1:00:32 4:00 29:13 27:50 3:33 3:49 2:49 3:54 2:24 4:05 1:34 3:12 6:03
14 Alfons Deu 🇪🇸 ESP3rd of 93 aged 35-39 35-39 1:00:52 4:20 30:22 26:47 3:48 3:56 3:05 3:35 3:05 4:16 1:39 3:21 3:50
15 Valentín Gamba Dondich 🇦🇷 ARG9th of 102 aged 30-34 30-34 1:01:38 5:06 30:31 27:13 3:58 4:03 3:39 4:34 2:25 4:17 1:37 3:09 3:29
16 Maciej Wegorzewski 🇵🇱 POL10th of 102 aged 30-34 30-34 1:01:54 5:22 31:09 26:45 4:05 3:52 3:07 3:40 3:03 4:05 1:29 3:48 3:41
17 Giovanni Benzon 🇮🇹 ITA1st of 35 aged 16-24 16-24 1:02:06 5:34 30:19 28:07 3:45 3:57 3:15 4:00 3:40 4:15 1:27 3:39 3:54
18 Filipe Prates Pucarinho 🇪🇸 ESP4th of 93 aged 35-39 35-39 1:02:17 5:45 30:58 27:27 3:58 3:58 3:19 3:41 2:25 4:31 1:39 3:15 4:39
19 George Dyer 🇬🇧 GBR4th of 85 aged 25-29 25-29 1:02:24 5:52 31:48 26:57 3:44 4:01 2:30 3:37 3:09 4:14 1:29 3:51 4:06
20 John Carlisle 🇬🇧 GBR5th of 85 aged 25-29 25-29 1:02:39 6:07 30:46 28:05 3:53 3:54 2:38 3:54 3:05 4:09 1:57 4:00 4:28
21 Alexander Anasagasti 🇪🇸 ESP11th of 102 aged 30-34 30-34 1:02:46 6:14 31:20 27:30 4:01 4:03 2:56 3:48 3:13 4:13 1:35 3:22 4:20
22 Michele Bucci 🇮🇹 ITA5th of 93 aged 35-39 35-39 1:02:46 6:14 30:33 27:56 4:22 3:49 3:21 3:47 3:09 4:08 1:30 3:44 4:28
23 Aaron Woodman 🇬🇧 GBR6th of 93 aged 35-39 35-39 1:02:51 6:19 30:30 28:31 3:54 4:00 3:47 3:58 3:00 4:16 1:23 3:27 4:40
24 John Townsend 🇬🇧 GBR1st of 43 aged 40-44 40-44 1:03:02 6:30 30:07 29:22 3:38 4:19 3:10 4:36 3:20 4:11 1:50 3:37 4:19
25 Anthony Casano 🇫🇷 FRA6th of 85 aged 25-29 25-29 1:03:18 6:46 31:35 27:27 4:21 3:58 2:39 3:45 3:28 4:04 1:36 3:38 4:19
26 Diego Caballero 🇪🇸 ESP7th of 93 aged 35-39 35-39 1:03:24 6:52 31:02 28:35 3:50 4:06 3:28 3:39 2:51 4:17 1:59 3:52 4:23
27 Arthur Barbey 🇫🇷 FRA12th of 102 aged 30-34 30-34 1:03:31 6:59 30:04 29:36 3:55 3:56 3:23 4:10 4:11 4:17 1:35 3:35 4:29
28 Jack Waymark 🇬🇧 GBR7th of 85 aged 25-29 25-29 1:03:37 7:05 31:38 27:41 4:21 3:58 3:02 3:54 3:10 4:08 1:40 3:38 4:11
29 Fábio Portela 🇵🇹 POR8th of 93 aged 35-39 35-39 1:03:50 7:18 31:21 28:23 4:13 3:56 3:01 4:15 3:14 4:11 1:36 3:51 4:19
30 Liam McGregor 🇬🇧 GBR13th of 102 aged 30-34 30-34 1:04:00 7:28 30:57 28:49 4:19 4:03 3:10 4:27 2:34 4:24 1:23 3:46 5:02
31 Mark Caruana 🇲🇹 MLT14th of 102 aged 30-34 30-34 1:04:01 7:29 30:09 30:07 3:49 3:58 3:26 4:42 2:51 4:28 1:58 4:15 4:29
32 Michael Philson 🇮🇪 IRL8th of 85 aged 25-29 25-29 1:04:03 7:31 32:01 27:48 4:18 3:49 3:06 4:14 3:07 4:08 1:28 3:35 4:21
33 Sergio Olivares Plaza 🇪🇸 ESP9th of 93 aged 35-39 35-39 1:04:07 7:35 32:14 27:45 4:13 3:56 2:55 4:10 2:32 4:21 1:47 3:47 4:17
34 Connor Magill 🇮🇪 IRL2nd of 43 aged 40-44 40-44 1:04:11 7:39 31:51 28:31 3:54 3:59 2:31 3:42 3:29 4:16 1:36 4:19 4:39
35 Harry Bird 🇬🇧 GBR9th of 85 aged 25-29 25-29 1:04:11 7:39 31:04 29:06 4:06 3:58 3:32 4:28 2:18 4:29 1:49 3:35 4:57
36 David Otoole 🇬🇧 GBR15th of 102 aged 30-34 30-34 1:04:14 7:42 31:12 29:16 3:51 4:01 3:11 4:31 2:45 4:14 1:39 4:21 4:34
37 Ryan Stafford 🇬🇧 GBR16th of 102 aged 30-34 30-34 1:04:15 7:43 31:49 28:21 4:10 4:12 3:06 4:01 2:42 4:22 1:46 3:47 4:25
38 Joe Washington 🇬🇧 GBR3rd of 43 aged 40-44 40-44 1:04:20 7:48 31:09 29:25 3:50 4:08 2:43 4:41 2:51 4:21 1:44 3:59 4:58
39 Will Kane 🇬🇧 GBR10th of 93 aged 35-39 35-39 1:04:22 7:50 32:19 28:06 4:01 3:58 3:01 4:12 2:52 4:19 1:48 3:38 4:18
40 Adán Arocha Rodríguez 🇪🇸 ESP17th of 102 aged 30-34 30-34 1:04:23 7:51 31:36 28:52 4:00 4:13 3:20 4:18 3:01 4:20 1:43 3:11 4:46
41 Markus Knudsen Tveit 🇳🇴 NOR18th of 102 aged 30-34 30-34 1:04:43 8:11 32:18 28:04 4:25 3:53 2:50 4:05 3:37 4:13 1:34 3:47 4:05
42 Fernando Martorell Munar 🇪🇸 ESP11th of 93 aged 35-39 35-39 1:05:03 8:31 32:01 28:39 4:27 3:52 3:28 4:11 2:35 4:21 1:54 3:34 4:44
43 Dan Nota 🇬🇧 GBR10th of 85 aged 25-29 25-29 1:05:06 8:34 30:29 30:57 3:45 3:59 3:19 5:01 2:33 4:23 2:21 4:48 4:33
44 David Martin Peral 🇪🇸 ESP1st of 16 aged 50-54 50-54 1:05:08 8:36 31:23 29:54 3:57 4:01 3:33 4:04 2:58 4:24 1:46 3:49 5:19
45 Jose Ferreira 🇵🇹 POR11th of 85 aged 25-29 25-29 1:05:11 8:39 31:41 29:19 4:17 3:52 3:57 4:30 3:09 4:22 1:56 3:15 4:18
46 Jorge Arturo Barral 🇪🇸 ESP19th of 102 aged 30-34 30-34 1:05:15 8:43 31:07 30:08 4:04 4:06 3:16 4:34 3:14 4:17 1:56 3:58 4:47
47 Steve Pinau 🇫🇷 FRA12th of 93 aged 35-39 35-39 1:05:15 8:43 30:25 31:03 3:52 3:52 3:16 5:13 3:44 4:21 1:30 4:11 4:56
48 Luc van Overdam 🇳🇱 NED12th of 85 aged 25-29 25-29 1:05:16 8:44 31:09 30:00 4:11 4:00 2:39 3:59 3:38 4:36 2:10 3:51 5:07
49 Diogo Ramalheira 🇵🇹 POR13th of 93 aged 35-39 35-39 1:05:25 8:53 30:10 31:30 3:51 4:01 3:43 5:33 3:03 4:11 1:35 4:23 5:01
50 Bart Maljaars 🇳🇱 NED13th of 85 aged 25-29 25-29 1:05:55 9:23 31:50 29:26 4:43 4:06 2:45 3:56 3:57 4:36 1:45 3:02 5:19
51 Kane Pierce 🇬🇧 GBR20th of 102 aged 30-34 30-34 1:06:03 9:31 31:49 30:17 4:02 4:02 3:09 4:04 2:49 4:11 2:08 3:59 5:55
52 Swan Puzone 🇮🇹 ITA14th of 93 aged 35-39 35-39 1:06:05 9:33 31:26 30:31 4:11 3:57 3:09 4:26 2:56 4:22 1:44 4:28 5:29
53 Evan Marion 🇫🇷 FRA2nd of 35 aged 16-24 16-24 1:06:10 9:38 30:41 31:11 4:23 3:56 3:21 4:27 4:03 4:28 1:40 4:17 4:59
54 Michele Zanirato 🇬🇧 GBR15th of 93 aged 35-39 35-39 1:06:12 9:40 32:54 28:40 4:43 4:01 2:20 4:21 2:44 4:30 1:52 3:47 5:05
55 Ryan Murray 🇬🇧 GBR14th of 85 aged 25-29 25-29 1:06:15 9:43 33:00 29:05 4:16 4:03 2:57 4:05 2:45 4:17 1:40 4:05 5:13
56 Joey Seetsen 🇳🇱 NED3rd of 35 aged 16-24 16-24 1:06:15 9:43 32:20 29:28 4:33 3:55 3:25 4:05 3:59 4:32 1:41 3:14 4:37
57 Kieran Ramsey 🇬🇧 GBR21st of 102 aged 30-34 30-34 1:06:18 9:46 33:05 28:54 4:23 3:52 3:13 4:10 2:41 4:12 1:45 4:01 5:00
58 Manuel Sánchez Hervás 🇪🇸 ESP22nd of 102 aged 30-34 30-34 1:06:19 9:47 32:38 28:44 5:02 3:58 3:29 4:07 2:55 4:20 1:35 3:27 4:53
59 Conor Murphy 🇮🇪 IRL23rd of 102 aged 30-34 30-34 1:06:28 9:56 33:38 28:23 4:31 3:59 3:16 3:38 2:48 4:21 1:42 4:27 4:12
60 Hamish Middlemiss 🇬🇧 GBR16th of 93 aged 35-39 35-39 1:06:28 9:56 31:46 30:23 4:24 3:51 3:06 3:55 4:01 4:15 1:36 4:27 5:12
61 Nathan Penman 🇬🇧 GBR24th of 102 aged 30-34 30-34 1:06:30 9:58 31:12 30:14 5:09 3:58 3:54 4:36 3:36 4:23 1:32 3:34 4:41
62 Joshua Cunha 🇵🇹 POR15th of 85 aged 25-29 25-29 1:06:34 10:02 33:00 29:10 4:28 3:51 3:04 3:48 3:29 4:17 1:36 4:07 4:58
63 Thomas Knight 🇬🇧 GBR4th of 43 aged 40-44 40-44 1:06:37 10:05 31:38 30:51 4:12 4:02 3:32 4:06 3:51 4:26 2:02 4:15 4:37
64 Jose Restituto 🇪🇸 ESP17th of 93 aged 35-39 35-39 1:06:42 10:10 32:13 30:27 4:05 4:07 3:36 4:28 2:43 4:28 1:37 4:13 5:15
65 Rok Kolarič 🇸🇮 SLO5th of 43 aged 40-44 40-44 1:06:49 10:17 32:10 30:12 4:31 4:02 3:06 4:29 3:33 4:23 1:33 4:20 4:46
66 Kane Lee 🇬🇧 GBR16th of 85 aged 25-29 25-29 1:06:50 10:18 31:06 31:10 4:36 4:05 3:13 4:18 3:31 4:27 1:38 3:52 6:06
67 Kieran Yates 🇬🇧 GBR25th of 102 aged 30-34 30-34 1:06:55 10:23 34:11 28:49 4:00 3:55 3:23 4:51 2:51 4:28 1:47 3:28 4:06
68 Nikolai Handle Jensen 🇳🇴 NOR18th of 93 aged 35-39 35-39 1:07:00 10:28 31:00 31:47 4:18 4:07 2:55 5:14 3:21 4:34 1:53 3:35 6:08
69 Michael Bruggraber 🇦🇹 AUT19th of 93 aged 35-39 35-39 1:07:04 10:32 31:36 30:47 4:46 3:51 3:48 4:25 3:14 4:28 1:30 4:39 4:52
70 Hugo Joud 🇫🇷 FRA26th of 102 aged 30-34 30-34 1:07:06 10:34 34:30 28:12 4:30 4:10 3:02 3:56 3:25 4:30 1:36 3:21 4:12
71 Jamie Marsland 🇬🇧 GBR20th of 93 aged 35-39 35-39 1:07:11 10:39 32:11 31:04 4:01 3:59 3:11 5:19 3:00 4:38 1:36 4:05 5:16
72 Robert Stols 🇳🇱 NED21st of 93 aged 35-39 35-39 1:07:13 10:41 32:06 30:21 4:50 3:56 3:25 4:18 3:10 4:18 1:45 4:01 5:28
73 Thomas Mayr 🇩🇪 GER6th of 43 aged 40-44 40-44 1:07:13 10:41 32:30 30:37 4:09 4:06 2:50 4:50 2:58 4:29 1:55 3:44 5:45
74 Antonio Barroso 🇪🇸 ESP27th of 102 aged 30-34 30-34 1:07:23 10:51 33:10 29:18 5:00 3:59 3:17 4:27 3:18 4:19 1:47 3:48 4:23
75 Matti Cristiano Ruggier 🇲🇹 MLT17th of 85 aged 25-29 25-29 1:07:27 10:55 32:15 31:25 3:52 3:51 3:32 4:33 3:31 4:15 1:24 3:12 7:07
76 Tom Smith 🇬🇧 GBR4th of 35 aged 16-24 16-24 1:07:29 10:57 34:41 28:38 4:13 3:59 3:20 3:58 3:05 4:19 1:41 3:36 4:40
77 Raul Capitan 🇪🇸 ESP28th of 102 aged 30-34 30-34 1:07:35 11:03 34:14 28:57 4:29 3:59 3:17 4:27 2:51 4:14 1:50 4:03 4:16
78 Alberto Serrano 🇪🇸 ESP29th of 102 aged 30-34 30-34 1:07:38 11:06 31:29 31:33 4:41 4:03 4:03 4:48 3:21 4:27 1:45 4:35 4:31
79 Tyler Rutten 🇬🇧 GBR18th of 85 aged 25-29 25-29 1:07:43 11:11 32:53 30:46 4:08 4:02 3:12 4:15 3:05 4:26 1:47 3:43 6:16
80 Aitami Hernández Delgado 🇪🇸 ESP30th of 102 aged 30-34 30-34 1:08:04 11:32 31:51 31:59 4:18 4:02 3:28 4:13 3:20 4:20 2:24 4:19 5:53
81 Tristan Lee 🇬🇧 GBR31st of 102 aged 30-34 30-34 1:08:06 11:34 33:03 30:34 4:33 4:09 2:56 4:16 3:12 4:31 2:06 3:43 5:41
82 Sam Girling 🇬🇧 GBR5th of 35 aged 16-24 16-24 1:08:08 11:36 33:18 30:45 4:10 4:10 3:15 4:17 3:14 4:35 1:53 4:08 5:13
83 Jack Murphy 🇮🇪 IRL19th of 85 aged 25-29 25-29 1:08:10 11:38 31:50 31:36 4:48 4:01 3:17 4:24 3:19 4:34 1:59 4:45 5:17
84 Kev Marson 🇬🇧 GBR7th of 43 aged 40-44 40-44 1:08:13 11:41 34:25 29:31 4:22 4:06 3:00 4:18 2:52 4:22 2:13 3:25 5:15
85 Raul Peñuela Jünger 🇪🇸 ESP32nd of 102 aged 30-34 30-34 1:08:13 11:41 33:18 30:09 4:49 4:03 3:56 3:37 3:12 4:25 1:42 3:56 5:18
86 Simon Derby 🇮🇪 IRL8th of 43 aged 40-44 40-44 1:08:15 11:43 34:07 29:55 4:17 4:17 3:10 3:49 3:43 4:34 1:43 4:14 4:25
87 Olivier Fernandez 🇫🇷 FRA1st of 20 aged 45-49 45-49 1:08:15 11:43 31:28 32:43 4:08 4:09 3:31 5:26 4:11 4:27 1:55 4:34 4:30
88 Pedro Silva 🇵🇹 POR6th of 35 aged 16-24 16-24 1:08:27 11:55 32:08 32:18 4:04 3:54 2:55 5:06 3:22 4:21 2:25 4:10 6:05
89 Adam Hogge 🇬🇧 GBR20th of 85 aged 25-29 25-29 1:08:32 12:00 32:17 31:57 4:23 4:00 3:33 4:31 4:09 4:21 1:56 4:17 5:10
90 Paul Harrison 🇬🇧 GBR7th of 35 aged 16-24 16-24 1:08:41 12:09 33:06 31:34 4:05 4:09 2:42 4:03 3:29 4:38 1:54 4:15 6:24
91 Jack Stevens 🇬🇧 GBR22nd of 93 aged 35-39 35-39 1:08:41 12:09 33:01 31:38 4:05 4:01 3:51 4:44 3:22 4:23 1:42 3:43 5:52
92 Michael Owen 🇬🇧 GBR33rd of 102 aged 30-34 30-34 1:08:42 12:10 33:50 30:21 4:33 4:02 3:15 4:16 3:25 4:27 1:44 3:59 5:13
93 Willy Santer 🇨🇭 SUI21st of 85 aged 25-29 25-29 1:08:45 12:13 34:49 29:04 4:56 4:06 3:22 4:37 2:20 4:29 1:41 4:13 4:16
94 Lorenzo Parodi 🇮🇹 ITA22nd of 85 aged 25-29 25-29 1:08:46 12:14 32:16 31:28 5:07 3:58 3:09 5:30 3:25 4:26 1:34 4:07 5:19
95 Carlo Gatti 🇮🇹 ITA2nd of 16 aged 50-54 50-54 1:08:50 12:18 33:07 31:26 4:22 3:58 4:01 4:53 3:31 4:12 1:37 3:55 5:19
96 Vladimir Casap 🇲🇩 MDA23rd of 85 aged 25-29 25-29 1:08:52 12:20 32:42 31:36 4:38 3:59 3:18 4:05 3:33 4:36 2:01 4:33 5:31
97 Greg Lingard 🇦🇺 AUS24th of 85 aged 25-29 25-29 1:09:04 12:32 36:16 27:45 5:07 3:54 2:34 3:33 3:15 4:24 1:44 3:45 4:36
98 James Gilboy 🇬🇧 GBR25th of 85 aged 25-29 25-29 1:09:09 12:37 34:34 29:50 4:51 4:07 3:04 4:09 3:28 4:25 1:38 4:29 4:30
99 Bryn Markham-Jones 🇬🇧 GBR23rd of 93 aged 35-39 35-39 1:09:10 12:38 34:32 29:48 4:55 4:07 3:16 4:07 3:45 4:30 1:50 3:32 4:41
100 Giovanni Guidetti 🇮🇹 ITA24th of 93 aged 35-39 35-39 1:09:13 12:41 32:29 32:18 4:30 3:52 3:57 4:53 3:17 4:37 1:53 4:21 5:28
How to read

The place is among timed finishers in Pro Men; the line under the name is the place in the age group. Behind 1st is the gap to the winning time. Tap a time for that race's full report, or a name for every race of that athlete.

The RoxHype app

Found your result? Beat it at your next race.

The RoxHype app is your training plan to race day: built from your splits, your kit and your race date, and adjusted every week.

  • A week-by-week plan that counts down to your race
  • Extra work on your slowest stations
  • Adjusts every week to what you actually did

Free to download. Used by more than 40,000 HYROX athletes.

RoxHype app home: days to your HYROX, your expected finish range and this week's sessions RoxHype workout player guiding a sled push, with the next exercise lined up
Find my result