HYROX Oslo 2025: Open Men results

1,254 finishers on 26 Sept 2025. Typical finish 1:24:33, fastest 10% under 1:09:07. Back to the analysis.

#AthleteAgeTimeRunsStationsRoxSkiPushPullBBJRowCarryLungeWB
1 David Thorvik 🇳🇴 NOR 25-29 1/204 0:56:20 28:5223:453:48 3:371:252:563:004:131:263:133:55
2 Joe Vatcher 🇬🇧 GBR 16-24 1/120 0:56:45 30:3022:443:37 3:511:442:273:124:001:342:353:21
3 Steven Beattie 🇬🇧 GBR 30-34 1/280 0:58:08 29:0625:163:50 4:092:253:092:514:111:502:473:54
4 Alessandro Alonzi 🇬🇧 GBR 16-24 2/120 0:59:07 30:4624:443:42 3:521:573:043:384:131:332:523:35
5 Ben Whyte 🇬🇧 GBR 25-29 2/204 0:59:18 29:2125:584:05 4:031:513:163:064:241:293:553:54
6 Rayane Kara 🇫🇷 FRA 16-24 3/120 1:00:14 31:0825:223:49 4:022:263:102:374:221:462:554:04
7 Ben Strong 🇬🇧 GBR 30-34 2/280 1:00:18 30:4725:383:56 4:042:123:093:154:221:303:253:41
8 Jørgen Krogsæter 🇳🇴 NOR 25-29 3/204 1:00:19 31:3524:494:00 3:461:593:073:064:141:143:124:11
9 Daniel Gorrod 🇬🇧 GBR 25-29 4/204 1:00:32 29:4526:464:06 4:072:143:443:104:151:333:404:03
10 Felix Bierwirth 🇩🇪 GER 30-34 3/280 1:00:39 31:4525:083:52 4:082:232:573:024:151:293:143:40
10 Carl Laurell 🇸🇪 SWE 45-49 1/110 1:00:39 32:2424:174:02 4:091:422:582:404:171:082:384:45
12 Matthew Quinn 🇬🇧 GBR 40-44 1/177 1:00:49 31:0725:593:46 4:002:143:103:254:141:233:104:23
13 Rob Whittaker 🇬🇧 GBR 35-39 1/221 1:01:27 31:0826:263:57 4:072:143:503:094:251:333:283:40
14 Karl Peers 🇬🇧 GBR 40-44 2/177 1:01:36 32:2625:034:11 3:481:522:543:134:061:383:403:52
15 Stephan Eriksson 🇸🇪 SWE 30-34 4/280 1:01:41 32:0025:434:04 3:492:193:062:474:101:213:284:43
16 Callum Davis 🇬🇧 GBR 25-29 5/204 1:01:43 30:4126:494:19 3:542:003:513:424:111:503:253:56
16 Nikolai Hjelle Nitter 🇳🇴 NOR 35-39 2/221 1:01:43 31:2226:014:24 3:542:043:093:284:111:263:394:10
16 Daniel Rørvik 🇳🇴 NOR 35-39 2/221 1:01:43 30:4327:073:57 4:081:533:553:304:251:273:004:49
19 Liam White 🇬🇧 GBR 30-34 5/280 1:01:44 31:4626:004:05 3:562:083:153:274:111:313:363:56
20 Njål Ekre 🇳🇴 NOR 30-34 6/280 1:01:50 29:4622:0515:24 4:152:51—2:374:111:312:364:04
21 Florian Mogilany 🇫🇷 FRA 25-29 6/204 1:02:16 32:0026:104:11 4:052:153:293:104:131:303:343:54
22 Simon Day 🇬🇧 GBR 40-44 3/177 1:02:18 32:5825:214:03 4:131:423:032:544:191:203:294:21
23 Mikkel Næss 🇳🇴 NOR 16-24 4/120 1:02:25 31:4326:104:36 3:472:463:452:454:171:273:114:12
24 Johnnatan Rivera 🇸🇪 SWE 30-34 7/280 1:02:35 32:3126:094:01 3:501:563:023:384:101:233:454:25
25 Daniel Friberg 🇸🇪 SWE 35-39 4/221 1:02:37 32:3226:064:04 4:052:162:533:104:231:213:094:49
26 Eirik Frikstad 🇳🇴 NOR 25-29 7/204 1:02:46 32:2926:164:04 4:012:042:553:044:151:333:025:22
27 Leo Lendvorsky 🇸🇰 SVK 30-34 8/280 1:02:52 31:3527:144:08 4:032:004:103:064:161:303:384:31
28 Alexander Buck 🇬🇧 GBR 25-29 8/204 1:02:53 32:3726:313:51 3:511:473:123:334:161:453:154:52
29 Rokas Guscinas 🇱🇹 LTU 30-34 9/280 1:03:00 33:3925:184:07 4:092:003:092:424:201:323:154:11
30 Christian Bysted 🇩🇰 DEN 35-39 5/221 1:03:02 34:4923:304:47 3:301:372:572:454:021:372:424:20
31 Mike Garside 🇬🇧 GBR 35-39 6/221 1:03:05 33:4025:104:19 3:502:193:262:354:101:333:243:53
32 Aaron McPhee 🇬🇧 GBR 40-44 4/177 1:03:08 32:4926:034:21 3:552:163:213:274:121:303:313:51
33 Simon Courtney 🇬🇧 GBR 40-44 5/177 1:03:13 31:2327:474:06 4:041:593:384:334:231:243:164:30
34 Andrew Duchart 🇬🇧 GBR 30-34 10/280 1:03:24 31:0328:313:55 4:122:303:163:334:211:453:395:15
35 Rui Alves 🇵🇹 POR 25-29 9/204 1:03:29 33:4425:344:15 4:042:393:063:114:181:273:183:31
35 Patharawut Teeranumpongwanich 🇹🇭 THA 25-29 9/204 1:03:29 33:1326:074:12 4:102:113:292:414:221:253:224:27
37 Vytautas Jazepcikas 🇱🇹 LTU 35-39 7/221 1:03:30 30:3728:494:08 3:572:103:544:184:301:463:564:18
38 Blevins Mayulu 🇮🇪 IRL 25-29 11/204 1:03:38 30:1429:204:08 4:112:454:022:544:441:304:184:56
38 Noel Prietzel 🇩🇪 GER 16-24 5/120 1:03:38 33:0526:034:33 4:022:033:263:214:171:263:154:13
40 Cian Galvin 🇮🇪 IRL 25-29 12/204 1:03:50 33:0426:354:16 4:032:033:073:264:191:513:493:57
41 Vinzent Torstensson 🇸🇪 SWE 25-29 13/204 1:03:54 34:5824:414:19 3:492:063:013:193:581:273:143:47
42 Mattias Malchau 🇩🇰 DEN 30-34 11/280 1:04:23 35:0024:504:37 4:032:063:072:414:101:183:064:19
43 Anders Borggaard 🇩🇰 DEN 35-39 8/221 1:04:24 33:0227:184:10 4:141:443:264:014:261:114:124:04
44 Simon Frääs 🇸🇪 SWE 30-34 12/280 1:04:32 32:3327:514:14 4:001:502:564:104:141:303:245:47
45 Abdulaziz Alhouti 🇰🇼 KUW 30-34 13/280 1:04:34 31:3428:504:13 4:062:143:323:554:251:523:584:48
45 Leon Kofoed Andersen 🇩🇰 DEN 30-34 13/280 1:04:34 30:0430:413:53 4:123:163:352:554:261:323:526:53
47 Augustin Tonnel 🇫🇷 FRA 25-29 14/204 1:04:54 33:5526:374:26 4:041:503:163:534:201:323:164:26
48 Liam Scott 🇬🇧 GBR 25-29 15/204 1:04:56 33:2227:194:19 4:062:143:302:594:181:413:454:46
49 Jordan Swift 🇬🇧 GBR 30-34 15/280 1:05:03 33:4027:144:14 3:562:253:224:014:181:263:264:20
50 Lars Kåre Helgesen 🇳🇴 NOR 25-29 16/204 1:05:04 33:1827:244:28 4:111:553:373:064:271:273:365:05
51 Thomas Ødegård 🇳🇴 NOR 35-39 9/221 1:05:13 32:1328:464:19 4:162:233:363:494:161:303:145:42
52 Tom Race 🇬🇧 GBR 16-24 6/120 1:05:14 31:2329:554:00 4:022:383:433:474:141:414:045:46
53 Louis Bettis 🇬🇧 GBR 25-29 17/204 1:05:15 32:1628:184:45 4:162:313:513:214:351:333:384:33
54 Markus Johansen Westgaard 🇳🇴 NOR 30-34 16/280 1:05:16 33:0727:444:29 3:572:163:173:234:271:093:375:38
55 Alistair Gordon 🇬🇧 GBR 30-34 17/280 1:05:20 31:1330:064:07 4:002:193:473:574:222:073:465:48
56 Jonathan Gunnarsson 🇸🇪 SWE 25-29 18/204 1:05:21 30:5930:234:03 4:052:223:513:504:251:353:596:16
57 Floris van Drunen 🇳🇱 NED 30-34 18/280 1:05:28 30:4630:464:00 4:211:543:584:094:361:343:366:38
58 Jan Agertoft Nielsen 🇩🇰 DEN 40-44 6/177 1:05:33 32:5928:114:28 3:482:203:194:034:391:173:584:47
59 Aaron Feeney 🇬🇧 GBR 25-29 19/204 1:05:54 34:1027:344:15 4:022:103:234:004:341:423:334:10
60 James Wilson 🇬🇧 GBR 45-49 2/110 1:05:57 32:5628:334:33 4:082:253:283:454:251:373:445:01
61 Steve Acarregui 🇺🇸 USA 35-39 10/221 1:05:58 33:1428:224:28 4:081:593:434:014:121:294:054:45
62 Sam Hart 🇬🇧 GBR 35-39 11/221 1:05:59 34:0227:464:13 4:212:273:413:474:361:413:433:30
62 Joseph Kemp 🇬🇧 GBR 35-39 11/221 1:05:59 32:2229:004:41 3:552:213:264:064:241:393:595:10
64 Henry Johnson 🇬🇧 GBR 16-24 7/120 1:06:07 34:1127:214:38 4:021:493:513:434:321:513:204:13
65 Pawel Palenik 🇵🇱 POL 40-44 7/177 1:06:13 34:0827:584:12 4:092:413:463:014:251:483:414:27
66 Hippolyte Goueslain 🇫🇷 FRA 16-24 8/120 1:06:19 32:5629:174:12 4:353:003:513:314:311:454:014:03
67 Dennis Musche 🇩🇪 GER 16-24 9/120 1:06:23 33:2928:344:25 4:112:333:494:174:281:134:014:02
68 Joshua Chilvers 🇬🇧 GBR 35-39 13/221 1:06:24 34:0827:344:47 3:592:063:252:574:261:383:455:18
69 Sindre Wold 🇳🇴 NOR 25-29 20/204 1:06:28 37:0624:384:48 4:041:363:162:294:071:342:554:37
70 Jason Knight 🇬🇧 GBR 25-29 21/204 1:06:30 33:3428:434:19 4:092:273:473:194:212:013:375:02
70 Alastair McKie 🇬🇧 GBR 35-39 14/221 1:06:30 32:1030:164:08 4:172:134:193:364:261:524:165:17
70 Graeme Murdoch 🇬🇧 GBR 45-49 3/110 1:06:30 32:3229:454:18 4:152:183:483:474:381:524:154:52
73 Jad Cherqaoui 🇲🇦 MAR 16-24 10/120 1:06:37 33:3228:434:26 4:202:433:252:554:321:593:554:54
74 Michael Abildgaard Haladyn 🇩🇰 DEN 45-49 4/110 1:06:39 33:2728:474:30 4:052:203:343:524:251:404:064:45
75 Kai-Lon Chan 🇬🇧 GBR 35-39 15/221 1:06:44 33:2728:374:43 4:042:292:584:144:271:404:134:32
75 Michael Scott 🇬🇧 GBR 30-34 19/280 1:06:44 34:1328:194:17 3:552:413:163:484:291:353:474:48
77 Phillip Nielsen 🇩🇰 DEN 25-29 22/204 1:06:55 35:1527:284:17 4:072:113:273:204:101:433:524:38
77 Christian Overgaard 🇩🇰 DEN 16-24 11/120 1:06:55 33:3328:574:31 4:152:013:464:024:371:354:154:26
79 Jakob Sande 🇳🇴 NOR 35-39 16/221 1:06:59 33:5128:334:39 4:132:114:004:104:231:204:004:16
80 Martin Puumalainen 🇸🇪 SWE 50-54 1/82 1:07:00 34:4127:035:20 4:091:583:104:124:171:234:173:37
81 Kieran Matthew 🇬🇧 GBR 30-34 20/280 1:07:01 32:5230:044:07 4:152:413:423:424:241:523:505:38
82 Johan Andersson 🇸🇪 SWE 40-44 8/177 1:07:05 34:0528:154:49 4:112:093:263:434:181:353:425:11
83 Adam Clark 🇬🇧 GBR 30-34 21/280 1:07:06 34:4727:434:42 4:141:523:344:174:271:183:524:09
84 Søren Sandager Petersen 🇩🇰 DEN 35-39 17/221 1:07:12 35:4626:354:55 4:132:153:213:564:181:293:363:27
85 Stefan Denic 🇬🇧 GBR 30-34 22/280 1:07:15 35:5127:004:28 4:002:043:313:424:201:384:003:45
86 James Borrill 🇬🇧 GBR 30-34 23/280 1:07:21 34:0628:544:25 4:032:213:363:354:221:373:595:21
87 Nick Steenbergen 🇬🇧 GBR 35-39 18/221 1:07:32 33:4029:084:49 4:202:263:584:054:391:463:374:17
88 Robin Amundsen 🇳🇴 NOR 35-39 19/221 1:07:33 34:4928:254:23 4:042:242:514:114:221:163:585:19
88 Tim Andersson 🇸🇪 SWE 16-24 12/120 1:07:33 36:1826:404:39 4:301:583:193:224:201:233:344:14
90 Lars Jingfors 🇸🇪 SWE 30-34 24/280 1:07:36 36:0327:114:26 4:081:543:103:344:261:444:044:11
91 Christian Poppe 🇳🇴 NOR 35-39 20/221 1:07:44 35:0228:084:38 4:191:423:013:134:151:353:426:21
92 Oskars Liepins 🇱🇻 LAT 40-44 9/177 1:07:47 38:0824:524:51 3:571:383:053:214:161:253:163:54
93 Thomas Massoud-Holgeid 🇳🇱 NED 25-29 23/204 1:07:51 37:2325:454:48 4:012:303:162:424:191:343:124:11
94 Harrison Tricker 🇳🇿 NZL 30-34 25/280 1:07:52 34:4129:034:13 4:152:273:193:474:231:453:585:09
95 Mikel Ayani 🇸🇪 SWE 40-44 10/177 1:07:54 33:5029:454:24 4:072:293:493:334:341:453:595:29
96 Luke Finn 🇬🇧 GBR 30-34 26/280 1:07:58 34:2228:474:54 4:022:163:263:534:181:403:325:40
96 James 23 Taylor 🇬🇧 GBR 45-49 5/110 1:07:58 35:0127:515:10 3:572:223:033:434:191:583:215:08
98 Rafael Böhm 🇩🇪 GER 30-34 27/280 1:08:02 35:4927:394:39 3:462:043:103:404:161:374:314:35
99 Jonatan Bohman 🇸🇪 SWE 30-34 28/280 1:08:03 35:5827:444:27 4:112:013:093:374:261:153:595:06
100 Adrian Ribe 🇳🇴 NOR 30-34 29/280 1:08:04 34:3828:564:35 4:202:484:132:444:261:453:355:05

Rank is the finishing position within Open Men among timed finishers. The number after the age group is the position within that age group. Station splits are in minutes:seconds.

The RoxHype app

Found your line? Now make it faster.

The app reads your splits, your kit and your next race date and builds the weeks between.

  • Every session written for your weak station, not a generic plan
  • Rebuilt each week from what you actually did
  • Race-day pacing from your own splits

Free to download. Used by more than 40,000 HYROX athletes.

The RoxHype app: today's session and the race countdown The RoxHype app: the workout library
Find my result