Race Reports

Alto Velo Alto Velo

Race Report: 2025 Mt Diablo Challenge - Elite Women

Race: 2025 Mt Diablo Challenge - Elite Women

Date: Sunday, October 5, 2025

AVRT racers: Steph Hart, Robin Betz, Robin Kutner, Elena de la Paz

Top Result: Steph 2/157 (sub60!), Robin B 8/157, Robin K 16/157, Elena 34/157

Course: 11.2 miles, 3249 ft hill climb. Closed to cars! At least 25% of it was draftable. It was a notably good weather day - chilly at the start, mostly not too windy, never got hot.

Strava: Steph’s, Robin K’s

Nutrition:
Steph: Coffee + 1 pre-race gel
Robin K: 1 bar 20min before start. During race, 1 bottle w/ 60g carbs (skratch) + ½ bottle water + a few shot bloks

Recap:

Steph’s perspective

In my 3 years of living in CA, I had yet to do Diablo Challenge, because who wants to interrupt their off season with a 60 minute all out effort. This year was no different (blissfully enjoying a few weeks without intervals and probably a little too much beer)- until October 2nd or so rolled around, and the hype on the slack thread had me signing up just to collect a data point on my 60 minute power (data whore life). 

Expectations were low, and after noting Jen Tave’s presence at reg, I knew I’d be in for a reality check once the race started. In typical fashion, I missed my wave 2 start for one last trip to the bathroom line- but managed to join Robin K. and Shannon Gaffney in the wave 3 start. This was probably for the best, as the wave 3 men started plenty hard, and I was barely hanging onto wheels for the first 5 or so minutes. Knowing miles 3-6 were pretty draftable, I decided to try and stay with the group through the halfway mark- knowing I’d have to back off once it got steep to avoid blowing up. I got through the junction at the 25 minute mark, but considerably above target power, so I let myself get dropped to avoid blowing up in the last 20-30 minutes. Minutes 30-50 were pretty much a slog, bouncing around and trying to catch a draft where I could, but more or less just trying to dissociate from my physical experience. I managed to pull it together for the last couple of minutes and not fall over on the steep section to roll in for 57:44 and 2nd in the women’s field. This ended up being a pretty poorly paced effort (275 to the junction, 258 from the junction to the summit), and I also didn’t do a great job drafting/following wheels in the second half of the race- but certainly leaves some places for improvement should I choose to disrupt my offseason next year…

Robin K’s perspective

I went into this race with plenty of physical activity under my belt but nothing in the way of structured training. I was just pleased to have climbed out of an iron-deficient summer. Two weeks prior, I lightly reconned the climb and averaged 3 W/kg and 1:18, which at the time felt “comfortably hard”. In the Wave 3 start corral, I quickly said hello to Steph and goodbye to the back of Steph. After the initial downhill/flat, the group started climbing aggressively and I realized I may have “self-seeded” incorrectly as I was spat towards the back. (Hold that thought.) I had enough fellow stragglers within eyeshot to calm my stress of “what if I end up with no draft?”, and I gleefully reeled a few in before mile 3. I was mildly worried about having gone out too hard and blowing up later, but thankfully a pack of men from the front of Wave 4 came charging from behind at the perfect time - right as we hit the first long, flat section - and I got to recover in their wake. (Maybe this happy coincidence renders my start position perfect?). I let them go when the grade picked up, and I spent the next few miles finding my “happy power”, identifying racers up the road to pick off or tuck in behind, and ultimately passing through the Junction a few minutes ahead of a completely made-up target split.

I had a post-it taped to my top tube reminding me of where the draftable sections were. Approaching the next one at mile 8.5, two things happened: first, a child riding next to me exhaustedly asked where the finish was because his legs hurt. Lol. I told him it was about 20 minutes away and he should try to pedal consistently so he wouldn’t cramp. I simultaneously realized I could afford to start digging deeper as we were running out of road. Second, I was thrilled to hear Robin B’s voice behind me, telling him “also, you should tuck in behind her [me] for an easier effort”. Robin and Supersprinkle Susan came by me, and I happily put in an effort to follow their friendly wheels. We decisively pass a woman I’d been chasing for awhile. Susan dropped off a few minutes later, and I was next. Little Kid reappeared and continued asking how much further until the top. I rode his wheel once, but he would spontaneously stop pedaling so I decided that while he was endearing, he was somewhat of a liability.

Rounding a hairpin with one mile left, I find two dudes and tuck in as we head into the wind. I went around them at the base of The Wall, where AV friends who had just finished their own climbs were cheering us on. Miraculously, Little Kid found a second wind, and he was zigzagging and teetering frightfully close to my bike. This prompted me to put in one last dig, and we reached the finish! I did 1:07:29 (3.5 W/kg) for the climb which is several minutes faster than I estimated. I haven’t been this pleasantly surprised by a result in a long time, which may have planted a seed of motivation for next season… Overall, this was a super well-run event with a fun post-race picnic. Highly recommend!


Read More
Alto Velo Alto Velo

Race Report: Giro de SF W 1/2/3

Race Report: Giro de SF W 1/2/3

Date: Sept. 1, 2025

AVRT racers: Steph Hart, Louise Thomas, Katie Monaghan

Top Result: 5th (Steph), 6th (Louise)

Course: L shaped downtown course with a slight hill

Strava: https://www.strava.com/activities/15664855785

Race Recap (Steph’s perspective):

The field had 9 riders, 3 AV, 3 Terun, and 3 solo riders. With the expectation that Terun would be in the driver’s seat racing for Jacqueline or Jen, it seemed like AV’s best chance would be to follow a Terun break. Sure enough ~3 laps in, Sarah launched an attack that sufficiently strung out the field, and somehow all three Terun riders ended up in a break- yikes, and had a 6-7 second gap on the chase group (Me and two solo riders). Despite screaming at the two random girls to pull through so we could try and catch the Terun break, 3 laps later, the gap was static. 

Then in a moment of maximum chaos, the race was neutralized for 10 minutes due to an ambulance on course. Somehow when they restarted the race, the officials let the first six riders start without a gap- bummer for the break, but it gave me another shot for the second half of the race. From there, it was pretty much 20 minutes of the three Terun riders trading attacks, all of which I ended up covering based on the lacking response from the other two solo riders. Finally we’d played enough games with intermittent free-wheeling that Louise and Katie caught back on with ~2 laps to go. With two corners to go, one of the solo riders started ramping up the sprint. Katie and Louise were pretty gassed from the solo TT effort, and I was cracked from trying to rain on Terun’s parade all race, so we all rolled in at a lack-luster 5th, 6th, and 9th place. 

Read More
Sue Lin Holt Sue Lin Holt

Race Report: 2025 Winters Criterium - Women’s Masters

Race: Winters Criterium - 2025 NCNCA women’s masters district championship

Date: August 23, 2025

AVRT racers: Hannah Chen, Lora Maes, Sue Lin Holt

Top Result: Sue Lin Holt - 2/8

Strava: https://www.strava.com/activities/15560688078

Nutrition: Coffee, Honey Stinger peanut butter waffle before race start, half a bottle of lemon lime SiS Go electrolyte

Course: New course this year - flat L-shaped 6 corner crit

Weather: Sunny, 76F. Glad our race was early because the temperature was over 100F for later races!

Lora, Hannah and I discussed strategy before the race. There were several strong women racing, but we figured that Shannon (in my age group) was the one to watch as she is strong, usually rides aggressively, and would definitely be going for the state championship win. We agreed that one of us should try to be on her wheel at all times and ready to follow any attacks, then attempt to outsprint her at the end.

Sure enough, the race started and Shannon went straight to the front. Hannah did a great job of following her every move early in the race and closing gaps, and later Lora took over and did the same. A few times Lora or Hannah would move to the front but soon enough Shannon would accelerate around them and take her front spot in the wind again. I wasn’t complaining as I was enjoying sitting in the draft, and I figured hopefully she would be more tired than me for the sprint.

