HYROX Oslo 2025: Pro Men results

291 finishers on 27 Sep 2025. Typical finish 1:17:01, fastest 10% under 1:05:59. Back to the analysis.

# Athlete Age Time Behind 1st Runs Stations Rox Ski Push Pull BBJ Row Carry Lunge WB
1 Sebastian Ifversen 🇩🇰 DEN1st of 48 aged 25-29 25-29 58:17 28:44 25:48 3:50 3:49 2:58 3:24 3:10 4:02 1:25 2:42 4:18
2 Gustav Cordua 🇩🇰 DEN1st of 31 aged 16-24 16-24 58:51 0:34 29:00 26:17 3:38 3:52 2:27 4:00 2:29 3:56 1:32 3:36 4:25
3 Kenny Steger 🇸🇪 SWE2nd of 48 aged 25-29 25-29 59:42 1:25 29:30 26:38 3:39 3:53 3:09 3:26 3:01 4:08 1:34 3:34 3:53
4 Lars Rudi 🇳🇴 NOR1st of 83 aged 30-34 30-34 1:00:04 1:47 31:37 24:41 3:49 3:53 2:27 3:31 3:12 4:00 1:18 2:56 3:24
5 Erik Woodward 🇳🇴 NOR2nd of 83 aged 30-34 30-34 1:00:09 1:52 30:27 25:56 3:50 3:49 2:45 3:24 2:46 4:04 1:17 3:00 4:51
6 Harvey Williams 🇬🇧 GBR2nd of 31 aged 16-24 16-24 1:00:59 2:42 28:40 28:17 4:08 4:01 3:21 3:59 3:00 4:08 1:38 3:17 4:53
7 George Burton 🇬🇧 GBR3rd of 48 aged 25-29 25-29 1:01:39 3:22 31:01 26:39 4:04 3:51 2:22 4:07 2:58 4:05 1:44 3:27 4:05
8 Franz Löschke 🇩🇪 GER1st of 54 aged 35-39 35-39 1:01:50 3:33 29:38 28:04 4:13 3:44 2:58 3:57 3:26 4:15 2:01 3:31 4:12
9 Olivier Jouve 🇫🇷 FRA3rd of 83 aged 30-34 30-34 1:02:12 3:55 31:27 26:46 4:04 3:50 2:47 4:19 2:46 4:01 1:44 2:57 4:22
10 Mohamed Redaoui 🇲🇦 MAR4th of 48 aged 25-29 25-29 1:02:24 4:07 30:39 27:57 3:53 4:02 2:50 3:44 3:18 4:25 1:48 3:13 4:37
11 Lloyd Mulholland 🇬🇧 GBR4th of 83 aged 30-34 30-34 1:02:27 4:10 30:09 28:31 3:52 4:07 2:39 4:18 3:17 4:14 1:41 3:43 4:32
12 Simon Buus Jensen 🇩🇰 DEN2nd of 54 aged 35-39 35-39 1:02:39 4:22 32:01 26:31 4:11 3:54 2:16 3:44 3:39 4:07 1:26 3:20 4:05
13 Graham Halliday 🇬🇧 GBR5th of 83 aged 30-34 30-34 1:02:42 4:25 29:44 24:46 8:17 4:00 2:55 3:29 2:35 4:07 1:26 2:23 3:51
14 Oscar Petersen 🇩🇰 DEN6th of 83 aged 30-34 30-34 1:03:01 4:44 32:01 26:54 4:11 3:53 3:04 4:09 2:37 4:01 1:34 3:26 4:10
15 Erik Oscar Bøe 🇳🇴 NOR5th of 48 aged 25-29 25-29 1:03:24 5:07 31:16 28:08 4:02 3:56 3:05 3:41 3:08 4:22 1:30 3:48 4:38
16 Travis Brown 🇬🇧 GBR7th of 83 aged 30-34 30-34 1:03:36 5:19 30:51 28:51 3:58 4:10 2:50 4:18 2:55 4:06 2:12 3:56 4:24
17 Stephen Harold 🇮🇪 IRL3rd of 54 aged 35-39 35-39 1:03:51 5:34 32:18 27:23 4:14 3:47 2:50 3:47 2:50 4:09 1:36 3:43 4:41
18 David Kallebäck 🇸🇪 SWE4th of 54 aged 35-39 35-39 1:03:51 5:34 32:32 27:28 3:56 3:54 3:18 3:46 2:59 4:15 1:48 3:03 4:25
19 Freddie Abrahams 🇬🇧 GBR1st of 22 aged 40-44 40-44 1:04:01 5:44 31:25 28:26 4:15 4:04 2:10 5:17 2:46 4:18 1:31 3:20 5:00
20 Sam Knowles 🇬🇧 GBR8th of 83 aged 30-34 30-34 1:04:33 6:16 32:20 28:09 4:10 3:55 2:40 3:51 3:20 4:08 1:50 3:23 5:02
21 Craig Murphy 🇬🇧 GBR9th of 83 aged 30-34 30-34 1:04:42 6:25 30:51 30:00 3:55 4:04 2:52 4:05 3:37 4:22 1:33 3:47 5:40
22 Ričards Matuzevičs 🇱🇻 LAT10th of 83 aged 30-34 30-34 1:04:46 6:29 32:49 27:21 4:41 3:50 2:37 4:10 3:14 4:22 1:23 3:36 4:09
23 Steffen Blekkan 🇳🇴 NOR11th of 83 aged 30-34 30-34 1:04:54 6:37 32:52 27:23 4:45 3:50 3:19 3:58 3:02 4:08 1:03 3:43 4:20
24 Mathias Gislason 🇩🇰 DEN6th of 48 aged 25-29 25-29 1:05:25 7:08 34:09 26:45 4:36 3:39 2:20 3:57 2:50 4:02 1:47 3:59 4:11
25 Kieron White 🇮🇪 IRL7th of 48 aged 25-29 25-29 1:05:25 7:08 30:47 30:23 4:18 3:59 3:07 4:10 3:41 4:23 1:44 3:41 5:38
26 Jordan Hanson 🇬🇧 GBR5th of 54 aged 35-39 35-39 1:05:34 7:17 31:43 29:55 4:03 4:05 2:38 4:07 3:49 4:18 1:40 4:11 5:07
27 Anders Næstholdt 🇩🇰 DEN12th of 83 aged 30-34 30-34 1:05:38 7:21 32:19 29:07 4:16 3:56 2:52 4:22 3:05 4:10 1:31 3:47 5:24
28 Markus Knudsen Tveit 🇳🇴 NOR13th of 83 aged 30-34 30-34 1:05:41 7:24 32:46 28:30 4:29 3:55 2:41 4:46 3:30 4:09 1:32 3:43 4:14
29 John Arvidsson 🇸🇪 SWE14th of 83 aged 30-34 30-34 1:05:48 7:31 32:54 28:37 4:22 4:09 3:15 4:28 3:07 4:23 1:40 3:35 4:00
30 Jaydon Emmott 🇬🇧 GBR3rd of 31 aged 16-24 16-24 1:05:59 7:42 31:22 30:16 4:24 4:08 3:29 4:26 3:04 4:43 1:42 4:17 4:27
31 Kalev Ermits 🇪🇪 EST15th of 83 aged 30-34 30-34 1:06:03 7:46 32:58 28:42 4:28 3:49 2:36 4:19 3:20 4:02 1:53 4:12 4:31
32 Viktor Munck Larsson 🇸🇪 SWE8th of 48 aged 25-29 25-29 1:06:07 7:50 33:44 28:07 4:20 3:53 2:50 4:22 3:18 4:10 1:25 4:08 4:01
33 David Balsgaard 🇩🇰 DEN2nd of 22 aged 40-44 40-44 1:06:09 7:52 33:52 27:50 4:31 3:59 2:39 3:44 3:16 4:10 1:40 3:43 4:39
34 Stephen Reynolds 🇬🇧 GBR1st of 25 aged 45-49 45-49 1:06:11 7:54 31:52 29:46 4:37 4:12 2:58 4:10 2:49 4:22 1:39 4:10 5:26
35 Andrew Langley 🇬🇧 GBR3rd of 22 aged 40-44 40-44 1:06:13 7:56 30:48 30:47 4:42 3:46 3:47 4:11 2:50 4:02 1:42 4:23 6:06
36 Anders Meskestad Jacobsen 🇳🇴 NOR2nd of 25 aged 45-49 45-49 1:06:22 8:05 34:50 27:25 4:12 3:53 2:34 3:45 2:58 4:00 1:25 3:16 5:34
37 Oscar Olsson 🇸🇪 SWE4th of 22 aged 40-44 40-44 1:06:29 8:12 32:14 29:58 4:22 3:51 3:08 4:32 3:03 4:30 1:42 4:11 5:01
38 Luca Jumabhoy 🇬🇧 GBR4th of 31 aged 16-24 16-24 1:06:31 8:14 31:38 30:29 4:29 3:56 3:21 5:02 2:49 4:11 1:35 4:27 5:08
39 Luca Jumabhoy 🇦🇺 AUS5th of 31 aged 16-24 16-24 1:06:34 8:17 32:15 30:06 4:18 3:56 3:38 4:02 2:58 4:09 1:39 4:23 5:21
40 Toby Wilson 🇬🇧 GBR6th of 31 aged 16-24 16-24 1:06:36 8:19 34:13 28:08 4:21 4:10 2:54 4:07 3:04 4:18 1:30 3:17 4:48
41 Jeff Woodward 🇬🇧 GBR16th of 83 aged 30-34 30-34 1:06:48 8:31 30:38 32:19 3:56 4:13 3:23 4:38 3:26 4:20 3:43 3:50 4:46
42 Omar Gameros 🇲🇽 MEX6th of 54 aged 35-39 35-39 1:06:49 8:32 32:42 29:55 4:17 3:56 2:56 4:03 3:29 4:15 1:38 4:16 5:22
43 Berthel Jakobsen 🇩🇰 DEN7th of 31 aged 16-24 16-24 1:06:50 8:33 31:58 30:40 4:16 4:06 3:19 4:56 3:18 4:24 2:06 3:52 4:39
44 Marcus Mollison 🇬🇧 GBR17th of 83 aged 30-34 30-34 1:06:55 8:38 33:00 29:48 4:13 4:06 2:33 5:05 3:46 4:13 1:31 3:28 5:06
45 Robert James 🇬🇧 GBR7th of 54 aged 35-39 35-39 1:06:58 8:41 31:05 31:48 4:10 3:56 3:12 5:06 3:36 4:24 2:11 3:58 5:25
46 William Anderson 🇨🇦 CAN18th of 83 aged 30-34 30-34 1:07:07 8:50 32:12 30:23 4:37 4:16 2:59 4:14 3:29 4:26 1:29 4:12 5:18
47 Simen Arnekleiv 🇳🇴 NOR9th of 48 aged 25-29 25-29 1:07:37 9:20 32:45 30:29 4:26 3:53 2:48 4:35 3:22 4:04 1:22 4:22 6:03
48 Oscar Adrian Melheim 🇳🇴 NOR8th of 31 aged 16-24 16-24 1:07:38 9:21 32:26 30:33 4:44 4:06 3:24 4:37 2:54 4:21 1:36 4:05 5:30
49 Florian Brennecke 🇩🇪 GER8th of 54 aged 35-39 35-39 1:07:43 9:26 32:01 30:48 4:59 3:53 3:28 5:00 3:38 4:19 1:34 4:06 4:50
50 Daniel Moran SCO9th of 31 aged 16-24 16-24 1:07:53 9:36 33:29 30:10 4:17 4:15 2:13 4:38 3:02 4:40 1:42 4:00 5:40
51 Cary Tanner 🇸🇪 SWE5th of 22 aged 40-44 40-44 1:08:06 9:49 32:57 31:00 4:14 4:08 3:18 5:24 3:01 4:18 2:00 3:31 5:20
52 Lasse Teigen 🇳🇴 NOR19th of 83 aged 30-34 30-34 1:08:14 9:57 33:19 30:09 4:51 3:53 2:50 4:46 3:43 4:32 1:32 3:45 5:08
53 Felix Möller 🇦🇹 AUT10th of 31 aged 16-24 16-24 1:08:23 10:06 32:56 31:00 4:32 4:03 2:52 4:08 3:20 4:18 1:37 3:54 6:48
54 Scott Walker 🇬🇧 GBR9th of 54 aged 35-39 35-39 1:08:28 10:11 33:12 31:08 4:14 4:08 2:54 4:35 3:46 4:31 1:41 4:12 5:21
55 Dylan Thomson 🇬🇧 GBR10th of 48 aged 25-29 25-29 1:08:36 10:19 32:51 31:42 4:09 3:58 2:42 5:38 3:36 4:18 1:56 3:57 5:37
56 Jonas Togo 🇩🇰 DEN20th of 83 aged 30-34 30-34 1:08:39 10:22 33:45 30:20 4:38 3:56 3:10 4:07 3:24 4:28 1:40 3:46 5:49
57 Jack Murphy 🇬🇧 GBR21st of 83 aged 30-34 30-34 1:08:39 10:22 32:19 31:43 4:43 4:04 3:01 4:14 3:37 4:16 2:10 4:45 5:36
58 Mathias Ramberg 🇸🇪 SWE22nd of 83 aged 30-34 30-34 1:08:48 10:31 33:41 30:35 4:37 3:46 4:27 3:57 3:42 4:10 1:36 4:32 4:25
59 Sindre Hoff 🇳🇴 NOR6th of 22 aged 40-44 40-44 1:08:53 10:36 31:42 32:56 4:19 3:56 3:21 4:54 3:09 4:33 1:50 4:50 6:23
60 Fredrik Nylén 🇸🇪 SWE1st of 21 aged 50-54 50-54 1:08:54 10:37 33:43 30:59 4:17 4:08 3:27 4:46 3:37 4:15 1:37 3:52 5:17
61 Jacob Vagg 🇬🇧 GBR10th of 54 aged 35-39 35-39 1:09:02 10:45 34:10 30:47 4:09 3:55 2:51 4:34 3:24 4:05 1:28 4:40 5:50
62 Tobias Borg 🇳🇴 NOR11th of 48 aged 25-29 25-29 1:09:20 11:03 34:42 30:26 4:17 4:00 2:53 4:38 3:47 4:30 1:40 4:05 4:53
63 Monzer Taha 🇸🇪 SWE23rd of 83 aged 30-34 30-34 1:09:20 11:03 32:57 32:14 4:15 4:01 3:20 5:22 2:55 4:25 1:40 3:30 7:01
64 Dylan Gruson 🇫🇷 FRA24th of 83 aged 30-34 30-34 1:09:32 11:15 30:54 33:59 4:43 4:09 4:15 5:39 4:06 4:23 1:39 4:06 5:42
65 Martin Simengård 🇳🇴 NOR12th of 48 aged 25-29 25-29 1:09:44 11:27 37:09 28:01 4:38 4:00 2:05 4:15 3:55 4:14 1:35 3:40 4:17
66 Ole Diringer 🇩🇪 GER25th of 83 aged 30-34 30-34 1:09:48 11:31 32:44 32:46 4:23 4:01 3:12 4:03 4:12 4:26 1:47 4:20 6:45
67 Henri Pyykola 🇫🇮 FIN11th of 54 aged 35-39 35-39 1:09:58 11:41 35:53 29:20 4:48 3:59 2:29 4:18 2:28 4:25 1:58 4:19 5:24
68 Murray Richardson 🇬🇧 GBR13th of 48 aged 25-29 25-29 1:10:07 11:50 33:45 32:03 4:23 3:59 2:53 5:52 3:27 4:28 2:33 4:24 4:27
69 Jacopo Gadani 🇮🇹 ITA26th of 83 aged 30-34 30-34 1:10:18 12:01 36:53 28:49 4:40 4:01 2:34 4:27 3:38 4:19 1:46 3:51 4:13
70 Eirik Årseth 🇳🇴 NOR27th of 83 aged 30-34 30-34 1:10:24 12:07 35:33 30:27 4:29 4:07 3:11 5:06 3:25 4:17 1:45 3:22 5:14
71 Jan-Ole Martin 🇩🇪 GER14th of 48 aged 25-29 25-29 1:10:30 12:13 33:32 32:50 4:13 3:55 3:07 4:27 3:17 4:25 1:51 4:00 7:48
72 Andreas Wik 🇳🇴 NOR28th of 83 aged 30-34 30-34 1:10:34 12:17 36:21 29:28 4:50 4:08 2:55 4:25 3:48 4:21 1:30 3:51 4:30
73 Fábio Ribeiro 🇵🇹 POR29th of 83 aged 30-34 30-34 1:10:36 12:19 32:31 33:50 4:20 4:10 3:25 5:02 3:18 4:27 2:18 4:48 6:22
74 Lasse Slengesol 🇳🇴 NOR12th of 54 aged 35-39 35-39 1:10:41 12:24 37:00 29:06 4:38 4:03 2:53 4:45 3:09 4:13 1:39 3:54 4:30
75 Jardar Hovland 🇳🇴 NOR30th of 83 aged 30-34 30-34 1:10:43 12:26 36:32 29:30 4:47 3:56 2:33 4:13 3:17 4:24 1:49 4:03 5:15
76 Cameron Steele 🇬🇧 GBR15th of 48 aged 25-29 25-29 1:10:53 12:36 34:08 32:24 4:27 4:02 3:01 5:22 4:56 4:15 1:32 4:16 5:00
77 Marius Maelen Haukland 🇳🇴 NOR16th of 48 aged 25-29 25-29 1:11:12 12:55 35:22 31:16 4:38 3:53 2:49 4:13 3:41 4:13 2:13 4:17 5:57
78 Ten Takeda 🇯🇵 JPN11th of 31 aged 16-24 16-24 1:11:20 13:03 34:34 32:24 4:26 4:02 3:33 5:28 3:13 4:13 1:38 4:20 5:57
79 Tom Knutli 🇳🇴 NOR31st of 83 aged 30-34 30-34 1:11:21 13:04 35:42 30:49 4:54 4:05 2:45 4:34 3:46 4:18 1:47 3:53 5:41
80 Jacob Werner 🇸🇪 SWE2nd of 21 aged 50-54 50-54 1:11:25 13:08 37:15 29:10 5:04 4:00 2:37 4:11 3:09 4:17 1:31 4:25 5:00
81 Svante Engberg 🇸🇪 SWE17th of 48 aged 25-29 25-29 1:11:29 13:12 35:21 31:21 4:51 4:03 3:14 5:30 3:15 4:20 1:56 4:05 4:58
82 Bradley Woodward 🇬🇧 GBR13th of 54 aged 35-39 35-39 1:11:32 13:15 32:03 34:55 4:39 4:15 3:08 5:03 4:26 4:25 1:40 4:55 7:03
83 Mattias Damm 🇸🇪 SWE18th of 48 aged 25-29 25-29 1:11:33 13:16 34:33 32:33 4:31 4:11 2:48 3:59 4:02 4:36 2:10 3:48 6:59
84 Milan Konopásek 🇨🇿 CZE12th of 31 aged 16-24 16-24 1:11:33 13:16 34:10 33:08 4:20 4:05 2:54 4:50 3:42 4:29 2:20 4:21 6:27
85 David Piva 🇧🇪 BEL14th of 54 aged 35-39 35-39 1:11:38 13:21 33:26 33:12 5:06 3:51 3:34 4:58 3:59 4:29 2:08 4:35 5:38
86 Daniele Asietti 🇮🇹 ITA32nd of 83 aged 30-34 30-34 1:11:45 13:28 33:17 33:51 4:41 4:05 4:10 6:29 3:40 4:18 1:44 4:18 5:07
87 Marius Nystøl 🇳🇴 NOR33rd of 83 aged 30-34 30-34 1:11:57 13:40 33:56 33:33 4:34 4:10 3:13 4:45 3:53 4:29 1:56 4:55 6:12
88 Petter Tufte 🇳🇴 NOR34th of 83 aged 30-34 30-34 1:11:58 13:41 37:06 29:45 5:10 3:46 2:38 4:05 4:10 4:06 1:38 3:34 5:48
89 David Guy 🇬🇧 GBR3rd of 25 aged 45-49 45-49 1:12:01 13:44 37:29 29:38 4:57 4:03 3:19 4:23 3:45 4:22 1:47 3:52 4:07
90 Łukasz Żolik 🇵🇱 POL7th of 22 aged 40-44 40-44 1:12:04 13:47 36:00 31:32 4:39 3:58 2:51 4:43 4:32 4:23 1:35 4:14 5:16
91 Carl Emil Brøgger 🇩🇰 DEN13th of 31 aged 16-24 16-24 1:12:13 13:56 34:19 33:06 4:51 4:09 2:55 5:31 3:46 4:41 1:54 3:48 6:22
92 Fredrick Karlsson 🇸🇪 SWE3rd of 21 aged 50-54 50-54 1:12:25 14:08 34:38 32:56 4:55 4:11 3:24 4:47 3:58 4:35 1:45 4:36 5:40
93 Tom Jansen 🇳🇱 NED35th of 83 aged 30-34 30-34 1:12:25 14:08 34:21 33:35 4:34 4:05 3:26 5:04 3:44 4:26 1:57 4:34 6:19
94 Audun Lervik 🇳🇴 NOR15th of 54 aged 35-39 35-39 1:12:33 14:16 37:18 30:31 4:50 3:58 3:18 5:12 3:12 4:14 1:43 4:25 4:29
95 Radosław Koczwara 🇵🇱 POL4th of 25 aged 45-49 45-49 1:12:38 14:21 35:31 32:15 4:57 4:04 3:26 4:06 4:14 4:23 1:37 4:59 5:26
96 Eskil Dynna 🇳🇴 NOR19th of 48 aged 25-29 25-29 1:12:41 14:24 37:04 31:05 4:37 4:12 3:08 4:05 3:37 4:19 1:30 4:55 5:19
97 Massimiliano Dalla Fior 🇮🇹 ITA16th of 54 aged 35-39 35-39 1:12:46 14:29 35:11 32:38 5:02 3:56 3:16 5:48 3:55 4:08 1:43 4:47 5:05
98 Øystein Bjerga 🇳🇴 NOR17th of 54 aged 35-39 35-39 1:12:47 14:30 34:54 32:37 5:20 4:01 2:40 4:27 3:55 4:24 1:26 3:55 7:49
99 Fraser Anderson 🇬🇧 GBR14th of 31 aged 16-24 16-24 1:12:47 14:30 34:31 33:53 4:26 4:04 4:05 4:56 4:33 4:19 2:01 4:20 5:35
100 Yassine Laafar 🇫🇷 FRA18th of 54 aged 35-39 35-39 1:12:49 14:32 32:51 35:16 4:47 4:03 3:30 6:28 4:25 4:28 1:50 4:44 5:48
How to read

The place is among timed finishers in Pro 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