HYROX Vancouver 2025: Open Men results

1,427 finishers on 20 Dec 2025. Typical finish 1:32:32, fastest 10% under 1:14:21. Back to the analysis.

# Athlete Age Time Behind 1st Runs Stations Rox Ski Push Pull BBJ Row Carry Lunge WB
1 Callum Parker 🇳🇿 NZL1st of 250 aged 25-29 25-29 58:53 28:41 25:34 4:41 4:27 2:48 3:10 2:51 4:22 1:22 2:38 3:56
2 Amado Acosta 🇨🇦 CAN1st of 125 aged 16-24 16-24 59:54 1:01 29:45 24:59 5:15 4:06 1:57 3:16 3:14 4:13 1:28 3:04 3:41
3 Jackson Palmer 🇺🇸 USA2nd of 125 aged 16-24 16-24 1:01:17 2:24 30:16 26:08 4:59 4:27 2:06 3:20 3:24 4:22 1:44 3:06 3:39
4 Sam Baxter 🇨🇦 CAN1st of 335 aged 30-34 30-34 1:01:48 2:55 30:10 27:00 4:43 4:09 1:55 2:55 3:39 4:18 1:41 3:23 5:00
5 Brayden Sangha 🇨🇦 CAN2nd of 335 aged 30-34 30-34 1:02:25 3:32 32:14 24:32 5:44 4:08 1:36 2:30 3:30 4:13 1:20 3:07 4:08
6 Declan White 🇨🇦 CAN3rd of 335 aged 30-34 30-34 1:02:46 3:53 28:05 30:10 4:35 4:02 2:12 4:37 5:09 4:25 1:29 3:55 4:21
7 Aaron Harpaz 🇨🇦 CAN2nd of 250 aged 25-29 25-29 1:02:57 4:04 30:55 27:27 4:39 4:18 2:14 3:15 2:42 4:26 1:45 3:08 5:39
8 Sebastien Lobe 🇨🇦 CAN3rd of 250 aged 25-29 25-29 1:02:58 4:05 31:34 25:59 5:29 4:02 2:20 2:56 3:21 4:21 1:28 3:09 4:22
9 Dave Hardman 🇨🇦 CAN1st of 290 aged 35-39 35-39 1:03:06 4:13 30:53 27:01 5:17 4:05 2:21 3:28 3:16 4:07 1:31 4:00 4:13
10 Max Rotemberg 🇺🇸 USA3rd of 125 aged 16-24 16-24 1:03:08 4:15 31:20 26:41 5:11 4:11 2:13 3:37 3:23 4:18 1:39 3:22 3:58
11 Amir Yehia 🇱🇧 LBN4th of 125 aged 16-24 16-24 1:03:10 4:17 31:50 25:43 5:43 4:11 2:06 3:00 2:49 4:31 1:28 3:38 4:00
12 David Hanrahan 🇮🇪 IRL4th of 335 aged 30-34 30-34 1:03:33 4:40 33:35 24:53 5:09 4:04 1:53 3:08 3:22 4:18 1:27 3:00 3:41
13 Braedon Cashion 🇨🇦 CAN2nd of 290 aged 35-39 35-39 1:03:33 4:40 31:01 26:30 6:06 4:17 1:56 4:26 3:05 4:16 1:23 3:05 4:02
14 Enzo Poncetta 🇫🇷 FRA5th of 125 aged 16-24 16-24 1:03:36 4:43 30:44 27:49 5:08 4:13 2:07 3:41 3:32 4:18 1:30 3:20 5:08
15 Ramsey Ezzat 🇨🇦 CAN1st of 188 aged 40-44 40-44 1:03:39 4:46 30:27 28:25 4:51 4:12 1:58 3:24 3:27 4:16 1:35 3:34 5:59
16 Tim Tindall 🇨🇦 CAN4th of 250 aged 25-29 25-29 1:03:45 4:52 31:49 27:03 4:58 3:56 1:37 3:42 4:12 4:19 1:28 3:09 4:40
17 Christopher Yee 🇨🇦 CAN3rd of 290 aged 35-39 35-39 1:03:48 4:55 30:12 28:26 5:15 4:05 2:41 3:37 3:03 4:15 1:35 3:17 5:53
18 Connor Hammond 🇨🇦 CAN4th of 290 aged 35-39 35-39 1:04:00 5:07 30:00 28:57 5:08 4:22 2:10 3:42 3:54 4:26 1:47 3:58 4:38
19 Seb Salas 🇨🇦 CAN5th of 290 aged 35-39 35-39 1:04:01 5:08 29:46 28:57 5:23 4:06 1:43 3:55 3:37 4:22 1:29 4:14 5:31
20 Philip Lopresti 🇨🇦 CAN5th of 335 aged 30-34 30-34 1:04:11 5:18 30:48 27:52 5:35 4:13 1:56 4:15 3:53 4:20 1:26 3:43 4:06
21 Jose Labanino-Ramos 🇨🇺 CUB6th of 335 aged 30-34 30-34 1:04:28 5:35 31:31 27:58 5:04 4:08 2:47 3:36 3:23 4:20 1:44 3:47 4:13
22 Dustin Needham 🇺🇸 USA2nd of 188 aged 40-44 40-44 1:04:38 5:45 31:15 28:49 4:40 4:27 2:15 3:23 3:16 4:40 1:20 4:15 5:13
23 David Worsley 🇨🇦 CAN7th of 335 aged 30-34 30-34 1:04:45 5:52 31:20 27:55 5:35 4:09 1:59 3:59 4:07 4:09 1:22 3:21 4:49
24 Lukas Petereit 🇩🇪 GER8th of 335 aged 30-34 30-34 1:04:48 5:55 31:21 28:09 5:22 4:24 2:15 3:38 3:36 4:24 1:45 3:32 4:35
25 Willem Jacke 🇩🇪 GER9th of 335 aged 30-34 30-34 1:04:50 5:57 32:16 27:09 5:30 3:59 1:57 4:24 3:46 4:16 1:38 2:58 4:11
26 Hao Zhu 🇨🇳 CHN10th of 335 aged 30-34 30-34 1:04:51 5:58 32:12 27:38 5:06 4:08 2:11 3:32 4:03 4:17 1:38 3:51 3:58
27 Peter Doyle 🇮🇪 IRL6th of 290 aged 35-39 35-39 1:04:52 5:59 31:15 28:26 5:14 4:20 1:53 3:56 4:07 4:35 1:30 3:15 4:50
28 Max Kettler 🇩🇪 GER3rd of 188 aged 40-44 40-44 1:05:23 6:30 36:00 23:48 5:41 4:00 — 1:59 3:29 4:04 1:53 3:35 3:32
29 Rory Conway 🇮🇪 IRL11th of 335 aged 30-34 30-34 1:05:26 6:33 32:53 27:20 5:18 4:15 2:17 3:13 3:13 4:24 1:37 3:07 5:14
30 Steven Yoo PRK4th of 188 aged 40-44 40-44 1:05:51 6:58 31:48 27:30 6:37 4:14 2:09 3:57 3:10 4:15 1:37 4:06 4:02
31 Andrew McKay 🇨🇦 CAN5th of 250 aged 25-29 25-29 1:05:54 7:01 32:18 27:32 6:09 4:12 1:53 4:14 2:57 4:28 1:40 3:33 4:35
32 Thomas Haight 🇨🇦 CAN7th of 290 aged 35-39 35-39 1:05:58 7:05 33:33 27:05 5:23 4:04 2:07 3:36 3:56 4:16 1:48 3:30 3:48
33 Matthew McEachran-Law 🇨🇦 CAN6th of 250 aged 25-29 25-29 1:06:06 7:13 32:16 28:01 5:53 4:08 1:50 3:56 3:30 4:32 1:35 3:48 4:42
34 Kanjo Melo 🇨🇦 CAN7th of 250 aged 25-29 25-29 1:06:07 7:14 29:46 30:26 5:59 4:22 2:42 3:53 3:48 4:57 1:47 4:05 4:52
35 Mircea Gavrila 🇨🇦 CAN8th of 250 aged 25-29 25-29 1:06:08 7:15 33:21 27:39 5:13 4:14 2:25 3:48 3:29 4:23 1:41 3:20 4:19
36 Jon Foreman 🇨🇦 CAN1st of 68 aged 50-54 50-54 1:06:13 7:20 31:44 29:22 5:11 4:09 2:04 3:30 4:09 4:19 1:45 3:58 5:28
37 Richard Costello 🇨🇦 CAN5th of 188 aged 40-44 40-44 1:06:24 7:31 32:03 29:24 5:01 4:27 2:25 4:13 3:39 4:11 1:46 3:56 4:47
38 Austen Bietenbeck 🇨🇦 CAN12th of 335 aged 30-34 30-34 1:06:28 7:35 31:57 28:09 6:26 4:05 1:51 3:04 4:31 4:19 1:20 4:21 4:38
39 Adam Korby 🇺🇸 USA8th of 290 aged 35-39 35-39 1:06:32 7:39 35:37 25:38 5:20 4:18 1:49 3:16 3:37 4:20 1:24 3:18 3:36
40 Kelly Thompson 🇨🇦 CAN9th of 250 aged 25-29 25-29 1:06:43 7:50 29:15 32:34 5:00 4:10 1:46 4:02 4:33 4:24 2:33 3:35 7:31
41 Cody Sahlstrom 🇨🇦 CAN13th of 335 aged 30-34 30-34 1:06:45 7:52 29:19 32:10 5:22 4:05 2:47 3:38 5:42 4:19 1:40 3:49 6:10
42 Samuel Shimi 🇨🇦 CAN9th of 290 aged 35-39 35-39 1:06:51 7:58 32:26 28:54 5:35 4:20 2:22 3:27 4:12 4:39 1:38 3:45 4:31
43 Andras Kasza 🇨🇦 CAN10th of 290 aged 35-39 35-39 1:06:57 8:04 33:12 28:27 5:22 4:17 2:10 3:35 3:36 4:32 1:58 3:27 4:52
44 Lorenzo Contreras 🇺🇸 USA6th of 188 aged 40-44 40-44 1:07:05 8:12 31:59 29:57 5:12 4:27 2:35 3:56 3:33 4:29 1:55 3:48 5:14
45 Joel Hill 🇨🇦 CAN11th of 290 aged 35-39 35-39 1:07:15 8:22 33:08 28:34 5:37 4:15 2:05 3:24 3:47 4:42 2:07 3:13 5:01
46 Matt Aldridge 🇬🇧 GBR14th of 335 aged 30-34 30-34 1:07:25 8:32 30:49 31:11 5:30 4:13 2:04 4:48 4:42 4:23 1:31 4:35 4:55
47 Noel Jacalan Madrid 🇨🇦 CAN15th of 335 aged 30-34 30-34 1:07:30 8:37 33:14 28:33 5:46 4:16 2:09 3:29 3:46 4:41 2:15 3:31 4:26
48 Luke Hedberg 🇺🇸 USA10th of 250 aged 25-29 25-29 1:07:31 8:38 37:05 24:40 5:51 4:06 1:29 3:20 2:35 4:11 1:34 3:13 4:12
49 Harrison Glotman 🇨🇦 CAN12th of 290 aged 35-39 35-39 1:07:31 8:38 29:52 32:20 5:25 4:04 1:55 3:58 3:16 4:06 2:09 4:21 8:31
50 David Canavan 🇨🇦 CAN13th of 290 aged 35-39 35-39 1:07:42 8:49 34:09 27:49 5:49 4:29 1:50 3:25 3:31 4:17 1:32 4:38 4:07
51 Max Sydenham 🇨🇦 CAN16th of 335 aged 30-34 30-34 1:07:42 8:49 34:09 27:55 5:42 4:17 1:47 5:13 3:51 4:23 1:29 3:06 3:49
52 Michael Ravensbergen 🇨🇦 CAN17th of 335 aged 30-34 30-34 1:07:44 8:51 29:11 33:29 5:10 4:18 2:29 4:31 3:49 4:25 1:44 3:53 8:20
53 Jake Bennett 🇨🇦 CAN11th of 250 aged 25-29 25-29 1:08:03 9:10 34:09 28:26 5:31 4:17 1:53 3:09 4:03 4:38 1:20 3:38 5:28
54 James Clift 🇨🇦 CAN14th of 290 aged 35-39 35-39 1:08:27 9:34 32:47 30:15 5:30 4:14 1:43 4:05 4:28 4:21 1:42 4:37 5:05
55 Tristan Robinette 🇺🇸 USA12th of 250 aged 25-29 25-29 1:08:28 9:35 37:18 25:19 5:55 4:19 1:30 3:23 2:49 4:32 1:20 — 5:22
56 Christopher Roberts 🇬🇧 GBR15th of 290 aged 35-39 35-39 1:08:30 9:37 33:35 29:55 5:05 4:27 2:15 3:27 3:27 4:40 2:14 4:33 4:52
57 Sean Hagerty 🇺🇸 USA18th of 335 aged 30-34 30-34 1:08:39 9:46 34:42 27:51 6:12 4:12 2:29 4:05 3:30 4:25 1:31 3:19 4:20
58 Ian Boychuk 🇨🇦 CAN13th of 250 aged 25-29 25-29 1:08:41 9:48 34:28 27:52 6:25 4:05 1:51 3:52 4:13 4:24 1:36 3:36 4:15
59 Harry Kp 🇬🇧 GBR14th of 250 aged 25-29 25-29 1:08:45 9:52 33:00 30:09 5:41 4:25 2:18 4:06 3:47 4:30 1:27 3:18 6:18
60 Pat Simon 🇨🇦 CAN19th of 335 aged 30-34 30-34 1:08:47 9:54 34:30 27:53 6:29 3:59 2:07 3:41 4:11 4:22 1:36 3:33 4:24
61 Jordan Berger 🇨🇦 CAN15th of 250 aged 25-29 25-29 1:08:47 9:54 34:44 28:15 5:51 4:28 2:08 3:50 3:18 4:26 1:35 4:15 4:15
62 Bryce Hafso 🇨🇦 CAN16th of 290 aged 35-39 35-39 1:08:49 9:56 37:09 25:29 6:16 4:09 1:44 3:42 2:45 4:18 1:37 3:29 3:45
63 Wesley van Winkel 🇨🇦 CAN17th of 290 aged 35-39 35-39 1:08:55 10:02 33:37 24:49 10:33 4:19 2:15 4:05 — 4:21 2:16 3:35 3:54
64 Braeden Sykes 🇨🇦 CAN20th of 335 aged 30-34 30-34 1:09:02 10:09 33:05 29:42 6:19 4:36 2:24 3:55 3:58 4:26 1:45 4:11 4:27
65 Jake Hanna 🇨🇦 CAN16th of 250 aged 25-29 25-29 1:09:02 10:09 33:26 30:04 5:36 4:24 1:58 4:12 4:06 4:25 1:55 4:14 4:50
66 Kody O’Brien 🇨🇦 CAN7th of 188 aged 40-44 40-44 1:09:05 10:12 33:46 29:35 5:49 4:13 2:11 3:52 3:57 4:22 1:25 3:58 5:37
67 Brian Alexander 🇨🇦 CAN1st of 107 aged 45-49 45-49 1:09:11 10:18 31:45 31:38 5:53 4:31 2:10 3:46 5:07 4:26 1:57 4:32 5:09
68 Julian Caldwell 🇨🇦 CAN21st of 335 aged 30-34 30-34 1:09:15 10:22 31:09 32:22 5:50 4:22 2:11 4:08 5:37 4:44 1:53 4:18 5:09
69 Jeonghoon Lee 🇨🇦 CAN18th of 290 aged 35-39 35-39 1:09:21 10:28 34:02 29:44 5:39 4:20 2:07 4:01 4:06 4:34 1:34 4:00 5:02
70 Alexander Prokop 🇨🇦 CAN17th of 250 aged 25-29 25-29 1:09:27 10:34 34:54 28:37 6:01 4:17 2:13 3:33 4:26 4:47 1:45 2:50 4:46
71 Tim Dickson 🇨🇦 CAN2nd of 107 aged 45-49 45-49 1:09:30 10:37 35:44 27:54 5:56 4:05 1:54 3:47 4:11 4:15 1:44 3:48 4:10
72 Peter Fox 🇮🇪 IRL18th of 250 aged 25-29 25-29 1:09:33 10:40 32:21 31:55 5:19 4:21 1:56 3:35 4:23 4:43 1:31 5:14 6:12
73 Alex Chegne 🇬🇧 GBR19th of 250 aged 25-29 25-29 1:09:38 10:45 34:22 29:54 5:28 4:26 2:35 4:21 2:46 4:30 2:15 3:40 5:21
74 Sunny Ng 🇨🇦 CAN22nd of 335 aged 30-34 30-34 1:09:40 10:47 30:33 31:58 7:14 4:21 2:18 3:59 4:59 4:27 1:57 4:43 5:14
75 Brian Roche 🇮🇪 IRL19th of 290 aged 35-39 35-39 1:09:57 11:04 33:42 30:50 5:31 4:11 2:10 3:59 5:00 4:26 1:35 3:54 5:35
76 Clyvel Stevens 🇺🇸 USA23rd of 335 aged 30-34 30-34 1:10:09 11:16 33:58 30:23 5:51 4:10 1:50 3:32 4:42 4:29 1:37 4:06 5:57
77 Hamid Aziz 🇨🇦 CAN24th of 335 aged 30-34 30-34 1:10:26 11:33 36:12 28:16 6:03 4:21 1:50 3:30 3:56 4:08 1:30 4:47 4:14
78 Noah Harrison 🇨🇦 CAN6th of 125 aged 16-24 16-24 1:10:29 11:36 36:21 26:45 7:28 4:04 2:03 3:23 2:55 4:14 1:24 3:21 5:21
79 Alexis Castellanos 🇲🇽 MEX25th of 335 aged 30-34 30-34 1:10:29 11:36 37:16 27:19 5:57 4:05 2:02 3:16 3:54 4:19 1:49 3:34 4:20
80 Paul Gallagher 🇨🇦 CAN20th of 290 aged 35-39 35-39 1:10:31 11:38 33:41 31:09 5:46 4:18 1:54 4:37 4:24 4:28 1:52 4:28 5:08
81 A.j. Rankel 🇨🇦 CAN1st of 33 aged 55-59 55-59 1:10:37 11:44 34:10 30:18 6:13 4:16 2:32 3:46 4:22 4:31 1:30 4:06 5:15
82 Nicholas Chung 🇨🇦 CAN7th of 125 aged 16-24 16-24 1:10:47 11:54 32:49 31:40 6:21 4:05 2:46 4:40 4:19 4:34 1:56 4:56 4:24
83 Stewart Hong 🇨🇦 CAN21st of 290 aged 35-39 35-39 1:10:49 11:56 32:33 31:39 6:41 4:32 2:28 4:31 3:33 4:27 1:43 4:23 6:02
84 Aaron Ryan 🇮🇪 IRL20th of 250 aged 25-29 25-29 1:10:52 11:59 35:32 29:42 5:43 3:57 2:11 3:52 3:17 4:24 1:43 4:04 6:14
85 Dan Patching 🇨🇦 CAN8th of 188 aged 40-44 40-44 1:10:54 12:01 36:24 28:35 6:00 3:59 1:47 3:59 4:12 4:34 1:48 3:28 4:48
86 Gabe Krebs 🇺🇸 USA26th of 335 aged 30-34 30-34 1:10:54 12:01 35:40 28:51 6:26 4:10 2:37 4:26 3:20 4:23 2:02 3:40 4:13
87 Lucas Goshulak 🇨🇦 CAN22nd of 290 aged 35-39 35-39 1:10:56 12:03 37:24 27:30 6:05 4:26 1:56 3:04 3:54 4:23 1:19 3:45 4:43
88 Nick Effinger 🇺🇸 USA3rd of 107 aged 45-49 45-49 1:10:59 12:06 33:38 31:38 5:48 4:18 2:07 3:59 5:02 4:17 2:00 4:02 5:53
89 Yaro Taranenko 🇰🇿 KAZ8th of 125 aged 16-24 16-24 1:11:07 12:14 35:04 28:52 7:14 4:11 2:20 3:40 4:14 4:33 1:46 3:06 5:02
90 David Hill 🇨🇦 CAN23rd of 290 aged 35-39 35-39 1:11:33 12:40 32:40 27:41 11:17 4:14 1:57 4:28 — 4:34 1:55 4:17 6:13
91 David Leyland 🇨🇦 CAN24th of 290 aged 35-39 35-39 1:11:35 12:42 34:42 30:51 6:06 4:29 2:21 3:26 4:10 4:33 1:32 4:38 5:42
92 Akash Bains 🇨🇦 CAN21st of 250 aged 25-29 25-29 1:11:37 12:44 36:40 28:01 7:01 4:41 2:17 3:24 3:28 4:23 1:26 3:31 4:51
93 Matthew Gerdis 🇨🇦 CAN22nd of 250 aged 25-29 25-29 1:11:37 12:44 35:13 29:51 6:38 4:40 2:14 3:41 3:56 4:48 1:41 4:00 4:51
94 Brent Anderson 🇨🇦 CAN27th of 335 aged 30-34 30-34 1:11:41 12:48 32:49 33:13 5:43 4:15 2:17 3:54 3:27 4:24 1:58 4:45 8:13
95 Olivier Hovasse 🇫🇷 FRA25th of 290 aged 35-39 35-39 1:11:42 12:49 34:40 31:34 5:33 4:18 2:43 3:37 4:13 4:29 1:49 4:50 5:35
96 Jiwon Seo 🇨🇦 CAN23rd of 250 aged 25-29 25-29 1:11:49 12:56 35:33 29:40 6:39 4:36 2:02 4:54 2:19 4:31 1:49 3:42 5:47
97 Derek Lechasseur 🇨🇦 CAN9th of 125 aged 16-24 16-24 1:11:49 12:56 33:08 32:44 6:03 4:16 2:24 4:23 4:31 4:31 2:03 4:18 6:18
98 Mark Hutchison 🇨🇦 CAN4th of 107 aged 45-49 45-49 1:11:57 13:04 34:11 31:50 6:02 4:34 1:54 4:20 4:17 4:22 1:42 4:06 6:35
99 Scott Dickens 🇨🇦 CAN9th of 188 aged 40-44 40-44 1:12:07 13:14 34:48 30:57 6:26 4:26 2:28 4:12 4:47 4:21 2:01 3:36 5:06
100 Cameron Axenty 🇨🇦 CAN28th of 335 aged 30-34 30-34 1:12:15 13:22 35:36 30:38 6:04 4:20 2:33 4:20 3:49 4:32 1:41 3:45 5:38
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.

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