With about five laps to go I got on Shannon’s wheel and stuck to it like glue, maintaining my second place spot for the last several laps, ready to start my sprint after the 2nd last corner. I knew that there wasn’t enough time after the last corner to pass anyone, so it would be the first rider into the final corner who would win the race.

In the final lap all was going to plan and as I rounded the penultimate corner in second position I gathered all my energy, ready to try to sprint around Shannon. I began accelerating, gaining ground on her, but as I started to pass her I heard another rider sprinting up alongside me on the left. This was not the plan! As I stood and sprinted towards the final turn we were neck and neck but I was on the outside and had more ground to cover into the final left turn to the finish. We clearly underestimated this rider and I hadn’t seen her for the entire race (apparently I was her Shannon and she had been quietly following me around the whole time). But with hindsight, the national champion stripes on her bib shorts should have given us a clue! Alas I wasn’t able to make it around the final corner ahead of her and despite my best efforts to close the gap, I ended up finishing second.

Overall I’m happy that we as a team executed our intended strategy. It also provided a key learning moment: to always expect the unexpected. Congratulations to Hannah and Lora on becoming state champions in their age groups!

Read More
Alto Velo Alto Velo

Race Report: 2025 “Oakland” Grand Prix, Mens Pro/1/2

Race: 2025 “Oakland” Grand Prix, Mens Pro/1/2

Date: September 14, 2025

AVRT racers: Jon Wells

Top Result: Jon Wells, 12th of 38

Course: 0.95 mile loop with six corners around the Shea Center in Livermore. It is almost the same as all the early bird courses but with an additional U-turn added by the parking lot, making the course much more technical

Strava: https://www.strava.com/activities/15814715509 

Nutrition: One bottle of 90g carb mix and a prerace redbull

Race Recap:

Due to some unfinished construction on the original course, the Oakland Grand Prix was moved out to the Shea Center in Livermore at the last minute. Instead of the usual early bird course, you went straight through the old corner 4 and took a U-turn before turning left into the usual finish line. The previous course was pretty straight forward, and even boring at times, so I was pretty excited about the addition of a technical feature. But I think the U turn kind of ruined any flow you could find on the course and wasn’t enough to make up for the easy remainder of the course.

The field was slightly smaller than usual but still had some solid hitters including Mikes Bikes out in force with maybe 8 riders, then Terun had a few guys, and Ryan Gorman racing alone. Mikes made it clear from early on that they wanted a break to go and they wanted at least 2 guys in it. This often forced Ryan to follow and make big bridges, leading to a pretty surgy race.

My plan was to follow any moves with Mikes and Ryan, as I didn’t think there would be enough guys left in the field to chase. Moves went all race and I followed a few massive bridge attempts from Ryan plus a couple from Mikes guys trying to stack moves with several riders. I think if Mikes had been content with just one guy in a move, then something would have stuck earlier, but they kept trying to bridge to their own moves and would bring others with them.

Around 5 laps to go I decided I was content with a field sprint, just trying to float near the front and no longer following moves. A move snuck off around 2 to go with 2 mikes guys and one Terun, leaving only Ryan to chase. I found myself on his wheel at one to go, waiting for him to hit it. Eventually he did, and it strung out the field big time, but the gap to the leading trio was slightly too big. They just held off the field and former AV racer PA (now Mikes) took the win. I found myself around 12th and really went nowhere in the field sprint with tired legs from trying to get into breaks all race.

-Jon

Read More
Alto Velo Alto Velo

Race Report: Henleyville Road Race (Men's Masters 35+ 1/2/3)

Race: Henleyville Road Race - Men's Masters 35+ 1/2/3 

Date: September 20, 2025

AVRT racers: Michael Matthews

Top Result: 6th Place

Course: 18 mile rectangular-ish course done four times just outside of Corning CA. Not too hot or windy. Small hill (~250 ft elevation) before the feed zone (halfway point of the lap) and otherwise flat. Rough roads in places and loose gravel in corners, but not in any critical locations. 

Strava: https://www.strava.com/activities/15880105808   

Nutrition: ~300g of carbs in two bottles and a gel pack. Normal breakfast and a Clif bar on the road before the race. 

Event Recap: Masters 50+ 1/2/3 joined us for a field of ~15 (a small field). The 35+ field included Mark Tucker (a current Masters TT National Champ). I wish I had known that and factored it into my plan. No teammates for me, but Dolce Vita, Meteor and LaMorinda each had two. My first, and last, road race of the year. I’d spent my season doing criteriums and mountain bike racing so I had a different kind of fitness. One would think I played it conservative and saved it for a sprint in the end… I didn’t. Pace was light for the first half of lap one and then attacks started to fly but were shut down quickly. I found myself positioned well to launch one and went for it. I ended up enticing a Dolce Vita rider to join and we held a ~1 min gap at times for about a lap before Meteor and LaMorinda shut us down. I settled in and committed to following any big threats, but otherwise not forcing an attacking agenda, which I tend to do :). A few riders ended up getting dropped in the first half of the race. After Mark (Meteor) attacked and was brought back, out of a messy pack a rider attacked and I was caught out. Meteor (Mark), Dolce Vita and LaMorinda represented. PANIC, I’m alone to bridge this! Laid it all on the line to bridge that move before it got too far away but I couldn’t match the firepower and get it done. Fast forward to the end. Cramping started creeping in in the lead up to the sprint as the pace ramped and I was getting nervous that I was going to blow up. I wheel surfed until about 200m from the finish. With a metered sprint (such as to not cramp and blow it) I came in 2nd in the bunch sprint. I wish that attack hadn't gotten away without me!  

Read More
Alto Velo Alto Velo

Race Report: Pescadero Road Race W 1/2/3

Race Report: Pescadero Road Race W 1/2/3

Date: July 12, 2025

AVRT racers: Steph Hart, Louise Thomas, Rachel Hwang

Top Result: 3/9 Women’s 1/2/3 (Steph)

Course: 2.7 laps of a loop. Major features include Haskins’s climb (9 minutes or so each lap).

Strava: https://www.strava.com/activities/15093689853

Race Recap:

(from Steph’s perspective)

The field had 9 riders, 3 AV, 3 Terun, 3 solo riders. With Jen and Jamie Chapman, it seemed like this was Terun’s race to lose- our best chance was to try to sneak into a break with one of them. After a chill neutral roll out and first 5 or so miles, Terun started rolling attacks on Stages road. Jen attacked on the second Stage road climb, when I followed the wheel, Jamie countered and motored away solo. By this point it was basically Jen and I solo, I followed Jen’s wheel over the rollers, but she attacked and dropped me on the semi-technical descent, and was able to join Jamie by the intersection of Stage and 84. They had maybe a 15s gap at the start of 84, and despite the fact that I was tucked and doing ~280W, I could still see that I was losing ground on them. 

A few miles down the road Rachel pulls Sarah up to me, and then offers to pull to the base of Haskins climb. I can see we’re losing time on Jen and Jamie, but gratefully take the free ride in hopes I can collect myself. By the time we get to Haskins, Louise and Sofya (Terun) also join us. Not totally sure what to do, I attacked at the base of the climb, and by the top I had a 20-30s gap on the group. Tragically, I also get word that Jamie and Jen have almost two minutes on me. Slowly coming to terms with the ramifications of the situation, I settle in for a 2+ hr solo effort. I won’t belabor anyone with the details of my mental wanderings during a full two solo laps of Pesky loop, but I managed to stay away for the rest of the race, coming in third but still several minutes behind Jamie and Jen. On the 2nd lap up Haskins, Rachel got away solo and came away in 4th place.

Read More
Alto Velo Alto Velo

Race Report: 2025 San Ardo Road Race Masters 35+ 3/4

