HYROX Stockholm 2025: Open Men results
1,805 finishers on 18 Dec 2025. Typical finish 1:24:46, fastest 10% under 1:09:13. Back to the analysis.
| # | Athlete | Age | Time | Behind 1st | Runs | Stations | Rox | Ski | Push | Pull | BBJ | Row | Carry | Lunge | WB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Erik Woodward 🇳🇴 NOR1st of 347 aged 30-34 | 30-34 | 55:44 | 28:06 | 23:14 | 4:28 | 3:52 | 1:55 | 2:53 | 2:57 | 3:59 | 1:06 | 2:41 | 3:51 | |
| 2 | Aljaž Ploj 🇸🇮 SLO1st of 280 aged 25-29 | 25-29 | 55:54 | 0:10 | 25:25 | 26:10 | 4:23 | 3:59 | 2:00 | 3:21 | 3:16 | 4:09 | 1:33 | 2:58 | 4:54 |
| 3 | Reece Mc Ginley 🇮🇪 IRL2nd of 280 aged 25-29 | 25-29 | 55:59 | 0:15 | 28:03 | 23:28 | 4:33 | 4:08 | 2:05 | 2:52 | 2:52 | 4:08 | 1:20 | 2:43 | 3:20 |
| 4 | Oskar Karlsson 🇸🇪 SWE1st of 190 aged 16-24 | 16-24 | 57:05 | 1:21 | 28:33 | 23:45 | 4:52 | 3:54 | 2:11 | 3:01 | 2:49 | 4:02 | 1:24 | 2:53 | 3:31 |
| 5 | Adrian Lindgren 🇳🇴 NOR3rd of 280 aged 25-29 | 25-29 | 57:34 | 1:50 | 28:39 | 24:27 | 4:33 | 4:00 | 1:58 | 3:00 | 3:17 | 3:58 | 1:18 | 2:53 | 4:03 |
| 6 | Matas Gedziunas 🇱🇹 LTU2nd of 190 aged 16-24 | 16-24 | 57:42 | 1:58 | 28:47 | 24:15 | 4:45 | 3:59 | 2:05 | 3:08 | 3:09 | 4:04 | 1:15 | 2:59 | 3:36 |
| 7 | Burak Edis Emiroğlu 🇹🇷 TUR2nd of 347 aged 30-34 | 30-34 | 58:17 | 2:33 | 28:30 | 24:47 | 5:06 | 4:04 | 2:16 | 2:59 | 2:33 | 4:11 | 1:31 | 2:59 | 4:14 |
| 8 | Tom Jones 🇬🇧 GBR3rd of 347 aged 30-34 | 30-34 | 58:54 | 3:10 | 29:09 | 23:56 | 5:53 | 3:42 | 1:46 | 2:25 | 3:40 | 3:55 | 1:08 | 3:18 | 4:02 |
| 9 | Pontus Petrelius Risberg 🇸🇪 SWE4th of 347 aged 30-34 | 30-34 | 59:05 | 3:21 | 28:57 | 25:11 | 5:02 | 3:57 | 1:18 | 3:00 | 4:02 | 4:07 | 1:25 | 3:00 | 4:22 |
| 10 | Iain Irving 🇬🇧 GBR1st of 234 aged 40-44 | 40-44 | 59:23 | 3:39 | 30:07 | 24:10 | 5:10 | 4:08 | 1:59 | 3:01 | 2:42 | 4:17 | 1:30 | 2:41 | 3:52 |
| 11 | David Queiroz 🇵🇹 POR5th of 347 aged 30-34 | 30-34 | 59:38 | 3:54 | 29:43 | 25:03 | 4:55 | 3:55 | 2:12 | 3:01 | 2:52 | 4:14 | 1:40 | 3:08 | 4:01 |
| 12 | Tyler Spence 🇬🇧 GBR6th of 347 aged 30-34 | 30-34 | 59:44 | 4:00 | 29:00 | 26:08 | 4:41 | 4:06 | 2:01 | 3:24 | 3:52 | 4:11 | 1:30 | 2:29 | 4:35 |
| 13 | Johan el Bitar 🇫🇷 FRA4th of 280 aged 25-29 | 25-29 | 59:52 | 4:08 | 29:03 | 26:05 | 4:49 | 4:04 | 1:50 | 3:07 | 3:51 | 4:18 | 1:20 | 3:23 | 4:12 |
| 14 | Andreas Fransén 🇸🇪 SWE3rd of 190 aged 16-24 | 16-24 | 59:52 | 4:08 | 29:01 | 26:14 | 4:42 | 4:07 | 1:46 | 3:43 | 3:39 | 4:13 | 1:18 | 3:33 | 3:55 |
| 15 | Fabian Schuster 🇦🇹 AUT7th of 347 aged 30-34 | 30-34 | 1:00:04 | 4:20 | 29:27 | 26:02 | 4:40 | 4:05 | 1:51 | 3:27 | 3:32 | 4:16 | 1:21 | 3:15 | 4:15 |
| 16 | Owen Drew 🇬🇧 GBR8th of 347 aged 30-34 | 30-34 | 1:00:09 | 4:25 | 28:53 | 26:32 | 4:48 | 3:55 | 1:52 | 3:19 | 3:53 | 4:02 | 1:56 | 3:17 | 4:18 |
| 17 | Ryan Waterhouse 🇬🇧 GBR5th of 280 aged 25-29 | 25-29 | 1:01:02 | 5:18 | 29:58 | 26:24 | 4:44 | 3:55 | 2:11 | 3:38 | 3:43 | 4:04 | 1:29 | 3:11 | 4:13 |
| 18 | Sam Dewar 🇬🇧 GBR1st of 324 aged 35-39 | 35-39 | 1:01:17 | 5:33 | 30:46 | 25:43 | 4:53 | 4:09 | 2:23 | 3:09 | 3:18 | 4:11 | 1:44 | 2:49 | 4:00 |
| 19 | Joshua Lewis 🇬🇧 GBR4th of 190 aged 16-24 | 16-24 | 1:01:33 | 5:49 | 28:38 | 28:06 | 4:52 | 4:11 | 1:52 | 3:26 | 3:26 | 4:20 | 1:21 | 2:49 | 6:41 |
| 20 | William Samuelsson 🇸🇪 SWE9th of 347 aged 30-34 | 30-34 | 1:01:36 | 5:52 | 30:49 | 25:57 | 4:55 | 3:51 | 1:47 | 3:02 | 3:32 | 4:12 | 1:21 | 3:19 | 4:53 |
| 21 | Julian Lehrer 🇩🇪 GER2nd of 324 aged 35-39 | 35-39 | 1:01:38 | 5:54 | 30:25 | 25:57 | 5:21 | 3:53 | 2:02 | 2:50 | 3:48 | 4:22 | 1:27 | 3:30 | 4:05 |
| 22 | Julien Demarteau 🇧🇪 BEL10th of 347 aged 30-34 | 30-34 | 1:01:55 | 6:11 | 30:40 | 25:52 | 5:27 | 4:16 | 2:04 | 3:54 | 2:53 | 4:14 | 1:14 | 3:31 | 3:46 |
| 23 | Antoine Boulai 🇫🇷 FRA11th of 347 aged 30-34 | 30-34 | 1:02:00 | 6:16 | 29:56 | 27:06 | 5:02 | 4:10 | 2:02 | 3:32 | 3:36 | 4:09 | 1:22 | 3:06 | 5:09 |
| 24 | Adam Treschow 🇸🇪 SWE1st of 198 aged 45-49 | 45-49 | 1:02:04 | 6:20 | 29:12 | 27:31 | 5:24 | 4:05 | 1:43 | 3:29 | 3:18 | 4:10 | 1:19 | 3:25 | 6:02 |
| 25 | Daire Plunkett 🇮🇪 IRL3rd of 324 aged 35-39 | 35-39 | 1:02:04 | 6:20 | 29:03 | 27:50 | 5:15 | 4:07 | 2:15 | 3:49 | 4:03 | 4:26 | 1:19 | 3:24 | 4:27 |
| 26 | Joona Karonen 🇫🇮 FIN12th of 347 aged 30-34 | 30-34 | 1:02:06 | 6:22 | 30:16 | 26:34 | 5:21 | 4:07 | 1:38 | 3:11 | 3:55 | 4:15 | 1:24 | 3:38 | 4:26 |
| 27 | Marcus Karlsson 🇸🇪 SWE13th of 347 aged 30-34 | 30-34 | 1:02:08 | 6:24 | 31:26 | 25:55 | 4:51 | 4:05 | 2:20 | 3:05 | 3:32 | 4:09 | 1:28 | 3:18 | 3:58 |
| 28 | Jérémy Espagnol 🇫🇷 FRA14th of 347 aged 30-34 | 30-34 | 1:02:09 | 6:25 | 29:43 | 27:12 | 5:18 | 4:11 | 1:57 | 3:23 | 3:23 | 4:24 | 1:43 | 3:54 | 4:17 |
| 29 | Djibril Diallo 🇫🇷 FRA4th of 324 aged 35-39 | 35-39 | 1:02:25 | 6:41 | 31:50 | 24:50 | 5:50 | 3:57 | 2:10 | 3:10 | 3:07 | 4:15 | 1:36 | 3:25 | 3:10 |
| 30 | Linus Holmsäter 🇸🇪 SWE2nd of 234 aged 40-44 | 40-44 | 1:02:27 | 6:43 | 29:10 | 28:29 | 4:54 | 4:04 | 1:49 | 3:36 | 3:48 | 4:15 | 1:34 | 3:37 | 5:46 |
| 31 | Andre Sødlund 🇳🇴 NOR6th of 280 aged 25-29 | 25-29 | 1:02:30 | 6:46 | 31:05 | 26:35 | 4:56 | 4:14 | 1:51 | 3:30 | 3:37 | 4:23 | 1:28 | 3:20 | 4:12 |
| 32 | Dirk Schulke 🇩🇪 GER5th of 324 aged 35-39 | 35-39 | 1:02:35 | 6:51 | 31:47 | 25:26 | 5:28 | 4:04 | 2:18 | 3:16 | 3:10 | 4:15 | 1:26 | 3:32 | 3:25 |
| 33 | Tor Leander 🇸🇪 SWE7th of 280 aged 25-29 | 25-29 | 1:02:37 | 6:53 | 31:51 | 25:12 | 5:38 | 3:47 | 1:52 | 3:15 | 3:43 | 4:09 | 1:21 | 3:07 | 3:58 |
| 34 | Gordon Bieling 🇩🇪 GER3rd of 234 aged 40-44 | 40-44 | 1:02:41 | 6:57 | 30:52 | 26:50 | 5:05 | 4:00 | 2:05 | 2:57 | 3:44 | 4:20 | 1:37 | 3:55 | 4:12 |
| 35 | Gustav Bertelsen 🇩🇰 DEN5th of 190 aged 16-24 | 16-24 | 1:02:45 | 7:01 | 31:33 | 26:04 | 5:13 | 4:02 | 1:59 | 3:22 | 3:43 | 4:10 | 1:42 | 3:33 | 3:33 |
| 36 | Guille Mariscal 🇪🇸 ESP6th of 324 aged 35-39 | 35-39 | 1:02:45 | 7:01 | 31:08 | 26:25 | 5:17 | 4:05 | 2:28 | 3:18 | 3:14 | 4:23 | 1:47 | 3:23 | 3:47 |
| 37 | Jack Mullane 🇮🇪 IRL8th of 280 aged 25-29 | 25-29 | 1:02:57 | 7:13 | 31:07 | 26:54 | 5:01 | 4:15 | 2:11 | 3:26 | 3:23 | 4:17 | 1:46 | 2:58 | 4:38 |
| 38 | Vinzent Torstensson 🇸🇪 SWE9th of 280 aged 25-29 | 25-29 | 1:03:02 | 7:18 | 33:10 | 24:34 | 5:23 | 3:56 | 2:04 | 3:05 | 3:07 | 3:49 | 1:28 | 3:25 | 3:40 |
| 39 | Sylvianno Lortal 🇫🇷 FRA10th of 280 aged 25-29 | 25-29 | 1:03:05 | 7:21 | 31:07 | 27:09 | 4:53 | 4:06 | 2:30 | 3:07 | 3:30 | 4:16 | 1:25 | 3:48 | 4:27 |
| 40 | Valerio Sicurella 🇮🇹 ITA4th of 234 aged 40-44 | 40-44 | 1:03:13 | 7:29 | 29:05 | 29:32 | 4:41 | 4:14 | 2:12 | 4:16 | 4:33 | 4:29 | 1:22 | 4:23 | 4:03 |
| 41 | Simon Foss Jensen 🇩🇰 DEN7th of 324 aged 35-39 | 35-39 | 1:03:15 | 7:31 | 28:13 | 30:12 | 4:54 | 4:19 | 2:04 | 4:06 | 4:34 | 4:03 | 1:59 | 4:31 | 4:36 |
| 42 | Loïc Manine 🇫🇷 FRA11th of 280 aged 25-29 | 25-29 | 1:03:16 | 7:32 | 29:25 | 28:57 | 4:59 | 4:00 | 2:18 | 3:25 | 4:08 | 4:15 | 1:33 | 3:48 | 5:30 |
| 43 | Hippolyte Goueslain 🇫🇷 FRA6th of 190 aged 16-24 | 16-24 | 1:03:19 | 7:35 | 30:35 | 27:45 | 5:04 | 4:22 | 2:47 | 3:28 | 3:03 | 4:20 | 1:43 | 3:52 | 4:10 |
| 44 | Damien Brenard 🇧🇪 BEL15th of 347 aged 30-34 | 30-34 | 1:03:25 | 7:41 | 29:32 | 29:12 | 4:46 | 4:13 | 2:00 | 3:05 | 3:38 | 4:22 | 1:29 | 5:10 | 5:15 |
| 45 | Tobias Jäger 🇸🇪 SWE8th of 324 aged 35-39 | 35-39 | 1:03:27 | 7:43 | 28:35 | 29:39 | 5:18 | 4:02 | 1:58 | 3:25 | 3:53 | 4:13 | 1:17 | 4:08 | 6:43 |
| 46 | Alexander Aristia Rojas 🇸🇪 SWE16th of 347 aged 30-34 | 30-34 | 1:03:31 | 7:47 | 32:30 | 25:37 | 5:26 | 4:00 | 1:41 | 3:03 | 3:07 | 4:11 | 1:50 | 3:46 | 3:59 |
| 47 | Jan Agertoft Nielsen 🇩🇰 DEN5th of 234 aged 40-44 | 40-44 | 1:03:31 | 7:47 | 30:46 | 27:07 | 5:43 | 3:53 | 2:19 | 3:14 | 4:02 | 4:33 | 1:22 | 3:26 | 4:18 |
| 48 | Robin Forest 🇫🇷 FRA12th of 280 aged 25-29 | 25-29 | 1:03:46 | 8:02 | 31:03 | 27:33 | 5:14 | 4:12 | 2:51 | 3:27 | 3:02 | 4:28 | 1:27 | 3:43 | 4:23 |
| 49 | Teun Alberts 🇳🇱 NED17th of 347 aged 30-34 | 30-34 | 1:03:53 | 8:09 | 31:22 | 27:13 | 5:21 | 4:03 | 2:07 | 3:21 | 4:35 | 4:18 | 1:33 | 3:30 | 3:46 |
| 50 | Anders Lillhager 🇸🇪 SWE9th of 324 aged 35-39 | 35-39 | 1:03:56 | 8:12 | 30:44 | 27:49 | 5:28 | 4:01 | 2:13 | 3:15 | 3:47 | 4:13 | 1:44 | 3:51 | 4:45 |
| 51 | Kristoffer Hjärtström 🇸🇪 SWE10th of 324 aged 35-39 | 35-39 | 1:04:04 | 8:20 | 31:30 | 27:27 | 5:12 | 4:06 | 2:02 | 3:20 | 4:30 | 4:14 | 1:32 | 3:23 | 4:20 |
| 52 | Jad Cherqaoui 🇲🇦 MAR7th of 190 aged 16-24 | 16-24 | 1:04:06 | 8:22 | 30:14 | 28:48 | 5:08 | 4:14 | 2:31 | 3:51 | 3:10 | 4:25 | 1:44 | 3:54 | 4:59 |
| 53 | Fredrik Olsson 🇸🇪 SWE6th of 234 aged 40-44 | 40-44 | 1:04:10 | 8:26 | 30:49 | 27:54 | 5:33 | 4:05 | 2:11 | 3:42 | 3:54 | 4:14 | 1:18 | 3:53 | 4:37 |
| 54 | Callum Crosby 🇬🇧 GBR13th of 280 aged 25-29 | 25-29 | 1:04:14 | 8:30 | 32:13 | 26:33 | 5:33 | 4:07 | 2:10 | 3:22 | 3:37 | 4:18 | 1:30 | 3:23 | 4:06 |
| 55 | Ludvig Nilheim 🇸🇪 SWE2nd of 198 aged 45-49 | 45-49 | 1:04:14 | 8:30 | 30:54 | 28:22 | 5:04 | 3:58 | 1:46 | 3:30 | 4:11 | 4:31 | 1:27 | 3:55 | 5:04 |
| 56 | Markus Norberg Väyrynen 🇸🇪 SWE14th of 280 aged 25-29 | 25-29 | 1:04:19 | 8:35 | 32:36 | 25:15 | 6:34 | 4:07 | 2:12 | 3:24 | 3:16 | 4:22 | 1:31 | 3:03 | 3:20 |
| 57 | Romain Maleuvre 🇫🇷 FRA15th of 280 aged 25-29 | 25-29 | 1:04:24 | 8:40 | 32:12 | 27:14 | 5:03 | 4:01 | 2:14 | 3:39 | 3:34 | 4:20 | 1:40 | 3:41 | 4:05 |
| 58 | Jakob Sande 🇳🇴 NOR11th of 324 aged 35-39 | 35-39 | 1:04:24 | 8:40 | 30:41 | 28:38 | 5:10 | 4:09 | 2:21 | 3:57 | 4:33 | 4:20 | 1:20 | 3:36 | 4:22 |
| 59 | Søren Sandager Petersen 🇩🇰 DEN12th of 324 aged 35-39 | 35-39 | 1:04:26 | 8:42 | 33:26 | 25:41 | 5:25 | 4:09 | 2:14 | 3:02 | 3:25 | 4:09 | 1:22 | 3:49 | 3:31 |
| 60 | Romain Marchese 🇫🇷 FRA13th of 324 aged 35-39 | 35-39 | 1:04:36 | 8:52 | 30:12 | 29:29 | 4:59 | 4:18 | 2:20 | 3:29 | 3:37 | 4:28 | 1:45 | 3:43 | 5:49 |
| 61 | Michael Girvan 🇬🇧 GBR18th of 347 aged 30-34 | 30-34 | 1:04:40 | 8:56 | 31:56 | 27:48 | 5:02 | 4:04 | 2:17 | 3:36 | 3:13 | 4:31 | 1:41 | 3:29 | 4:57 |
| 62 | Mark Abbott 🇮🇪 IRL16th of 280 aged 25-29 | 25-29 | 1:04:48 | 9:04 | 30:12 | 29:20 | 5:20 | 4:22 | 2:21 | 3:51 | 3:43 | 4:49 | 1:33 | 4:01 | 4:40 |
| 63 | Charel Tanson 🇱🇺 LUX8th of 190 aged 16-24 | 16-24 | 1:04:50 | 9:06 | 32:25 | 27:04 | 5:24 | 4:05 | 1:57 | 3:26 | 3:53 | 4:15 | 1:52 | 3:03 | 4:33 |
| 64 | Jordan Douglas Peters 🇦🇺 AUS19th of 347 aged 30-34 | 30-34 | 1:04:51 | 9:07 | 30:33 | 28:53 | 5:30 | 4:06 | 2:02 | 4:12 | 3:29 | 4:31 | 1:44 | 3:04 | 5:45 |
| 65 | Brandon Hassan 🇮🇪 IRL9th of 190 aged 16-24 | 16-24 | 1:04:52 | 9:08 | 32:00 | 27:52 | 5:06 | 4:30 | 2:06 | 3:29 | 3:14 | 4:34 | 1:29 | 3:45 | 4:45 |
| 66 | Daniel Widjaja 🇨🇭 SUI7th of 234 aged 40-44 | 40-44 | 1:05:02 | 9:18 | 32:05 | 27:42 | 5:20 | 4:24 | 2:40 | 3:26 | 3:27 | 4:16 | 1:37 | 3:40 | 4:12 |
| 67 | Brun Keller 🇩🇪 GER20th of 347 aged 30-34 | 30-34 | 1:05:08 | 9:24 | 32:18 | 27:23 | 5:32 | 4:09 | 2:26 | 3:07 | 4:02 | 4:19 | 1:42 | 3:31 | 4:07 |
| 68 | William Briend 🇫🇷 FRA17th of 280 aged 25-29 | 25-29 | 1:05:10 | 9:26 | 30:28 | 28:57 | 5:50 | 4:01 | 2:02 | 4:05 | 4:09 | 4:11 | 1:14 | 3:47 | 5:28 |
| 69 | Louis Belson 🇬🇧 GBR21st of 347 aged 30-34 | 30-34 | 1:05:11 | 9:27 | 31:36 | 28:17 | 5:24 | 4:00 | 2:18 | 3:53 | 3:26 | 4:14 | 1:31 | 3:45 | 5:10 |
| 70 | Mantas Jencius 🇱🇹 LTU22nd of 347 aged 30-34 | 30-34 | 1:05:13 | 9:29 | 33:17 | 26:26 | 5:35 | 4:01 | 1:52 | 3:23 | 3:42 | 4:07 | 1:24 | 3:06 | 4:51 |
| 71 | Sam Unsworth 🇬🇧 GBR23rd of 347 aged 30-34 | 30-34 | 1:05:20 | 9:36 | 31:22 | 28:05 | 5:58 | 4:19 | 2:23 | 3:29 | 3:54 | 4:33 | 1:29 | 3:45 | 4:13 |
| 72 | Andrey Kalinin HYROX3rd of 198 aged 45-49 | 45-49 | 1:05:26 | 9:42 | 29:19 | 30:22 | 5:50 | 4:04 | 2:48 | 3:56 | 4:40 | 4:26 | 1:19 | 3:55 | 5:14 |
| 73 | Enzo Jacomino 🇫🇷 FRA18th of 280 aged 25-29 | 25-29 | 1:05:28 | 9:44 | 33:43 | 26:10 | 5:41 | 4:04 | 2:14 | 3:11 | 3:42 | 4:16 | 1:27 | 3:30 | 3:46 |
| 74 | Hampus Ericson 🇸🇪 SWE19th of 280 aged 25-29 | 25-29 | 1:05:29 | 9:45 | 31:10 | 28:50 | 5:35 | 4:08 | 2:20 | 3:44 | 4:36 | 4:21 | 1:44 | 3:37 | 4:20 |
| 75 | Alex Rodríguez Tynninen 🇸🇪 SWE20th of 280 aged 25-29 | 25-29 | 1:05:31 | 9:47 | 28:58 | 30:57 | 5:41 | 4:04 | 3:03 | 3:14 | 4:21 | 4:24 | 1:28 | 4:06 | 6:17 |
| 76 | Ioannis Papikas 🇬🇷 GRE14th of 324 aged 35-39 | 35-39 | 1:05:36 | 9:52 | 32:37 | 26:37 | 6:26 | 4:06 | 2:02 | 3:42 | 3:10 | 4:16 | 1:28 | 2:44 | 5:09 |
| 77 | Joacim Lundqvist 🇸🇪 SWE15th of 324 aged 35-39 | 35-39 | 1:05:41 | 9:57 | 31:27 | 28:49 | 5:30 | 4:07 | 2:33 | 3:46 | 3:40 | 4:22 | 1:12 | 4:37 | 4:32 |
| 78 | Mohammad Jafar 🇰🇼 KUW16th of 324 aged 35-39 | 35-39 | 1:05:42 | 9:58 | 31:40 | 28:58 | 5:09 | 4:02 | 2:50 | 4:04 | 4:19 | 4:20 | 1:44 | 3:09 | 4:30 |
| 79 | Patrick Paul 🇩🇪 GER8th of 234 aged 40-44 | 40-44 | 1:05:46 | 10:02 | 31:08 | 29:27 | 5:16 | 4:06 | 2:06 | 3:12 | 3:32 | 4:28 | 1:42 | 3:40 | 6:41 |
| 80 | Marcel Arnold 🇨🇭 SUI9th of 234 aged 40-44 | 40-44 | 1:05:48 | 10:04 | 31:46 | 28:55 | 5:12 | 4:13 | 2:33 | 3:44 | 4:07 | 4:27 | 1:26 | 3:30 | 4:55 |
| 81 | Kyle Whitelaw 🇬🇧 GBR21st of 280 aged 25-29 | 25-29 | 1:05:51 | 10:07 | 30:23 | 30:26 | 5:06 | 4:13 | 2:31 | 3:32 | 3:42 | 4:15 | 1:34 | 4:33 | 6:06 |
| 82 | Calum Hepworth 🇬🇧 GBR22nd of 280 aged 25-29 | 25-29 | 1:05:52 | 10:08 | 32:18 | 27:49 | 5:50 | 3:56 | 2:14 | 3:47 | 4:11 | 4:35 | 2:04 | 2:42 | 4:20 |
| 83 | Olly Luck 🇬🇧 GBR10th of 190 aged 16-24 | 16-24 | 1:05:55 | 10:11 | 31:10 | 29:34 | 5:14 | 4:17 | 2:44 | 3:54 | 3:26 | 4:25 | 1:56 | 3:58 | 4:54 |
| 84 | Per-Johan Svensson 🇸🇪 SWE1st of 65 aged 55-59 | 55-59 | 1:05:57 | 10:13 | 30:08 | 30:37 | 5:16 | 4:11 | 2:10 | 3:58 | 4:52 | 4:31 | 1:49 | 3:54 | 5:12 |
| 85 | Max Åberg 🇸🇪 SWE11th of 190 aged 16-24 | 16-24 | 1:06:01 | 10:17 | 31:40 | 28:54 | 5:31 | 4:28 | 2:31 | 3:31 | 3:31 | 4:29 | 1:50 | 3:25 | 5:09 |
| 86 | Anders Kjellen 🇳🇴 NOR4th of 198 aged 45-49 | 45-49 | 1:06:06 | 10:22 | 33:02 | 27:36 | 5:32 | 3:59 | 1:59 | 3:13 | 4:11 | 4:03 | 1:28 | 3:52 | 4:51 |
| 87 | Alberto Palacios 🇲🇽 MEX12th of 190 aged 16-24 | 16-24 | 1:06:12 | 10:28 | 31:00 | 29:53 | 5:24 | 4:32 | 2:20 | 4:21 | 3:38 | 4:32 | 1:24 | 4:14 | 4:52 |
| 88 | Markus Kainberger 🇦🇹 AUT23rd of 280 aged 25-29 | 25-29 | 1:06:13 | 10:29 | 32:40 | 27:47 | 5:50 | 4:05 | 2:02 | 3:23 | 4:01 | 4:09 | 1:19 | 4:16 | 4:32 |
| 89 | Jossian Doignon 🇫🇷 FRA24th of 280 aged 25-29 | 25-29 | 1:06:13 | 10:29 | 32:26 | 28:40 | 5:13 | 4:23 | 2:13 | 3:24 | 3:35 | 4:24 | 1:35 | 4:18 | 4:48 |
| 90 | Bosse Mildner 🇩🇪 GER13th of 190 aged 16-24 | 16-24 | 1:06:16 | 10:32 | 32:24 | 28:31 | 5:25 | 4:19 | 2:30 | 3:19 | 4:03 | 4:17 | 1:39 | 3:33 | 4:51 |
| 91 | Guy Estoppey 🇨🇭 SUI17th of 324 aged 35-39 | 35-39 | 1:06:16 | 10:32 | 30:13 | 30:50 | 5:16 | 4:04 | 2:37 | 3:50 | 4:13 | 4:16 | 1:30 | 4:43 | 5:37 |
| 92 | Floris van Drunen 🇳🇱 NED24th of 347 aged 30-34 | 30-34 | 1:06:17 | 10:33 | 30:11 | 31:10 | 5:00 | 4:18 | 2:22 | 4:21 | 4:09 | 4:22 | 1:32 | 4:21 | 5:45 |
| 93 | Benedikt Seeger 🇩🇪 GER18th of 324 aged 35-39 | 35-39 | 1:06:18 | 10:34 | 31:52 | 28:51 | 5:39 | 4:11 | 2:33 | 3:41 | 3:31 | 4:27 | 1:33 | 3:40 | 5:15 |
| 94 | David Bustos 🇸🇪 SWE5th of 198 aged 45-49 | 45-49 | 1:06:23 | 10:39 | 32:58 | 27:18 | 6:10 | 3:59 | 2:17 | 3:30 | 3:38 | 4:08 | 1:23 | 3:33 | 4:50 |
| 95 | Sami Kiehelä 🇫🇮 FIN10th of 234 aged 40-44 | 40-44 | 1:06:26 | 10:42 | 31:51 | 29:07 | 5:32 | 4:02 | 2:23 | 3:35 | 4:01 | 4:18 | 1:37 | 4:08 | 5:03 |
| 96 | Daniel Schmitt 🇩🇪 GER25th of 347 aged 30-34 | 30-34 | 1:06:30 | 10:46 | 31:10 | 29:51 | 5:33 | 4:24 | 2:27 | 3:37 | 4:27 | 4:26 | 1:34 | 3:47 | 5:09 |
| 97 | Martin Puumalainen 🇸🇪 SWE1st of 117 aged 50-54 | 50-54 | 1:06:31 | 10:47 | 32:25 | 27:58 | 6:13 | 4:10 | 2:27 | 3:20 | 4:29 | 4:16 | 1:22 | 3:51 | 4:03 |
| 98 | Patrik Bohman 🇸🇪 SWE6th of 198 aged 45-49 | 45-49 | 1:06:31 | 10:47 | 31:39 | 28:41 | 6:14 | 3:57 | 1:54 | 3:10 | 4:12 | 4:06 | 1:46 | 4:31 | 5:05 |
| 99 | Sebastian Karlsson 🇸🇪 SWE26th of 347 aged 30-34 | 30-34 | 1:06:31 | 10:47 | 31:23 | 30:13 | 4:59 | 4:05 | 2:08 | 3:54 | 4:04 | 4:25 | 1:22 | 3:37 | 6:38 |
| 100 | Nikolaus Kalina 🇦🇹 AUT27th of 347 aged 30-34 | 30-34 | 1:06:32 | 10:48 | 33:04 | 27:59 | 5:34 | 4:02 | 1:47 | 3:32 | 4:18 | 4:12 | 1:50 | 3:54 | 4:24 |
How to read
The place is among timed finishers in Open 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.