HYROX Málaga 2025: Doubles Men results

1,076 teams on 23 Mar 2025. Typical finish 1:11:57, fastest 10% under 1:01:43. Back to the analysis.

# Athlete Age Time Behind 1st Runs Stations Rox Ski Push Pull BBJ Row Carry Lunge WB
1 Ollie Russell, Dan Nota 🇬🇧 GBR1st of 357 aged U29 U29 50:58 28:55 18:53 3:16 3:25 1:35 1:58 1:53 3:40 1:12 1:56 3:14
2 José Estrangeiro, João Piedade 🇵🇹 POR1st of 466 aged 30-39 30-39 51:20 0:22 28:46 19:08 3:31 3:28 1:24 2:12 1:49 3:44 1:07 2:11 3:13
3 Joe Walker, Liam Shallicker 🇬🇧 GBR2nd of 357 aged U29 U29 51:21 0:23 28:58 19:11 3:16 3:32 1:28 2:06 1:43 3:46 1:17 2:11 3:08
4 John Townsend, Joshua Langley 🇬🇧 GBR3rd of 357 aged U29 U29 53:12 2:14 29:19 20:16 3:40 3:35 1:37 2:25 1:52 3:47 1:19 2:15 3:26
5 David Otoole, Jack Smith 🇬🇧 GBR2nd of 466 aged 30-39 30-39 53:32 2:34 30:08 19:42 3:46 3:28 1:38 1:57 1:57 3:55 1:12 3:00 —
6 Jay Hudson, Rhys Lowis 🇬🇧 GBR4th of 357 aged U29 U29 53:34 2:36 29:33 20:35 3:30 3:38 1:19 2:30 1:57 4:00 1:21 2:25 3:25
7 Luca Jumabhoy, Krish Sibal 🇬🇧 GBR5th of 357 aged U29 U29 53:54 2:56 30:18 20:10 3:31 3:33 1:28 2:02 1:52 4:01 1:21 2:29 3:24
8 Kevin López Yerga, Emilio Martin 🇪🇸 ESP3rd of 466 aged 30-39 30-39 54:29 3:31 28:49 21:40 4:03 3:45 1:39 2:35 2:32 4:07 1:14 2:30 3:18
9 Declan Edwards, Gareth Kyne 🇮🇪 IRL4th of 466 aged 30-39 30-39 55:08 4:10 30:09 21:16 3:46 3:36 1:38 2:04 2:12 4:06 1:25 2:50 3:25
10 Jack Beere, Joshua Henry 🇬🇧 GBR5th of 466 aged 30-39 30-39 55:14 4:16 30:50 20:29 3:58 3:18 1:50 2:07 1:58 3:54 1:23 2:22 3:37
11 Sam Harper, Lloyd Mulholland 🇬🇧 GBR6th of 357 aged U29 U29 55:21 4:23 29:50 22:09 3:28 3:36 1:52 2:48 2:26 4:06 1:18 2:37 3:26
12 Gavin Moloney, Adam Bailey 🇮🇪 IRL7th of 357 aged U29 U29 55:23 4:25 30:55 20:47 3:45 3:31 1:37 2:09 2:29 4:05 1:28 2:07 3:21
13 Paul Thompson, James Burton 🇬🇧 GBR1st of 213 aged 40-49 40-49 55:46 4:48 31:10 20:39 4:02 3:30 1:36 2:24 2:02 4:01 1:33 2:10 3:23
14 Sean Quigley, Cathal Lacey 🇮🇪 IRL8th of 357 aged U29 U29 55:49 4:51 33:07 19:09 3:39 3:29 1:24 1:48 1:35 3:55 1:13 2:11 3:34
15 Thomas McIntyre, Steve Beech 🇮🇪 IRL2nd of 213 aged 40-49 40-49 56:08 5:10 30:54 21:24 3:53 3:40 1:33 2:45 2:21 4:04 1:16 2:29 3:16
16 Ramón Lecumberri Pastor, Joaquín Chofle 🇪🇸 ESP9th of 357 aged U29 U29 56:19 5:21 30:39 21:41 4:03 3:59 1:33 2:04 2:15 3:58 1:23 2:51 3:38
17 Alun Davies, Toby Roberts 🇬🇧 GBR6th of 466 aged 30-39 30-39 56:23 5:25 30:46 22:02 3:40 3:42 1:52 2:35 2:11 4:11 1:29 2:33 3:29
18 Amândio Ferreira, Vasco Cunha 🇵🇹 POR10th of 357 aged U29 U29 56:23 5:25 30:40 22:04 3:42 3:35 1:44 2:38 2:28 3:55 1:19 2:54 3:31
19 Javier Gómez Cañego, Luis Caja Nacher 🇪🇸 ESP11th of 357 aged U29 U29 56:37 5:39 29:58 22:47 3:57 3:34 1:44 2:27 2:28 4:07 1:20 2:46 4:21
20 Israel Huesca Garcia, Lazaro Moreno Fernandez 🇪🇸 ESP7th of 466 aged 30-39 30-39 56:41 5:43 31:38 20:57 4:10 3:41 1:40 2:50 1:38 3:57 1:15 2:39 3:17
21 Mick Daly, Declan Sherlock 🇮🇪 IRL8th of 466 aged 30-39 30-39 56:46 5:48 30:35 22:43 3:32 3:40 1:54 3:02 2:14 4:06 1:22 2:45 3:40
22 Albino Vieira, Carlos Silva 🇵🇹 POR9th of 466 aged 30-39 30-39 56:47 5:49 32:04 21:07 3:41 3:50 1:25 2:10 2:08 4:07 1:18 2:45 3:24
23 Chris Shaw, Simon Kennedy SCO10th of 466 aged 30-39 30-39 56:49 5:51 31:14 21:33 4:05 3:47 1:50 2:34 2:10 4:18 1:28 2:16 3:10
24 Sean Harding, Liam Harding 🇮🇪 IRL11th of 466 aged 30-39 30-39 56:52 5:54 32:06 21:07 3:44 3:43 1:50 2:19 2:13 4:08 1:26 2:07 3:21
25 Tom Stell, Kev Marson 🇬🇧 GBR12th of 466 aged 30-39 30-39 56:59 6:01 32:36 20:12 4:15 3:30 1:38 2:05 2:23 3:54 1:16 2:24 3:02
26 José Pereira, Ramon Alarcón Rodríguez 🇪🇸 ESP3rd of 213 aged 40-49 40-49 57:08 6:10 31:07 21:57 4:09 3:46 1:44 2:57 2:00 4:08 1:18 2:32 3:32
27 Mark Jenkins, Will Edmiston 🇬🇧 GBR12th of 357 aged U29 U29 57:11 6:13 32:11 21:11 3:52 3:30 1:42 2:48 2:08 3:55 1:16 2:36 3:16
28 Cristiano Esteves, Felisberto Carvalho 🇵🇹 POR4th of 213 aged 40-49 40-49 57:25 6:27 32:07 21:13 4:08 3:36 1:35 2:09 2:28 4:00 1:11 3:23 2:51
29 John Sullivan, John Murtagh 🇮🇪 IRL13th of 466 aged 30-39 30-39 57:32 6:34 31:49 22:01 3:47 3:46 1:37 2:20 3:04 3:51 1:18 2:36 3:29
30 Connor Evison, Justin Smith 🇬🇧 GBR14th of 466 aged 30-39 30-39 57:33 6:35 31:35 21:45 4:17 3:27 1:51 2:41 2:15 3:59 1:18 2:44 3:30
31 Liam Wallace, Austin Mowbray 🇬🇧 GBR15th of 466 aged 30-39 30-39 57:34 6:36 32:15 21:17 4:07 3:41 1:43 2:07 2:18 4:02 1:12 2:44 3:30
32 Pablo Calero, Franco Rodrigo 🇪🇸 ESP16th of 466 aged 30-39 30-39 57:35 6:37 31:11 22:39 3:50 3:40 2:00 2:24 2:33 4:10 1:26 2:49 3:37
33 Brendan Pearson, Joel Pearson 🇬🇧 GBR13th of 357 aged U29 U29 57:42 6:44 32:35 21:18 3:55 3:28 1:47 2:21 2:17 4:05 1:26 2:34 3:20
34 Graeme Walsh, Ian Maxwell 🇮🇪 IRL17th of 466 aged 30-39 30-39 57:55 6:57 31:44 22:24 3:52 3:31 1:41 2:33 2:39 4:10 1:18 2:49 3:43
35 Domi Rodríguez, Paco Bravo 🇪🇸 ESP18th of 466 aged 30-39 30-39 57:59 7:01 32:45 21:18 4:01 3:44 1:39 2:27 1:51 3:59 1:29 2:51 3:18
36 Colin Dalton, Kyle Delavari 🇮🇪 IRL5th of 213 aged 40-49 40-49 58:10 7:12 29:44 24:51 3:41 3:47 2:04 3:06 2:39 4:36 1:28 3:14 3:57
37 Alberto Garcia-Ferrer Hernandez, Francisco Javier Pérez Rodriguez 🇪🇸 ESP14th of 357 aged U29 U29 58:15 7:17 31:57 22:09 4:13 3:38 1:46 2:20 2:16 4:19 1:19 2:47 3:44
38 Calum Jennow, Kyle Grieve 🇬🇧 GBR15th of 357 aged U29 U29 58:15 7:17 31:44 22:52 3:42 3:36 1:31 3:04 2:18 4:18 1:21 3:04 3:40
39 Jason Dignam, James Hempton 🇮🇪 IRL16th of 357 aged U29 U29 58:17 7:19 31:45 21:16 5:20 3:33 1:45 1:56 2:09 4:11 1:25 2:32 3:45
40 Angel Daniel Franco Gaston, Juan Jose Franco Gaston 🇪🇸 ESP19th of 466 aged 30-39 30-39 58:23 7:25 31:11 22:48 4:29 3:59 1:42 2:41 2:17 4:43 1:21 2:40 3:25
41 Carlos Checa Baras, Sergio Guarnido Rodríguez 🇪🇸 ESP20th of 466 aged 30-39 30-39 58:26 7:28 31:57 22:16 4:17 3:37 1:48 2:43 2:17 3:57 1:36 3:02 3:16
42 Ben Harris, Kristian Davis 🇬🇧 GBR17th of 357 aged U29 U29 58:27 7:29 33:41 20:50 4:03 3:33 1:37 2:19 2:01 4:03 1:16 2:39 3:22
43 Alex Tetlow, Michael Johnson 🇬🇧 GBR18th of 357 aged U29 U29 58:27 7:29 31:18 22:30 4:43 3:54 1:49 2:53 2:10 4:31 1:20 2:26 3:27
44 Tiernán Oliver, Philip Doyle 🇮🇪 IRL21st of 466 aged 30-39 30-39 58:37 7:39 32:24 21:59 4:19 3:43 1:39 2:22 2:53 3:58 1:20 2:28 3:36
45 Toni Camarasa, Diego Álvarez Arguelles 🇪🇸 ESP6th of 213 aged 40-49 40-49 58:39 7:41 32:24 22:13 4:06 3:43 1:40 2:05 2:37 4:20 1:24 2:49 3:35
46 Samuel Nicholas, Gregor Johnston 🇬🇧 GBR19th of 357 aged U29 U29 58:42 7:44 33:48 20:54 4:07 3:35 1:47 2:23 1:40 4:01 1:27 2:35 3:26
47 George Callagher, Chris Durney 🇬🇧 GBR20th of 357 aged U29 U29 58:44 7:46 29:32 24:23 4:53 3:41 1:59 3:07 2:47 4:28 1:19 3:26 3:36
48 Richard Heslop, Myles Jenkins 🇬🇧 GBR21st of 357 aged U29 U29 58:49 7:51 32:05 22:35 4:12 3:32 1:55 2:15 2:45 4:08 1:14 3:12 3:34
49 Scott Quilligan, Tom Collins 🇮🇪 IRL22nd of 357 aged U29 U29 58:51 7:53 32:38 22:27 3:51 3:36 1:38 3:01 2:30 3:55 1:27 2:37 3:43
50 Marek Podolinsky, Petr Rehak 🇸🇰 SVK7th of 213 aged 40-49 40-49 58:57 7:59 32:47 22:06 4:09 3:37 1:46 2:31 2:29 4:03 1:27 2:42 3:31
51 Ross McGarry, Francis Murtagh 🇬🇧 GBR22nd of 466 aged 30-39 30-39 58:58 8:00 32:44 22:14 4:05 3:49 1:38 2:54 2:09 4:08 1:17 2:40 3:39
52 José Ignacio Velázquez Acuña, Juan De Dios Tejera Punta 🇪🇸 ESP23rd of 357 aged U29 U29 58:59 8:01 32:56 21:46 4:22 4:02 1:42 2:31 1:44 4:15 1:27 2:34 3:31
53 Oscar Rodríguez Lorca ., Omar Salvador Fortanet 🇪🇸 ESP8th of 213 aged 40-49 40-49 59:00 8:02 33:23 21:31 4:12 3:37 1:24 2:19 2:04 3:59 1:28 2:47 3:53
54 Anthony Quinlan, Chad Headford 🇬🇧 GBR23rd of 466 aged 30-39 30-39 59:01 8:03 35:09 19:54 4:03 3:25 1:54 1:59 2:02 3:45 1:02 2:24 3:23
55 Mark Twigg, Christopher Walsh 🇬🇧 GBR9th of 213 aged 40-49 40-49 59:01 8:03 31:25 23:41 4:01 3:38 1:55 2:38 3:02 4:13 1:32 3:11 3:32
56 Jorge Sastre Martínez, Raúl Fernández Rodríguez 🇪🇸 ESP24th of 357 aged U29 U29 59:11 8:13 33:10 21:00 5:04 3:45 1:40 1:55 2:19 4:15 1:13 2:26 3:27
57 Yassine El Mossadeq, Anouar Aitoubelaaid 🇲🇦 MAR24th of 466 aged 30-39 30-39 59:11 8:13 31:29 23:07 4:40 3:48 1:51 3:10 2:09 4:12 1:28 2:56 3:33
58 Mark Vollert, Patrick Vollert 🇵🇦 PAN25th of 466 aged 30-39 30-39 59:12 8:14 33:26 21:21 4:30 3:42 1:37 2:48 1:51 4:16 1:26 2:17 3:24
59 Daniel Mills, Kev Marson 🇬🇧 GBR10th of 213 aged 40-49 40-49 59:23 8:25 33:27 21:25 4:34 3:46 1:32 2:21 2:12 4:07 1:27 2:39 3:21
60 Eoghan Bracken, Josh Gahan 🇮🇪 IRL25th of 357 aged U29 U29 59:28 8:30 32:57 21:56 4:39 3:30 1:41 2:40 2:16 4:02 1:22 2:49 3:36
61 Daniel Vázquez Ciria, Luis Manuel Vázquez Ciria 🇪🇸 ESP26th of 466 aged 30-39 30-39 59:28 8:30 32:55 22:28 4:08 3:50 1:36 2:43 1:58 4:10 1:19 2:59 3:53
62 Kevin Bower, Kieran Wood 🇬🇧 GBR11th of 213 aged 40-49 40-49 59:30 8:32 33:26 22:09 3:58 3:39 1:48 2:26 2:20 4:11 1:36 2:42 3:27
63 Josh Mares, Luke Watson Read 🇬🇧 GBR26th of 357 aged U29 U29 59:32 8:34 34:46 20:35 4:15 3:37 1:32 2:22 1:59 4:15 1:25 2:08 3:17
64 Callum Hogarth, Ollie Medwin 🇬🇧 GBR27th of 466 aged 30-39 30-39 59:39 8:41 31:44 24:11 3:48 3:40 2:04 2:37 3:02 4:09 1:44 3:19 3:36
65 Diogo Marques, Paulo Moreira 🇵🇹 POR28th of 466 aged 30-39 30-39 59:41 8:43 33:33 22:02 4:10 3:55 1:38 2:41 1:51 4:16 1:34 2:32 3:35
66 Jose Antonio Rodriguez Turpin, Iker Martín-Borregón Sundberg 🇪🇸 ESP29th of 466 aged 30-39 30-39 59:43 8:45 34:02 21:14 4:31 3:48 1:24 2:25 2:21 4:18 1:29 2:25 3:04
67 Piotr Jedynak, Mikołaj Korchow 🇵🇱 POL30th of 466 aged 30-39 30-39 59:46 8:48 33:11 21:25 5:14 3:44 1:25 2:31 2:32 4:04 1:19 2:22 3:28
68 Manuel Rafael Martinez Algar, Aarón Diéguez Buceta 🇪🇸 ESP31st of 466 aged 30-39 30-39 59:50 8:52 33:31 22:21 4:04 3:39 1:44 2:25 2:28 4:04 1:36 2:48 3:37
69 Rafael Javier Tapia Cubo, Antonio Miguel Ruiz 🇪🇸 ESP27th of 357 aged U29 U29 59:51 8:53 31:53 23:13 4:49 3:55 1:45 3:09 2:15 4:17 1:29 2:39 3:44
70 Reece Jefferson, Richard Shingleton 🇬🇧 GBR28th of 357 aged U29 U29 59:52 8:54 33:49 22:00 4:08 3:44 1:40 2:26 2:22 4:00 1:23 2:39 3:46
71 Alvaro Simon, Alvaro Taracena 🇪🇸 ESP32nd of 466 aged 30-39 30-39 59:57 8:59 32:26 22:45 4:51 3:45 2:05 2:30 2:42 4:12 1:21 2:51 3:19
72 Neil Sharples, Max Whiteley 🇬🇧 GBR33rd of 466 aged 30-39 30-39 59:59 9:01 34:03 21:41 4:20 3:34 1:41 2:13 2:23 4:16 1:34 2:34 3:26
73 Juan Antonio Arenas, Javier Garrayo 🇪🇸 ESP34th of 466 aged 30-39 30-39 1:00:00 9:02 32:45 22:18 5:02 3:47 1:44 2:22 1:55 4:17 1:35 2:58 3:40
74 Cathal McMullan, Michael Whelan 🇮🇪 IRL29th of 357 aged U29 U29 1:00:04 9:06 33:29 22:26 4:12 3:52 1:58 2:29 2:17 4:21 1:42 2:29 3:18
75 Max Villa, Louis Marty 🇫🇷 FRA35th of 466 aged 30-39 30-39 1:00:08 9:10 34:34 21:10 4:26 3:35 1:34 2:41 1:59 3:56 1:33 2:23 3:29
76 Juan Manuel Rodriguez Quintana, Jose David Sánchez Terrones 🇪🇸 ESP36th of 466 aged 30-39 30-39 1:00:09 9:11 33:26 22:33 4:15 3:38 1:36 2:47 2:17 4:13 1:21 3:06 3:35
77 Philipp Krautenbacher, Georg Wolff 🇩🇪 GER37th of 466 aged 30-39 30-39 1:00:09 9:11 33:24 22:47 4:02 3:33 1:55 2:42 2:49 3:51 1:19 2:53 3:45
78 Alejandro Hu Cao, Daniel García Cervero 🇨🇳 CHN38th of 466 aged 30-39 30-39 1:00:23 9:25 33:25 22:48 4:15 3:45 2:00 3:07 1:47 4:14 1:39 2:50 3:26
79 Yeray Mañas Hernández, Iván Mañas Hernández 🇪🇸 ESP39th of 466 aged 30-39 30-39 1:00:24 9:26 34:20 21:56 4:14 3:46 1:48 2:27 1:55 4:14 1:27 2:56 3:23
80 Nicky Taylor, Matthew Nyack 🇬🇧 GBR12th of 213 aged 40-49 40-49 1:00:28 9:30 33:33 22:44 4:16 3:40 1:26 2:47 2:47 3:56 1:28 3:00 3:40
81 Carl Monaghan, Declan McNamara 🇮🇪 IRL30th of 357 aged U29 U29 1:00:29 9:31 34:30 21:28 4:34 3:37 1:51 2:39 1:44 3:56 1:18 2:43 3:40
82 Ross Moldavsky, Rutger Letschert 🇺🇦 UKR31st of 357 aged U29 U29 1:00:38 9:40 33:25 21:59 5:19 3:37 1:37 2:25 2:38 3:57 1:11 2:48 3:46
83 Brian Harding, Paddy Moloney 🇮🇪 IRL40th of 466 aged 30-39 30-39 1:00:41 9:43 34:41 22:03 4:01 3:40 1:41 2:40 2:27 3:58 1:09 2:58 3:30
84 Evan Ryan 🇮🇪 IRL41st of 466 aged 30-39 30-39 1:00:45 9:47 35:38 20:56 4:15 3:43 1:34 2:13 2:24 3:50 1:05 2:41 3:26
85 Laurin Walter, Louis Leipold 🇩🇪 GER32nd of 357 aged U29 U29 1:00:46 9:48 34:08 21:57 4:45 3:48 1:24 2:09 2:46 4:12 1:06 2:47 3:45
86 Phil Jones, Ryan Clemson 🇬🇧 GBR33rd of 357 aged U29 U29 1:00:47 9:49 33:54 22:28 4:29 3:47 1:40 2:38 3:01 4:03 1:13 2:44 3:22
87 Gavin Foley, Zak Harding 🇮🇪 IRL34th of 357 aged U29 U29 1:00:47 9:49 33:17 23:24 4:10 3:32 2:10 3:00 2:55 4:18 1:28 2:42 3:19
88 Ben Heys, Fyn Townson 🇬🇧 GBR35th of 357 aged U29 U29 1:00:50 9:52 35:11 21:44 4:00 3:35 1:32 2:46 2:13 4:06 1:25 2:41 3:26
89 Jack Slater, Jordan Schofield 🇬🇧 GBR42nd of 466 aged 30-39 30-39 1:00:50 9:52 34:13 22:41 4:01 3:43 1:48 2:38 2:22 3:59 1:31 2:56 3:44
90 Marcus Hayden, Paraic Cagney 🇮🇪 IRL36th of 357 aged U29 U29 1:00:52 9:54 33:34 22:59 4:24 3:47 1:35 2:24 2:57 4:22 1:12 2:32 4:10
91 Roy Koenders, Chase Taylor 🇳🇱 NED43rd of 466 aged 30-39 30-39 1:00:53 9:55 34:17 22:22 4:19 3:41 1:56 2:44 2:25 4:10 1:33 2:26 3:27
92 Jordan Wilkes, Jake Robinson 🇮🇪 IRL37th of 357 aged U29 U29 1:00:59 10:01 35:02 22:02 4:00 3:32 1:42 2:31 2:11 4:12 1:33 2:45 3:36
93 Nicola Di Palma, Michele Maria Rizza 🇮🇹 ITA38th of 357 aged U29 U29 1:01:13 10:15 33:56 22:40 4:42 3:35 1:57 2:55 2:30 4:13 1:27 2:18 3:45
94 Lewis Varey, Oliver Hutchinson 🇬🇧 GBR39th of 357 aged U29 U29 1:01:14 10:16 33:35 23:07 4:37 3:36 1:43 3:05 2:23 4:32 1:19 2:51 3:38
95 Gearoid O Sullivan, Christopher Crowley 🇮🇪 IRL44th of 466 aged 30-39 30-39 1:01:15 10:17 34:27 21:56 4:57 3:41 1:41 2:34 2:29 4:06 1:17 2:33 3:35
96 Robert Fell, Thomas Collins 🇬🇧 GBR13th of 213 aged 40-49 40-49 1:01:16 10:18 35:18 21:05 4:58 3:34 1:20 2:38 2:17 3:59 1:19 2:17 3:41
97 Rory Dempsey, Gerard O Donoghue 🇮🇪 IRL40th of 357 aged U29 U29 1:01:16 10:18 35:00 21:55 4:26 3:45 1:35 2:17 2:12 4:21 1:23 2:45 3:37
98 Alvaro Saez, Robert Walsh 🇪🇸 ESP45th of 466 aged 30-39 30-39 1:01:17 10:19 34:10 23:10 4:01 3:42 1:28 2:50 2:49 4:15 1:25 2:52 3:49
99 Nathan Senior, Ben Spence 🇬🇧 GBR46th of 466 aged 30-39 30-39 1:01:19 10:21 34:23 22:29 4:32 3:45 1:40 2:26 2:02 4:16 1:27 2:54 3:59
100 Gerard Scrace, Joel Swift 🇬🇧 GBR41st of 357 aged U29 U29 1:01:21 10:23 34:08 22:45 4:33 3:47 1:43 2:44 2:33 4:08 1:24 2:42 3:44
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