Race: 2025 San Ardo Road Race Masters 35+ 3/4

Date: August 16, 2025

AVRT racers: Shai Traister, Joseph Garcia

Top Result: Joseph Garcia (13/16)

Course: Three laps of a 23 mile clockwise loop comprising a headwind way out and tailwind back. A ~5 minute twisting rolling climb with short steep ramps and otherwise shallow gradient. Rough pavement in parts, most notably on the narrow bridge on the backside of the course and consistent massive horizontal cracks across the road on the backside of the course. 

Strava: https://www.strava.com/activities/15483432207

Nutrition: 2 bottles with skratch during the race, one gel

Recap: (written by Shai)

I could ride the 50+ race, but I felt good leading into the race and there were only a handful of racers pre-reg'ed, so I decided to "level up" and race the 35+ race.

During warm up I realized that the pavement was pretty bad with horizontal cracks on the road which made it pretty bumpy. I had a small procedure ~10 days prior and the bumps were uncomfortable so I decided to lower the air pressure on my rear tire. I was running tubeless so I assumed it would be fine.

On the start line I pointed to Joe the two riders in the 805 race team as the team to watch for. Based on the pre-reg numbers I knew at least one of them was very strong.

Race started at a good pace and I tried to be near the front. When we hit the first few hills, 3 riders rolled off the front - with one representative of the 805 team. Initially I wasn't too worried because it was a 63 miles race and I thought it would for sure be brought back - this is cat 3 after all, and everyone still had fresh legs...

In the back it was a complete chaos - Myself and 3-4 others pulled on the front, some others tried to attack and get away, while the majority of the field were sitting on and not helping at all. On top of things, the other 805 racer was sitting on, and blocking any attempts to form some cohesive efforts. For the first 10-15 minutes we kept the front group within 20s, and one time it got down to probably less than 10s, but never quite managed to close it.

I tried to encourage others to pull by yelling at people to pull through - and I got yelled back "it's a race, you can't tell me what to do". and I'm like: "really? it's a race? are we all racing for 4th?"

I tried to attack several times and join moves that attempted to drop the dead weight in the group. Then I looked back and saw the 805 guy (who otherwise was just sitting in the group) was bringing it back together. 

After a lap the motor came to us and told us they were 2:45 ahead of us, and I knew this was it. When we got to the hills on the 2nd lap one of the riders set a hard pace which dwindled the group, and then the 2nd 805 racer attacked trying to go for 4th place. We shut it down but that got the group to about ~6 riders.

Race continued and just before the famous bridge with the horrendous pavement I felt that I was having a flat in my rear wheel. I pulled off and realized it was. I don't know why it didn't seal, as this was a relatively new tire that I installed just a couple of months before, but it's possible that the sealant dried up a little. Also I don't know if that was because I lowered the tire pressure (most likely not). This was my 2nd time racing San Ardo, and last time I also flatted - had 2 flats before the race even started. Bad luck.

Anyway, after waiting on the side of the road I saw Joe driving on the front of 3 other riders. Sag car arrived and picked me up.

I still had some cold bottles with Skratch so I went to the feed zone and handed them over. Saw Joe again on the front of his small group.

Bummed for DNP, but even more bummed for missing that winning move at the beginning of the race.

Never make assumptions in a race!

Read More
Alto Velo Alto Velo

Race Report: Winters Road Race - Masters 50+  4/5

Race: Winters Road Race - Masters 50+  4/5

Date: August 31, 2025

AVRT racers: Shai Traister

Top Results: Shai 1 / 8

Course: Two laps of a 24 mile loop. Mostly flat but with a ~3.5mi stair-stepping climb (Cantelow), and narrow twisty descent. There’s also a short gravel slight uphill stretch that is very doable on road tires.

Nutrition: Two bottles with Skratch, two gels 

Strava: https://www.strava.com/activities/15575232027

Recap: 

We had a small group of 8 riders. Right on the start line there was a junior rider who was the only rider in his category, so one of the officials said "go and race with these guys", and he got added to our field.

The race started off pretty chill, with the small group riding mostly easy on the flats and taking turns / rotating through until we got to the climb. On the climb the pace picked up and I hoped to repeat the strategy from Patterson Pass where I caused the group to split on the climb and continue with a smaller group. So I set a hard pace - maybe too hard - and got a gap on the group. I went down the descent, looked back and so no one. I continued riding and kept looking back to see where the group was. No one in sight.

Knowing my FTP, I knew it would be challenging to go solo for such a long way, especially on a flat course like that. I thought that there was some chance there could be a "group B" dynamic and the group would not cooperate, so I decided to give it a go and see what would happen. I set on what felt like a good tempo, kept my head down and rode. I would look back from time to time on straight stretches and I could see the group in the distance. I kept going.

One of the times I looked back they were getting close (~15s). At that point I should have sat up and gone back to the field, but instead I kept going and managed to stretch the gap again. I continued riding solo, with the gap yo-yoing a little. 

I was finally caught just before the 2nd climb (after an entire lap OTF). Obviously, I was pretty cooked so went to the back of the group, but watching out for any attacks. 2 guys were pushing the pace so I moved up to ride with them. Luckily this was a stair-stepping climb so I managed to recover a little bit and when we hit the last and steepest part of the climb I decided to attack again. I jumped, got a separation, but couldn't keep up the power. Continued up the climb with whatever I had left and the junior rider caught up to me. We rolled down the descent and started working together on the back side trying to stay away from the 2 chasers behind.

Despite working well and taking turns, we got caught by one of the chasers about 2-3K from the finish. Pace slowed down and we traded some turns as I shifted my focus to the sprint ahead. We rolled through 1K and at about 500m to go there was a small riser. I decided to give it a go.

I jumped, and started sprinting. Legs were screaming in pain, on the verge of cramping. I looked behind, the junior rider was on my wheel and the other rider behind him. I continued with everything I got left, and was passed by the junior rider. Someone collapsed right on the finish line so they diverted us to the other side of the road which was confusing. I managed to cross the finish line just ahead of the other rider in my field.
Stoked for the win!! Yay!

In hindsight - it was probably the wrong decision to go solo OTF so early. Speaking to the other riders after the race they told me they were cooperating well, and they kept me dangling OFT. Instead I should have waited for the 2nd lap and attacked from the bottom of the climb to create as big of a separation as I could and then try to keep it all the way to the line. 

Read More
Alto Velo Alto Velo

Race Report: 2025 Winters Road Race - Men's Cat 3

Race: Winters Road Race - Men's Cat 3

Date: August 31, 2025

AVRT racers: Jeremy Besmer, Ryan Dyke

Top Results: Jeremy 13/27, Ryan 17/27

Course: Three laps of a 24 mile loop. Mostly flat but with a ~3.5mi climb (Cantelow), and narrow twisty descent. There’s also a short gravel stretch that is very doable on road tires (had no issues on my 28mm GP 5000S TR).

Nutrition: Two bottles of super Skratch with 90g carbs each and two sleeves of shot blocks (50g carbs each)

Strava: https://www.strava.com/activities/15574032472

Recap (written by Jeremy): 

This was a large field of 27 starters with no large team representation, so we figured this would be a pretty chaotic race with good chances for breakaways succeeding. We went in with a loose plan to follow moves on the climb and for Ryan to try initiating an early break, while I would go for a break in in the second half of the race. 

The race started off pretty chill for the first lap, and someone rolled off the front but did not look threatening so the field quickly let him get a large gap. A bit later, Ryan attacked to try to bridge up to the solo rider, and again the field was uninterested in chasing. Ryan + solo rider were (separately) off the front until the climb, and the field took the climb at a hard pace so we caught them both by the top. The climb was over much sooner than I expected so I was poorly positioned in the back half of the group going into the descent. That turned out to be a big mistake when a rider ahead of me crashed halfway down. Thankfully he didn’t take anyone else down, but I had to slam on my brakes to go around. At the bottom, I was alone ~10 seconds behind most of the field. I rode a hard pace for ~5min to try to catch back on for and was caught by a few riders who had been behind me. We worked together to get back to the field near the end of lap 1. 

