HYROX Stuttgart 2025: Doubles Men results

754 teams on 1 Nov 2025. Typical finish 1:14:32, fastest 10% under 1:03:14. Back to the analysis.

# Athlete Age Time Behind 1st Runs Stations Rox Ski Push Pull BBJ Row Carry Lunge WB
1 Yacine Bennafla, Matteo Solari 🇨🇭 SUI1st of 168 aged 25-29 25-29 52:24 26:49 19:46 5:52 3:36 1:21 2:11 1:50 3:48 1:21 2:03 3:36
2 Kristofer McSherry, Euan Dickson 🇬🇧 GBR2nd of 168 aged 25-29 25-29 54:27 2:03 27:20 21:17 5:56 3:34 1:18 2:20 2:26 4:13 1:24 2:23 3:39
3 Sebastian Geisel, Andreas Schneider 🇩🇪 GER1st of 155 aged 35-39 35-39 56:03 3:39 29:48 19:59 6:21 3:38 1:23 1:53 1:55 3:53 1:14 2:35 3:28
4 Moritz Sippl, Christian Anwander 🇩🇪 GER1st of 65 aged 16-24 16-24 57:26 5:02 30:11 20:57 6:22 3:51 1:19 2:14 2:15 4:05 1:21 2:05 3:47
5 Tim Koep, Ralf Ulmer 🇩🇪 GER3rd of 168 aged 25-29 25-29 57:28 5:04 29:31 21:54 6:08 3:46 1:19 2:57 2:09 3:57 1:12 2:37 3:57
6 Maximilian Jansen, Lukas Braunewell 🇩🇪 GER4th of 168 aged 25-29 25-29 57:29 5:05 28:59 22:01 6:33 3:38 1:22 2:40 2:34 4:00 1:22 2:41 3:44
7 Carsten Kuhle, Michael Vomland 🇩🇪 GER1st of 79 aged 40-44 40-44 58:15 5:51 28:44 23:01 6:35 3:37 1:24 2:36 2:58 4:10 1:23 2:51 4:02
8 Marcel Meier, Dimitrij Poprygin 🇩🇪 GER5th of 168 aged 25-29 25-29 58:24 6:00 30:44 21:14 6:31 3:51 1:30 2:28 2:05 4:08 1:23 2:16 3:33
9 Tiago Romão, Norberto Santos 🇵🇹 POR2nd of 79 aged 40-44 40-44 58:24 6:00 29:04 22:55 6:30 3:53 1:37 2:32 2:28 4:09 1:39 3:04 3:33
10 Dominik Staudacher, Tobias Offt 🇩🇪 GER6th of 168 aged 25-29 25-29 58:28 6:04 30:27 20:25 7:42 3:28 1:35 1:53 2:16 3:38 1:16 2:32 3:47
11 Milos Cekic, Simon Karker 🇩🇪 GER2nd of 155 aged 35-39 35-39 58:34 6:10 30:11 21:58 6:27 3:40 1:32 2:28 2:12 4:24 1:25 2:12 4:05
12 Matthijs Bakker, Geert Biemans 🇳🇱 NED7th of 168 aged 25-29 25-29 58:50 6:26 28:44 24:01 6:10 3:48 1:40 2:43 2:56 4:11 1:34 2:48 4:21
13 Alexander Glanzner, Marcel Scheurer 🇩🇪 GER8th of 168 aged 25-29 25-29 58:54 6:30 28:52 23:19 6:47 3:41 1:34 2:31 2:48 4:08 1:23 2:44 4:30
14 Fabrizio Arboit, Julian Hosp 🇨🇭 SUI1st of 231 aged 30-34 30-34 58:56 6:32 29:48 22:45 6:26 3:36 1:34 2:35 1:50 3:57 1:24 2:53 4:56
15 Timur Öztuna, Marc Steinke 🇩🇪 GER3rd of 79 aged 40-44 40-44 59:02 6:38 30:52 21:49 6:25 3:34 1:38 2:41 2:20 3:48 1:19 2:40 3:49
16 Anthony Gandubert, Matthieu Gadal 🇫🇷 FRA3rd of 155 aged 35-39 35-39 59:12 6:48 30:08 22:41 6:28 3:45 1:20 2:40 1:51 3:59 1:30 2:43 4:53
17 Tijmen Sportel, Leon Eleveld 🇳🇱 NED2nd of 65 aged 16-24 16-24 59:21 6:57 29:46 23:12 6:29 3:46 1:38 2:46 2:51 4:15 1:37 2:33 3:46
18 Anthony Gillet, Théo Morel 🇫🇷 FRA2nd of 231 aged 30-34 30-34 59:28 7:04 30:41 22:12 6:40 3:55 1:29 2:37 1:53 4:07 1:42 2:52 3:37
19 Joshua Wilhelm, Lukas Agne 🇩🇪 GER3rd of 231 aged 30-34 30-34 59:32 7:08 30:09 22:14 7:14 3:50 1:16 2:37 2:16 4:12 1:12 2:54 3:57
20 Max Hammer, Fabian Rösl 🇩🇪 GER9th of 168 aged 25-29 25-29 59:33 7:09 30:41 22:10 6:48 3:44 1:16 2:51 2:18 3:54 1:21 2:33 4:13
21 Tom Barclay, Brendan Barclay 🇬🇧 GBR4th of 231 aged 30-34 30-34 59:35 7:11 31:34 21:12 6:52 3:42 1:10 2:15 2:23 4:05 1:07 2:30 4:00
22 Silas Herceg, Daniel Leibinger 🇭🇷 CRO10th of 168 aged 25-29 25-29 59:37 7:13 31:53 21:15 6:32 3:40 1:30 1:58 2:58 3:53 1:26 2:38 3:12
23 Aulky Wang, Eduard Korent 🇳🇿 NZL3rd of 65 aged 16-24 16-24 59:38 7:14 31:34 21:15 6:53 4:02 1:24 2:46 1:56 3:57 1:20 2:17 3:33
24 Bendix Willkner, Gerrit Willkner 🇩🇪 GER5th of 231 aged 30-34 30-34 59:46 7:22 30:22 22:31 6:58 3:48 1:38 2:37 2:37 4:09 1:32 2:33 3:37
25 Botond Szlabony, Roger Serrano 🇭🇺 HUN6th of 231 aged 30-34 30-34 59:49 7:25 31:46 21:07 6:58 3:57 1:29 1:58 2:12 4:14 1:15 2:43 3:19
26 Melvin Franzen, Max Gorich Hoffmann 🇩🇪 GER4th of 65 aged 16-24 16-24 59:49 7:25 31:54 21:21 6:39 3:36 1:35 2:22 2:14 3:52 1:22 2:41 3:39
27 Raphael Böni, Florian Böni 🇨🇭 SUI11th of 168 aged 25-29 25-29 59:59 7:35 30:20 22:57 6:47 3:42 1:24 2:42 2:36 4:11 1:23 3:03 3:56
28 Lukas Priebe, Tim Bertsche 🇩🇪 GER12th of 168 aged 25-29 25-29 1:00:03 7:39 31:04 22:31 6:31 3:51 1:37 2:42 2:22 4:04 1:16 2:46 3:53
29 Alexander Meisolle, Carsten Flynn 🇩🇪 GER4th of 155 aged 35-39 35-39 1:00:10 7:46 31:17 21:34 7:24 3:37 1:25 2:20 2:24 4:06 1:24 2:42 3:36
30 Max Minges, Julian Schmitt 🇩🇪 GER7th of 231 aged 30-34 30-34 1:00:12 7:48 29:05 24:36 6:34 4:05 1:40 3:33 2:34 4:27 1:38 3:06 3:33
31 Alaa Mourad, Jad Eid 🇩🇪 GER8th of 231 aged 30-34 30-34 1:00:14 7:50 29:55 23:21 7:02 3:54 1:27 2:38 2:24 4:28 1:26 2:48 4:16
32 Dennis Nessen, Max Wörtge 🇩🇪 GER5th of 155 aged 35-39 35-39 1:00:22 7:58 32:01 21:35 6:51 3:47 1:25 2:34 2:12 4:05 1:27 2:40 3:25
33 Lukas Gesell, Jonte Weeber 🇩🇪 GER13th of 168 aged 25-29 25-29 1:00:22 7:58 30:24 23:21 6:41 3:35 1:45 2:46 2:37 4:12 1:19 3:00 4:07
34 Joschka Schlicht, Josa Rödiger 🇩🇪 GER9th of 231 aged 30-34 30-34 1:00:25 8:01 30:45 23:15 6:28 3:51 1:33 2:39 2:48 4:17 1:18 2:57 3:52
35 Scott Moffat, David Turner 🇬🇧 GBR10th of 231 aged 30-34 30-34 1:00:51 8:27 32:14 22:11 6:31 3:42 1:32 2:42 2:18 3:59 1:21 2:38 3:59
36 Ferdinand Vogler, Michael Fenner 🇩🇪 GER11th of 231 aged 30-34 30-34 1:00:59 8:35 31:39 22:40 6:44 3:49 1:35 2:44 2:38 3:55 1:20 2:58 3:41
37 Daniel Widjaja, Ronny Gwerder 🇨🇭 SUI6th of 155 aged 35-39 35-39 1:01:01 8:37 31:13 22:47 7:06 3:55 1:35 2:57 2:23 4:09 1:26 2:53 3:29
38 Stefan Hitzlsperger, Tobias Dangl 🇩🇪 GER12th of 231 aged 30-34 30-34 1:01:06 8:42 31:15 23:01 6:54 3:45 1:22 2:31 2:38 4:00 1:25 3:06 4:14
39 Sandro Melchien, Brian Takacs 🇩🇪 GER13th of 231 aged 30-34 30-34 1:01:13 8:49 30:19 24:20 6:37 4:07 1:42 3:01 2:48 4:25 1:32 2:52 3:53
40 Kai Schäfer, Patrick Martens 🇩🇪 GER7th of 155 aged 35-39 35-39 1:01:29 9:05 33:13 21:37 6:43 3:41 1:28 2:37 2:13 4:01 1:23 2:45 3:29
41 Max Schöpping, Paul Senger 🇩🇪 GER14th of 231 aged 30-34 30-34 1:01:34 9:10 28:15 26:52 6:33 3:45 1:38 3:19 3:38 4:10 1:36 4:14 4:32
42 Linus Fadini, Sidney Torlach 🇩🇪 GER14th of 168 aged 25-29 25-29 1:01:36 9:12 31:33 23:02 7:05 3:47 1:35 3:05 2:25 4:10 1:21 2:52 3:47
43 André Ullsperger, Hannes Eberhardt 🇩🇪 GER4th of 79 aged 40-44 40-44 1:01:38 9:14 30:57 24:29 6:17 3:54 1:42 2:48 3:07 4:13 1:37 3:00 4:08
44 Arrieta Julien, Guillaume Dutheil 🇫🇷 FRA15th of 168 aged 25-29 25-29 1:01:40 9:16 30:28 24:40 6:38 3:52 1:41 2:52 2:59 4:12 1:41 3:04 4:19
45 Marc Söhnle, Steffen Rückert 🇩🇪 GER15th of 231 aged 30-34 30-34 1:01:43 9:19 30:01 25:18 6:27 3:41 1:53 2:51 2:49 4:26 1:31 3:08 4:59
46 Christoph Mehrl, Rouven Werner 🇩🇪 GER8th of 155 aged 35-39 35-39 1:01:49 9:25 32:46 22:15 6:53 3:41 1:22 2:06 2:42 4:03 1:37 2:48 3:56
47 Romain Miot, Sébastien Blaesy 🇫🇷 FRA16th of 231 aged 30-34 30-34 1:01:51 9:27 32:31 22:07 7:17 3:37 1:16 2:30 2:37 4:06 1:26 2:52 3:43
48 Tim Höfling, Stefan Dingeldein 🇩🇪 GER9th of 155 aged 35-39 35-39 1:01:53 9:29 32:02 22:45 7:10 3:49 1:36 2:48 2:22 4:22 1:20 2:21 4:07
49 Alex Dupee, George Nash 🇬🇧 GBR10th of 155 aged 35-39 35-39 1:01:56 9:32 32:09 23:10 6:41 3:54 1:34 2:43 2:27 4:24 1:17 2:30 4:21
50 Hendrik Hilzinger, Julian Hipp 🇩🇪 GER17th of 231 aged 30-34 30-34 1:02:00 9:36 30:30 25:00 6:36 3:57 1:53 2:58 2:59 4:15 1:44 3:16 3:58
51 Chris-Rene Lorch, Lukas Studer 🇩🇪 GER11th of 155 aged 35-39 35-39 1:02:01 9:37 32:42 22:15 7:09 3:53 1:38 2:39 2:14 4:05 1:25 2:34 3:47
52 Daniel Zittlau, Christian Stefani 🇩🇪 GER5th of 79 aged 40-44 40-44 1:02:02 9:38 31:47 23:11 7:09 3:51 1:35 2:42 2:38 4:03 1:22 2:51 4:09
53 Maximilian Sebus, Matheus Schelp Langendyk 🇩🇪 GER18th of 231 aged 30-34 30-34 1:02:10 9:46 31:30 24:01 6:43 3:42 1:45 3:03 2:37 4:10 1:23 3:06 4:15
54 Timm Ehret, Simo Gvero 🇩🇪 GER19th of 231 aged 30-34 30-34 1:02:12 9:48 33:18 21:45 7:13 3:42 1:13 3:03 2:16 3:42 1:13 2:42 3:54
55 Touffik Neggache, Edouard-Jean Michaud 🇫🇷 FRA20th of 231 aged 30-34 30-34 1:02:13 9:49 33:39 21:27 7:11 3:43 1:27 2:13 2:20 3:56 1:35 2:31 3:42
56 Christian Walb, Henrik Walb 🇩🇪 GER16th of 168 aged 25-29 25-29 1:02:13 9:49 32:40 22:30 7:07 3:39 1:13 2:43 2:25 4:04 1:33 2:59 3:54
57 Andreas Jäger, Sebastian Wagner 🇩🇪 GER21st of 231 aged 30-34 30-34 1:02:14 9:50 31:54 23:33 6:53 3:48 1:39 3:03 2:51 4:07 1:25 2:50 3:50
58 Benedikt Ess, Dominik Clemm 🇦🇹 AUT22nd of 231 aged 30-34 30-34 1:02:17 9:53 30:53 24:45 6:45 3:55 1:35 2:54 3:03 4:22 1:35 3:11 4:10
59 Nicolas Falter, Théo Martin-Pasi 🇫🇷 FRA17th of 168 aged 25-29 25-29 1:02:34 10:10 33:45 21:47 7:05 3:48 1:26 2:27 2:15 3:59 1:11 2:48 3:53
60 Tobias Kaspar, Benjamin Maunz 🇩🇪 GER23rd of 231 aged 30-34 30-34 1:02:41 10:17 32:39 22:27 7:42 3:33 1:30 2:28 2:05 4:05 1:31 3:26 3:49
61 Robert Hodgkinson, Ben Jackson 🇬🇧 GBR24th of 231 aged 30-34 30-34 1:02:43 10:19 32:03 23:38 7:07 3:42 1:21 2:45 2:42 4:14 1:19 3:17 4:18
62 Johannes Ochs, Sascha Jentner 🇩🇪 GER25th of 231 aged 30-34 30-34 1:02:47 10:23 31:31 24:48 6:34 4:03 1:53 3:12 2:30 4:27 1:37 3:02 4:04
63 David Roos, Christian Staaden 🇩🇪 GER18th of 168 aged 25-29 25-29 1:02:48 10:24 34:20 21:03 7:29 3:52 1:22 2:40 1:53 3:50 1:22 2:27 3:37
64 Miguel Luzi, Cyril Waldvogel 🇨🇭 SUI19th of 168 aged 25-29 25-29 1:02:51 10:27 32:22 23:00 7:33 3:54 1:36 2:55 2:07 4:20 1:18 2:31 4:19
65 Florian Hoffmann, Peter Zuravlev 🇩🇪 GER26th of 231 aged 30-34 30-34 1:02:54 10:30 31:44 24:18 6:58 3:30 1:49 2:42 2:43 4:29 1:30 3:18 4:17
66 Raphael Helfrich, Pierre-Louis Schwab 🇨🇭 SUI27th of 231 aged 30-34 30-34 1:02:55 10:31 33:43 21:44 7:34 3:45 1:13 2:44 1:56 3:56 1:21 2:32 4:17
67 Ales Stubicar, Amadej Cungl 🇸🇮 SLO6th of 79 aged 40-44 40-44 1:02:59 10:35 33:14 22:04 7:44 3:41 1:40 2:24 2:00 3:58 1:34 2:51 3:56
68 Alexis Huber, Antoine Stein 🇫🇷 FRA20th of 168 aged 25-29 25-29 1:03:04 10:40 33:13 22:55 7:00 4:01 1:40 2:52 1:54 4:15 1:24 2:38 4:11
69 Florian Tovaglieri, David Donatiello 🇨🇭 SUI12th of 155 aged 35-39 35-39 1:03:05 10:41 33:15 22:48 7:08 3:54 1:34 2:32 2:12 4:20 1:28 2:31 4:17
70 Roman Tasca, Yves Düvel 🇩🇪 GER5th of 65 aged 16-24 16-24 1:03:08 10:44 34:18 21:50 7:06 3:40 1:23 2:32 2:32 3:55 1:18 2:25 4:05
71 Alexander Weinert, Mike Reiß 🇩🇪 GER7th of 79 aged 40-44 40-44 1:03:09 10:45 32:51 23:12 7:11 3:41 1:34 2:38 2:45 4:03 1:27 3:13 3:51
72 Arthur Manier, Loic Sturm 🇫🇷 FRA13th of 155 aged 35-39 35-39 1:03:10 10:46 33:16 22:53 7:04 3:49 1:21 2:58 2:13 4:16 1:28 2:59 3:49
73 Martin Graf, Marc Niederhauser 🇨🇭 SUI14th of 155 aged 35-39 35-39 1:03:12 10:48 32:49 22:41 7:46 3:40 1:34 2:40 2:23 4:27 1:21 2:45 3:51
74 Julian Pecho, Matthias Ruschig 🇩🇪 GER21st of 168 aged 25-29 25-29 1:03:12 10:48 31:47 24:08 7:21 3:50 1:34 2:41 3:15 4:20 1:37 2:44 4:07
75 Gunnar Klose, Pawel Zuczkowski 🇩🇪 GER15th of 155 aged 35-39 35-39 1:03:13 10:49 32:29 23:16 7:33 3:55 1:37 3:11 2:00 4:20 1:24 2:53 3:56
76 Erik Schröder, Peter Brucksch 🇩🇪 GER28th of 231 aged 30-34 30-34 1:03:13 10:49 29:39 26:36 7:02 3:57 1:25 3:27 2:23 4:41 1:34 3:32 5:37
77 Eike Zywietz, Johannes Url 🇩🇪 GER8th of 79 aged 40-44 40-44 1:03:16 10:52 32:33 23:41 7:05 3:58 1:33 2:42 2:31 4:15 1:38 2:48 4:16
78 Oliver Juric, Dennis Bobinski 🇩🇪 GER16th of 155 aged 35-39 35-39 1:03:22 10:58 32:26 23:53 7:07 3:43 1:44 2:40 2:39 4:03 1:47 3:00 4:17
79 Ben Schilling, Sven Falkenberg 🇩🇪 GER29th of 231 aged 30-34 30-34 1:03:37 11:13 31:47 24:46 7:08 3:54 1:31 3:10 2:48 4:07 1:30 3:25 4:21
80 Fynn Belz, Oscar Martini 🇩🇪 GER6th of 65 aged 16-24 16-24 1:03:38 11:14 33:48 22:04 7:50 3:40 1:16 2:00 2:43 4:04 1:25 2:57 3:59
81 Patrick Abt, Samuel Spang 🇩🇪 GER30th of 231 aged 30-34 30-34 1:03:50 11:26 32:07 24:47 7:01 3:51 1:41 3:16 2:37 4:21 1:36 3:40 3:45
82 Daniel Horn, Andreas Wanner 🇩🇪 GER22nd of 168 aged 25-29 25-29 1:03:53 11:29 33:43 22:19 7:57 3:51 1:32 2:08 2:07 4:08 1:26 2:37 4:30
83 Michael Ott, Robin Braeckle 🇩🇪 GER23rd of 168 aged 25-29 25-29 1:03:58 11:34 32:49 23:43 7:29 3:44 1:43 3:00 2:34 4:13 1:31 2:40 4:18
84 Tristan Bergeret, Quentin Vigreux 🇫🇷 FRA24th of 168 aged 25-29 25-29 1:04:05 11:41 33:34 23:23 7:13 3:47 1:57 2:56 2:24 4:00 1:25 3:04 3:50
85 Lorenzo Marino, Jordan Jounniaux 🇧🇪 BEL25th of 168 aged 25-29 25-29 1:04:11 11:47 32:00 25:26 6:49 4:03 1:38 3:11 2:13 4:25 1:34 2:51 5:31
86 Bastian Pötzl, Sebastian Münzel 🇩🇪 GER31st of 231 aged 30-34 30-34 1:04:14 11:50 34:56 22:08 7:14 3:44 1:27 3:15 2:31 3:46 1:23 2:23 3:39
87 Johannes Mayerhofer, Mathias Edfelder 🇩🇪 GER32nd of 231 aged 30-34 30-34 1:04:16 11:52 33:16 23:39 7:25 3:47 1:35 3:15 2:16 4:19 1:19 3:00 4:08
88 Dennis Cetin, Arnaud Hefter 🇩🇪 GER33rd of 231 aged 30-34 30-34 1:04:19 11:55 35:21 21:32 7:31 3:44 1:21 2:14 1:35 4:23 1:22 2:44 4:09
89 Floris Vanhauwere, Maxime Schwartz 🇧🇪 BEL34th of 231 aged 30-34 30-34 1:04:22 11:58 34:21 22:53 7:14 3:55 1:45 3:04 2:20 4:00 1:20 2:37 3:52
90 Janik Rauch, Pit Hoffmann 🇩🇪 GER26th of 168 aged 25-29 25-29 1:04:23 11:59 33:53 23:19 7:16 3:59 1:32 2:36 2:55 4:10 1:19 2:47 4:01
91 Patrick Cizmowski, Ron Herrmann 🇩🇪 GER35th of 231 aged 30-34 30-34 1:04:32 12:08 35:04 21:56 7:38 3:49 1:23 2:19 2:33 4:09 1:29 2:39 3:35
92 Tobias Fischer, Christoph Maile 🇩🇪 GER36th of 231 aged 30-34 30-34 1:04:33 12:09 33:32 22:59 8:08 3:41 1:18 2:35 2:36 4:08 1:26 2:58 4:17
93 Max Hassmann, Robin Eissler 🇩🇪 GER7th of 65 aged 16-24 16-24 1:04:40 12:16 34:28 22:25 7:54 3:57 1:33 2:55 1:59 4:20 1:18 2:42 3:41
94 Nikolas Wießner, David Menze 🇩🇪 GER17th of 155 aged 35-39 35-39 1:04:40 12:16 33:14 23:51 7:41 3:42 1:33 3:01 2:57 4:04 1:32 2:56 4:06
95 Jan Erik Seelbach, Fritz Franke 🇩🇪 GER27th of 168 aged 25-29 25-29 1:04:41 12:17 34:44 22:41 7:20 3:55 1:27 2:28 2:29 3:57 1:25 2:55 4:05
96 Hendrik Theisen, Christian Schneider 🇩🇪 GER28th of 168 aged 25-29 25-29 1:04:44 12:20 33:55 23:17 7:36 4:02 1:35 2:21 2:46 4:16 1:16 3:10 3:51
97 Nils Schröck, Yannick Roggatz 🇩🇪 GER37th of 231 aged 30-34 30-34 1:04:44 12:20 33:49 23:31 7:27 3:58 1:34 2:41 2:53 4:11 1:27 2:46 4:01
98 Thomas Breuer, Kai Braunsteffer 🇩🇪 GER38th of 231 aged 30-34 30-34 1:04:45 12:21 34:52 22:41 7:17 3:52 1:35 2:52 2:36 4:14 1:29 2:29 3:34
99 Michael Lichtlein, Michael Alesi 🇩🇪 GER29th of 168 aged 25-29 25-29 1:04:45 12:21 31:21 24:53 8:35 3:45 1:50 2:36 3:10 4:26 1:42 2:42 4:42
100 Ádám Attila Mogyorósi, Milán Márk Mogyorósi 🇭🇺 HUN8th of 65 aged 16-24 16-24 1:04:46 12:22 34:39 22:59 7:12 3:50 1:26 2:56 2:15 4:06 1:37 2:50 3:59
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