The 2025 Life Time Grand Prix kicked off with Thursday’s 2025 Sea Otter Classic Gravel Race. The 90-mile gravel race replaced the Fuego XL mountain bike race that the Grand Prix used last year.
In the women’s race, despite moving from a mountain bike race to a gravel race, the first stop of the Life Time Grand Prix drew out none other than mountain biker Haley Batten, silver medalist at the 2024 Paris Olympics mountain bike race. Batten is not a Grand Prix contestant this year, but left all the series racers behind on her way to a dominant win with over a five-minute gap. Sofia Gomez Villafane, last year’s overall winner, took the leader’s jersey with her second place.

Haley Batten, silver medalist at the 2024 Paris Olympics in the mountain bike race, claimed victory in her first Sea Otter gravel race. 2025 Sea Otter Gravel Race – Lifetime Grand Prix Series. © John Silva / Cyclocross Magazine
In the men’s race, the change in discipline and bikes didn’t impact the race results, as Keegan Swenson once again ruled the offroad terrain in Fort Ord. Swenson took a narrow win over his Cape Epic teammate Matt Beers.
Tudor’s Simon Pellaud took a flyer and stayed off the front for a while before the heavy hitters reeled him in. Giro Winner and retired road pro Tom Dumoulin lined up and finished 98th.
Both Swenson and Gomez Villafane ended the day in the same position they started and ended the 2024 Life Time Grand Prix series.
See Cyclocross Magazine’s exclusive photos from John Silva, full race results and the official report from Life Time below.
Monterey, California, (Thursday, April 10th): Keegan Swenson continued his winning run at the Life Time Sea Otter Classic presented by Continental by powering to his fourth successive victory in Monterey, while Sofía Gómez Villafañe also took maximum points in the Life Time Grand Prix after finishing the race in second position behind the triumphant Haley Batten.
The 35th edition saw the discipline switch from MTB to gravel, but Swenson proved unstoppable once again in the men’s race by launching a stinging attack on the final ascent of Lookout Ridge and then pressing home his advantage in typically dominant style.

Keegan Swenson leading a small pack at Fort Ord. 2025 Sea Otter Gravel Men’s Race – Lifetime Grand Prix Series. © John Silva / Cyclocross Magazine
The 31-year-old crossed the line nine seconds ahead of Matthew Beers, who also wrapped up his second podium placing in as many years, with Alexey Vermeulen 29 seconds further back in third.
In the women’s race, Batten took the crown after commencing her winning move almost 50 miles in. The Olympic silver medalist never looked back and sealed her win by five minutes and 23 seconds. As Batten wasn’t competing in the Life Time Grand Prix, it was Villafañe who proved the highest-placed Series finisher, taking second place 14 seconds ahead of Cecily Decker.

Cecily Decker gaps Sofia Gomez Villafane and the pack. 2025 Sea Otter Gravel Race – Lifetime Grand Prix Series. © John Silva / Cyclocross Magazine
Those results mean Swenson and Villafañe sit at the top of the overall standings with 35 points respectively, with Beers and Decker both with 33 points, and Vermeulen and Hayley Preen – who finished the women’s race in fourth place – two points further behind.
In the Wild Card competition, Petr Vakoc and Maude Farrell top that leaderboard after finishing in fourth and 17th places respectively, while Griffin Hoppin and Emily Stapleton lead the U23 Program with their respective 29th and 36th-placed finishes.
https://www.instagram.com/p/DISaDdCOYcu/
Reaction from the Life Time Sea Otter Classic presented by Continental:
Men’s winner Keegan Swenson said: “It was fast, tactical racing all day and Lookout Ridge was the only place where there was much selection. On the first two laps it separated on there and then came back together, but with the group getting smaller each time. I knew that was going to be the place to go on the last lap, and that I needed to play my cards right.
“Before I made my move I tried to play it smart and save my energy. I put in a dig on the first steep bit and knew they’d be hurting behind. I had a feeling Matt and Alexey would come back, but that they’d have to work hard to do so, and I rested up a little bit so I could hit out again on the last section of that climb.
“I gave it everything I had, opened up a small gap and then managed to defend it all the way to the finish.
“It’s always good to start the season off with a win here, in terms of confidence and points. It’s nice to have a little buffer heading into UNBOUND too because that’s a crazy, hectic race where anything can happen.”
Women’s winner Haley Batten said: “This was my first gravel race so I had no real plan and just wanted to see how the athletes were riding and working together. They didn’t seem to be in sync so I thought, if I surprise everyone, no one would be expecting it.