Lap 2 also started with minimal group organization and a few people occasionally rolling off the front solo without any success. Ryan again rolled away from the group a few miles before the climb, which set me up well to sit in and get in a perfect position in the group to counterattack when we caught him at the bottom of the steep part of the climb. Excited to make some noise on the climb, I shifted to get ready for the steep section…and then I made no noise as I couldn’t pedal with a dropped chain (cry). I cursed a few times while trying to get my chain back in place without stopping. No luck, so I got off the bike to quickly put it back on. This was the most critical moment of the race, so 5 seconds felt like an eternity. I hopped back on my bike, and did my best to smash solo up the climb, but I was dismayed to see a group of 4-5 riders separating from the front of the group ahead of me. 

I descended, saw that I was ~10s behind the main group, and the break of 5 looked like it was extending its gap. I rode solo for a bit but then Ryan and another rider caught up to me. We worked together with Ryan doing some incredible pulls to get us back on to the main group near the end of the lap. The peloton had largely sat up with no organized chase of the break, which had a 1 minute gap. 

I was tired from chasing, so I wasn’t ready to take a pull yet. I sat in to recover, and because there was no organized chase, the gap widened to several minutes and we never saw those riders again. At some point a rider rolled off the front solo, which appeared threatening so Ryan and I went to the front to pull. A few moments later, I realized that I had unintentionally rolled off the front. his was on a flat section where I wouldn’t have intentionally attacked, but nobody was chasing me. I didn’t want to fully commit, so I rode a steady effort. My gap had increased to ~40 seconds by the start of the climb. I pushed harder as the road got steeper, got some ice from the feedzone (thanks, Roger!), and tried to smash the steepest section. Fatigue from earlier chasing caught up to me, and the peloton was absolutely hammering the climb, so my gap shrank to 10 seconds by the top.

I maintained this gap through the descent, and continued riding tempo, figuring this gap wouldn’t last on the final, flat 10 miles of the course. I was caught with 6 miles to go. I largely sat in, thinking of how to play the finish. I was in good position with 500 meters to go, but a pair who had been pacelining snuck around us from behind, carrying a lot of momentum. I wasn’t ready for that sudden acceleration and couldn’t respond. Instead of sprinting for 6th place, I rolled into the finish with the group.


Read More
Alto Velo Alto Velo

Race Report: 2025 Giro di SF Men’s 3

Race: Il Giro di SF - Men's Cat 3

Date: September 1st, 2025

AVRT racers: Matt Carvell, Wil Gibb, Kevin Kauffman, Jack Lund, Drew Mathews, Clark Penado

Top Result: Matt Carvell 9/50

Written By: Matt Carvell

Course: A 6-turn, 0.76 mile, L-shaped course. Small ‘climb’ partway through the course that is very big-ring-able. The course has potholes in several turns that require racers to choose their lines carefully. Generally a fun atmosphere and crowd, aided by kids races.

Strava: https://www.strava.com/activities/15664764144

Nutrition: One full bottle of Skratch strawberry lemonade. It was a relatively hot day for this fair-weathered San Franciscan.

Recap: 

Having taken this year off from bike racing, I was tentative about racing one of the more technical and larger criteriums of the year. But the Giro is just around the corner from my house, and I love supporting local SF racing and culture, so I decided to give the Giro a try. And the SF crowd, the race, and the friendly nearby brewery made for a sweet Labor Day vibe.

I biked over to the race and introduced myself to my teammates Wil, Kevin, Jack, Drew, and Clark. Side note: back in the day, I thought it was odd how some teams had riders who would meet their teammates at the start line of the race. How would they be able to ride together? CAN they ride together? Is this that guy’s first race? Well, life came full circle. I was that guy.

Wil has seen some strong results recently, so we thought he’d be one we could work for. Clark was coming off some strong early-season fitness. Drew was my other SF-local compatriot who gave us all pointers on the course. Kevin was cheerful and excited, which served as a welcome distraction from the pre-race nerves. Jack just got his Cat 3 update and was diving into the thunderdome of crit racing.

We didn’t have a substantial race strategy. As none of us were true sprinters, and knowing that this would be a race of attrition, the idea was to ride together and evaluate who was ‘feeling good’ towards the end.

The race started off quickly, and I clipped in successfully. Wil immediately took a powerful flyer off the front, and we all began to settle into the rhythm of the race. By “rhythm”, I mean navigating a washing machine of riders moving through the peloton, while trying not to drop a chain, mechanical, or crash through the bumpy course (sadly, at least one of these scenarios would happen to each of the other AVRT riders).

About halfway through the race, there was an established 3-rider breakaway off the front. I had started feeling pretty good, happened to be near the front, and was pleased to find someone who wizzed by me, seemingly eager to catch the breakaway. I jumped on his wheel and we were rippin’. But as we approached the start/finish line, we were neutralized by the race officials. Apparently, a crash occurred that required the race to be restarted. So we all lined up and started together.

The restart of the race was tough on my legs, which had been working at their maximum and then stood around cold for 5-10 minutes before being asked to max out again. Others may have felt the same, as I barely dodged another crash in front of me.

With three laps to go, I got quite swarmed near the front. There was no major team controlling or ‘leading out’ the race at this point, so the metaphorical washing machine was on a max spin cycle. Fortunately, I regained a lot of position on the downhill section. I gunned it on the start/finish straightaway to pass another group of riders and found myself around 5th wheel going into the last lap. Perfect.

A Terun rider took a flyer off the front to start the last lap, and his teammate sat on the front, somewhat soft pedaling. As we went through the turns on the railroad tracks, nobody wanted to make a move to bridge to the lone Terun rider. So I sprinted around the group and sent it up the hill section of the race. I caught the Terun rider partway through the downhill and quickly realized he was cooked. Since I was fully committed at this point, I went around him (oof, this is going to be a long effort). 

Caught the leader. My brief lead!

I then heard a crash behind me (phew, glad I wasn’t caught up in that… wait, does this mean that I now have a chance to win? I’m gonna win!). But to my not-quite-surprise, the lead riders caught me on the last turn of the race. I sprinted with everything I had left and held onto 9th. 

Just kidding. The lead was fleeting.

