HYROX Barcelona 2025: Doubles Men results

1,279 teams on 25 Apr 2025. Typical finish 1:13:08, fastest 10% under 1:02:36. Back to the analysis.

# Athlete Age Time Behind 1st Runs Stations Rox Ski Push Pull BBJ Row Carry Lunge WB
1 Matías Dumpierrez Ferrer, Adrian Cruz almeida 🇪🇸 ESP1st of 616 aged 30-39 30-39 53:02 29:24 19:54 3:48 3:41 1:27 2:26 1:45 3:53 1:18 2:06 3:18
2 Evan Marion, Steve Pinau 🇫🇷 FRA1st of 448 aged U29 U29 53:08 0:06 28:43 20:34 3:54 3:33 1:32 2:37 2:01 3:58 1:13 2:09 3:31
3 Bruno Ferreira, Tiago Costa 🇵🇹 POR2nd of 616 aged 30-39 30-39 53:15 0:13 29:36 19:56 3:48 3:21 1:46 1:58 1:44 3:46 1:19 2:21 3:41
4 Lucas Perelló, Fernando Martorell 🇪🇸 ESP3rd of 616 aged 30-39 30-39 53:47 0:45 29:49 20:01 4:02 3:38 1:38 2:22 1:47 3:51 1:11 2:18 3:16
5 Jorge Gutiérrez, Raúl Capitán 🇪🇸 ESP4th of 616 aged 30-39 30-39 53:48 0:46 29:25 20:28 4:01 3:38 1:34 2:25 1:48 3:59 1:22 2:20 3:22
6 Salvador Vazquez Guillen, Toni Marí Vargas 🇪🇸 ESP5th of 616 aged 30-39 30-39 53:50 0:48 29:29 20:30 3:57 3:42 1:34 2:25 2:04 3:51 1:18 2:21 3:15
7 Javi Umpiérrez, Miguel Prados 🇪🇸 ESP6th of 616 aged 30-39 30-39 54:39 1:37 29:58 20:42 4:03 3:43 1:34 2:39 1:34 3:54 1:16 2:25 3:37
8 javier rubio haro, juan madrid montes 🇪🇸 ESP2nd of 448 aged U29 U29 54:45 1:43 30:11 20:35 4:03 3:34 1:33 2:50 1:53 3:58 1:24 2:07 3:16
9 Hakan Burton, George Grayson 🇬🇧 GBR7th of 616 aged 30-39 30-39 55:01 1:59 30:20 20:49 3:57 3:32 1:35 2:19 2:21 3:51 1:24 2:19 3:28
10 Adrián Martinez, José Sánchez 🇪🇸 ESP8th of 616 aged 30-39 30-39 55:02 2:00 29:55 21:03 4:08 3:42 1:29 2:36 2:06 3:54 1:17 2:20 3:39
11 Luis Nogueira, Pedro Correira 🇵🇹 POR9th of 616 aged 30-39 30-39 55:23 2:21 29:44 21:31 4:11 3:30 1:58 2:54 1:51 3:54 1:22 2:22 3:40
12 Ally Russell, Scott Glover 🇬🇧 GBR3rd of 448 aged U29 U29 55:49 2:47 30:36 21:25 3:53 3:39 1:46 2:58 2:00 3:47 1:20 2:19 3:36
13 Pierre Ambroise Bosse, Thomas Masson 🇫🇷 FRA10th of 616 aged 30-39 30-39 55:50 2:48 29:34 22:02 4:17 3:44 1:42 2:57 2:11 4:02 1:18 2:30 3:38
14 André Marques, Rúben Marques 🇵🇹 POR4th of 448 aged U29 U29 56:02 3:00 31:12 20:51 4:04 3:44 1:46 2:18 2:06 3:53 1:20 2:21 3:23
15 Bryan Mc Namee, Raymond Mc Namee 🇮🇪 IRL5th of 448 aged U29 U29 56:06 3:04 30:02 21:58 4:12 3:38 1:36 2:36 2:22 3:59 1:12 2:55 3:40
16 Tom Kelbrick, Jack Kelbrick 🇬🇧 GBR6th of 448 aged U29 U29 56:10 3:08 31:20 20:44 4:12 3:32 1:43 2:26 1:55 3:58 1:27 2:18 3:25
17 Cal Murphy Bu, Alex Kippen BU 🇬🇧 GBR7th of 448 aged U29 U29 56:10 3:08 30:30 21:35 4:09 3:38 1:42 2:35 1:52 3:55 1:29 2:29 3:55
18 Hugo Ventura, Marcio Salgado 🇵🇹 POR1st of 189 aged 40-49 40-49 56:28 3:26 32:03 20:23 4:07 3:38 1:42 2:37 1:40 4:01 1:16 2:18 3:11
19 Ronan O Brien, Rj Callaghan 🇮🇪 IRL11th of 616 aged 30-39 30-39 56:33 3:31 30:03 22:28 4:07 3:35 1:41 2:58 2:36 3:46 1:22 2:50 3:40
20 Pedro Guerra, André Coelho 🇵🇹 POR12th of 616 aged 30-39 30-39 56:35 3:33 32:29 20:08 4:01 3:29 1:32 2:20 2:05 3:38 1:16 2:27 3:21
21 Adam Finney, Keenan McDaid 🇬🇧 GBR8th of 448 aged U29 U29 56:54 3:52 31:56 21:11 3:52 3:35 1:38 2:31 1:49 3:46 1:17 2:45 3:50
22 Nick Lloyd Williams, Brad Rose 🇬🇧 GBR9th of 448 aged U29 U29 56:59 3:57 32:01 20:56 4:08 3:36 1:31 2:29 1:56 3:49 1:16 2:24 3:55
23 Pablo Calero, Franco Rodrigo 🇪🇸 ESP13th of 616 aged 30-39 30-39 57:03 4:01 30:53 21:58 4:17 3:38 1:42 2:24 2:25 4:02 1:26 2:40 3:41
24 Vincent Buclin, Guillaume Colomb 🇨🇭 SUI10th of 448 aged U29 U29 57:11 4:09 31:11 21:50 4:14 3:40 1:38 2:55 2:12 3:56 1:31 2:23 3:35
25 Louis Rigg, Jack Rogers 🇬🇧 GBR11th of 448 aged U29 U29 57:17 4:15 29:49 23:17 4:15 3:40 1:22 2:44 2:35 4:08 1:36 3:13 3:59
26 Mathieu Clerget, David Fannene 🇫🇷 FRA14th of 616 aged 30-39 30-39 57:18 4:16 31:28 21:36 4:18 3:36 1:33 3:01 2:11 3:58 1:12 2:35 3:30
27 Estanis González torrent, Jose Pereira ruiz 🇪🇸 ESP2nd of 189 aged 40-49 40-49 57:18 4:16 30:39 22:35 4:08 3:44 1:49 2:56 2:03 4:03 1:28 2:44 3:48
28 Myles Higginson, Jesse Owen 🇬🇧 GBR15th of 616 aged 30-39 30-39 57:19 4:17 31:48 21:08 4:26 3:40 1:25 2:17 2:22 3:54 1:16 2:31 3:43
29 Alex Jiménez Miguel, Lucas Albanese Ratón 🇪🇸 ESP16th of 616 aged 30-39 30-39 57:26 4:24 32:23 20:52 4:15 3:42 1:34 2:24 2:07 3:52 1:15 2:22 3:36
30 James Terry, Harvey Terry 🇬🇧 GBR12th of 448 aged U29 U29 57:32 4:30 30:39 22:36 4:21 3:48 1:36 2:38 1:59 4:11 1:18 2:50 4:16
31 Daniel Afonso de León, fabio casal lopez 🇪🇸 ESP13th of 448 aged U29 U29 57:33 4:31 31:23 22:08 4:06 3:48 1:39 2:43 1:58 4:04 1:28 2:42 3:46
32 Emile Zortea, Julien Maillot 🇫🇷 FRA17th of 616 aged 30-39 30-39 57:52 4:50 31:27 22:00 4:29 3:32 1:39 2:45 2:07 4:02 1:22 2:45 3:48
33 Nicolas Dominguez Kamal, Mateo Perez 🇨🇱 CHI18th of 616 aged 30-39 30-39 57:55 4:53 30:35 23:04 4:21 3:44 1:57 3:04 1:50 4:13 1:19 2:35 4:22
34 Miro Abtula Gadzhalov, Lucas Aveldaño 🇧🇬 BUL3rd of 189 aged 40-49 40-49 57:59 4:57 30:52 23:02 4:11 3:31 1:47 3:01 2:13 4:16 1:34 3:04 3:36
35 James Bergin, Eoin Regan 🇮🇪 IRL14th of 448 aged U29 U29 58:02 5:00 32:28 21:19 4:19 3:44 1:41 2:26 2:04 3:56 1:22 2:18 3:48
36 Jordi Llompart Amez, Pepe Pardo Molina 🇪🇸 ESP15th of 448 aged U29 U29 58:02 5:00 32:11 21:23 4:30 3:41 1:33 3:24 1:48 4:01 1:22 2:16 3:18
37 Henry Turner, Evan Cope 🇬🇧 GBR16th of 448 aged U29 U29 58:04 5:02 32:18 21:35 4:14 3:33 1:29 2:50 2:08 4:07 1:25 2:36 3:27
38 Javier Manuel Armas Rodríguez, Patricio Herrera Martín 🇪🇸 ESP17th of 448 aged U29 U29 58:05 5:03 32:35 21:04 4:32 3:50 1:27 2:20 2:09 4:02 1:23 2:21 3:32
39 Lucas Trittel, Florian Trittel 🇪🇸 ESP19th of 616 aged 30-39 30-39 58:07 5:05 33:45 19:54 4:31 3:35 1:25 2:16 2:04 3:48 1:15 2:12 3:19
40 Carlos Meneses, Felisberto Pereira 🇵🇹 POR18th of 448 aged U29 U29 58:07 5:05 31:39 22:31 4:03 3:46 1:56 2:55 2:07 4:01 1:31 2:41 3:34
41 Noé Guzmán, Manuel Halcón 🇪🇸 ESP4th of 189 aged 40-49 40-49 58:27 5:25 33:07 21:07 4:18 3:49 1:50 2:17 1:58 3:43 1:19 2:37 3:34
42 Cesar Castaño Vicente, Daniel Perán Alcaraz 🇪🇸 ESP19th of 448 aged U29 U29 58:30 5:28 32:26 21:36 4:33 3:37 1:46 2:42 1:40 3:51 1:19 2:55 3:46
43 Roman Struger, Nikolas Keuschnig 🇦🇹 AUT20th of 448 aged U29 U29 58:33 5:31 32:36 21:19 4:42 3:42 1:37 2:36 1:54 3:54 1:18 2:16 4:02
44 Liam White, Ashley Willmott 🇬🇧 GBR20th of 616 aged 30-39 30-39 58:42 5:40 31:50 22:36 4:23 3:34 1:38 2:49 2:41 3:58 1:23 2:46 3:47
45 Sam Tucknott, Joe Marshall 🇬🇧 GBR21st of 616 aged 30-39 30-39 58:42 5:40 31:34 22:47 4:26 3:54 1:55 2:59 1:53 4:13 1:32 2:48 3:33
46 Joshua Henry, Christopher Mills 🇬🇧 GBR22nd of 616 aged 30-39 30-39 58:45 5:43 33:16 21:05 4:29 3:28 1:51 2:37 2:07 4:05 1:31 2:11 3:15
47 Enrico Falconi, Pietro Monticelli 🇮🇹 ITA21st of 448 aged U29 U29 58:45 5:43 30:22 24:12 4:15 3:55 1:47 2:51 2:45 4:17 1:28 2:59 4:10
48 Jay Dey, Charlie Hendrie 🇬🇧 GBR5th of 189 aged 40-49 40-49 58:51 5:49 33:42 20:53 4:22 3:33 1:33 2:30 1:58 4:03 1:07 2:29 3:40
49 Clément Guillon, Elies Otmane 🇫🇷 FRA22nd of 448 aged U29 U29 59:02 6:00 31:37 22:57 4:33 3:42 1:32 2:57 2:15 4:01 1:19 2:50 4:21
50 Miguel Dias, Tiago Jorge 🇵🇹 POR23rd of 448 aged U29 U29 59:04 6:02 32:53 21:36 4:40 3:35 1:54 3:12 1:53 4:02 1:21 2:09 3:30
51 Steve Storey, Kristian McNulty 🇬🇧 GBR6th of 189 aged 40-49 40-49 59:05 6:03 34:59 20:06 4:04 3:21 1:29 2:18 1:58 3:39 1:16 2:25 3:40
52 Afonso Fadigas, Diogo D’Ávila 🇵🇹 POR24th of 448 aged U29 U29 59:09 6:07 32:42 22:05 4:27 3:39 1:42 2:52 2:18 4:00 1:17 2:32 3:45
53 David David Pardo Verjano, Nacor Puig Núñez 🇪🇸 ESP7th of 189 aged 40-49 40-49 59:09 6:07 30:46 23:40 4:48 3:41 1:55 2:58 2:17 4:15 1:30 3:08 3:56
54 João Serrano, Celso Oliveira 🇵🇹 POR23rd of 616 aged 30-39 30-39 59:15 6:13 32:15 22:46 4:17 3:46 1:38 2:59 2:19 4:14 1:31 2:37 3:42
55 Daniel Murphy, Gavin Jack 🇬🇧 GBR24th of 616 aged 30-39 30-39 59:18 6:16 32:25 20:00 6:57 3:52 1:38 2:51 2:24 — 1:18 2:40 3:48
56 Ben Whittaker, Elliot Darmon 🇬🇧 GBR25th of 448 aged U29 U29 59:18 6:16 32:36 22:08 4:37 3:37 1:55 2:43 2:16 3:51 1:23 2:27 3:56
57 Giuseppe Caruso, Matteo Cioè 🇮🇹 ITA25th of 616 aged 30-39 30-39 59:22 6:20 32:49 22:03 4:35 3:38 1:47 3:26 2:00 3:57 1:22 2:11 3:42
58 Juliano De Lucio, William Allen 🇬🇧 GBR26th of 616 aged 30-39 30-39 59:23 6:21 32:03 22:27 4:57 3:34 1:53 2:43 2:41 4:05 1:17 2:50 3:24
59 Clive Gigney, Tom Claykens 🇬🇧 GBR8th of 189 aged 40-49 40-49 59:27 6:25 32:30 22:39 4:23 3:42 1:43 2:42 2:17 4:05 1:22 2:57 3:51
60 Mario Pinto, Fabio Garrido 🇵🇹 POR27th of 616 aged 30-39 30-39 59:29 6:27 33:18 21:35 4:41 3:30 1:28 3:02 2:13 3:51 1:27 2:30 3:34
61 Fergal Fagan, Sean Kilroy 🇮🇪 IRL9th of 189 aged 40-49 40-49 59:30 6:28 32:29 22:27 4:39 3:37 1:46 2:35 2:25 3:51 1:29 3:05 3:39
62 Julien Herlein, Arnaud Daché 🇫🇷 FRA10th of 189 aged 40-49 40-49 59:31 6:29 32:51 21:59 4:44 3:46 1:36 2:42 2:16 4:09 1:19 2:39 3:32
63 Jordan Heywood, William McAllister 🇬🇧 GBR26th of 448 aged U29 U29 59:32 6:30 34:06 20:58 4:33 3:30 1:38 2:23 2:12 3:53 1:22 2:31 3:29
64 Jakob White, Mitchell Carslake 🇬🇧 GBR27th of 448 aged U29 U29 59:34 6:32 32:22 21:11 6:06 3:29 1:30 2:15 2:08 4:07 1:12 2:38 3:52
65 Terry Bowker, Alex Bowker 🇬🇧 GBR28th of 616 aged 30-39 30-39 59:35 6:33 32:58 21:51 4:51 3:46 1:40 2:54 1:57 3:55 1:06 2:58 3:35
66 José Ferreira, Paulo Moreira 🇵🇹 POR29th of 616 aged 30-39 30-39 59:44 6:42 32:35 22:43 4:31 3:43 1:41 2:49 1:55 4:04 1:37 3:02 3:52
67 Farid Afiane, Hicham Afkir 🇫🇷 FRA30th of 616 aged 30-39 30-39 59:44 6:42 32:07 23:16 4:26 3:35 1:56 3:01 2:42 3:45 1:22 3:12 3:43
68 Cristian Labrada Garcia, Andreu Olea Armada 🇪🇸 ESP31st of 616 aged 30-39 30-39 59:49 6:47 32:06 22:54 4:53 3:54 1:31 3:08 2:02 4:02 1:18 2:36 4:23
69 Nathan Spencer, Alex Dinsmore 🇬🇧 GBR28th of 448 aged U29 U29 59:49 6:47 32:08 23:26 4:19 3:56 1:31 2:45 2:13 4:14 1:20 2:52 4:35
70 Christopher Kelly-Wong, Luca Jumabhoy 🇸🇬 SIN29th of 448 aged U29 U29 59:52 6:50 33:21 22:17 4:19 3:34 1:56 2:36 2:11 3:55 1:25 2:50 3:50
71 Adam Ronan, Thomas Lawson 🇬🇧 GBR32nd of 616 aged 30-39 30-39 59:52 6:50 32:41 22:27 4:49 3:36 1:38 3:07 2:23 4:02 1:16 2:42 3:43
72 Halder Faraj, Lilinho Da Silva martins 🇳🇱 NED33rd of 616 aged 30-39 30-39 59:53 6:51 32:52 22:10 4:56 3:43 1:49 2:49 2:10 4:08 1:08 3:02 3:21
73 Charlie Young, Dan Rolfe 🇬🇧 GBR30th of 448 aged U29 U29 1:00:00 6:58 33:20 21:56 4:48 3:41 1:47 2:21 2:13 3:47 1:23 2:42 4:02
74 Mickael Caillard, Dorian Subias 🇫🇷 FRA34th of 616 aged 30-39 30-39 1:00:02 7:00 33:57 21:35 4:34 3:47 1:36 2:34 2:16 4:00 1:22 2:27 3:33
75 Felix Kappelsberger, Moritz Kappelsberger 🇩🇪 GER31st of 448 aged U29 U29 1:00:04 7:02 33:34 22:01 4:34 3:30 1:25 1:54 2:41 4:12 1:19 2:56 4:04
76 Philip Reimer, Björn Ehresmann 🇩🇪 GER35th of 616 aged 30-39 30-39 1:00:09 7:07 34:03 21:39 4:31 3:46 1:43 2:36 2:09 4:11 1:11 2:25 3:38
77 Mikai Vroom, Raoul Gillet 🇳🇱 NED32nd of 448 aged U29 U29 1:00:15 7:13 32:37 23:06 4:37 3:54 1:45 2:47 2:28 4:11 1:32 2:45 3:44
78 Alejandro Hidalgo Santiago, Alberto Mora Gonzalez 🇪🇸 ESP33rd of 448 aged U29 U29 1:00:18 7:16 33:45 21:55 4:43 3:37 1:47 2:48 2:17 3:53 1:22 2:30 3:41
79 Pedro Cruz, Ruben Nunes 🇵🇹 POR36th of 616 aged 30-39 30-39 1:00:22 7:20 33:17 22:26 4:44 3:40 1:45 2:52 2:08 4:04 1:29 2:50 3:38
80 Anthony Brignoli, Romain Angeletti 🇫🇷 FRA37th of 616 aged 30-39 30-39 1:00:24 7:22 32:26 22:27 5:36 3:37 1:50 2:59 2:20 4:10 1:26 2:24 3:41
81 Constantino Nogueira, Ivo Sousa 🇵🇹 POR38th of 616 aged 30-39 30-39 1:00:25 7:23 32:33 23:11 4:46 3:33 1:46 3:25 2:16 4:08 1:32 2:46 3:45
82 Jonathan Obadia, Arthur Laguardia 🇫🇷 FRA39th of 616 aged 30-39 30-39 1:00:29 7:27 33:54 21:30 5:10 3:36 1:30 2:41 2:23 4:00 1:24 2:27 3:29
83 Carlos Moreno, Enrique Rincón 🇪🇸 ESP11th of 189 aged 40-49 40-49 1:00:32 7:30 31:54 24:16 4:27 3:52 1:42 2:53 2:40 4:07 1:20 3:51 3:51
84 Alan Rice, Paul Cosgrave 🇮🇪 IRL12th of 189 aged 40-49 40-49 1:00:35 7:33 32:38 23:22 4:38 3:44 1:52 2:39 2:51 4:04 1:25 2:56 3:51
85 Sébastien Garro, Christopher Elena 🇲🇨 MON40th of 616 aged 30-39 30-39 1:00:40 7:38 31:55 23:38 5:12 3:50 1:50 3:18 2:29 4:13 1:13 2:53 3:52
86 Thomas Buckland, Oliver Black 🇬🇧 GBR41st of 616 aged 30-39 30-39 1:00:40 7:38 32:13 23:47 4:45 3:54 1:44 3:06 2:43 4:17 1:37 2:27 3:59
87 Javier Villegas Vich, Ruben Fuentes Gutierrez 🇪🇸 ESP42nd of 616 aged 30-39 30-39 1:00:41 7:39 33:11 23:04 4:31 3:46 1:42 2:41 2:00 4:17 1:30 2:54 4:14
88 Myles Reid, Fergus Cowper 🇬🇧 GBR34th of 448 aged U29 U29 1:00:52 7:50 34:22 21:54 4:40 3:28 1:19 2:49 2:21 3:52 1:21 2:15 4:29
89 Rodrigo Ferreira Lacerda Barradas, Manuel Loureiro Dos Santos 🇵🇹 POR35th of 448 aged U29 U29 1:00:52 7:50 32:44 23:22 4:50 3:43 2:11 2:51 2:20 4:09 1:30 2:51 3:47
90 Kyle McCulloch, Mark Nicholson 🇬🇧 GBR43rd of 616 aged 30-39 30-39 1:00:59 7:57 33:39 22:22 5:04 3:43 1:38 2:25 2:08 3:56 1:30 3:24 3:38
91 Samuel Mumford, Aled Woosnam 🇬🇧 GBR36th of 448 aged U29 U29 1:01:01 7:59 34:56 21:34 4:34 3:39 1:32 2:49 2:20 3:48 1:20 2:29 3:37
92 Emeric Devillert, Bastien Chazelle 🇫🇷 FRA37th of 448 aged U29 U29 1:01:07 8:05 33:48 22:31 4:51 3:48 1:54 2:43 2:16 4:06 1:25 2:41 3:38
93 Teo Arasa Cid, Stefi Luis Bona Iancu 🇪🇸 ESP38th of 448 aged U29 U29 1:01:08 8:06 33:48 22:23 5:02 3:56 1:30 2:49 1:59 4:29 1:24 2:48 3:28
94 Luis Spieser, Hugo Lepresle 🇫🇷 FRA39th of 448 aged U29 U29 1:01:09 8:07 33:38 22:57 4:38 3:46 1:55 3:13 2:10 4:05 1:23 2:44 3:41
95 Eduardo Cabrero, Javier Alvarez 🇪🇸 ESP44th of 616 aged 30-39 30-39 1:01:09 8:07 32:08 24:31 4:35 4:10 1:41 3:10 2:34 4:36 1:29 3:11 3:40
96 Benjamin Boehmer, Eesa Hernandez 🇿🇦 RSA45th of 616 aged 30-39 30-39 1:01:11 8:09 34:05 22:02 5:08 3:42 1:16 2:35 3:13 4:02 1:10 2:24 3:40
97 Romain Serrano, Jacques Valls 🇫🇷 FRA46th of 616 aged 30-39 30-39 1:01:11 8:09 33:25 23:32 4:19 3:51 1:52 3:37 2:33 4:00 1:19 2:46 3:34
98 Toni Ayala Poveda, Jordi Ayala Poveda 🇪🇸 ESP47th of 616 aged 30-39 30-39 1:01:15 8:13 34:25 21:58 4:57 3:35 1:28 2:51 2:17 4:08 1:33 2:31 3:35
99 Janek Walter, Adrian Koch 🇩🇪 GER40th of 448 aged U29 U29 1:01:22 8:20 34:56 21:30 5:01 3:38 1:21 2:56 2:09 4:10 1:17 2:31 3:28
100 David Nassel, Jitte Lochtenberg 🇧🇪 BEL48th of 616 aged 30-39 30-39 1:01:22 8:20 34:18 21:48 5:21 3:48 1:34 2:49 2:23 3:48 1:15 2:17 3:54
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