Haley Batten, silver medalist at the 2024 Paris Olympics in the mountain bike race, claimed victory in her first Sea Otter gravel race. 2025 Sea Otter Gravel Race – Lifetime Grand Prix Series. © John Silva / Cyclocross Magazine
“I had hoped a rider or two would come with me so there would be more chance of making the move stick. I pushed really hard though, and knew if anyone hesitated for a second behind that I could get away, and I just kept going. During the last lap I was regretting my move as I was deep in the pain cave, but it turned out well.
“The Life Time Grand Prix is a super exciting series, with so many super strong athletes, and I hope to show up for more races in the future.”
Women’s runner-up Sofía Gómez Villafañe said: “I’m more than happy with second place today as I got super sick in the lead up to it and have been on the couch for the last two weeks. I thought I’d only be racing for a top-10 finish today, but had no real idea what to expect.
“When Haley went I had nothing in my legs. I got to play the ‘she’s kind of my team-mate card’ and have Cecily drag me around for the last lap, and I thought I was still going to get dropped. Somehow though, I found I still had a kick on the final climb.

Sofia Gomez Villafane gives chase. 2025 Sea Otter Gravel Race – Lifetime Grand Prix Series. © John Silva / Cyclocross Magazine
“My result speaks volumes to the groundwork I’d put in before getting sick, but it was such a hard day, mentally. My confidence was low but it was so important to have a good race. I’m super proud to get a 1-2 with Haley, and she was a in a league of her own. It’s all upwards from here.
“As for the Series, it’s exciting to have a deeper field, with more international riders coming in. It’s been really cool to see all the changes that Life Time has been making too, especially with the no drafting rule, and they are always elevating the support they give us as riders.”
2025 Sea Otter Pro Women's Gravel Race Results - Lifetime Grand Prix
Rank | Bib | Name | Time |
---|---|---|---|
1 | 102 | Haley Batten | 5:02:45 |
2 | 105 | Sofia Gomez | 5:08:00 |
3 | 124 | Vultae Kepss | 5:08:22 |
4 | 110 | Cecily Decker | 5:08:53 |
5 | 112 | Hayley Preen | 5:10:12 |
6 | 108 | Alessia Scarda | 5:13:33 |
7 | 120 | Melissa Rollins | 5:13:33 |
8 | 117 | Paige Omvedt | 5:14:04 |
9 | 106 | Courtney Sherwell | 5:14:04 |
10 | 115 | Lauren De Crescenzo | 5:14:38 |
11 | 103 | Corinne Wesslen | 5:15:18 |
12 | 118 | Cecilie Lejeune | 5:15:51 |
13 | 113 | Lauren Stephens | 5:18:06 |
14 | 116 | Arielle Dubois | 5:18:42 |
15 | 101 | Emma Langley | 5:19:51 |
16 | 107 | Erin Huck | 5:20:29 |
17 | 105 | Maude Farrell | 5:23:07 |
18 | 109 | Stella Hobbs | 5:23:34 |
19 | 108 | Deanna Mayes | 5:23:40 |
20 | 121 | Anna Yamauchi | 5:23:45 |
21 | 111 | Crystal Anthony | 5:23:46 |
22 | 119 | Annabel Elizabeth Fisher | 5:24:13 |
23 | 104 | Whitney Allison | 5:24:50 |
24 | 122 | Jenna Rinehart | 5:25:29 |
25 | 125 | Sophie Wright | 5:26:00 |
26 | 114 | Emily Newsom | 5:26:45 |
27 | 124 | Hailey Smith | 5:29:12 |
28 | 110 | Flavia Oliveira Park | 5:30:25 |
29 | 117 | Heather Fischer | 5:30:49 |
30 | 113 | Danielle Shroeer | 5:31:12 |
31 | 119 | Hannah Shell | 5:32:12 |
32 | 123 | Erin Campbell | 5:34:12 |
33 | 106 | Leah Van Der Linden | 5:40:46 |
34 | 120 | Hannah Otto | 5:40:57 |
35 | 108 | Haley Dumke | 5:41:29 |
36 | 121 | Emily Stapleton | 5:41:29 |
37 | 125 | Hannah Simes | 5:42:01 |
38 | 110 | Ellery Clason | 5:43:21 |
39 | 104 | Olivia Pantano | 5:43:21 |
40 | 103 | Lindsey Herman | 5:47:38 |
41 | 107 | Michaela Thompson | 5:47:50 |
42 | 105 | Laurel Quinones | 5:56:00 |
43 | 108 | Amity Rockwell | 5:57:06 |
44 | 101 | Alexandra Charles | 5:57:46 |
45 | 113 | Irena Ossola | 6:01:13 |
46 | 121 | Amelie Durst | 6:01:16 |
47 | 118 | Samantha Campbell | 6:03:02 |
48 | 116 | Siena Hermon | 6:03:30 |
49 | 119 | Puck Moonen | 6:14:47 |
50 | 125 | Maire Noonan | 6:15:20 |
51 | 120 | Hayley Simmonds | 6:27:21 |
52 | 145 | Isabel King | 6:40:41 |
53 | 213 | Colleen Maher | 6:42:02 |
54 | 216 | Rachel Mccloskey | 6:43:25 |
2025 Sea Otter Pro Men's Gravel Race Results - Lifetime Grand Prix
Rank | Bib | Name | Time |
---|---|---|---|
1 | 250 | Keegan Swenson | 4:20:25 |
2 | 132 | Matthew Beers | 4:20:34 |
3 | 101 | Alexey Vermeulen | 4:21:03 |
4 | 350 | Peter Vakoc | 4:21:20 |
5 | 410 | Brendan Johnston | 4:21:44 |
6 | 290 | Alex Wild | 4:22:04 |
7 | 315 | Matthew Wilson | 4:22:10 |
8 | 375 | Paul Voss | 4:22:24 |
9 | 425 | Peter Stetina | 4:23:06 |
10 | 396 | Simon Pellaud | 4:23:32 |
11 | 145 | Torljorgens Reed | 4:25:25 |
12 | 284 | Cameron Jones | 4:26:24 |
13 | 309 | Andrew L'Esperance | 4:26:42 |
14 | 125 | Sean Fincham | 4:28:27 |
15 | 333 | Braydn Lange | 4:28:34 |
16 | 286 | Daxton Mock | 4:28:59 |
17 | 321 | Ben Thomas | 4:29:14 |
18 | 202 | Brent Rees | 4:29:46 |
19 | 118 | Hugo Drechou | 4:30:46 |
20 | 345 | Lawrence Naesen | 4:31:46 |
21 | 376 | Russell Finsterwald | 4:31:54 |
22 | 110 | Tobin Ortenblad | 4:31:55 |
23 | 253 | Skyler Taylor | 4:31:59 |
24 | 411 | Mattia De Marchi | 4:32:57 |
25 | 220 | Caleb Swartz | 4:32:57 |
26 | 386 | Julien Gagne | 4:33:02 |
27 | 175 | Taylor Lideen | 4:33:17 |
28 | 299 | Evan Arthur | 4:33:17 |
29 | 412 | Griffin Hoppin | 4:33:18 |
30 | 355 | Alex Howes | 4:33:32 |
31 | 263 | Caleb Smith | 4:33:32 |
32 | 218 | Stefano Barberi | 4:33:37 |
33 | 141 | Cole Paton | 4:34:07 |
34 | 143 | Tj Krieger | 4:34:08 |
35 | 187 | Lance Haidet | 4:34:14 |
36 | 245 | Robert Britton | 4:34:17 |
37 | 198 | Truman Glasgow | 4:34:32 |
38 | 133 | Dylan Johnson | 4:34:39 |
39 | 219 | Lachlan Morton | 4:36:24 |
40 | 306 | Adam Roberge | 4:37:23 |
41 | 160 | Jenson Young | 4:38:31 |
42 | 227 | Marcus Spratt | 4:38:49 |
43 | 211 | Andrew Lytle | 4:39:03 |
44 | 188 | Darren Fahy | 4:39:03 |
45 | 319 | Daniel Van Der Walt | 4:39:05 |
46 | 344 | Nathan Spratt | 4:40:00 |
47 | 231 | Jade Rohde | 4:42:41 |
48 | 191 | Brennan Wertz | 4:44:00 |
49 | 322 | Griffin Easter | 4:45:06 |
50 | 297 | Caleb Bottcher | 4:45:33 |
51 | 138 | Dillon Hollinger | 4:46:10 |
52 | 142 | Justin Mcquerry | 4:46:11 |
53 | 316 | Cassius Anderson | 4:46:22 |
54 | 202 | Sam Brown | 4:47:13 |
55 | 317 | Justin Peck | 4:47:24 |
56 | 215 | Cobe Freeburn | 4:47:26 |
57 | 112 | Harry Tanfield | 4:47:38 |
58 | 276 | Carlos Julian Salazar | 4:47:51 |
59 | 328 | Matthew Saldana | 4:48:12 |
60 | 187 | Andrew Dillman | 4:48:13 |
61 | 254 | Ted King | 4:49:37 |
62 | 187 | Nathan Knowles | 4:49:39 |
63 | 213 | Kash Steele | 4:49:53 |
64 | 214 | Jacob Velasco | 4:50:03 |
65 | 188 | Jack Spang | 4:50:13 |
66 | 345 | John Borstelmann | 4:50:27 |
67 | 162 | Hayden Christian | 4:50:45 |
68 | 175 | Joey Hassett | 4:50:54 |
69 | 322 | Rogan Smart | 4:50:57 |
70 | 144 | Joseph Goettl | 4:50:59 |
71 | 236 | Mickael Szkolnick | 4:52:43 |
72 | 188 | Jake Magee | 4:52:36 |
73 | 278 | Harry Elworthy | 4:54:14 |
74 | 144 | Luke Pinkstar | 4:56:36 |
75 | 215 | Zach Calton | 4:57:04 |
76 | 255 | Brady White | 4:57:10 |
77 | 138 | Michael Machado | 4:58:02 |
78 | 276 | Adam Plaszek | 4:58:24 |
79 | 322 | Ryan Oshone | 5:00:06 |
80 | 145 | Finn Gullickson | 5:00:39 |
81 | 217 | Yusuf Johnson | 5:01:41 |
82 | 298 | Isaac Allred | 5:01:59 |
83 | 220 | Ryker Brand | 5:02:05 |
84 | 222 | Jan Temmen | 5:02:18 |
85 | 156 | Alex Paton | 5:02:19 |
86 | 249 | James Smizer | 5:02:35 |
87 | 133 | Lief Vergensen | 5:02:46 |
88 | 311 | Jason Freiholer | 5:04:31 |
89 | 227 | Ryan Standish | 5:06:03 |
90 | 277 | Oliver Rutberg | 5:06:08 |
91 | 330 | David Ramon Rubinat | 5:09:08 |
92 | 319 | Luke Hensley | 5:09:35 |
93 | 276 | Trey Shepard | 5:10:32 |
94 | 174 | Henry Nelson | 5:14:00 |
95 | 189 | Cory Wallace | 5:16:43 |
96 | 276 | Roxton Nordell | 5:16:56 |
97 | 133 | Kelly Hoffman | 5:17:42 |
98 | 188 | Tom Dumoulin | 5:18:52 |
99 | 120 | Graham Keeling | 5:19:03 |
100 | 250 | Jacob Scheller | 5:20:11 |
101 | 165 | Alexis Cartier | 5:21:29 |
102 | 245 | Jacob Richards | 5:21:36 |
103 | 101 | Zachary Allison | 5:24:52 |
104 | 359 | Jonas Woodruff | 5:24:56 |
105 | 141 | Nicolas Roche | 5:25:29 |
106 | 140 | Matthew Richards | 5:36:19 |
107 | 332 | Brandon Naseath | 5:37:16 |
108 | 278 | Deven Van Greuningen | 5:37:41 |
109 | 357 | Jaxon Wiggins | 5:39:02 |
110 | 330 | Xander Lyman | 6:01:18 |
111 | 187 | Julien Guarniere | 6:01:33 |
112 | 319 | Logan Hodges | 6:13:23 |
113 | 121 | Aj Snovel | 6:15:05 |
No Comment