HYROX Madrid 2025: Pro Men results

496 finishers on 29 Nov 2025. Typical finish 1:18:06, fastest 10% under 1:06:04. Back to the analysis.

# Athlete Age Time Behind 1st Runs Stations Rox Ski Push Pull BBJ Row Carry Lunge WB
1 Alan Cao 🇫🇷 FRA1st of 135 aged 30-34 30-34 57:56 29:10 24:42 4:07 4:04 2:25 3:34 2:55 3:59 1:34 2:46 3:25
2 Ollie Russell 🇬🇧 GBR1st of 109 aged 25-29 25-29 58:49 0:53 29:11 25:32 4:11 4:04 2:50 3:19 2:48 4:01 1:23 2:40 4:27
3 Charlie Botterill 🇬🇧 GBR1st of 50 aged 16-24 16-24 59:48 1:52 28:52 27:08 3:52 3:56 3:50 3:33 3:16 3:56 1:52 2:47 3:58
4 Beau Smith 🇬🇧 GBR2nd of 135 aged 30-34 30-34 59:59 2:03 29:36 26:19 4:09 3:51 2:54 3:20 3:06 3:55 1:26 3:26 4:21
5 George Martindale 🇬🇧 GBR3rd of 135 aged 30-34 30-34 1:00:03 2:07 28:55 26:57 4:16 4:06 2:42 3:41 2:54 4:03 1:36 3:10 4:45
6 Ryan Adamson 🇬🇧 GBR1st of 94 aged 35-39 35-39 1:00:14 2:18 29:26 26:48 4:04 4:13 2:39 3:27 3:18 4:08 1:27 3:10 4:26
7 Jon Iriondo Arangonés 🇪🇸 ESP2nd of 109 aged 25-29 25-29 1:00:52 2:56 29:44 26:52 4:20 4:13 2:26 3:16 3:00 4:10 1:26 3:31 4:50
8 Pedro Antonio Toral Leiva 🇪🇸 ESP3rd of 109 aged 25-29 25-29 1:00:56 3:00 29:45 27:10 4:05 4:00 3:00 4:07 2:48 3:59 1:49 3:14 4:13
9 Jose Salama 🇪🇸 ESP4th of 135 aged 30-34 30-34 1:01:19 3:23 30:06 27:08 4:11 4:06 3:50 3:56 2:40 4:06 1:46 2:40 4:04
10 Olivier Jouve 🇫🇷 FRA5th of 135 aged 30-34 30-34 1:01:22 3:26 30:32 26:37 4:18 4:06 3:27 3:47 2:49 4:01 1:43 2:57 3:47
11 Jesse Owen 🇬🇧 GBR6th of 135 aged 30-34 30-34 1:01:45 3:49 30:00 27:37 4:13 4:17 2:50 3:55 3:14 4:11 1:41 3:19 4:10
12 Daniel Soares 🇵🇹 POR4th of 109 aged 25-29 25-29 1:01:49 3:53 30:05 27:31 4:16 4:10 3:36 3:37 3:08 4:04 1:37 3:21 3:58
13 Jacques Hladkyj 🇬🇧 GBR2nd of 50 aged 16-24 16-24 1:01:51 3:55 29:57 27:22 4:37 4:10 2:38 3:29 3:27 3:59 1:27 2:48 5:24
14 Jocelyn Pacewicz 🇫🇷 FRA5th of 109 aged 25-29 25-29 1:01:59 4:03 31:47 25:37 4:39 4:15 3:00 3:26 2:15 4:04 1:39 2:53 4:05
15 Benito Baez Ayala 🇩🇪 GER2nd of 94 aged 35-39 35-39 1:02:00 4:04 30:04 27:42 4:18 4:16 3:21 4:00 2:51 4:14 1:30 3:16 4:14
16 Jakub Riedel 🇵🇱 POL3rd of 50 aged 16-24 16-24 1:02:27 4:31 31:11 27:10 4:12 4:08 3:10 4:06 2:41 4:07 1:43 3:21 3:54
17 Dylan Caruso 🇮🇹 ITA4th of 50 aged 16-24 16-24 1:02:44 4:48 29:02 29:34 4:13 4:04 3:01 4:08 3:11 4:17 1:30 3:37 5:46
18 Tiarnan O'Neill 🇮🇪 IRL5th of 50 aged 16-24 16-24 1:02:55 4:59 30:14 28:31 4:14 4:27 2:51 4:58 3:05 3:57 1:39 3:09 4:25
19 Lawrence Brown 🇬🇧 GBR3rd of 94 aged 35-39 35-39 1:03:11 5:15 30:15 28:53 4:08 4:25 3:28 4:05 3:05 4:21 1:46 3:16 4:27
20 David Parkin 🇬🇧 GBR4th of 94 aged 35-39 35-39 1:03:20 5:24 29:33 29:49 4:03 4:08 3:03 4:25 2:45 4:10 1:44 3:24 6:10
21 MJ Sutton 🇮🇪 IRL6th of 109 aged 25-29 25-29 1:03:24 5:28 31:04 28:01 4:25 4:11 2:41 3:40 3:20 4:17 1:47 3:35 4:30
22 Shane Mc Gowan 🇮🇪 IRL5th of 94 aged 35-39 35-39 1:03:26 5:30 30:29 28:46 4:16 4:16 2:45 3:46 3:34 4:22 1:48 3:59 4:16
23 Sam Schilling 🇺🇸 USA7th of 109 aged 25-29 25-29 1:03:33 5:37 30:07 28:44 4:48 4:09 2:45 3:43 3:32 4:07 1:38 3:52 4:58
24 Lars Rademaker 🇳🇱 NED7th of 135 aged 30-34 30-34 1:03:34 5:38 29:39 29:50 4:10 4:40 3:18 4:11 3:24 4:07 1:55 3:55 4:20
25 William Means 🇬🇧 GBR8th of 109 aged 25-29 25-29 1:03:38 5:42 31:01 28:10 4:31 4:12 2:49 4:11 3:35 4:07 1:40 3:34 4:02
26 Pepe Salama 🇪🇸 ESP8th of 135 aged 30-34 30-34 1:03:38 5:42 30:52 28:37 4:14 4:10 3:36 4:01 2:53 4:08 2:09 2:38 5:02
27 François Becourt 🇫🇷 FRA9th of 109 aged 25-29 25-29 1:03:48 5:52 29:34 29:48 4:30 4:09 3:20 4:13 3:32 4:10 1:34 4:05 4:45
28 Evan Marion 🇫🇷 FRA6th of 50 aged 16-24 16-24 1:03:49 5:53 30:00 29:32 4:22 4:01 3:38 4:45 3:23 4:10 1:44 3:32 4:19
29 Jamie George 🇬🇧 GBR10th of 109 aged 25-29 25-29 1:04:00 6:04 31:15 28:33 4:16 4:14 3:22 3:55 3:00 4:00 1:43 3:47 4:32
30 Robert Livesey 🇬🇧 GBR7th of 50 aged 16-24 16-24 1:04:01 6:05 31:11 28:23 4:31 4:18 3:07 3:48 3:26 4:13 2:01 2:58 4:32
31 Fabio Portela 🇵🇹 POR6th of 94 aged 35-39 35-39 1:04:03 6:07 32:11 27:28 4:29 4:07 2:36 4:06 3:11 3:59 1:30 3:15 4:44
32 Ryan Stafford 🇬🇧 GBR9th of 135 aged 30-34 30-34 1:04:18 6:22 31:30 28:25 4:28 4:28 2:57 4:20 2:52 4:16 1:55 3:11 4:26
33 Kamil Kozioł 🇵🇱 POL10th of 135 aged 30-34 30-34 1:04:21 6:25 30:42 28:59 4:44 4:12 3:05 3:44 3:25 4:11 1:37 3:19 5:26
34 Íñigo González 🇪🇸 ESP11th of 109 aged 25-29 25-29 1:04:23 6:27 29:23 30:50 4:14 4:22 3:15 4:52 3:31 4:13 1:36 3:26 5:35
35 João Sousa 🇵🇹 POR7th of 94 aged 35-39 35-39 1:04:28 6:32 28:47 31:32 4:13 4:19 3:56 4:45 3:11 4:11 2:04 3:47 5:19
36 Aaron Bassett 🇮🇪 IRL11th of 135 aged 30-34 30-34 1:04:57 7:01 30:40 29:53 4:28 4:17 2:53 4:29 3:18 4:15 2:10 3:12 5:19
37 Christophe Morin 🇫🇷 FRA12th of 135 aged 30-34 30-34 1:05:11 7:15 31:01 29:53 4:21 4:16 3:17 4:05 3:36 4:09 1:41 3:38 5:11
38 Kieran Higgs 🇬🇧 GBR12th of 109 aged 25-29 25-29 1:05:12 7:16 30:14 30:29 4:33 4:13 2:59 4:27 3:00 4:13 1:44 3:48 6:05
39 Fernando Martorell Munar 🇪🇸 ESP8th of 94 aged 35-39 35-39 1:05:22 7:26 31:20 29:38 4:28 4:11 3:57 4:12 2:38 4:20 1:59 3:24 4:57
40 Jordi Rossello Knabe 🇪🇸 ESP13th of 135 aged 30-34 30-34 1:05:25 7:29 31:25 29:44 4:21 4:13 3:56 4:17 3:26 4:12 1:46 3:33 4:21
41 Martin Lecorgne 🇫🇷 FRA13th of 109 aged 25-29 25-29 1:05:44 7:48 29:14 32:08 4:25 4:12 3:57 4:13 3:18 4:19 2:00 3:36 6:33
42 Erlaitz Cano Benito 🇪🇸 ESP14th of 109 aged 25-29 25-29 1:05:45 7:49 31:36 29:45 4:29 4:01 3:24 3:50 3:24 4:11 1:42 4:27 4:46
43 Cole Lyall 🇬🇧 GBR8th of 50 aged 16-24 16-24 1:05:45 7:49 31:30 30:02 4:19 4:31 3:07 5:14 3:55 4:25 2:40 3:56 —
44 Matías Dumpiérrez Ferrer 🇪🇸 ESP14th of 135 aged 30-34 30-34 1:05:46 7:50 30:52 30:01 4:57 4:13 3:33 4:29 2:44 4:19 1:49 4:07 4:47
45 Yeray Toquero 🇪🇸 ESP9th of 94 aged 35-39 35-39 1:05:48 7:52 31:07 30:23 4:23 4:09 3:28 3:39 2:27 4:11 1:52 3:18 7:19
46 Shaun Hudson 🇬🇧 GBR15th of 109 aged 25-29 25-29 1:05:53 7:57 30:33 30:56 4:28 4:16 2:47 4:18 4:07 4:30 1:29 3:31 5:58
47 Julien Fontaine 🇫🇷 FRA16th of 109 aged 25-29 25-29 1:05:55 7:59 32:28 28:51 4:40 4:15 2:50 4:18 3:18 4:21 1:35 3:44 4:30
48 Rayane Kara 🇫🇷 FRA9th of 50 aged 16-24 16-24 1:05:57 8:01 32:33 29:03 4:27 4:23 3:23 4:04 2:14 4:22 1:57 2:58 5:42
49 Alvaro Denis Vivar Becerra 🇪🇸 ESP17th of 109 aged 25-29 25-29 1:05:57 8:01 31:11 30:25 4:26 4:12 3:08 4:08 3:31 4:23 1:47 3:51 5:25
50 Daniel Stoksbjerg 🇩🇰 DEN10th of 50 aged 16-24 16-24 1:06:00 8:04 32:51 28:46 4:27 4:07 2:45 4:07 3:23 4:10 1:47 3:58 4:29
51 Filipe Prates Pucarinho 🇵🇹 POR10th of 94 aged 35-39 35-39 1:06:08 8:12 31:50 29:41 4:42 4:13 3:33 4:05 2:56 4:17 1:43 3:15 5:39
52 Santiago Martínez Torres 🇪🇸 ESP11th of 94 aged 35-39 35-39 1:06:09 8:13 30:17 31:13 4:43 4:21 3:17 4:01 2:54 4:16 1:37 3:48 6:59
53 Lewis Harper 🇬🇧 GBR15th of 135 aged 30-34 30-34 1:06:16 8:20 30:31 31:08 4:43 4:06 2:57 4:30 3:48 4:18 1:36 4:08 5:45
54 Milan Konopásek 🇨🇿 CZE11th of 50 aged 16-24 16-24 1:06:17 8:21 31:51 29:53 4:36 4:15 2:44 3:50 3:22 4:09 1:55 3:18 6:20
55 Raul Capitan Sanchez 🇪🇸 ESP12th of 94 aged 35-39 35-39 1:06:18 8:22 32:13 29:35 4:34 4:06 3:33 4:20 2:21 4:20 1:59 4:07 4:49
56 Toby Wilson 🇬🇧 GBR18th of 109 aged 25-29 25-29 1:06:27 8:31 32:22 29:35 4:36 4:25 3:16 3:34 3:06 4:12 1:30 3:24 6:08
57 Oscar Espada Rodríguez 🇪🇸 ESP16th of 135 aged 30-34 30-34 1:06:35 8:39 31:04 31:03 4:32 4:12 3:53 4:10 3:09 4:13 2:07 3:44 5:35
58 Nico Krackl 🇩🇪 GER13th of 94 aged 35-39 35-39 1:06:40 8:44 31:28 30:38 4:38 4:10 3:06 3:42 3:21 4:13 1:36 3:28 7:02
59 Paul McKeown 🇮🇪 IRL14th of 94 aged 35-39 35-39 1:06:45 8:49 31:32 30:47 4:29 4:26 3:05 4:08 3:32 4:28 1:54 3:51 5:23
60 Kevin Lasserre 🇫🇷 FRA19th of 109 aged 25-29 25-29 1:06:51 8:55 32:37 29:30 4:48 4:22 2:46 4:25 3:31 4:18 1:28 3:46 4:54
61 Leonardo Alonso Mora 🇪🇸 ESP17th of 135 aged 30-34 30-34 1:06:54 8:58 32:52 29:08 4:59 4:10 3:05 4:14 3:40 4:05 1:39 3:48 4:27
62 Fernando Suárez Medina 🇪🇸 ESP20th of 109 aged 25-29 25-29 1:06:55 8:59 33:25 24:55 8:39 4:27 2:55 4:00 3:39 4:22 1:46 — 3:44
63 Klemen Alič 🇸🇮 SLO18th of 135 aged 30-34 30-34 1:06:57 9:01 33:24 28:41 4:55 4:25 2:46 3:57 3:12 4:21 1:43 3:42 4:35
64 Baltasar Santos 🇵🇹 POR12th of 50 aged 16-24 16-24 1:07:05 9:09 32:08 30:13 4:50 4:24 3:22 3:58 3:29 4:15 1:36 3:34 5:35
65 Ken David Villanger 🇳🇴 NOR21st of 109 aged 25-29 25-29 1:07:05 9:09 32:10 30:32 4:27 4:27 3:20 3:44 4:11 4:23 1:34 4:04 4:49
66 Alberto Serrano 🇪🇸 ESP19th of 135 aged 30-34 30-34 1:07:10 9:14 31:12 30:15 5:47 4:12 3:49 4:16 2:51 4:18 1:51 4:29 4:29
67 Joni Somoza 🇪🇸 ESP20th of 135 aged 30-34 30-34 1:07:14 9:18 31:38 30:59 4:42 4:18 3:29 3:58 3:49 4:23 1:53 4:10 4:59
68 Luis Daniel Angullo Moral 🇪🇸 ESP15th of 94 aged 35-39 35-39 1:07:22 9:26 32:00 30:03 5:23 4:19 3:46 4:14 3:12 4:19 1:36 3:22 5:15
69 José Adrián Beltran 🇪🇸 ESP16th of 94 aged 35-39 35-39 1:07:26 9:30 33:01 29:41 4:47 4:11 2:58 4:32 3:47 4:19 1:31 3:59 4:24
70 José Sousa 🇵🇹 POR22nd of 109 aged 25-29 25-29 1:07:27 9:31 33:26 29:26 4:40 4:19 3:30 3:57 2:55 4:22 1:47 3:23 5:13
71 Grant Hudson 🇬🇧 GBR21st of 135 aged 30-34 30-34 1:07:28 9:32 33:04 29:37 4:51 4:08 2:55 3:52 3:47 4:12 1:46 3:39 5:18
72 Niels Post 🇳🇱 NED23rd of 109 aged 25-29 25-29 1:07:37 9:41 31:40 31:14 4:47 4:07 3:06 5:26 3:21 4:10 2:15 3:55 4:54
73 Sam Girling 🇬🇧 GBR13th of 50 aged 16-24 16-24 1:07:42 9:46 32:31 30:54 4:23 4:26 3:14 4:27 3:25 4:25 1:49 3:50 5:18
74 Antoine Bouhana 🇫🇷 FRA17th of 94 aged 35-39 35-39 1:07:44 9:48 32:31 30:28 4:50 4:12 3:21 3:51 3:33 4:17 1:54 3:36 5:44
75 Joshua Braznell 🇬🇧 GBR22nd of 135 aged 30-34 30-34 1:07:44 9:48 32:02 31:13 4:35 4:22 3:19 4:21 3:01 4:22 1:20 3:49 6:39
76 Jason Fernandez Birchwood 🇪🇸 ESP23rd of 135 aged 30-34 30-34 1:07:49 9:53 31:35 31:45 4:32 4:27 2:57 4:52 3:26 4:30 2:46 4:21 4:26
77 Albin Hodza 🇫🇷 FRA18th of 94 aged 35-39 35-39 1:07:59 10:03 32:43 30:44 4:38 4:21 2:58 3:49 3:08 4:08 1:52 4:00 6:28
78 Pablo Calero 🇪🇸 ESP19th of 94 aged 35-39 35-39 1:08:05 10:09 30:30 33:02 4:36 4:24 3:22 4:28 3:17 4:27 2:01 4:19 6:44
79 Jon Gorostidi 🇪🇸 ESP20th of 94 aged 35-39 35-39 1:08:08 10:12 31:47 31:39 4:47 4:29 3:59 4:18 2:58 4:21 2:18 3:20 5:56
80 Karim Nessah 🇫🇷 FRA24th of 109 aged 25-29 25-29 1:08:11 10:15 32:07 31:21 4:48 4:18 3:10 4:54 3:28 4:17 2:00 3:52 5:22
81 Oumar BA 🇫🇷 FRA25th of 109 aged 25-29 25-29 1:08:12 10:16 30:42 32:14 5:21 4:26 3:29 4:32 3:33 4:25 2:33 5:24 3:52
82 Theo Chatelier 🇫🇷 FRA26th of 109 aged 25-29 25-29 1:08:17 10:21 32:26 30:38 5:19 4:16 3:02 5:45 3:13 4:16 1:34 3:42 4:50
83 Diego Mancera 🇪🇸 ESP1st of 51 aged 40-44 40-44 1:08:17 10:21 32:26 31:15 4:41 4:17 4:31 4:21 2:50 4:27 1:49 3:36 5:24
84 Ekain Nogueira 🇪🇸 ESP27th of 109 aged 25-29 25-29 1:08:17 10:21 32:18 31:33 4:31 4:25 3:51 4:09 3:19 4:25 1:46 3:50 5:48
85 Josué Ramírez Suárez 🇪🇸 ESP21st of 94 aged 35-39 35-39 1:08:20 10:24 31:04 32:27 4:54 4:16 4:23 4:02 3:47 4:21 1:59 4:36 5:03
86 Patrik Vojtaško 🇸🇰 SVK28th of 109 aged 25-29 25-29 1:08:30 10:34 34:19 29:32 4:43 4:05 3:04 3:43 3:38 4:05 1:33 3:19 6:05
87 Rafa Velazquez 🇪🇸 ESP29th of 109 aged 25-29 25-29 1:08:44 10:48 32:35 31:29 4:45 4:16 3:52 4:18 4:05 4:24 1:50 4:17 4:27
88 Nacho Pedraza 🇪🇸 ESP2nd of 51 aged 40-44 40-44 1:08:46 10:50 33:19 30:42 4:48 4:29 2:50 4:14 2:49 4:20 1:39 4:03 6:18
89 Julián David Rojas Cañas 🇨🇴 COL14th of 50 aged 16-24 16-24 1:08:46 10:50 33:09 31:09 4:33 4:33 3:29 4:13 3:47 4:17 1:30 3:51 5:29
90 Jose Angel Hidalgo Izquierdo 🇪🇸 ESP1st of 34 aged 45-49 45-49 1:08:51 10:55 30:54 33:24 4:37 4:05 4:20 4:51 3:11 4:10 2:06 3:55 6:46
91 Jamie Palmer 🇬🇧 GBR22nd of 94 aged 35-39 35-39 1:08:55 10:59 31:30 32:07 5:22 4:27 3:53 5:00 3:09 4:25 1:33 3:55 5:45
92 Mitchell Rice 🇬🇧 GBR30th of 109 aged 25-29 25-29 1:08:57 11:01 33:22 31:16 4:24 4:31 3:06 4:10 3:05 4:19 1:37 3:58 6:30
93 Florian Mille 🇫🇷 FRA24th of 135 aged 30-34 30-34 1:08:57 11:01 31:29 33:13 4:19 4:10 3:10 4:19 2:57 4:17 2:17 4:07 7:56
94 al Whitehead 🇬🇧 GBR25th of 135 aged 30-34 30-34 1:08:59 11:03 32:43 31:06 5:13 4:20 3:12 4:05 4:07 4:19 1:41 3:34 5:48
95 Jesús Prieto de Looe 🇪🇸 ESP23rd of 94 aged 35-39 35-39 1:08:59 11:03 31:14 33:13 4:36 4:13 3:31 5:27 3:22 4:08 1:43 4:06 6:43
96 David Bustos 🇪🇸 ESP24th of 94 aged 35-39 35-39 1:09:03 11:07 31:17 32:59 4:52 4:07 3:41 5:03 4:13 4:16 1:54 3:49 5:56
97 Sergio Olivares Plaza 🇪🇸 ESP25th of 94 aged 35-39 35-39 1:09:05 11:09 32:38 31:27 5:05 4:24 3:28 4:10 3:07 4:14 2:03 4:38 5:23
98 Dino Karaman 🇭🇷 CRO31st of 109 aged 25-29 25-29 1:09:05 11:09 32:47 31:49 4:34 4:13 3:39 4:32 2:53 4:11 1:49 3:41 6:51
99 Barney Fairnington 🇬🇧 GBR3rd of 51 aged 40-44 40-44 1:09:14 11:18 32:58 31:28 4:52 4:19 3:29 4:47 3:51 4:24 1:33 3:35 5:30
100 Mohamed Nessah 🇫🇷 FRA26th of 135 aged 30-34 30-34 1:09:23 11:27 33:22 31:02 5:01 4:16 3:23 4:15 3:40 4:17 1:43 4:01 5:27
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