Overall, a fun day, despite the crashes. A few riders grabbed some beers at a taphouse along the course and heckled the pro racers (#crossiscoming).

Thanks for reading!

Read More
Alto Velo Alto Velo

Race Report: 2025 Giro di SF Women’s 3/4/5

Race Report: 2025 Giro di San Francisco Women’s 3/4/5

Date: 9/4/2025

AVRT racers: Katie Monaghan, Sam Dewees 

Top Result: Sam 16/29, Katie 22/29

Written by: Katie Monaghan 

Course: L-shaped 6-corner course with a small bump. Pavement is bad on the backside stretch, and the second corner has tracks on the road.

Strava: https://www.strava.com/activities/15662427460

Nutrition: my typical banana and peanut butter sandwich before and nothing during. Start line gummies

Race Recap:

This was my second time racing Giro di SF. I had a great time racing last year with Katarina Zgraja and I was looking forward to racing again. The women’s 3/4/5 field had an awesome turnout of 29 racers which was exciting. There were a lot of super sprinkles racers, maybe 10?, and the AV representation was just myself and Sam. 

For those of you who know me, I recently decided to upgrade my bike. I bought a barely used Orbea Orca on Marketplace about 3 weeks ago. It has all the nice things: Di2 shifting, nice deep set hunt wheels, crisp disc brakes and a nice race geometry. However, I’ve been having issues with the seatpost dropping. (I’m hoping carbon paste and a torque wrench are going to fix that going forward but we will see). I planned to race the Orbea at Giro but at 9 pm the night before the race, I began to have second thoughts. The women’s 3/4/5 had a crash last year and at this point I’m still more comfortable riding hard and taking corners on my old trusty CAAD10. I figured it's a good crit bike, who needs nice things? So I debate via text with a few teammates but ultimately decide to take my CAAD to SF. I wasn’t able to move over my power pedals because I don’t yet own a 8 mm allen key. I figured that I don't look at my power in crits anyway so it didn’t matter. Steph Hart told me she could not possibly support this decision because “how could you ever ride a bike without a power meter?” If you bother to read on, spoiler alert: I maybe should have raced the orbea. 

Race starts, things are going smooth. Pavement is a little bad, oh well. The corners are fun and fast and the field is big. Yay, all things that I like! Lots of SF AVer’s came out to support so I could hear cheers from the sidelines at most points during the race which made it even more fun. Shoutout to Richard Red, Simon Parton, Robin Kutner, Jermey Besmer and Ari Fischer for coming out to support! One of my favorite parts of AV will always be the general bike community from the race and club team combined. 

I was trying to stay in the front 3rd of the race to make sure I could see any moves that seemed threatening and hopefully stay ahead of crashes. I was successfully able to execute this for the first 30 minutes of the race. There would be an occasional solo sprinkles rider off the front for a lap or two but they were mainly getting brought back. At about 20 minutes into the race, one sprinkles girl had been off the front for 2 laps and no one was making much of an effort to chase her. I figured that was dumb, sure I only have myself and Sam, but I made an effort on the hill to close the gap. After I initiated the chase, the rest of the peloton eventually decided to help me finish it.

Having burned a match, I decided to slot back into the peloton for a little to conserve some energy for what I figured would eventually be a field sprint finish. I slot back to about the 7th wheel but I quickly felt myself slowing. I thought to myself “well I am a little tired but I’m always tired by 30 - 35 minutes into a 40 minute crit, why am I suddenly struggling to keep up?”. The peloton slowly started to slip away and eventually I got completely dropped. I rode alone for the last few laps. During these laps, I was trying as hard as I could to push harder but I just kept getting slower and my heart rate was dropping. I figured this must be late season chronic fatigue and I just had the most catastrophic bonk in the world. Apparently Simon got some dirty looks when he yelled at me during these laps that “it wasn’t a coffee and cake ride and I should get myself in gear”. I didn’t hear it but I still would have found it funny if I did.

We finished the race and I slow rolled off to the side to discover that at some point during the race I broke a spoke. The spoke was slowly causing my rear brake to close down on my wheel and it barely turned by the end of the race. (There is a video of this on my strava post.) While disappointed this happened, I had a big moment of relief. It at least made sense why I so suddenly got dropped by women who I’m normally very competitive against. 

I’m not exactly sure at what point in the race the spoke was broken. My best guess is during one of the bumpy corners over the train tracks. I had an instance or two during the race where things didn’t quite feel right while shifting. I figured my chain was jumping and that I had already become spoiled by the smoothness of electronic shifting while riding my Orbea. One of these instances must have been when I broke the spoke but I don’t know how long I rode on it. I’m very thankful to not have crashed despite the mechanical.

I was able to hand my bike off to the mechanics after the race who fixed my spoke for me in time for me to race the women’s P123 later in the day. This was cool but again the AV community in itself is so great. Steph had seen my strava and already offered to pick up my orbea so I could race again later. Simon had also offered me an extra set of wheels from his house. It’s definitely special to have such a good crew of people behind you.

Ultimately, It was a super fun day of racing. I hate to admit it but maybe Steph was right and I should have found a way to switch over my power pedals. It would have certainly been interesting to see what power I was putting out at the end of the race as my back wheel was slowly getting stopped more and more with each pedal stroke … 


Read More
Alto Velo Alto Velo

Race Report: 2025 Patterson Pass Road Race - Men’s P/1/2

Race: Patterson Pass Road Race - Men’s P/1/2

Date: 8/3/25

AVRT Racers: Flo Costa, Nathan Martin, Andrew Ernst

Top Result: 2nd - Nathan

Course: 4 laps of this. Starts with a 4 mile 1,100 ft climb, has a ripping descent into the second climb which is 2 miles and 500 ft with varied grades. Then there’s a bit of a lumpy descent to the backside of the course which is flat for a bit before opening up to a fast descent all the way to the finishing straight, which is a mile long 200 ft kicker to the finish line.

Nutrition: 4 bottles of mix

Strava: https://www.strava.com/activities/15334592604

Race Recap (written by Nathan): 

This year wasn’t supposed to be as hot as other years, but it would be just as windy. We still had ice socks and cold bottles prepped for the day, however.

Tobin was here, and is always a threat so we’d be keeping an eye on him.

The first time up the climb was pretty steady, but towards the end of the downhill section the first time a break would go that had Flo in it along with a couple other strong riders.

The break would stay away until the end of Lap 2, and no counter move would go just yet.

On Lap 3 things would heat up on the main climb, but on Flynn Rd Tobin would smash it from the bottom and the group splintered. I kept the pace hot over the top, and a group of 4 of us would form. Tobin, me, PA, and Mattheus.

We rotated well together, taking decent turns into the start of the final lap. Even up most of the main climb the last time we worked together well. At the top of Patterson, Tobin attacked, and PA would be dropped here.

The start of Flynn the last time was steady, then I hit it at the hairpin. I was quickly brought back, but went again on the last steep sections of Flynn and gapped Tobin and Mattheus.

I had a few seconds gap on Tobin on the decent, but he was able to quickly bring it back, and it would be the two of us on the descent into the finish.

As the finish approached, we had a wicked crosswind from the right, so I stayed as far left as I could in the run up to the sprint.

I decided to keep it as hard as I could, since I knew I couldn’t outsprint Tobin. It wasn’t enough, however, as he was able to come around me into the crosswind at the end to win.


Read More
Alto Velo Alto Velo

Race Report: 2025 San Ardo Road Race Men’s Cat 3

Race: 2025 San Ardo Road Race Men’s Cat 3

Date: August 16, 2025

AVRT racers: Drew Mathews (DNP)

Course: Three laps of a 23 mile clockwise loop comprising a headwind way out and tailwind back. A ~5 minute twisting rolling climb with short steep ramps and otherwise shallow gradient. Rough pavement in parts, most notably on the narrow bridge on the backside of the course and consistent massive horizontal cracks across the road on the backside of the course. 

Strava

Nutrition: Eggs + oatmeal breakfast. 3x90g carb bottles during the race (60 g malto, 30 g blue agave powder) with ~ 250g Redmond’s Re-lyte electrolyte each

Recap: (written by Drew)

I slept poorly the week leading into the race, and the night before the race, I couldn’t sleep at all. I was happy once 4 am rolled around and was able to say screw it and make my way to San Ardo. 

I had done some intentional heat training the two weeks leading in after riding in mostly thermal bib tights during my first summer in San Francisco. However, upon rolling into San Ardo, it was raining. Da heck, was not expecting that. 

I set up the Bottle Grabs in the feed zone and made my way to the startline. There were around 15 Cat 3 riders in the field, and we combined with the two Cat 4’s since their field was so small. There were two or three junior teams with two riders each, the Moonshine team had three riders, and otherwise everyone was solo. 

I rolled off with the group in the drizzle, eating the spray from the tire in front of me that I hadn’t tasted in some time. The group was content with rolling in zone 1 for the first third of the first lap. Folks rotated some pulls, and I did a few after feeling good and mingling at the front, mostly in zone 2 figuring it wouldn’t hurt me. The drizzle disappeared soon. 

Two of the Moonshine riders took over at the front for the most part after the first third of the first lap. There were some rolling attacks that got brought back halfway through the first lap. One of the cat 4 riders went, and I chased him after forgetting that he was inconsequential to my race. He later went again, and the other cat 4 rider chased, leaving us Cat 3’s to not worry about who’s who as much. 

After some more rolling attacks without any sticking, one of the Moonshine guys went and got a 20 second gap. He dangled out there for a bit, and several of us took up a chase at the front without making a dent. 

We rolled through the feed zone after the first lap, and I went towards the back while taking some gulps from a neutral water bottle. I stuck at the back after the underpass after the feed zone and as we rolled into the climb, one of the junior riders (who ended up winning the race and also hadn’t seen the wind until that point) attacked hard on the first steep kicker. I was caught off guard and was the last rider in the group, and I fought hard to stay on the wheel ahead of me. The rider two ahead of me came off and I lost contact after trying to come around him. I tried to stay steady after the power spike and come back to the group, and I held it around 5-10 seconds for the majority of the climb. After tiring out and realizing I wouldn’t make it on my own, I waited for the rider behind me, who was strong but had done a lot of work on the front on the first lap. 

We rolled together at 25 mph and felt like we would reel the group in. After 10 minutes, we spotted a group not so far in the distance and doubled down. The group came closer and closer, and just as we made contact, we realized it was not our field - womp womp. I was cooked at that point after making a big effort to make it back and decided to sit up after not seeing another group in sight.

Weirdly, the woman at the front of the group we had passed asked us to work for her, to which I said no. She drafted off of the other Cat 3 rider and I for around 10 minutes despite my audible displeasure, and then when I tried to shake her, she attacked off us. Not okay? That was my interpretation. 

I was determined to finish the race, but I had some issues that prevented it. I started chafing, perhaps from being wet at the start of the race, and it got so painful that I could not pedal. I also started to have some pain in my left calf. I was very disappointed to pack it in after the second lap. 

Turned out I had taken off a large chunk of skin from the chafing, so it was understandably really painful, and being tired and sleep deprived lessened my ability to deal with it. I got some Mexican food post race with some P12 boys, and after asking, every single one said they use chammy cream. Lesson learned. The calf pain turned into some sort of muscle strain that left me hobbling around and unable to exercise for a few days after. 

I was really disappointed with this one. I’m coming off a year long gap from racing and have changed my approach to training and racing to be a lot more conservative and intentional with my energy. Nonetheless, I had targeted this race and wanted to do well. My takeaways are that no one has an ideal lead into a race (for instance with sleep, nutrition, taper, training, whatever) and that I have to race with what I’ve got on the start line. With these un-ideal circumstances and things that you can’t control, racing a lot gives me a lot of opportunities to have my day, so I’m looking forward to getting back into a consistent race schedule. 

-Drew

Read More
Alto Velo Alto Velo

Race Report: 2025 Downieville Classic, Pro Men

Race: 2025 Downieville Classic, Pro Men


Date: August 8-9, 2025


AVRT racers: Jon Wells

Top Result: Jon Wells, 26th of 38 in XC


XC Course: 27 mile, net downhill, XC mountain bike race. It starts with ~1 hour climb and then goes into a rolling section on top followed by a long, technical 5k foot descent.

Strava: https://www.strava.com/activities/15403985599 


Nutrition: 2L camel back with ~220g of malto & gatorade mix plus a couple gels

Race Recap:


Downieville Classic is a 2 day mtb race where you must race an XC race on saturday and downhill race on sunday, all on the same bike. It gets called the all mountain world championships and is really a downcountry race exemplified. The descent is pretty chunky throughout and gets technical at times too.

The XC race on day 1 is net downhill but still starts with about an hour of climbing straight out of town. I immediately let the group go and settled into my target HR (170bpm) for the climb. A lot of guys go out too hard but I don’t think staying with the group is necessary in this type of terrain. The climbing plan paid off and I picked off lots of fast starters to finish the climb inside the top 20 in a pretty stacked pro field.

The course quickly becomes more technical over the top, first on some small rolling climbs and then it eventually plunges downhill for almost an hour. I felt strong and confident through the rollers and was still moving forwards through people. But once we hit the DH I started to slide back. Normally in an XC race I’m among the faster descenders, but downieville selects for guys who send it hard on the DH. I was passed by probably 10 guys over the course of the descent. Eventually, the descent gets pretty flat at the bottom and I was able to get back on the gas to stop the bleeding. I ended up in 26th place with a time of 2 hours 22 min, which was well under my goal of 2.5 hours!

DH Top Result: Jon Wells, 26th in DH (25th overall)

DH Course: 14 mile downhill race. A lot of the descent is shared with saturday but there are a few extra technical sections like the infamous waterfall section


Strava: https://www.strava.com/activities/15416429108 


Nutrition: 1L in camelback with 110g calories, drank between my warmup and race.


Race Recap:

The downhill race at Downieville has almost 5,000 feet of descent and took the winners 45 minutes to complete. It is setup like a timetrial, where everyone starts a minute apart. It is not very steep so there is plenty of pedalling throughout. There is a proper ~3minute climb toward the bottom third of the course and then the last few miles are quite flat and require a lot of effort. I took a longer warmup and found some singletrack to rip on beforehand as suggested by some downieville vets, which I think was a smart move. 

Even with my longer warmup and riding some trails, I was still pretty antsy out of the gate and blew through a couple early corners which cost me time. I rode as fast as I felt comfortable and didn’t take a crazy amount of risks, given I wasn’t anywhere near the top of the leaderboard. I hit the pedally sections with everything I had left in my legs. I was faster in all of the shared sections of single track in the shorter Sunday race, as I would have hoped.

I finished in 55 minutes and some change, which was my goal time for the descent. I got passed by 3 or 4 guys on the way down and only caught guys who had crashed so I didn’t think my time was all that impressive (spoiler: it wasn’t). I was in the pack of finishing times, but one of the last guys who didn’t crash or have a mechanical. My time was good for 26th on the day, which combined with the day before left me 25th overall in the pro field. The results are calculated as a points based omnium, which really favors strong DH riders over XC nerds.

Overall, its a super fun race weekend, with lots of extra activities on Saturday afternoon like the bike jump into the river and party in town. I would definitely go back, and also it is a good mtb goal to have on the calendar to get me out riding on dirt more. 

-Jon


Read More
Alto Velo Alto Velo

Race Report: 2025 Portland Crits, Mens Pro/1/2

Race: 2025 Portland Crits - City Blocks, Mens Pro/1/2

Date: August 16, 2025

AVRT racers: Jon Wells

Top Result: Jon Wells, 28th of 37

Course: 0.43 mile loop with SIX corners around a downtown park in Portland, OR. The L-shaped course is super tight with basically constant corners, riding a bit like a go cart track. No elevation and kind of bad pavement in spots.

Strava: https://www.strava.com/activities/15495985548/ 

Nutrition: One bottle of 90g carb mix and a prerace redbull

Race Recap:

Went up to Portland Crit not really knowing how fast the field would be since it was mostly PNW guys and only a couple out of staters but assumed it would be no faster than a local California race. I think this may have been a good assumption, but this is like their biggest crit weekend of the summer so everyone was extra amped on it and there was pretty fast racing all weekend.

I knew this course would be a race of attrition given the super tight and technical course so I wanted to start and stay near the front. I did manage to line up front row but then I also managed to do such a bad job of clipping in that I got shuffled all the way to the back. Immediately I tried to start moving up, but the final stretch is the only place where this is possible since the rest of the course is so turny and tight. You knew immediately going into corner 1 if it was going to be a chill lap or if the guy in front of you braked at  all then you knew you were in for a hard dig to close down the gap he had made.

Ultimately I wasn’t strong enough to come around all the gaps that started opening up from literally lap 1. It ended up being a very hard race, with only like 10 guys remaining in the group and not getting pulled at the end. Was fun to see NorCal guys in the mix but pretty bummed I didn’t get to do the whole race with them. Definitely lit a fire for the next days race though!

-Jon

Race: 2025 Portland Crits - Lloyd Park, Mens Pro/1/2

Date: August 17, 2025

AVRT racers: Jon Wells

Top Result: Jon Wells, 20th of 41

Course: 0.8 mile loop with “four” corners around a shopping center in Portland, OR. The first corner was combined with this tricky low speed chicane to make it a little more technical. One side of the course went through a tunnel with slight hills into and out of it.

Strava: https://www.strava.com/activities/15495985594/ 

Nutrition: One bottle of 90g carb mix and a prerace redbull

Race Recap:

Day 2 of Portland Crits was around a shopping mall on another pretty technical course, with a super tight chicane into a downhill corner that made an otherwise wide open circuit pretty challenging. I wanted to race from the front again today, which I did a much better job of this time. This race was also the OBRA state championship so there were more guys out today.

Race was pretty aggressive from the start with moves constantly flying. I kept myself first 10 wheels to make the tight chicane easier and also follow anything that looked dangerous. My criteria for jumping in a move was it having an expeditors and POA rider plus Ama Nsek (former Natty Champ). I jumped across to a couple such moves in the first 50 minutes but nothing really stuck.

At this point, there had just been a break that got brought back into the mix and the guy riding in 6th position took a big fall in the tight chicane. I was 2nd wheel behind him and had to slow down to avoid crashing. This crash split the first 5 riders off the front (including Ama and the dangerous teams) and we ended up never seeing them again. I chased very hard and was in a pretty serious group of 4 trying to bridge for the next few laps but we never made it across. By the time the field sprint came around, I had already spent all my bullets trying to get up the road so I just rolled in with the group. I was pretty bummed to be feeling so good all race and then have the move of the day just be an unlucky split after a crash.

-Jon

Read More
Alto Velo Alto Velo

2025 Winters RR - Women’s Masters/3/4/5

Race: 2025 Winters RR - Women’s Masters/3/4/5

Date: 8/24/2025

AV racers & result: Hannah Chen, 13/24 (overall) 

Course: Two laps of a 24 mile loop. Mostly flat but with a ~3.5mi climb (Cantelow), and narrow twisty descent. There’s also a short uphill gravel stretch that is very doable on 25mm tires. 

Strava: https://www.strava.com/activities/15582696025 

Nutrition: pre-race beet shot (do these work? I dunno) and gel; 1 sugar bottle, 1 skratch bottle, 3 feed zone waters (shoutout @bottle.grab/Drew!), 2 ice packs; and 2 more gels. I forgot to put salt in my sugar bottle and got a cramp in both legs…

Shameless Plugs:

  1. Are you interested in racing next season? Then come out to one of the following recruiting rides. Both start at 9am Summit Bikes on Cal ave in Palo Alto.

    • 9/13/25 FTWNB-only recruiting ride

    • 9/28/25 open to all recruiting ride (with men).

  2. Come out to Women’s track day on 9/20 at the Hellyer Velodrome in San Jose, open to all WTFNB! REGISTER HERE. This is where I learned to ride a fixed gear bike; the track is extra fun and the friends you make there are even better. If we get 5+ AV women riders out, they will waive our registration fees. You can rent a fixie from them. There’s a beginner session clinic in the morning and then racing in the afternoon. Afterwards, there will be freeeeeeeeee pizza from Pogonip (very, very yummy)! 

Race Summary: 

We combined masters women and 3/4/5 at the start of the race so there was a big field. It was cool to see many teams represented (Sprinkles and Eclipse with 5 each, Lamorinda with 4, and other matching jerseys from Davis, Chico, SGW). I hoped all the other teams would tire amongst themselves battling it out, forget about me, and let me draft/not work.

The first lap was uneventful until we hit the gravel section before the feed zone and the climbers went bye bye. The front group had a few sprinkles; I was in the back of the 2nd group with a mix of sprinkles & eclipse. Funny story: at the feed zone Josie (eclipse) got ice, I was very jealous, but then it fell off her back during the climb. At the top of the climb, Stephen (Gabby’s husband) was handing out ice and when I tried to take one he respectfully responds, “Sorry this ice is for eclipse team only”. But Steeeeephen, I thought we were friends? No worries - my pal Josie tells me I can have half her ice. She gets her ice and then…accidentally drops it. Lol.  

We were a group of 5 after the descent. TURKEY. Random 2x turkey crossing scared the crap out of me, and a group of men decided to rush past us at the exact same time. A while later Eva (eclipse) and a Lamorinda rider caught up to us. 

As the weakest and lone rider with no teammates in the front group, I had high incentives to get a paceline working.  However, this was a complete disaster. Hats off to the Lamorinda rider for being so unbelievably good at not communicating, repeatedly ignoring all six of us trying to teach her how to do a rotating paceline, and coming up with so many novel ways to screw up a paceline. I should’ve given up and conserved energy after it was clear she couldn’t/wouldn’t learn rotations. The biggest mistake I made was when Christina (eclipse) slow rolled at the front so her teammate Eva could break away. I figured we would catch her on the climb/descent but did not realize we would lose so much time dealing with the Lamorinda rider. 

I was tired and mentally spent by the time we hit the gravel section again. It was so hot! I took 2 @bottle.grab at the feed zone. Nathan’s dad saved me with a bag o’ ice (thanks). Despite this relief, I had no more suffering left in me and got dropped the 2nd time up Cantelow. At the top of the climb I broke out my best Oliver Twist impression to guilt Stephen into giving me ice, and it worked! Thanks Stephen. 

Back onto the flats after the descent I could see Josie and Christina 10 sec up in the distance but they’re like “hahaha sucks for you bye”. Friends no more. I later learned that sweet Christina attacked her own teammate because she’s ruthless like that. Respect. The remainder of the race was lonely: I practiced my TT, got leg cramps, and ran out of water, but no one else caught me at the finish.

After the race I went to the Its-Its outlet store and got a strawberry Its-Its :)

