Off-season is over. Time to get serious. First race in 8 weeks and the countdown is on.

#10
84.13 points
OpenRank
#6
PTO World Rank
#1
PTO Swim Rank
#10
PTO Bike Rank
#1
PTO Run Rank
#20
1,643.62 points
WT Ranking
69
Races
7
Wins
15
Podiums
1
WTCS Wins
1
World Cup Wins
1
Continental Wins
1
70.3 Wins
16.5
Avg Position
9
DNFs
| Year | Races | Wins | Podiums | Best Finish | Distances |
|---|---|---|---|---|---|
| 2025 | 17 | 1 | 3 | #1 | 5× 100k, 10× olympic, 2× sprint |
| 2024 | 11 | 4 | 4 | #1 | 1× half, 9× olympic, 1× sprint |
| 2023 | 7 | 1 | 1 | #1 | 5× olympic, 2× sprint |
| 2022 | 2 | 0 | 1 | #2 | 1× olympic, 1× sprint |
| 2021 | 4 | 0 | 2 | #2 | 1× sprint, 3× olympic |
| 2020 | 2 | 0 | 0 | — | 1× half, 1× olympic |
| 2019 | 13 | 0 | 2 | #2 | 6× olympic, 7× sprint |
| 2018 | 13 | 1 | 2 | #1 | 11× sprint, 2× olympic |
| Date | Race | # | Swim | Bike | Run | Finish | SOF | ORS | Details |
|---|---|---|---|---|---|---|---|---|---|
| Dec 12, 25 | 2 | 00:24:20#2 | 01:44:05#9 | 00:56:42#1 | 03:07:23 | 88.7 | 91.6 | ||
| Nov 15, 25 | 1 | 00:25:04#1 | 01:49:41#8 | 00:49:39#2 | 03:06:17 | 87.2 | 89.8 | ||
| Oct 19, 25 | 2025 WTCS WollongongOlympic | 11 | 00:18:19#20 | 00:54:58#18 | 00:29:56#7 | 01:44:23 | — | — | |
| Oct 15, 25 | 11 | 00:18:19#20 | 00:54:58#18 | 00:29:56#7 | 01:44:23 | — | — | ||
| Sep 26, 25 | 2025 WTCS WeihaiOlympic | 5 | 00:17:59#13 | 00:50:47#23 | 00:30:42#9 | 01:41:05 | — | — | |
| Sep 26, 25 | 5 | 00:17:59#13 | 00:50:47#23 | 00:30:42#9 | 01:41:05 | — | — | ||
| Sep 14, 25 | DNF | 00:15:35 | — | — | — | — | — | ||
| Sep 14, 25 | 2025 WTCS Karlovy VaryOlympic | DNF | 00:15:35 | — | — | — | — | — | |
| Aug 31, 25 | 2025 WTCS French RivieraOlympic | 26 | 00:09:28#26 | 00:27:10#25 | 00:14:36#24 | 00:52:46 | — | — | |
| Aug 30, 25 | 6 | 00:24:47#1 | 01:53:14#12 | 00:57:10#1 | 03:17:16 | 85.6 | 77.5 | ||
| Jul 19, 25 | 2 | 00:09:02#1 | 00:27:06#39 | 00:14:35#2 | 00:51:45 | — | — | ||
| Jun 14, 25 | 7 | 00:24:49#1 | 01:51:26#14 | 00:57:44#1 | 03:16:33 | 85.8 | 77.6 | ||
| May 31, 25 | 8 | 00:16:39#3 | 02:03:02#13 | 01:00:14#3 | 03:23:33 | 84.2 | 73.0 | ||
| May 17, 25 | 2025 WTCS YokohamaOlympic | 25 | 00:18:31#32 | 00:54:11#32 | 00:31:24#14 | 01:45:12 | — | — | |
| May 17, 25 | 25 | 00:18:32#32 | 00:54:11#31 | 00:31:24#14 | 01:45:12 | — | — | ||
| Feb 15, 25 | 19 | 00:08:21#18 | 00:25:39#34 | 00:14:47#14 | 00:49:42 | — | — | ||
| Feb 15, 25 | 2025 WTCS Abu DhabiOlympic | 19 | 00:08:21#18 | 00:25:39#34 | 00:14:47#14 | 00:49:42 | — | — | |
| Dec 8, 24 | 1 | 00:23:04#2 | 02:05:38#16 | 01:10:08#2 | 03:42:26 | 60.0 | 71.7 | ||
| Oct 20, 24 | 2024 WTCS TorremolinosOlympic | 16 | 00:19:19#8 | 00:53:48#26 | 00:30:28#11 | 01:45:08 | — | — | |
| Oct 17, 24 | 16 | 00:19:19#8 | 00:53:48#26 | 00:30:28#11 | 01:45:08 | — | — | ||
| Jul 30, 24 | Paris 2024 Olympic GamesOlympic | 31 | 00:21:30#33 | 00:54:35#47 | 00:31:04#16 | 01:48:26 | — | — | |
| Jul 13, 24 | 23 | 00:09:18#25 | 00:27:22#40 | 00:13:53#4 | 00:51:22 | — | — | ||
| Jul 13, 24 | 2024 WTCS HamburgOlympic | 23 | 00:09:18#25 | 00:27:22#40 | 00:13:53#4 | 00:51:22 | — | — | |
| May 25, 24 | 40 | 00:18:33#4 | 00:52:59#37 | 00:33:51#46 | 01:46:17 | — | — | ||
| May 25, 24 | 2024 WTCS CagliariOlympic | 40 | 00:18:33#4 | 00:52:59#37 | 00:33:51#46 | 01:46:17 | — | — | |
| May 11, 24 | 1 | 00:17:51#15 | 00:53:47#35 | 00:29:11#1 | 01:42:05 | — | — | ||
| May 11, 24 | 2024 WTCS YokohamaOlympic | 1 | 00:17:51#15 | 00:53:47#35 | 00:29:11#1 | 01:42:05 | — | — | |
| Mar 8, 24 | 1 | 00:18:17#6 | 00:52:47#2 | 00:31:29#1 | 01:43:39 | — | — | ||
| Sep 22, 23 | 55 | 00:18:21#22 | 00:52:47#9 | 00:35:24#61 | 01:48:04 | — | — | ||
| Sep 10, 23 | 1 | 00:16:22#5 | 01:03:00#1 | 00:31:37#4 | 01:51:55 | — | — | ||
| Aug 17, 23 | 6 | 00:18:42#24 | 00:52:11#30 | 00:29:18#5 | 01:41:23 | — | — | ||
| Jul 15, 23 | 31 | 00:03:51#34 | 00:09:59#13 | 00:05:11#14 | 00:19:51 | — | — | ||
| May 27, 23 | DNF | 00:17:26 | 00:50:42 | — | — | — | — | ||
| May 13, 23 | 44 | 00:17:27#22 | 00:54:04#27 | 00:35:25#47 | 01:48:15 | — | — | ||
| Nov 24, 22 | 2 | 00:18:35#39 | 00:55:13#31 | 00:29:15#1 | 01:44:25 | — | — | ||
| Nov 13, 22 | 50 | 00:09:04#20 | 00:29:23#104 | 00:15:05#5 | 00:54:39 | — | — | ||
| Nov 5, 21 | 24 | 00:09:04#18 | 00:27:52#38 | 00:15:48#23 | 00:54:13 | — | — | ||
| Jul 26, 21 | Tokyo 2020 Olympic GamesOlympic | 42 | 00:18:02#21 | 00:58:17#46 | 00:34:32#42 | 01:52:05 | — | — | |
| Jun 5, 21 | 2 | 00:17:46#10 | 00:54:42#25 | 00:30:04#2 | 01:43:52 | — | — | ||
| May 15, 21 | 3 | 00:18:18#19 | 00:54:09#36 | 00:29:30#2 | 01:43:12 | — | — | ||
| Dec 6, 20 | DNF | 00:22:30 | — | — | — | — | — | ||
| Sep 13, 20 | DNF | 00:18:07 | — | — | — | — | — | ||
| Nov 9, 19 | 3 | 00:17:03#3 | 00:50:57#19 | 00:30:31#3 | 01:39:31 | — | — | ||
| Nov 3, 19 | 5 | 00:08:07#7 | 00:29:10#40 | 00:14:22#5 | 00:52:43 | — | — | ||
| Sep 7, 19 | DNF | 00:09:34 | — | — | — | — | — | ||
| Aug 29, 19 | 11 | 00:18:18#23 | 01:00:44#10 | 00:32:52#14 | 01:52:56 | — | — | ||
| Aug 15, 19 | 25 | 00:19:27#36 | 01:00:25#34 | 00:31:46#16 | 01:52:54 | — | — | ||
| Jul 20, 19 | 6 | 00:08:53#10 | 00:30:02#23 | 00:15:07#4 | 00:55:19 | — | — | ||
| Jun 15, 19 | 41 | 00:15:29#3 | 00:57:14#28 | 00:41:11#44 | 01:54:43 | — | — | ||
| Jun 8, 19 | 2 | 00:09:02#28 | 00:29:45#18 | 00:15:03#1 | 00:55:11 | — | — | ||
| May 18, 19 | 15 | 00:17:54#15 | 00:54:47#35 | 00:30:57#12 | 01:44:49 | — | — | ||
| Apr 27, 19 | 29 | 00:18:10#18 | 01:03:10#39 | 00:31:47#13 | 01:54:12 | — | — | ||
| Mar 31, 19 | 36 | 00:09:48#12 | 00:32:55#41 | 00:15:26#25 | 00:59:03 | — | — | ||
| Mar 16, 19 | 7 | 00:07:50#16 | 00:28:27#42 | 00:14:51#3 | 00:52:28 | — | — | ||
| Mar 9, 19 | DNF | 00:08:51 | — | — | — | — | — | ||
| Oct 21, 18 | 5 | 00:09:10#24 | 00:27:05#14 | 00:14:35#5 | 00:52:25 | — | — | ||
| Sep 12, 18 | 41 | 00:19:29#41 | 00:59:42#49 | 00:30:32#6 | 01:50:44 | — | — | ||
| Aug 25, 18 | 1 | 00:09:45#10 | 00:27:26#28 | 00:15:11#2 | 00:54:13 | — | — | ||
| Jul 15, 18 | 46 | 00:09:20#41 | 00:32:28#47 | 00:15:05#29 | 00:57:43 | — | — | ||
| Jul 7, 18 | DNF | 00:09:14 | — | — | — | — | — | ||
| Jun 23, 18 | 2 | 00:08:38#16 | 00:26:12#35 | 00:15:30#1 | 00:51:42 | — | — | ||
| Jun 17, 18 | 18 | 00:09:14#14 | 00:34:19#46 | 00:14:54#2 | 00:59:30 | — | — | ||
| Jun 10, 18 | DNF | 00:17:29 | — | — | — | — | — | ||
| Jun 2, 18 | 17 | 00:09:33#23 | 00:29:52#35 | 00:15:28#3 | 00:55:52 | — | — | ||
| May 12, 18 | 14 | 00:17:35#13 | 00:56:20#36 | 00:31:28#14 | 01:46:44 | — | — | ||
| May 5, 18 | 6 | 00:06:29#13 | 00:13:43#19 | 00:07:13#5 | 00:28:29 | — | — | ||
| Mar 25, 18 | 14 | 00:10:03#17 | 00:33:34#28 | 00:14:52#1 | 00:59:28 | — | — | ||
| Mar 10, 18 | 7 | 00:08:04#7 | 00:29:02#31 | 00:15:15#4 | 00:53:42 | — | — |
Off-season is over. Time to get serious. First race in 8 weeks and the countdown is on.
Race week is here and I wanted to share my thoughts going in.
The bike is going to be the decisive leg. 2,400m of climbing over 180km with a brutal headwind section on the Queen K highway. I've done my homework — rode the course twice this week and know every corner, every climb, every place to push and recover.
The run is flat and fast, which should suit my strengths. But after that bike, nothing is guaranteed.
The start list is loaded. At least 5 athletes w...
A decade in professional triathlon has taught me more about life than any classroom ever could. Here are the biggest lessons.
The athletes who sustain long careers aren't the ones who train the hardest — they're the ones who train the most consistently. I've seen countless talented athletes burn out by going too hard, too often. The magic is in showing up every day, year after year, and putting in honest work.
This took me years to...