HYROX Hamburg 2025: Doubles Men results

1,191 teams on 3 Oct 2025. Typical finish 1:15:47, 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 Loui Gravgaard, Lukas Wrobel 🇩🇰 DEN1st of 260 aged 25-29 25-29 52:41 27:50 20:30 4:25 3:17 1:30 2:19 2:22 3:48 1:19 2:23 3:32
2 Christian Nolde, Pascal Hatz 🇩🇪 GER1st of 254 aged 35-39 35-39 53:39 0:58 29:25 19:26 4:52 3:24 1:33 1:59 1:45 3:59 1:20 2:01 3:25
3 Anton Hülsey, Marco Kauschka 🇩🇪 GER1st of 325 aged 30-34 30-34 55:07 2:26 28:31 21:43 4:57 3:29 1:38 2:27 2:48 4:08 1:22 2:17 3:34
4 Robert Hobbs, Ryan Gackowski 🇬🇧 GBR2nd of 254 aged 35-39 35-39 55:48 3:07 30:34 20:20 4:59 3:43 1:31 2:17 2:05 3:54 1:13 2:19 3:18
5 Dominik Fechner, Fabian Müller 🇩🇪 GER3rd of 254 aged 35-39 35-39 55:52 3:11 30:21 20:35 5:02 3:27 1:38 2:42 1:54 3:53 1:12 2:19 3:30
6 Andreas Schneider, Sebastian Geisel 🇩🇪 GER4th of 254 aged 35-39 35-39 55:54 3:13 31:38 19:27 4:54 3:31 1:29 1:38 1:45 3:52 1:06 2:47 3:19
7 Golo Röhrken, Christoph Mattner 🇩🇪 GER5th of 254 aged 35-39 35-39 56:22 3:41 29:27 22:04 4:54 3:36 1:32 2:38 2:05 4:04 1:21 3:03 3:45
8 Matteo Radice, Michele Stancanelli 🇮🇹 ITA6th of 254 aged 35-39 35-39 56:40 3:59 30:34 21:13 4:58 3:35 1:39 2:39 2:04 4:10 1:34 2:17 3:15
9 Dave Agterhof, Sven Wierda 🇳🇱 NED2nd of 260 aged 25-29 25-29 56:49 4:08 30:17 21:34 5:03 3:52 1:26 2:03 2:39 4:06 1:21 2:30 3:37
10 Bastian Laumeier, Jan Nicholas Bauer 🇩🇪 GER7th of 254 aged 35-39 35-39 57:10 4:29 30:47 21:21 5:08 3:23 1:38 2:31 2:08 3:57 1:20 2:33 3:51
11 Bendix Willkner, Gerrit Willkner 🇩🇪 GER2nd of 325 aged 30-34 30-34 57:28 4:47 30:33 21:59 5:00 3:39 1:38 2:25 2:32 4:03 1:30 2:25 3:47
12 Tobias Hosenfelder, Johannes Großer 🇩🇪 GER3rd of 260 aged 25-29 25-29 57:37 4:56 32:14 20:16 5:12 3:32 1:14 2:19 2:11 3:58 1:10 2:12 3:40
13 Max Minges, Julian Schmitt 🇩🇪 GER3rd of 325 aged 30-34 30-34 57:46 5:05 29:50 22:59 5:00 3:55 1:41 2:42 2:22 4:25 1:21 3:04 3:29
14 Václav Bureš, michal nutil 🇨🇿 CZE4th of 325 aged 30-34 30-34 57:52 5:11 31:15 21:40 5:01 3:44 1:29 2:38 2:11 3:57 1:25 2:41 3:35
15 Alexander Herbrecht, Daniel Stanik 🇩🇪 GER8th of 254 aged 35-39 35-39 57:55 5:14 31:45 21:17 4:58 3:26 1:43 2:24 2:15 4:01 1:18 2:41 3:29
16 Thijmen Alards, Julian Martens 🇳🇱 NED1st of 121 aged 16-24 16-24 58:05 5:24 31:23 21:54 4:53 3:57 1:26 2:45 2:10 4:08 1:28 2:19 3:41
17 Leon Bargemann, Alexander Becker 🇩🇪 GER5th of 325 aged 30-34 30-34 58:13 5:32 31:07 22:07 5:03 3:38 1:27 2:39 2:36 4:11 1:22 2:31 3:43
18 Markus Heinrich, Tim Peters 🇩🇪 GER6th of 325 aged 30-34 30-34 58:22 5:41 30:16 23:01 5:09 3:58 1:53 2:47 2:41 4:08 1:13 2:40 3:41
19 Anders Borggaard, Søren Vestergaard Christensen 🇩🇰 DEN9th of 254 aged 35-39 35-39 58:24 5:43 31:22 21:59 5:06 3:47 1:32 2:36 2:12 4:17 1:03 2:56 3:36
20 Jens Rechmann, Björn Wehmeier 🇩🇪 GER7th of 325 aged 30-34 30-34 58:31 5:50 31:03 22:32 5:02 3:48 1:36 2:35 2:21 4:05 1:21 2:49 3:57
21 Stefan Zink, Helmut Wölkart 🇦🇹 AUT1st of 129 aged 40-44 40-44 58:35 5:54 31:27 21:53 5:21 3:38 1:38 2:34 2:37 4:02 1:25 2:29 3:30
22 Stefan Pruy, Maximilian Häckner 🇩🇪 GER10th of 254 aged 35-39 35-39 58:39 5:58 32:57 20:36 5:11 3:31 1:29 2:23 2:16 3:48 1:19 2:41 3:09
23 Philip Reimer, Jannik Feilner 🇩🇪 GER4th of 260 aged 25-29 25-29 58:42 6:01 31:01 22:14 5:31 3:33 1:43 2:36 2:38 4:03 1:28 2:44 3:29
24 Christian Ewert, Per-Ole Claaßen 🇩🇪 GER8th of 325 aged 30-34 30-34 59:01 6:20 31:27 22:11 5:28 3:35 1:49 2:19 2:14 3:59 1:11 2:37 4:27
25 Rens Schepers, Jelco van den broek 🇳🇱 NED2nd of 121 aged 16-24 16-24 59:08 6:27 32:28 21:34 5:10 3:46 1:32 2:26 2:28 4:07 1:20 2:33 3:22
26 Mike Walhof, Per Nieuwenhuis 🇳🇱 NED3rd of 121 aged 16-24 16-24 59:11 6:30 30:37 23:25 5:14 4:02 1:28 2:58 2:53 4:19 1:25 2:45 3:35
27 Milos Cekic, Simon Karker 🇩🇪 GER11th of 254 aged 35-39 35-39 59:15 6:34 31:02 22:48 5:29 3:34 1:48 2:51 2:20 4:16 1:31 2:17 4:11
28 Francesco Manini, Arian Sheshi 🇮🇹 ITA9th of 325 aged 30-34 30-34 59:20 6:39 30:19 23:51 5:14 3:51 1:48 2:55 2:36 4:22 1:30 2:59 3:50
29 Kris Linton, Frankie Thorogood 🇬🇧 GBR12th of 254 aged 35-39 35-39 59:23 6:42 30:53 23:23 5:12 3:47 1:45 3:09 2:20 4:12 1:26 2:45 3:59
30 Daniel Dzillack, Stefan Ecks 🇩🇪 GER2nd of 129 aged 40-44 40-44 59:36 6:55 32:35 21:39 5:27 3:37 1:30 2:23 2:04 4:03 1:25 2:47 3:50
31 Rene Jentz, Jan Tegtmeyer 🇩🇪 GER5th of 260 aged 25-29 25-29 59:43 7:02 31:54 22:27 5:27 3:51 1:44 2:37 2:35 4:07 1:26 2:23 3:44
32 Marco Möhring, Lukas Hoffmann 🇩🇪 GER10th of 325 aged 30-34 30-34 59:44 7:03 31:10 23:30 5:08 3:38 1:47 2:56 2:43 4:13 1:29 2:57 3:47
33 Dustin Schliwka, Justus Herrenbrück 🇩🇪 GER6th of 260 aged 25-29 25-29 59:46 7:05 31:42 22:49 5:20 3:38 1:51 2:32 2:36 4:17 1:26 2:42 3:47
34 Richard Naughton, Cobus Basson 🇮🇪 IRL1st of 61 aged 45-49 45-49 59:47 7:06 31:31 23:06 5:14 3:49 1:50 2:45 2:38 4:05 1:29 2:48 3:42
35 Paul Baade, Florian Heinz 🇩🇪 GER4th of 121 aged 16-24 16-24 59:49 7:08 31:07 23:44 5:03 3:58 1:39 2:37 2:48 4:22 1:24 3:01 3:55
36 Adrian Roseanu, Sven Petersen 🇩🇪 GER11th of 325 aged 30-34 30-34 59:51 7:10 32:03 22:25 5:29 3:40 1:40 2:36 2:31 4:03 1:26 2:54 3:35
37 Andre Karthaus, Patrick Semmler 🇩🇪 GER13th of 254 aged 35-39 35-39 59:57 7:16 31:58 22:55 5:09 3:38 1:44 2:35 2:51 3:54 1:18 2:56 3:59
38 Faris Fattohi, Ricky Reinspach 🇩🇪 GER14th of 254 aged 35-39 35-39 59:59 7:18 32:35 21:58 5:30 3:42 1:35 2:16 2:52 4:03 1:27 2:26 3:37
39 Mark Day, Ian Thomas 🇬🇧 GBR2nd of 61 aged 45-49 45-49 1:00:02 7:21 32:48 21:47 5:31 3:43 1:31 3:06 1:43 4:07 1:17 2:44 3:36
40 Jesper Herr, Thorben Franzen 🇩🇪 GER15th of 254 aged 35-39 35-39 1:00:14 7:33 32:40 22:15 5:22 3:47 1:44 2:33 2:12 4:10 1:24 2:34 3:51
41 Matthias Diekmann, Jannis Marks 🇩🇪 GER12th of 325 aged 30-34 30-34 1:00:16 7:35 33:38 20:49 5:53 3:42 1:18 1:53 2:30 4:00 1:11 2:27 3:48
42 Juup Rutgers, Leon Eleveld 🇳🇱 NED5th of 121 aged 16-24 16-24 1:00:25 7:44 32:06 23:15 5:10 3:49 1:48 2:28 2:34 4:22 1:29 2:53 3:52
43 Aldo Hellmich, Ricardo Wendt 🇩🇪 GER7th of 260 aged 25-29 25-29 1:00:26 7:45 32:36 22:25 5:30 3:41 1:36 2:34 2:18 4:35 1:16 2:47 3:38
44 Michel Barenschee, Amon Klähn 🇩🇪 GER6th of 121 aged 16-24 16-24 1:00:34 7:53 34:44 20:10 5:44 3:30 1:19 2:19 1:48 4:10 1:12 2:30 3:22
45 Harry Bill, Josh Bill 🇬🇧 GBR8th of 260 aged 25-29 25-29 1:00:36 7:55 33:05 22:21 5:14 3:34 1:39 2:26 2:39 4:02 1:43 2:44 3:34
46 Samuel Kemp, Joe Manning 🇬🇧 GBR3rd of 129 aged 40-44 40-44 1:00:39 7:58 31:36 23:48 5:20 3:56 1:37 2:18 3:02 4:19 1:41 2:55 4:00
47 Lukas Dreger, Marc Linn 🇩🇪 GER4th of 129 aged 40-44 40-44 1:00:46 8:05 31:30 23:58 5:22 3:52 1:52 2:55 2:38 4:33 1:35 2:42 3:51
48 Kevin Herse, Justin Johannsen 🇩🇪 GER7th of 121 aged 16-24 16-24 1:00:50 8:09 30:47 24:51 5:17 3:39 1:42 2:56 2:49 4:20 1:43 3:35 4:07
49 Maximilian Schröter, Konstantin Jünger 🇩🇪 GER16th of 254 aged 35-39 35-39 1:00:54 8:13 31:52 23:00 6:07 3:46 1:42 2:57 2:25 4:19 1:16 2:45 3:50
50 Kyle Clegg, Charlie Dee 🇬🇧 GBR9th of 260 aged 25-29 25-29 1:00:55 8:14 33:02 22:23 5:33 3:32 1:43 2:20 2:23 4:05 1:22 3:38 3:20
51 Stefan Link, Matthias Kirchberger 🇩🇪 GER17th of 254 aged 35-39 35-39 1:01:02 8:21 32:58 22:24 5:45 3:50 1:38 2:47 2:11 4:12 1:25 2:49 3:32
52 Johannes Leitner, David Deisinger 🇦🇹 AUT10th of 260 aged 25-29 25-29 1:01:03 8:22 32:15 23:19 5:34 3:40 1:42 2:32 2:21 4:02 1:24 3:36 4:02
53 Pawel Jarutkin, Melvin Franzen 🇩🇪 GER11th of 260 aged 25-29 25-29 1:01:04 8:23 34:28 21:12 5:29 3:37 1:25 2:20 2:05 3:55 1:17 3:03 3:30
54 Tobias Gumpert, Cliff Manjate 🇩🇪 GER13th of 325 aged 30-34 30-34 1:01:13 8:32 32:21 23:40 5:16 3:44 1:37 2:46 2:46 4:00 1:24 3:09 4:14
55 Callum Jones, Osian Burrell 🇬🇧 GBR8th of 121 aged 16-24 16-24 1:01:14 8:33 31:37 24:21 5:21 4:04 1:34 2:50 2:35 4:33 1:25 3:30 3:50
56 Michael Wenge, Florian Woiwode 🇩🇪 GER18th of 254 aged 35-39 35-39 1:01:20 8:39 35:31 20:16 5:37 3:26 1:19 2:11 2:08 3:44 1:22 2:36 3:30
57 Tim Ingwersen, Oke Petersen 🇩🇪 GER19th of 254 aged 35-39 35-39 1:01:25 8:44 33:39 22:37 5:12 3:43 1:37 2:51 2:05 4:10 1:22 3:02 3:47
58 Till Hoddick, Thomas Breuer 🇩🇪 GER14th of 325 aged 30-34 30-34 1:01:27 8:46 33:08 23:00 5:24 3:37 1:39 2:41 2:52 4:01 1:30 2:57 3:43
59 Jannik Drews, Hagen Daub 🇩🇪 GER15th of 325 aged 30-34 30-34 1:01:28 8:47 34:01 22:08 5:24 3:38 1:27 2:17 2:33 4:00 1:26 2:55 3:52
60 Oke Petersen, Lance Krüger 🇩🇪 GER9th of 121 aged 16-24 16-24 1:01:28 8:47 33:47 22:31 5:13 3:42 1:41 2:43 2:39 4:04 1:16 2:59 3:27
61 Jakob Bohls, Luca Vogel 🇩🇪 GER10th of 121 aged 16-24 16-24 1:01:35 8:54 33:57 22:04 5:39 3:43 1:34 2:23 2:13 4:11 1:24 2:49 3:47
62 Alex Forsyth, Ollie Vickery 🇬🇧 GBR12th of 260 aged 25-29 25-29 1:01:35 8:54 32:02 24:32 5:06 4:06 1:46 2:23 2:53 4:15 1:36 3:47 3:46
63 Mike Andersen, Simon Kjølhede 🇩🇰 DEN20th of 254 aged 35-39 35-39 1:01:37 8:56 32:38 23:32 5:31 3:57 1:43 2:49 2:23 4:19 1:24 3:18 3:39
64 Jack Wilks, Lucas Leedam 🇬🇧 GBR11th of 121 aged 16-24 16-24 1:01:51 9:10 32:36 24:04 5:15 3:49 1:28 2:12 3:06 4:06 1:47 3:19 4:17
65 João Ganhão, João Ataíde 🇵🇹 POR21st of 254 aged 35-39 35-39 1:01:58 9:17 32:40 22:19 7:05 3:42 1:26 2:16 2:26 4:12 1:31 2:53 3:53
66 Maximilian Bäumken, Dennis Schreiber 🇩🇪 GER16th of 325 aged 30-34 30-34 1:02:01 9:20 34:12 21:55 5:58 3:50 1:29 1:54 2:30 4:04 1:22 3:02 3:44
67 James rowbotham, adam Aylett 🇬🇧 GBR17th of 325 aged 30-34 30-34 1:02:05 9:24 35:00 21:25 5:44 3:35 1:40 2:18 2:17 4:07 1:15 2:33 3:40
68 Martin Draxel, Nils Metzger 🇩🇪 GER18th of 325 aged 30-34 30-34 1:02:06 9:25 32:32 24:17 5:22 3:36 1:48 3:36 2:41 4:02 1:27 2:35 4:32
69 Manuel Völlinger, Dennis Breithaupt 🇩🇪 GER5th of 129 aged 40-44 40-44 1:02:17 9:36 33:46 22:40 5:56 3:46 1:44 2:49 2:18 4:15 1:36 2:45 3:27
70 Maximilian Schrader, Florian Dehlinger 🇩🇪 GER19th of 325 aged 30-34 30-34 1:02:28 9:47 32:31 24:27 5:34 3:48 1:51 3:01 2:35 4:22 1:27 3:11 4:12
71 Michael Müller, Florian Tresch 🇨🇭 SUI22nd of 254 aged 35-39 35-39 1:02:31 9:50 36:32 20:30 5:34 3:49 1:20 2:25 1:46 3:59 1:25 2:02 3:44
72 ondry priebe, andreas landerl 🇩🇪 GER20th of 325 aged 30-34 30-34 1:02:33 9:52 33:10 23:52 5:37 3:55 1:33 2:29 3:06 4:12 1:30 3:22 3:45
73 Michael Feddersen, Niels Carstensen 🇩🇪 GER21st of 325 aged 30-34 30-34 1:02:41 10:00 33:45 23:08 5:52 3:46 1:39 2:46 2:23 4:19 1:30 3:03 3:42
74 Alessandro Renucci, Daniel Burns 🇬🇧 GBR23rd of 254 aged 35-39 35-39 1:02:43 10:02 32:30 25:02 5:15 3:44 1:22 3:23 2:56 4:29 1:29 3:05 4:34
75 Franz Plückhahn, Daniel Hilbrath 🇩🇪 GER13th of 260 aged 25-29 25-29 1:02:49 10:08 34:49 22:35 5:29 3:51 1:42 2:35 2:40 4:20 1:32 2:28 3:27
76 Tino Kern, Michel Feldkamp 🇩🇪 GER14th of 260 aged 25-29 25-29 1:02:51 10:10 33:42 23:31 5:42 3:52 1:49 2:51 2:16 4:24 1:27 2:54 3:58
77 Moses Schäfer, Tobias Gärtner 🇩🇪 GER15th of 260 aged 25-29 25-29 1:02:52 10:11 35:04 22:18 5:35 3:32 1:38 3:17 2:02 4:08 1:24 2:28 3:49
78 Micha Grüber, Hauke Wagner 🇩🇪 GER6th of 129 aged 40-44 40-44 1:02:56 10:15 34:27 22:34 6:00 3:39 1:33 2:27 2:23 4:15 1:27 3:02 3:48
79 Julian Hanka, Tom Albrecht 🇩🇪 GER16th of 260 aged 25-29 25-29 1:03:03 10:22 34:20 23:06 5:42 3:48 1:42 2:42 2:11 4:05 1:29 2:37 4:32
80 Javier Alfonso Moreno, Fernando Raga Pascual 🇪🇸 ESP17th of 260 aged 25-29 25-29 1:03:05 10:24 35:01 22:21 5:49 3:37 1:40 2:25 2:02 4:17 1:22 3:06 3:52
81 Tomaz Rebol, Alen Gornjak 🇸🇮 SLO22nd of 325 aged 30-34 30-34 1:03:07 10:26 35:12 22:34 5:25 3:37 1:50 2:38 2:43 4:07 1:17 2:46 3:36
82 Phil Willems, Phil Staßen 🇩🇪 GER12th of 121 aged 16-24 16-24 1:03:10 10:29 34:05 23:24 5:46 3:44 1:34 2:49 2:12 4:28 1:12 3:12 4:13
83 Niklas Leiß, Philipp Hamm 🇩🇪 GER23rd of 325 aged 30-34 30-34 1:03:11 10:30 34:03 23:50 5:21 3:45 1:46 2:42 2:40 4:22 1:30 3:20 3:45
84 Patrick Zilligen, Danny Kubasik 🇩🇪 GER24th of 254 aged 35-39 35-39 1:03:13 10:32 35:38 22:06 5:34 3:38 1:41 2:09 2:46 4:05 1:05 2:52 3:50
85 Daniel Jessen, Jacob Damsgaard Nielsen 🇩🇰 DEN7th of 129 aged 40-44 40-44 1:03:14 10:33 36:43 20:39 5:58 3:24 1:30 1:52 2:52 3:48 1:22 2:29 3:22
86 Benjamin Czornik, Arne Goltermann 🇩🇪 GER8th of 129 aged 40-44 40-44 1:03:16 10:35 34:35 23:00 5:44 3:50 1:41 2:46 2:33 4:23 1:27 2:46 3:34
87 Hong Nguyen, Raphael Schobess 🇩🇪 GER24th of 325 aged 30-34 30-34 1:03:19 10:38 35:08 22:00 6:15 3:32 1:29 2:10 1:52 4:05 1:17 3:32 4:03
88 Bram Engelbertink, Daan Engelbertink 🇳🇱 NED13th of 121 aged 16-24 16-24 1:03:23 10:42 34:06 23:43 5:39 3:36 1:25 2:25 3:22 4:21 1:30 2:49 4:15
89 Lucas Bäumer, Pierre Petrus Johannes Denis Sommers 🇩🇪 GER25th of 325 aged 30-34 30-34 1:03:29 10:48 33:13 24:07 6:12 3:31 1:41 2:29 3:29 4:32 1:38 2:56 3:51
90 Jonah Hüppe, Luca Hüppe 🇩🇪 GER26th of 325 aged 30-34 30-34 1:03:35 10:54 35:05 22:28 6:06 3:49 1:31 2:47 2:38 4:12 1:28 2:21 3:42
91 Paul Weyhe, Lennart Decker 🇩🇪 GER14th of 121 aged 16-24 16-24 1:03:41 11:00 34:04 23:48 5:54 3:51 1:40 2:52 2:10 4:31 1:21 3:23 4:00
92 George Crook, Doug Gremmen 🇬🇧 GBR25th of 254 aged 35-39 35-39 1:03:42 11:01 34:22 23:52 5:33 3:31 1:40 2:45 2:51 4:29 1:37 3:03 3:56
93 Matthias Wenzel, Fabian Kretzschmann 🇩🇪 GER26th of 254 aged 35-39 35-39 1:03:48 11:07 35:21 22:12 6:20 3:48 1:35 2:19 2:25 4:10 1:13 2:50 3:52
94 Marius Gerber, Michael Podolski 🇩🇪 GER27th of 254 aged 35-39 35-39 1:03:52 11:11 34:02 24:12 5:43 3:49 1:46 2:37 3:11 4:16 1:34 3:23 3:36
95 Robin Borgert, Gian Lucas Bencun 🇩🇪 GER18th of 260 aged 25-29 25-29 1:03:53 11:12 34:24 23:36 5:56 3:42 — 2:19 3:05 4:16 1:21 3:25 4:35
96 Leon Schäfer, Henrik Finnern 🇩🇪 GER19th of 260 aged 25-29 25-29 1:03:54 11:13 33:39 24:09 6:10 3:56 1:39 3:01 2:42 4:04 1:34 3:13 4:00
97 Julian Glatter, Christian Winkels 🇩🇪 GER27th of 325 aged 30-34 30-34 1:03:59 11:18 33:37 24:15 6:12 3:54 1:50 2:47 2:59 4:19 1:29 3:00 3:57
98 Marco Kenneder, Simon Geissinger 🇩🇪 GER28th of 254 aged 35-39 35-39 1:04:01 11:20 35:37 22:10 6:17 3:35 1:36 2:21 2:18 4:04 1:25 2:48 4:03
99 tom Stewart, Ciaran Flanagan 🇬🇧 GBR28th of 325 aged 30-34 30-34 1:04:02 11:21 33:41 24:23 6:01 3:41 1:42 3:08 3:09 4:17 1:25 3:04 3:57
100 Jan-Niklas Sator, Christoph Holletzek 🇩🇪 GER20th of 260 aged 25-29 25-29 1:04:02 11:21 33:49 25:09 5:08 3:46 1:47 3:15 2:32 4:19 1:44 3:15 4:31
How to read

The place is among timed teams in Doubles 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