Read More
Alto Velo Alto Velo

Race Report: 2025 Winters NCNCA Masters District Championships Criterium - Men’s 35-39 Cat 1-4

Date: August 23, 2025

AVRT racers: Vasyl Stokolosa, Michael Matthews, Ryan Dyke

Top Result: Vasyl Stokolosa (2/16)

Course: L-shaped short course in downtown Winters. 50 min race

Strava: https://www.strava.com/activities/15561687530 

Nutrition: I had half a bottle with a caffeine carb mix, which wasn’t enough in the nearly 99°F heat

Recap: Two groups raced together (35–39 and 40–44), with a total of 33 riders. The 40–44 category had blue tape on their numbers, but it was printed poorly and tapes were flying around the course.

The course wasn’t very technical, just six corners in an L-shaped layout through downtown Winters. We started pretty fast, and the first couple of laps were sketchy for me as I tried to get comfortable with the corners. After about 5–6 minutes, Michael attacked and got a solid gap for a couple of laps before being caught. Ryan and I followed the wheels and rested.

The heat was brutal nearly 99°F and my heart rate was at the limit. After 10 minutes, one guy attacked. We let him go since it was still early in the race and nobody wanted to chase. The peloton rolled pretty smoothly for most of the race with no major attacks. The breakaway rider held about a 10-second gap, and we could see him on the long stretch of the course. I figured he’d eventually get caught.

