HYROX Frankfurt 2025: Pro Men results

254 finishers on 12 Dec 2025. Typical finish 1:20:12, fastest 10% under 1:07:14. Back to the analysis.

# Athlete Age Time Behind 1st Runs Stations Rox Ski Push Pull BBJ Row Carry Lunge WB
1 Ronan Lindsay 🇮🇪 IRL1st of 74 aged 30-34 30-34 56:52 27:47 25:09 4:00 3:50 3:02 3:15 2:39 4:00 1:22 2:59 4:02
2 Michael Stephens ENG2nd of 74 aged 30-34 30-34 57:26 0:34 28:40 24:47 4:04 3:47 3:13 3:01 2:51 3:52 1:23 3:02 3:38
3 Paul Weindl 🇩🇪 GER1st of 51 aged 25-29 25-29 57:41 0:49 27:21 26:11 4:15 3:51 3:10 4:08 2:19 3:58 1:26 2:59 4:20
4 Florian Gast 🇩🇪 GER3rd of 74 aged 30-34 30-34 59:34 2:42 28:35 26:39 4:25 3:44 3:43 4:13 2:36 3:50 1:28 3:05 4:00
5 Benito Baez Ayala 🇩🇪 GER1st of 65 aged 35-39 35-39 1:00:23 3:31 28:01 28:03 4:23 3:58 4:05 4:17 2:51 4:15 1:25 3:16 3:56
6 Theo Kis 🇫🇷 FRA2nd of 51 aged 25-29 25-29 1:01:40 4:48 27:30 30:05 4:09 4:01 3:33 4:12 3:43 4:03 1:20 3:57 5:16
7 Emilio Aguayo 🇪🇸 ESP4th of 74 aged 30-34 30-34 1:02:10 5:18 28:56 28:53 4:26 3:58 4:27 3:42 2:51 4:04 1:31 3:08 5:12
8 Jendrik Brügmann 🇩🇪 GER3rd of 51 aged 25-29 25-29 1:03:09 6:17 30:52 27:54 4:28 4:00 3:40 3:47 3:33 4:05 1:24 3:25 4:00
9 Nicolas Paquay 🇫🇷 FRA5th of 74 aged 30-34 30-34 1:03:22 6:30 31:22 27:33 4:31 4:04 3:56 3:43 2:52 4:13 1:33 2:57 4:15
10 Sander van Rooijen 🇳🇱 NED2nd of 65 aged 35-39 35-39 1:04:07 7:15 27:47 31:10 5:13 4:06 4:21 4:27 3:17 4:10 1:36 3:59 5:14
11 Manuel Ziegler 🇩🇪 GER3rd of 65 aged 35-39 35-39 1:04:24 7:32 31:35 28:13 4:41 3:54 3:20 3:58 2:53 4:04 1:57 3:12 4:55
12 Simo Gvero 🇩🇪 GER6th of 74 aged 30-34 30-34 1:04:27 7:35 30:29 29:41 4:21 3:55 3:52 3:43 3:19 4:01 1:33 5:16 4:02
13 Lloyd Mulholland 🇬🇧 GBR7th of 74 aged 30-34 30-34 1:04:57 8:05 29:29 31:06 4:26 4:09 4:12 4:27 3:08 4:14 1:44 3:48 5:24
14 Christian Krauß 🇩🇪 GER1st of 19 aged 40-44 40-44 1:05:09 8:17 28:51 32:01 4:22 4:04 4:19 4:50 3:42 4:09 1:31 4:28 4:58
15 Lucas Niehoff 🇩🇪 GER8th of 74 aged 30-34 30-34 1:05:19 8:27 29:39 31:19 4:26 4:05 3:15 4:51 3:34 4:20 1:38 3:58 5:38
16 Peter Müllner 🇦🇹 AUT4th of 65 aged 35-39 35-39 1:05:25 8:33 29:26 30:55 5:09 3:55 3:57 4:42 3:01 4:15 1:37 4:01 5:27
17 Fabian Wesemann 🇩🇪 GER4th of 51 aged 25-29 25-29 1:06:07 9:15 32:32 28:41 4:59 4:00 4:09 4:16 2:40 4:14 1:11 3:12 4:59
18 David Bergmann 🇩🇪 GER1st of 20 aged 16-24 16-24 1:06:20 9:28 33:31 27:54 5:00 4:05 3:10 3:59 3:11 4:08 1:19 3:57 4:05
19 Jay Hogan 🇮🇪 IRL2nd of 20 aged 16-24 16-24 1:06:27 9:35 31:35 30:02 4:53 4:10 3:52 4:03 3:02 4:14 1:42 3:50 5:09
20 Clément Rezzonico 🇫🇷 FRA5th of 65 aged 35-39 35-39 1:06:42 9:50 32:05 29:34 5:09 4:12 4:15 3:59 2:48 4:18 1:38 3:31 4:53
21 Chris Owen 🇬🇧 GBR5th of 51 aged 25-29 25-29 1:06:46 9:54 30:58 30:29 5:24 4:07 4:26 4:19 3:00 4:20 1:49 3:23 5:05
22 Nils David 🇩🇪 GER9th of 74 aged 30-34 30-34 1:06:51 9:59 32:26 29:35 4:54 3:44 3:40 3:59 3:29 4:04 1:47 3:54 4:58
23 George Sitch 🇬🇧 GBR3rd of 20 aged 16-24 16-24 1:06:59 10:07 33:55 28:26 4:42 4:16 3:27 4:31 3:30 4:16 1:39 2:57 3:50
24 Robert May 🇩🇪 GER6th of 51 aged 25-29 25-29 1:07:06 10:14 32:01 30:18 4:51 4:01 4:10 4:50 3:28 4:12 1:46 3:02 4:49
25 Dominik Fohrmann 🇩🇪 GER6th of 65 aged 35-39 35-39 1:07:12 10:20 32:13 30:18 4:46 3:59 4:04 4:23 3:13 4:23 1:16 3:51 5:09
26 Markus Pütz 🇩🇪 GER1st of 12 aged 45-49 45-49 1:07:13 10:21 32:04 30:01 5:13 3:59 4:20 4:21 2:53 4:07 1:25 4:05 4:51
27 Alexander Wieczerzak 🇩🇪 GER10th of 74 aged 30-34 30-34 1:07:17 10:25 32:13 30:05 5:05 3:53 3:12 4:22 3:08 4:07 1:32 3:43 6:08
28 Nico Axtmann 🇩🇪 GER11th of 74 aged 30-34 30-34 1:07:18 10:26 33:58 28:39 4:46 3:55 3:01 4:10 3:12 4:08 1:50 3:24 4:59
29 Yannick Jung 🇩🇪 GER12th of 74 aged 30-34 30-34 1:07:28 10:36 32:31 30:10 4:52 3:57 4:04 4:22 3:56 4:01 1:30 3:44 4:36
30 Nicolas Küß 🇩🇪 GER13th of 74 aged 30-34 30-34 1:07:48 10:56 32:05 31:09 4:39 4:14 4:05 4:59 3:11 4:19 1:46 3:38 4:57
31 Pawel Dregan 🇩🇪 GER14th of 74 aged 30-34 30-34 1:07:50 10:58 31:20 31:11 5:24 3:56 4:14 4:53 2:47 4:26 1:56 3:45 5:14
32 Marvin Thomas 🇩🇪 GER7th of 51 aged 25-29 25-29 1:07:53 11:01 29:57 33:10 4:50 3:52 3:56 6:27 3:00 4:13 1:39 3:40 6:23
33 Jozef Kapicak 🇸🇰 SVK4th of 20 aged 16-24 16-24 1:08:09 11:17 30:49 32:40 4:46 3:54 4:47 4:43 2:27 4:25 2:39 3:44 6:01
34 Fabian Grill 🇩🇪 GER15th of 74 aged 30-34 30-34 1:08:14 11:22 30:33 33:06 4:40 4:18 4:20 5:14 2:48 4:17 1:48 3:29 6:52
35 Gianluca Taccia 🇮🇹 ITA16th of 74 aged 30-34 30-34 1:08:21 11:29 32:06 31:02 5:16 4:03 4:15 5:15 2:50 4:20 1:24 3:58 4:57
36 Raphael Merkt 🇩🇪 GER17th of 74 aged 30-34 30-34 1:08:30 11:38 33:05 30:25 5:04 3:56 3:52 4:12 3:13 4:23 1:26 4:36 4:47
37 Max Lang 🇩🇪 GER18th of 74 aged 30-34 30-34 1:08:39 11:47 34:20 29:26 4:58 3:50 3:36 4:43 2:51 4:07 1:28 3:57 4:54
38 Stephen Mackie 🇬🇧 GBR19th of 74 aged 30-34 30-34 1:08:42 11:50 30:30 33:53 4:24 3:54 3:59 4:23 5:15 4:13 2:17 4:23 5:29
39 Herkules Reimann 🇩🇪 GER2nd of 12 aged 45-49 45-49 1:08:43 11:51 32:50 30:58 4:59 4:09 4:00 4:40 3:05 4:18 1:39 4:08 4:59
40 Nico Woldt 🇩🇪 GER8th of 51 aged 25-29 25-29 1:08:46 11:54 32:31 31:30 4:48 4:02 4:20 5:08 3:00 4:19 1:48 3:46 5:07
41 Steffen Dachtler 🇩🇪 GER7th of 65 aged 35-39 35-39 1:09:17 12:25 33:10 31:30 4:41 4:14 4:19 4:48 3:31 4:22 1:22 4:03 4:51
42 Thorsten Dürr 🇩🇪 GER2nd of 19 aged 40-44 40-44 1:09:17 12:25 32:31 31:58 4:54 4:07 5:07 4:42 3:25 4:28 1:40 3:44 4:45
43 Tim Budemann 🇩🇪 GER5th of 20 aged 16-24 16-24 1:09:36 12:44 31:59 32:53 4:49 3:58 4:03 4:52 3:52 4:27 1:48 3:25 6:28
44 Christoph Wieloch 🇩🇪 GER8th of 65 aged 35-39 35-39 1:09:36 12:44 31:41 33:07 4:52 4:01 4:20 4:52 3:58 4:12 1:35 4:23 5:46
45 Max Nimmrichter 🇩🇪 GER9th of 51 aged 25-29 25-29 1:09:38 12:46 34:14 30:22 5:06 4:16 3:53 4:19 3:05 4:23 2:06 3:34 4:46
46 Geoffrey Fazari 🇫🇷 FRA20th of 74 aged 30-34 30-34 1:09:40 12:48 33:41 31:07 4:56 4:05 4:11 4:25 3:18 4:25 1:33 3:29 5:41
47 Thomas Mayr 🇩🇪 GER3rd of 19 aged 40-44 40-44 1:09:45 12:53 33:43 30:37 5:30 4:08 3:39 4:59 2:53 4:21 1:31 3:17 5:49
48 Remi Husted Langgaard 🇩🇰 DEN21st of 74 aged 30-34 30-34 1:09:53 13:01 33:53 31:03 5:01 4:16 4:07 4:22 3:02 4:23 1:34 3:42 5:37
49 Fabian Bauer 🇩🇪 GER6th of 20 aged 16-24 16-24 1:10:32 13:40 34:08 31:46 4:41 4:26 4:01 4:48 3:50 4:22 1:55 4:00 4:24
50 Janick Schulze 🇩🇪 GER10th of 51 aged 25-29 25-29 1:10:41 13:49 31:01 34:14 5:31 3:52 4:33 5:55 3:33 4:33 1:25 5:32 4:51
51 Albrecht Seltmann 🇩🇪 GER22nd of 74 aged 30-34 30-34 1:10:43 13:51 33:26 32:21 4:59 3:55 3:49 4:46 3:57 4:10 1:54 4:22 5:28
52 Mike Snaith 🇱🇹 LTU9th of 65 aged 35-39 35-39 1:10:55 14:03 31:31 33:55 5:35 4:03 4:16 5:30 4:28 4:23 2:03 4:23 4:49
53 Fabian Scheidweiler 🇩🇪 GER23rd of 74 aged 30-34 30-34 1:11:04 14:12 35:20 30:30 5:19 3:49 3:55 4:59 3:49 4:00 1:30 3:45 4:43
54 Matthias Sienz 🇩🇪 GER10th of 65 aged 35-39 35-39 1:11:10 14:18 34:06 31:55 5:15 3:57 3:58 4:29 3:50 4:06 1:38 4:17 5:40
55 John O'Leary 🇮🇪 IRL11th of 65 aged 35-39 35-39 1:11:21 14:29 33:28 33:03 4:55 4:08 4:48 4:56 3:16 4:18 1:45 4:07 5:45
56 Vaclav Tausek 🇨🇿 CZE12th of 65 aged 35-39 35-39 1:11:32 14:40 34:48 31:32 5:16 4:17 4:29 5:15 3:33 4:12 1:57 3:26 4:23
57 Max Emde 🇩🇪 GER11th of 51 aged 25-29 25-29 1:11:32 14:40 32:02 34:55 4:40 4:04 5:04 4:51 3:52 4:14 1:58 4:30 6:22
58 Luca Kruger 🇩🇪 GER24th of 74 aged 30-34 30-34 1:11:33 14:41 33:32 33:06 4:58 4:06 3:44 5:01 3:32 4:14 1:29 5:19 5:41
59 Thomas Lecieux 🇫🇷 FRA3rd of 12 aged 45-49 45-49 1:11:50 14:58 30:54 36:04 4:56 4:17 4:29 5:54 3:40 4:26 1:46 5:07 6:25
60 Jan Lienig 🇩🇪 GER13th of 65 aged 35-39 35-39 1:11:52 15:00 32:58 33:23 5:35 4:07 4:34 6:03 3:52 4:12 1:51 3:46 4:58
61 Leonard Adolphs 🇩🇪 GER25th of 74 aged 30-34 30-34 1:12:09 15:17 33:55 33:09 5:10 4:08 4:22 4:34 3:42 4:27 1:59 5:40 4:17
62 Dominik Kaunert 🇩🇪 GER26th of 74 aged 30-34 30-34 1:12:21 15:29 33:55 33:22 5:08 4:06 3:52 5:05 4:13 4:13 1:49 4:51 5:13
63 David Offergeld 🇩🇪 GER27th of 74 aged 30-34 30-34 1:12:21 15:29 31:03 36:33 4:51 4:24 4:27 7:41 3:19 4:29 1:30 4:24 6:19
64 Patrick Martens 🇩🇪 GER14th of 65 aged 35-39 35-39 1:12:22 15:30 33:02 34:05 5:20 3:59 5:35 4:44 3:26 4:25 1:45 3:56 6:15
65 Thomas Reuter 🇩🇪 GER4th of 19 aged 40-44 40-44 1:12:26 15:34 33:36 33:36 5:18 4:03 4:13 4:58 3:41 4:19 1:44 5:02 5:36
66 Gregory Piombino 🇫🇷 FRA4th of 12 aged 45-49 45-49 1:12:27 15:35 34:25 31:50 6:16 3:50 3:34 4:48 3:20 4:19 1:57 4:31 5:31
67 Jake Fletcher 🇬🇧 GBR28th of 74 aged 30-34 30-34 1:12:49 15:57 32:57 34:58 4:59 4:04 3:45 7:07 2:40 4:21 1:59 4:04 6:58
68 Benjamin Rezzonico 🇫🇷 FRA15th of 65 aged 35-39 35-39 1:13:03 16:11 35:01 32:41 5:24 4:07 4:38 4:54 2:56 4:28 2:26 4:48 4:24
69 Slohan Jean Marie Marie Magdeleine 🇫🇷 FRA29th of 74 aged 30-34 30-34 1:13:09 16:17 34:47 33:03 5:24 4:00 4:17 5:16 3:45 4:30 1:43 4:38 4:54
70 Dario Bredemeier 🇩🇪 GER12th of 51 aged 25-29 25-29 1:13:18 16:26 34:40 33:23 5:21 4:09 4:06 5:25 3:20 4:17 1:58 3:37 6:31
71 Danny Kubasik 🇩🇪 GER5th of 19 aged 40-44 40-44 1:13:49 16:57 33:28 35:24 4:59 3:54 4:40 4:57 4:44 4:17 1:39 4:07 7:06
72 Martin Heitz 🇩🇪 GER16th of 65 aged 35-39 35-39 1:13:50 16:58 34:43 33:50 5:22 4:06 4:05 4:48 3:39 4:24 1:43 4:33 6:32
73 Gonzalo Villar 🇪🇸 ESP30th of 74 aged 30-34 30-34 1:14:04 17:12 33:48 35:11 5:08 4:13 4:23 5:10 3:46 4:32 1:58 4:48 6:21
74 Steffen Schieke 🇩🇪 GER17th of 65 aged 35-39 35-39 1:14:06 17:14 34:47 34:22 5:02 3:56 4:08 5:00 4:36 4:21 1:55 5:10 5:16
75 Dominik Schreiter 🇩🇪 GER18th of 65 aged 35-39 35-39 1:14:06 17:14 33:16 35:14 5:40 4:10 5:12 5:10 3:45 4:35 1:50 4:31 6:01
76 Torsten Reuter 🇩🇪 GER6th of 19 aged 40-44 40-44 1:14:11 17:19 32:01 36:59 5:15 4:06 5:01 5:47 3:53 4:42 2:05 4:53 6:32
77 Robin Wilzeck 🇩🇪 GER13th of 51 aged 25-29 25-29 1:14:14 17:22 36:39 31:55 5:44 4:09 3:44 4:41 3:28 4:28 2:08 4:36 4:41
78 Joshua Pfahl 🇩🇪 GER14th of 51 aged 25-29 25-29 1:14:14 17:22 34:41 33:13 6:24 4:24 4:50 4:26 3:56 4:23 1:29 4:04 5:41
79 Leon Berfelde 🇩🇪 GER15th of 51 aged 25-29 25-29 1:14:26 17:34 34:31 34:45 5:15 4:11 4:35 5:04 4:14 4:48 1:40 4:00 6:13
80 Johann Frank 🇩🇪 GER19th of 65 aged 35-39 35-39 1:14:30 17:38 33:29 35:31 5:33 4:10 4:40 5:31 3:43 4:45 1:54 4:32 6:16
81 Yul Oeltze 🇩🇪 GER31st of 74 aged 30-34 30-34 1:14:34 17:42 36:27 32:45 5:25 4:03 3:24 5:23 3:38 4:19 1:56 4:44 5:18
82 Mika Jagdmann 🇩🇪 GER7th of 20 aged 16-24 16-24 1:14:34 17:42 32:47 36:27 5:24 4:01 4:17 6:12 4:33 4:22 1:44 4:47 6:31
83 Jan-Peer Martins 🇩🇪 GER16th of 51 aged 25-29 25-29 1:14:35 17:43 34:17 34:56 5:26 4:06 4:03 5:17 4:45 4:24 1:27 5:13 5:41
84 Fabian Sorgen 🇩🇪 GER20th of 65 aged 35-39 35-39 1:14:37 17:45 36:20 32:27 5:55 3:59 4:18 4:43 3:39 4:16 2:02 3:50 5:40
85 Laurenz Pötzelsberger 🇦🇹 AUT21st of 65 aged 35-39 35-39 1:14:50 17:58 31:03 37:25 6:25 4:03 4:37 6:28 3:51 4:22 2:34 4:21 7:09
86 Leon Karman 🇩🇪 GER17th of 51 aged 25-29 25-29 1:15:23 18:31 33:53 36:12 5:23 4:15 3:58 6:31 4:45 4:24 2:24 3:48 6:07
87 Florian Krege 🇩🇪 GER32nd of 74 aged 30-34 30-34 1:15:26 18:34 34:37 35:28 5:26 4:05 4:28 5:49 4:09 4:33 1:58 4:21 6:05
88 Christian Faltermaier 🇩🇪 GER33rd of 74 aged 30-34 30-34 1:15:29 18:37 35:26 35:04 5:02 4:04 4:22 5:24 4:00 4:18 2:20 4:54 5:42
89 Gerrit Bockey 🇩🇪 GER34th of 74 aged 30-34 30-34 1:15:36 18:44 34:10 35:55 5:35 4:07 5:10 5:49 3:16 4:29 2:36 4:00 6:28
90 Niklas Oppermann 🇩🇪 GER18th of 51 aged 25-29 25-29 1:15:44 18:52 34:03 36:03 5:41 4:03 4:58 5:22 4:07 4:24 2:01 4:24 6:44
91 Malik Seidu 🇩🇪 GER35th of 74 aged 30-34 30-34 1:15:49 18:57 36:58 33:40 5:14 4:07 3:32 4:32 3:47 4:20 1:54 5:33 5:55
92 Julien Wagner 🇫🇷 FRA36th of 74 aged 30-34 30-34 1:15:56 19:04 36:47 33:39 5:33 4:11 5:04 4:33 3:42 4:27 1:52 4:15 5:35
93 Alexander Lindner 🇩🇪 GER22nd of 65 aged 35-39 35-39 1:16:01 19:09 37:10 33:01 5:56 4:05 5:23 5:13 3:43 4:08 1:35 4:13 4:41
94 Stefan Ecks 🇩🇪 GER1st of 11 aged 50-54 50-54 1:16:11 19:19 35:24 35:09 5:42 3:58 4:28 4:57 4:31 4:11 2:04 4:52 6:08
95 Alexander Gaugler 🇩🇪 GER2nd of 11 aged 50-54 50-54 1:16:13 19:21 36:08 33:54 6:16 4:06 4:27 5:03 4:18 4:27 1:45 4:10 5:38
96 Martin Schäfer 🇩🇪 GER23rd of 65 aged 35-39 35-39 1:16:19 19:27 33:11 37:27 5:43 4:07 5:20 6:13 5:00 4:21 1:51 4:42 5:53
97 Dominik Bodenmüller 🇩🇪 GER24th of 65 aged 35-39 35-39 1:16:20 19:28 35:19 35:32 5:34 4:06 5:48 5:42 3:22 4:22 2:04 4:30 5:38
98 Denis Holdschick 🇩🇪 GER25th of 65 aged 35-39 35-39 1:16:30 19:38 34:31 36:39 5:24 4:05 4:38 5:23 3:50 4:24 1:38 4:52 7:49
99 Tieme de Boer 🇳🇱 NED8th of 20 aged 16-24 16-24 1:16:31 19:39 34:00 37:32 5:02 4:03 5:20 5:19 3:15 4:33 2:59 4:34 7:29
100 Yannik Wasmuth 🇩🇪 GER37th of 74 aged 30-34 30-34 1:16:32 19:40 30:08 41:05 5:24 4:07 7:16 5:15 4:53 4:31 2:25 5:26 7:12
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