Cycle Sport and Dolce Vita had the largest squads, but they never organized a chase. With nine laps to go, the breakaway rider still had ~10 seconds. I didn’t want to burn matches chasing at that point I was cooked, just hanging onto wheels and covering small moves. My plan was to focus on positioning for the final lap and give it everything before the last corner.

With two laps to go, we cut the gap down to about 5 seconds. Looking back, that was probably the best chance to go all-in and try for the win, but I gambled that the big teams would close it down. They didn’t. On the last lap, I was well-positioned and sprinted before the final corner to take 2nd place.

The breakaway rider held on to win after nearly 40 minutes solo, averaging 390W. A well-deserved victory.

Read More
Alto Velo Alto Velo

Race Report: 2025 Pescadero Road Race - Men’s P/1/2

Race: Pescadero Road Race - Men’s P/1/2

Date: 7/12/25

AVRT Racers: Hunter Wilson, Erik Levinsohn, Greg McCullough, Cameron O’reilly, Henry Mallon, Nathan Martin, Andrew Ernst, Leo Minami

Top Result: 2nd - Nathan

Course: 3.8 laps of the Pescadero RR course. Starting in Pescadero, heading out to Stage Rd for 2 short climbs, turning onto highway 84 for a false-flat stretch before hitting Haskins, a 6-8 min climb. Technical and fast descent follows, before a slight downhill drag back to Pesky.

Nutrition: 4 bottles of mix

Strava: https://www.strava.com/activities/15093463167

Race Recep (written by Nathan): 

Our race plan was to setup me for the finish, while putting pressure on other strong riders by getting in breaks and sending people up the road.

The race got off to a hot start, Jovanni Stefani would light things up the first climb on Stage Rd, this wouldn’t split the group at all but definitely set the tone for what would be a hard race.

84 would see some more attacks, but nothing stuck and the group stayed together the first time up Haskins, for a relatively tame ascent of the climb.

Second time on Stage Rd, some fireworks would start, with strong riders like Sean Bennett throwing attacks, but nothing would stick and we’d stay together to 84.

The second time up Haskins would be much harder than the first, with the group really splitting up over the top and me being in a small separation with Erik and some others, with me asking Erik to keep it fast on the climb for me. However, we would get caught after the descent.

Before Stage Rd the third time, a group would go with Andrew in it that got some daylight. The rest of the peloton would do the first Stage climb not too hard, but the second climb was more difficult, and when people sat up I decided to attack to try to bridge to Andrew’s group.

I got a good gap and held it on the descent, but I could see Quinn on the front chasing and keeping the gap steady once we hit 84, and the group in front was too fractured at this point to work, so ended up coming back into the fold of the field.

On 84 the attacks continued, a break including Blake from Mikes’ Bikes and Erik went up the road, which was good for us.

Hitting Haskins the third time, Sean Bennett would launch a big attack, trying to bridge. Quinn, Tim, and I followed, and this was the hardest ascent of the race, with the three of us catching the group that went on 84, with the exception of Erik who was still up the road.

As the group was brought back into the fold of the peloton and Erik was caught, the last ascents of Stage Rd were pretty tame. On 84, PA for Mikes would do a mega pull nearly the entire way to Haskins, making this tailwind section very hard and dropping a lot of people from the field.

On Haskins the last time, Mikes would be on the front setting a steady, but not hard, tempo. I knew that Quinn has a good kick, so my best bet at a win would be riding the climb as hard as possible.

So I accelerated, and most of the field followed, but soon Sean would counter attack and the small selection would be made. It was me, Tim, Sean, Quinn, Tobin, and a couple u23 riders in this group. After Sean attacked, I countered his counter and just held a hard pace on the climb. In hindsight, not the best move, as this climb is fast and thus very draftable, but it’s what I needed to try to beat Quinn.

As we approached 500m to go to the finish, Tim came around me to keep the pace high for Sean. Hitting 200m to go, Quinn kicked and I tried to follow, but was nowhere near close enough, coming across in second.

Overall a bit bummed to come so close, but super happy to get a podium at state champs. The team did a ton of work, it was amazing, hopefully next year can get the win here!


Read More
Alto Velo Alto Velo

Race Report: 2025 Crusher Cup (XC MTB) Race #5 - Men’s Cat 2/Sport

Race: Crusher Cup (XC MTB) Race #5 Men’s Cat 2/Sport Age 35-44 

Date: August 24, 2025

AVRT racers: Michael Matthews

Top Result: Men’s Cat 2/Sport Age 35-44 1st/9 (Men’s Cat 2/Sport Overall 4th/45)

Course: ~3.4 mile lap completed four times for Cat 2. The course started with a single-track climb after a short section of fire road. Once up the climb there were a few loose off camber corners to watch out for, some up and downhill switch-backs to manage across the top and then a hillside descent that was on a newer trail. The second half of the course was on the flowy park section of Stafford Lake, in reverse. Passing opportunities were best on the climbs and flat fire road sections earlier in the course. Trail conditions were dry but soft in areas. The finishing straight was short. Wind and weather were not a factor. 

Strava: https://www.strava.com/activities/15573173992  

Nutrition: ~100g of carbs in a bottle for pre/during race nutrition.

Event Recap: Last race of the series! I had to finish one place behind my main rival or I would have to settle for 2nd in the series. The U19 and 19-34 started ahead of my age group. I jumped as many wheels as I could in the rush at the start and started the first climb on the wheel of my rival. The strategy had been to hold his wheel and pick a time to seal the deal when it felt right. It didn’t take long for me to get impatient and make a move on him. I had not struggled to keep him at bay previously. So I jumped him on the first climb, slowly picked off younger riders that had started closer to the front. The leaders, all from the U19 age group and one from my age group were out of sight before the end of the first of four laps. I would catch glimpses of them at certain points of the course so I decided to settle in and set a strong pace for the remaining laps. I slowly started catching and passing riders. Without much trouble I rode in for 1st place in my age category sealing the series!

PC: Seabright Photography

PC: Hiro Suzuki

Read More
Alto Velo Alto Velo

Race Report: 2025 Sand City Criterium - Men’s E3/4 + Men’s E2/3 

Race: 2025 Sand City Criterium - Men’s E3/4 + Men’s E2/3 

Date: Sunday, July 27, 2025

AVRT Racers: Drew Matthews, Kevin Kauffman

Best Finish: Kevin Kauffman 24/37 in E3/4, both DNP in E2/3


Course Description: A fast, short, ~1km course of pretty good quality pavement and 10 corners, a few of which could be linked together. One led to a short climb as the main feature and a fun S-weave into the finish sprint. There were some curb hazards in a few areas that were well marked and called out by officials, but that doesn't mean everyone successfully avoids them (foreshadowing). 

Strava: https://strava.com/activities/15257610920 + https://strava.com/activities/15258090374 

Nutrition: Banana, cold brew coffee, and a half a bottle of carb mix at the start.. ~50g carb mix during each race and in between.


E3/4 Recap:

The race started off with a conservative pace, sans one kid who must have taken the officials first-corner warning as a challenge and, as foreshadowed, the corner was not cleared and we saw his bike take a couple flips through the air. Ok - looks like this will be a race requiring my best cornering competencies! Drew and I spent the bulk of the race in the back third, watching to make sure there were no splits so I could take cleaner lines especially as I planned on doing the E2/3 race next and wanted to keep surges to a minimum. 

After a few laps of familiarization, the course ended up being a lot of fun. I found positions to be the easiest to make up on the climb feature and immediately over the top of it as the pace was slowest here. With 5 to go, I made some good moves in that location and was able to find an acceptable position for the finale. On the bell, I rode the wind coverage with a plan to hammer up that final climb but my plans were promptly thwarted as I got caught in a pileup at the bottom of the hill, long after free lap opportunities. I stayed upright but that ended my race. Pretty disappointing as I felt quite good at the end but that’s just how racing goes. 


E2/3 Recap:

Started in the back third since it worked in the prior race but this one ended up being a lot more surgey than the 3/4. This led to a lot of small gaps very regularly along the lap in no common location. After covering a few and surfing wheels I got gapped with nobody to come around and close it. Looking behind me, I saw there were only 3 others with me with the rest of the field out of sight. Spent three laps mostly pulling for us stragglers and burning through the matches I had left. Had the pleasure of hearing our increasing gap read out by the announcer for another few laps until we finally got pulled. 

Drew and Kevin on the back side of the course in the E2/3 race

Read More