Race Reports

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
Alto Velo Alto Velo

Race Report: 2025 Patterson Pass Road Race - Men’s Cat 4

Date: August 3, 2025

AVRT racers: Phillip Maier, Vasyl Stokolosa

Top Result: Phillip (5/12)

Course: The race consisted of two laps, each approximately 22 miles with 2,200 feet of climbing. The course starts with a 3.9-mile climb up Patterson Pass Road into an absurd headwind, which makes the 5.4% average gradient seem deceptively easy. A fast descent on decent pavement leads to the Flynn Road climb (2.2 miles at 4.3%, though a false flat lowers the average gradient). After Flynn Road, there is one very technical, slow corner followed by about 12 miles of fast, straight descending on mostly excellent pavement with some small "kickers." The race ends on a heavy crosswind section, culminating in a 0.44-mile, 6% kicker to the finish line.

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

Nutrition: Two bottles with carb mix and one neutral water from Nathan’s dad and my sister in the feed zone (along with some helpful ice socks!).

Recap: (written by Phillip) Vasyl and I are both heavy diesel engines (85kg+), and we were hoping to use this to our advantage. We expected the race to be largely attritional due to the headwinds, heat, and elevation gain. Our plan was to stick together until after the final climb when the course flattened out, and then team time trial our way to victory.

Things started out very chill, and the peloton stuck mostly together on the first lap. We were chilling at 3.5 w/kg for 22 minutes, followed by an even chiller 10-minute effort up Flynn. I think everyone wanted to get a sense of the course first.Despite ample warnings about the technical corner after Flynn, someone blasted straight into the dirt. Otherwise, the descent was fast and relatively carefree.The real race started on the second lap. About five minutes into the climb, an unaffiliated rider broke away from the pack, followed closely by a chase group of three. The rest of us (including me) were caught a bit off guard; it was so windy we were mostly heads down with our shoulders hunched.This turned out to be the decisive moment of the race for three reasons:

  1. I didn’t attempt a serious bridge, as I assumed my weight would help me catch the chase group on the descent.

  2. Vasyl had disappeared. (I found out later he had a stomach bug and couldn't hold any fuel down. Moral of the story: Diesel engines need their fuel!)

  3. Even without bridging, the effort ended up being a brutal FTP test (3.9 w/kg) for 22 minutes—something I need to train more with the LKHC season approaching!

After deciding not to bridge, I stayed with the remainder of the peloton (four riders) as we chased the three-rider chase group, which was chasing the solo breakaway. At the start of the flat section, I promptly dropped my chain on a hard right-hander.I spent 30 seconds fixing it and then, sadly, spent the next hour fighting headwinds trying to catch the peloton. I did manage to catch them on the final descent and then promptly spent all my matches to create a gap and time trial away from them to the finish. No sprint was needed for 5th place.I think a lot was learned in this race, most importantly: Keep your head up and pay attention! If you don’t notice when a break goes, the price to catch it goes up every second. 

Read More
Alto Velo Alto Velo

Race Report: Chicago Grit W2/3 Day 8-10

Race: Chicago Grit - Women’s 2/3 

Date: July 25-27, 2025

Day 8 - Elgin

AVRT racers: Louise Thomas, Maeve Roach, and Rachel Hwang

Top result: Rachel 1/20

Course: 0.8-mile loop with 6 corners and a “hill” (~0.1 miles @ 5%)

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

Recap: (Louise’s perspective) Our goal going in was to get Rachel the win. Maeve had just wrapped up seven days of solo racing and had the omnium locked up, so she was happy to work for one of us, and it was Rachel’s only Cat 2/3 race of the weekend before fighting for survival with the P12s, so we wanted to set her up.

The plan was for Maeve and I to throw some early attacks to tire out the field, and for Rachel to go for the sprint at the end. After a couple solo wins earlier in the week, we figured people would at least chase Maeve.

The course was fun - chicane into a downhill, then straight into an uphill corner. Some of the riders were a bit sketchy though, so it was definitely one to stay near the front.

Maeve attacked first, but the pack shut it down fast. A couple of laps later, I attacked on the hill and no one followed. I went off the front solo for a couple of laps, but couldn’t maintain it and eventually got reabsorbed into the pack. 

Then a Team Wisconsin rider attacked and Rachel went with her, which turned out to be the move. The field never saw them again. A few riders tried to chase, but with no coordination, they never really had a chance. 

(Rachel’s perspective): We chatted about Maeve and Louise throwing attacks, seeing if they could get in a break, and if so, I potentially moving up to join them.  For the first 17 minutes they attacked, and I sat in the field.  My intuition said none of these would stick.  Then a girl in red attacked and my intuition said to jump on her wheel, so I did.  I said, “Do you want to work together?” “Yeah” so we switched pulling.  I was feeling pretty good to be honest so didn’t mind pulling a bit more than her, but we ended up pulling evenly, always trading in the same spots, and I would always pull up the hill.  Well I thought I was going smoothly but she told me that I didn’t have to accelerate up the hill so I slowed down.  For a while the field chased and each lap a man or two would tell us how far ahead we were.  Finally last few laps I knew I could relax.   Last lap I pulled for a decent amount of it and knew I was more fit than her but still wanted to be first into and out of the downhill corner.  So I pulled and went through the corner and attacked and dropped her very quickly.  I tried to post up as it’s likely my last ever race not racing with cat 1 but could tell I was unstable so ended up raising one arm up.

Day 9 - Lake Bluff

AVRT racers: Louise Thomas and Maeve Roach

Top result: Louise 4/23

Course: 0.8-mile loop. Basically flat but with lots of corners

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

Recap: (Written by Louise) With Maeve and Rachel already scoring wins, it was my turn to be the protected rider. The course seemed reasonably technical and I don’t have much confidence in my sprint, so it seemed like a breakaway would be the way to go. My plan was to sit in for the first half, then try to get something to stick. 

The early pace was spicy, with Maeve and others launching solid attacks. Positioning was tricky with the corners and only two real spots to move up.

Just before halfway, the Team Wisconsin rider (from yesterday’s break with Rachel) attacked. Maeve shouted for me to go, so I bridged. We got a small gap, but the field closed it. In hindsight, I should’ve gone straight to the front to lift the pace instead of sitting on her wheel.

A few laps later, I attacked solo but got caught within a lap. I tucked in to second wheel. Since the field seemed motivated to chase, and I was now sitting in a good position, I reevaluated the plan and decided to play for the sprint. For the next 6 laps, the rider on front seemed content to pull the entire group at a reasonably high pace, even though she didn’t have any teammates. I later found out she is a triathlete - checks out. 

With 2 to go, she upped the pace, possibly trying to ride us off but really just giving everyone a leadout. With 1 to go, everyone started jockeying for position, and I lost my spot, dropping back to 5th wheel. During the sprint, I was overtaken by one or two riders, passed one or two others, and ended up in 4th. Looking back, being 2nd or 3rd wheel out of the corner would have been better because I did get boxed in a bit. 

Day 10 - Fulton Market

AVRT racers: Louise Thomas and Maeve Roach

Top result: Louise 3/23

Course: Flat, 4-corner crit. One of the long stretches was under an elevated train track. That didn’t impact the race, but it made for some cool photos.

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

Recap: (Written by Louise) Since the field was motivated to chase yesterday and the course didn’t offer many good attack points, I decided to play for the sprint again. I don’t usually love sitting in, but luckily other riders kept things lively with attacks.

About half way through the race they announced a $50 prime, then on the next lap a $100 prime. Turns out in crit racing, if you want to make things spicy, you can just throw money at the problem. It worked: the pace surged, and riders were shelled. Maeve got caught behind but managed to bridge back.

A few more attacks went, some dangerous enough for me to chase them down, but nothing stuck and in the end, as predicted, it came down to a field sprint. I didn’t learn my lesson from yesterday and came out of the final corner 5th wheel again.

This is where things got super sketchy. The lead rider drifted into another's line, causing a crash - collarbone broken, bike flying into the middle of the road. I dodged it but nearly got pushed into the barriers by another rider in the chaos.

I crossed the line 4th, but the winner was DQ’d for not holding their line, bumping me up to 3rd. Apparently, the official winner had been lapped, so maybe I should’ve gotten 2nd, but honestly, I’m just relieved I stayed upright.


Read More
Alto Velo Alto Velo

Race Report: 2025 Shea Center Criterium - Men’s Pro/1/2/3

Race: Shea Center Criterium - Men’s Pro/1/2/3

Date: August 10th, 2025

AVRT racers: George Wehner, Henry Mallon, Leo Minami

Top Result: George 5/30 (Pro/1/2) 5/42 (overall)

Course: 0.6 mile 4 corner crit, with a slight uphill on the start-finish straight. Strong wind coming from the west (start-finish straight was in a left-to-right crosswind).

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

Nutrition: 2 full bottles of water, each with 1 tsp sodium citrate. I went through both of them — it was about 95 degrees outside.

Recap: (written by George) This was my first local P12 race after upgrading to cat 2 a couple weeks ago at Chicago Grit, so I was hoping to do as well as I could and see how I stacked up against the rest of the field. Our strategy was to have Henry and Leo try to get in a breakaway, while I sat in as the protected sprinter.

The most threatening team in the race was SpeedBlock Terun, as their sprinter Trevor King won the race last year. Additionally, Monterey Bay Racing had 3 riders, and there were some other small teams and strong solo riders.

This race was quite dynamic from the start — there were a couple significant breakaway attempts in just the first 15 minutes. Henry kept attacking the field to try bridging to these breakaways, and he successfully made it up to a couple of these early breaks, but none of these breaks lasted longer than 5 minutes.

That changed about 20 minutes into the race, when a group of 8 or so riders, including Jacob from SpeedBlock, got up the road and gained a 15 second gap on the field. At the time, I thought Leo was in that breakaway as well, but they were far enough up the road that I couldn’t clearly tell (I was sitting pretty far back when the break went). 10 minutes later, I saw Leo come up behind me and realized I completely misjudged the race situation. Fortunately, Henry and a few other riders had been controlling the field and keeping the breakaway at about 15-20 seconds, but at this point in time I told Henry and Leo to start working to bring the break back.

It took quite a while to catch the break, though. Henry and Leo couldn’t do it alone, and the break hovered at about 10 seconds until the final 5 or 6 laps. I even sent a short-lived bridge attempt pretty late into the race, but all that amounted to was motivating the field. We finally caught the break with about 4 laps to go, at which point solo rider Aubery counter attacked and got a solo gap.

I moved up quite a bit to join Henry and Leo near the front of the race, and with 3 laps to go I told them to take the front of the race to keep things fast. I knew we needed to catch Aubery, and I also wanted to avoid getting swarmed. Henry pulled for about 3/4 of a lap, and then Leo pulled for another 3/4 lap, keeping me out of trouble and making sure Aubery’s gap didn’t get any bigger. With around 1.5 laps to go, though, both of them were gassed and I was on the front with no teammates left. I looked back and saw Miles Hubbard and the Terun train right behind me; fortunately, with Aubery still off the front, they pulled through and I could slot behind them. It stayed really fast until we caught Aubery with half a lap to go, at which point I started getting swarmed a bit and lost a few positions. However, I picked up a couple positions in the sprint, ending up with a 5th place result.

As a fresh cat 2, I’m very happy with how that race went. I still have a bit of room for improvement in assessing the race situation and staying out of trouble in the last lap, but proving that I can compete at this level has given me a massive confidence boost. Huge shoutout to Henry and Leo for some amazing teamwork — I couldn’t have gotten that result if they hadn’t been pulling the break back while I sat in, and the two of them keeping it fast in the final few laps was incredibly helpful as well.

Read More
Alto Velo Alto Velo

Race Report: 2025 Shea Center Criterium 4/N

Race: Shea Center Criterium 2025, Women’s 4/N 

Date: Sunday: August 10, 2025
AVRT racers: Elena De La Paz

Top Result: Elena De La Paz 4/9

Course: ~1km roughly square- same course as the Early Bird crits. Slight crosswind after the 2nd corner and headwind between the 3rd and 4th corners of the course. 

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

Nutrition: Oatmeal to start the day. Some Clif Bloks pre-race. It was pretty hot (90+ degrees F); I decided staying cool would be more helpful than a long warm up so I went to an air conditioned gas station and ate a bonus pop tart.

Race: Since I attended several early bird crit races, I am fairly familiar with the course so I was excited to give it a shot. The race also had decent turnout, with 3 of the other riders from the Super Sprinkles team. 

The race was delayed, so we got to experience even more of the hot Livermore sun. However, it was kept to 30 minutes which is quite short. Between the short race and small field size, I should have realized that the odds of a break, even a small one, making it were good.  

All 3 Sprinkles riders started strong. I tend to start crits from the back of the pack, since I’m new to racing and want to avoid pack dynamics, but the group kept splintering and I kept having to bridge the gap to the front. Just as I caught the 3rd super sprinkle rider, she slowed down the pace, leaving her two teammates to continue on ahead. I was a bit tired from a couple of these bridge efforts so I didn’t pursue the main group- this was my primary mistake. 

The Sprinkles rider, 2 other women, and I formed a chase group, but we didn’t communicate. I did a lot of pulling because the Sprinkles rider had no incentive to, and she positioned herself right behind me. Then, midway through, she attacked. I realize her goal at the time was to break up our group and keep us from organizing to catch the break. At the time, my main focus was “stick with her” - which I did, but the non-Sprinkles riders of our group did not. The chase group was effectively neutralized. 

At this point, the race was basically decided. I did a lot of pulling but when it became clear we wouldn’t catch the break, I asked the Sprinkles rider to pull a bit and she did. I got mixed up on the lap counter and sprinted a lap early, but after all the pulling I did, I bet she would have out sprinted me anyway. Overall, I felt fit enough to stick with the group and I learned a bit more about how tactics can play out- the only thing I would have done differently is made a stronger effort to stick in the break.

Read More
Alto Velo Alto Velo

Race Report: 2025 Patterson Pass Road Race - Masters 50+ 4/5

Date: August 3, 2025

AVRT racers: Shai Traister

Top Result: Shai (1/8)

Course: Two laps, ~22 miles/~2.2k feet climbing each. The course starts with a 3.9 mile climb of Patterson Pass Road into an absurd headwind, which makes the average gradient of 5.4% seem deceptively easy. A fast descent on decent pavement leads to the Flynn Road climb (2.2 miles, 4.3% but with a false flat lowering average gradient). After Flynn Road there is one very technical/slow corner followed by ~12 miles of faaast, straight descending on mostly excellent pavement with some small “kickers.” The race ends on a heavy crosswind section, culminating in a 0.44 mile 6% kicker to the finish line. 

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

Nutrition: Two bottles with carb mix, one neutral water from Nathan’s dad in the feed

Race recap: The race started with the first climb up Patterson pass into a block headwind. We were all individual riders, so we more or less rotated, taking turns in the wind and then drifting to the back to find some shelter. This made for a pretty slow climb up Patterson. As we got to the final part of the climb, where it gets the steepest, I noticed some riders were starting to breath hard around me. It was my turn to go on the front, and I decided to push a hard pace all the way to the top. My goal wasn't to go for a solo break (still early in the race) but I didn't mind dropping a few riders or making it difficult for the others.

It worked! When I got to the top I only had one other rider with me (Owen from Berkeley bicycle), with the next rider about 15s behind. I let Owen go first on the descent (after I pulled the last section in the headwind) and I yelled "Let's work it". Nevertheless, he just free-wheeled down. I passed him and continued pushing on the descent. After a short pull I flicked my elbow and he passed me, this time pulling through. I looked behind and saw no one.

We continued trading pulls and when we turned into Flynn we could see the next rider down the hill, about 40s back. I pointed the rider to Owen, to keep both of us motivated. We climbed Flynn at a good pace but nothing crazy, and then down to the back side where the headwind we had earlier turned into a strong tail wind. I brought my climbing bike to this race thinking it's a hilly race, but now due to the tailwind I was on the verge of spinning out. I wished I had brought my other bike, as even on the climb with the headwind a more aero bike could be better. Owen had bigger gearing and he was content to be on the front, so I just sat on his wheel trying not to get myself dropped.

When we got to the 2nd Patterson climb I was sure Owen would flick me to go to the front, but he didn't! At that point I was pretty confident we wouldn't get caught from behind, so I didn't volunteer to take pulls up the climb (headwind). I felt that I could attack and possibly gap Owen, but I assumed he would catch me on the descents / tail wind sections. So I played nice, and kept it together. We even started chatting a little.

On the backside - same story - Owen on the front and I'm sitting on his wheel. Got to 1K to go and I expected something to happen. Nothing. Got to 200m to go and I remember thinking "ok enough being friendly, this is a race" and opened up my sprint. 200m was a bit far out for an uphill sprint in a strong crosswind, but I assumed I was probably in a better shape after sitting on for most of the race. I immediately got a gap and I continued pushing it all the way FTW!

Read More
Alto Velo Alto Velo

Race Report: 2025 Tour de Bloom - Men’s P12

Race: Tour de Bloom 2025 - Men P12

Date: May 2-6 2025

Racers: Nathan Martin, Flo Costa, Devin Wilson

Stage 1: Waterville RR

Best Result: Nathan 5th/101

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

Waterville RR is a fun one every year. Usually there is lots of wind, sometimes even some inclement weather. This year was perfect temps and rather mild wind, but just enough for it to hurt.

We had wind coming from the southeast, so tailwind anytime we were heading west and that’s where the race would get hard.

First lap the fireworks started about ⅓ of the way through the lap on the long stretch at the top of the course heading west. Attacks were going and we were strung out into the headwind, then when the KOM point hit it really blew apart. I was in a group of 5 behind another group of 7 up the road and took turns pulling to make the bridge to them. Lots of strong riders in the bunch, pretty much every team represented, so I knew this had the chance of going the distance.

For the rest of lap 1 and all of lap 2, I basically just took turns with the group. We got a pretty healthy lead since we had all the teams represented and didn’t have to work too hard.

Lap 3 that would change, Project Echelon started throwing some attacks on the steep pitches on the course and the group really started going at each other. There would also be a small crash involving a Project Echelon rider on the top part of the course before the KOM, which will be important later.

In the latter half of lap 3, the gap would start to come down between us and a bridging group behind us. In the main group, Project Echelon had basically nuked it to try to bring up one of their riders since their favored person got crashed out on this lap.

The gap continued to shrink, and people started skipping pulls in the lead group. With about 3.6 miles to go, a POA rider would accelerate a bit off the front, and that was enough to blow up our group. I joined it along with 3 others, and there were 5 of us with a gap.

I would take some pulls, we had a bit of crosswind so I tried to gutter the group a bit. I found myself distanced a bit after a pull and had to chase, so when it came to the sprint I had nothing and had to settle for 5th out of our late break of 5.

Overall a hard first day of bloom, but excited to be in the mix.

Stage 2: Downtown Night Crit

Best Result: Flo 27/98

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

Livestream: https://www.youtube.com/watch?v=uSd89kWArEA

This year the race organizers opted against making the fields race twice on a single day and instead reserved the entire day just for the crit. This meant that we could sleep in and have a chill all day until the crit, which was supposed to start at 9 pm. I went on a morning spin with Nathan to pre-ride the TT course for Stage 4. Thankfully, the downtown crit was only a couple miles away from the hotel we were staying at, which made it convenient to roll to the start and warm up.

The evening was quite cold and unfortunately the races were running a bit behind schedule. As a result the field, consisting of 100 skinny dudes, had to wait around after warmup for nearly 20 minutes in the 50 degree weather, not knowing when the race would start. This made for a pretty tough start, but finally we started ripping around the ½ mile laps in the dark.

The previous year it had rained all day before the crit, which made the field very apprehensive in the corners and subsequently strung out the peloton and ironically made the race safer. However, this year, there was a strong headwind on the backside which had been the most difficult section the prior year. Due to the headwind, the dry conditions, and the huge field, the course was much less attritional and it was a lot easier to sit in the wide bunch. Nevertheless, I focused on constantly moving up and staying out of trouble.

About 30 minutes in there was a huge pile-up ⅓ of the way down the field. About 20 riders went down, including Devin, with me and Nathan narrowly avoiding it. Thankfully it was in the uphill section, meaning the speeds were slightly less high. Devin unfortunately cracked his handlebars within the literal pile of bodies and bikes. To make things worse, the following lap the field came into the same corner at full speed, not expecting there to be motorcycles stopped in the middle of the road. A few more guys ran into the motorcycles and went down. Then the race was neutralized since the field only had about 30 riders left.

We then waited in the cold once again for another 15 minutes to let everyone get their bikes and bodies checked out. Personally, I think we should have just resumed the race with a reduced field and not take any time gaps. By this point it was past 10pm and less than 50 degrees out. I didn’t really feel like racing anymore.

Finally the race restarted and I was freezing. My body warmed up a bit in the next few laps but mentally I wasn’t locked in. It seemed like the field also became super twitchy. There was another small crash and more sketchy incidents with riders running into each other. I realized that I wasn’t focused anymore and consequently didn’t want to take unnecessary risks in the finale. I still tried to stay in good position, but was missing that extra edge and rolled it in for 27th. Kind of a weird crit with the field bunched up, the cold, and the crashes, but overall the atmosphere in downtown Wenatchee was great.

Stage 3: Plain RR 

Best Result: Nathan 7/95
Devin Result: 38/95

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

After scrambling to get a neutral bike to ride after breaking my bars in the crit, we lined up at this beautiful place called Plain, WA. Surrounded by towering trees with outstanding views, it was a really nice day for a bike race. This was quite a unique circuit too, finishing off with a 4-5 minute climb at about 7%. The circuit itself we only did 3 times, and it wasn’t too difficult. There wasn’t much climbing or technical aspects of the course, but it was definitely wicked fast in some sections.

The game plan for us was to stay safe and toward the front of the race, watching for any dangerous breakaways and keeping an eye on who was controlling things. Early on in the race a break of 3 went. Only one of the riders was dangerous for GC (Tim McBirney). But there were no Project Echelon or POA riders in that break, so there wasn’t much of a reason for us to chase. Things were relatively contained for the first 2 laps, but on the third lap things really ramped up. Because of the nature of the finish, positioning into that final climb was incredibly difficult and was quite the battle. Flo and I worked hard to make sure Nathan was protected and in a good position leading into the base of the climb. Though, I didn’t feel terribly confident riding in the field on the neutral bike, and it was difficult battling the wind and every other rider trying to get to the front. Everyone knew how the race was going to play out, so the trains organized very early. That said, the battle to get to the front was long, lasting for probably 15-20 minutes.

I would have liked to get Nathan up in those first 5 wheels into the base of the climb, but with all the shuffling going on it was no easy task. I’d say we got him up in the first 20 wheels or so. Not the greatest but better than being at the back. The finish for me wasn’t the best - I’d had spent myself trying to get up toward the front of the race and had nothing left for the climb. Flo came around me pretty quick and was a bit off the back of the main group but Nathan was sitting really well in there. Although we didn’t have him in the best place coming into it, he still managed to pull off a 7th place on the day. 

Stage 4: TT

Best Result: Nathan 4/90

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

This TT was a fun one, the longest TT  I’d ever done at 38 minutes. It was a tricky one too, slight downhill and tailwind on the way out and uphill and headwind on the way back, so you had to be very careful to go easy enough on the way out. You could really gas it on the way back, but not so easy that you’d lose time.

It was pretty fun, I had my dad in the follow car behind me with the team radio, so he was able to speak to me the whole time and give me updates on the terrain, whether he could see riders in front or behind me, etc.

Overall I feel I paced it really well. I targeted around 87-90% of my FTP going out, and really just did a 20 minute all out test on the way back. I stayed really aero as well. I could have gone a bit harder on some of the hills, but all is good.

Was in a solid 4th place on GC with only a few seconds to 3rd, it would all come down to the last day.

Stage 5: Farrar Queen Stage

Best Result: Nathan 4/81

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

What a beast of a stage this was. Only 56 miles, but 8,500 ft of climbing finishing with a hard 31 minute climb.

Right off the bat I had a poor start, my Di2 cable connecting my rear derailleur to the battery got unplugged, so I had to stop and plug it back in then chase back on through the caravan for about 10 minutes. Not ideal, but no race ever goes perfectly to plan.

After catching back on, my goal was to conserve energy on the little circuits as much as possible before the main climbs started. I tried to hold decent position, and didn’t follow any attacks.

The first time up Joe Miller was tough, I never felt super stressed but it was clear this would be a hard day. I stayed as close to the front as possible to minimize having to cover gaps as people dropped.

Feed zone went well, descent was smooth, and got ready for the second time up Joe Miller.

I thought this would be harder from the bottom, but the pace was pretty similar. Until Quinn attacked, then the pace noticeably went up as POA set a harder pace to make sure he didn’t get much of a gap.

He was caught before the feed zone, and pretty soon after Project Echelon had a rider attack. He would very quickly get a decent gap, and again POA were put on defense as they rode to slowly bring the gap down.

We hit the second biggest summit of the day, and began the descent to the final climb. I was near the back at this point and had to do a little work closing gaps on the descent, but not too bad.

As we started the final climb, in my mind my biggest priority was not blowing up. I had a target wattage in my head and knew I could not go over it for extended periods of time.

As attacks started, I stuck to my wattage, even as I dropped off the group. Soon though, I would be passing many people, and eventually there were only 3 riders in front of me.

The gap would start at about 25 seconds, and I kept clawing away at it all the way up the 30 minute climb. Unfortunately, as we crested the top before a quick descent to the gravel finish, I didn’t quite manage to make contact with them, and would finish just 4 seconds outside what I needed to move into 3rd place on the day.

Overall disappointed to not make it on the podium, but really couldn’t be too unhappy with how I did against some really strong riders. It was a super experience and can’t wait to go back.

Read More
Alto Velo Alto Velo

Race Report: 2025 Patterson Pass Road Race - Men’s E3

Date: August 3, 2025

AVRT racers: Wil Gibb, Jeremy Besmer, Matthew Younkins, Ryan Dyke

Top Result: Wil Gibb (3/13), Jeremy Besmer (4/13)

Course: Three laps, ~22 miles/~2.2k feet climbing each. The course starts with a 3.9 mile climb of Patterson Pass Road into an absurd headwind, which makes the average gradient of 5.4% seem deceptively easy. A fast descent on decent pavement leads to the Flynn Road climb (2.2 miles, 4.3% but with a false flat lowering average gradient). After Flynn Road there is one very technical/slow corner followed by ~12 miles of faaast, straight descending on mostly excellent pavement with some small “kickers.” The race ends on a heavy crosswind section, culminating in a 0.44 mile 6% kicker to the finish line. 

Strava: https://strava.app.link/ZIJRvzGPxVb

Nutrition: Three bottles with 110g carbs (one from Nathan’s dad!), one neutral water

Recap: Written by Wil 

This race had it all – ripping headwinds, the threat of cows on the road, a breakaway (doomed), another breakaway (success!), and a rider who dared to ask the question – do the rules really apply to me, even if I don’t like them? 

I wanted to try something new going into this race, so the team agreed to support a breakaway effort. We felt this could be successful as we were the only team in the race, and it wasn’t a pure climbers race. Jeremy suggested that I try on the flat/false flat sections of the otherwise fast Altamont descent because it would be easier to distance the junior riders on those sections compared to the climbs. Naturally, I inexplicably went for a break on the steepest top sections of the Patterson climb – I did get a decent gap thanks to the (surprised) team blocking, but was caught a few minutes into the descent, first by someone supertucking (more on that later) and then by the rest of the group.

The rest of the descent was uneventful, apart from supertuck dude almost crashing. On the Flynn climb, I rode up to him and started with a compliment (he was riding a really cool Scott foil, clearly inspired by SAFA Brian) before kindly asking him to please not do that again. A few other riders chimed in (even one of the juniors), baffled that he thought supertucking was legal. Also, petition to change the name supertuck as it does sound really cool. Tubesitting?

Back in the race, we had finished the Flynn climb and were zooming on our seatposts all the way down Altamont. There was a moment of soft pedaling from the front riders and I used this moment to attack on the false flat section of this fast road. Thanks to great teamwork, the gap widened. Not anticipating success, now I had to figure out how to do a solo breakaway – I decided to keep my heart rate below 170 to avoid cracking, keep drinking, and wait at least 30 seconds in between glances over my shoulder. 

Going into the base of the Patterson headwind climb, I had a 2 minute gap, which narrowed to 1:20 at the top of the climb. I sent it pretty hard (for myself) on the descent and kept my own pace on the Flynn climb, but there were fast and furious attacks on Flynn in the peloton and I was caught shortly after the crest of the climb by two U23 riders. I could tell they were strong and were willing to take more risks than me on the fast sections of the course, but fortunately we were all working well together and managed to get a comfortable gap on the peloton going into the final lap. We were together until the final sprint, when the youths predictably danced away while I pedaled in for third. Jeremy was first from the bunch in 4th, Matthew 7th, and Ryan (despite recovering from illness!) 11th. 

Perspective from the peloton from Jeremy:

We enjoyed the opportunity to sit in with Wil off the front. There would occasionally be an attack or a concerted effort to organize a chase effort, but we stayed in good positions to follow those. There was more consistent chasing on the patterson pass climb, which set up for what we expected to be a hard effort to chase down Wil on Flynn. This fell apart a bit on the second half of the climb until the two U23 riders attacked on the steep part. I was unfortunately out of position to follow this to get a free ride up to Wil, but figured that if they caught Wil that group could hold it to the finish. It seems everyone else felt the same way, so there was minimal chasing effort for the rest of the lap.

We decided to sit in until Flynn on the next lap where we would decide whether the break had enough of a gap for us to attack the remainder of the field. At the top of Patterson Pass the break was 3+ minutes ahead so we were ready to race for fourth. The descent was pretty aggressive and I got separated from most of the group as we turned into the Flynn climb. Thankfully Matthew came by and did a great job pulling me back to the group just in time for the steep part. I waited at the back of the group for the steepest part, where I attacked and quickly got a gap that I held to the top of the hill. Then I settled in for a hard and fast ride down the descent and windy flats to the finish. My power meter hadn’t worked all race so I just kept riding on old school vibes, which worked out to keep me away solo for fourth place.

Read More
Alto Velo Alto Velo

Race Report: Chicago Grit WP/1/2 Day 9-10

Race: Chicago Grit WP/1/2 Day 9-10

Date: July 26-27, 2025

AVRT racers: Rachel Hwang 

If you’re only gonna read one, read Day 10.

Day 9: Lake Bluff; Result: 40/63 pulled but placed; 

Course: it’s a very technical course. so many corners I lost count, but actually 6 corners. narrow roads twisting and turning through a neighborhood, also meaning narrow turns, with one straighter long section to the finish line

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

Race Recap: 

Ok, this race killed my morale.  Long story short I lined up near the front (second row) and got shot out the back within a few laps, and got dropped from the main group in 20 minutes.

From yesterday, I knew I had to line up near the front, so I was literally first to the gate before they staged, and by the time everyone called up, second row(?).  The strategy to survive this race was to stay in the front.  With the technical course, knowing I can’t keep position and that that’s the strategy to get to the end, very scared about cornering squished between riders, I really got in my head.

We start, and immediately, I’m getting passed left and right, and as I’m not comfortable being in a small space, slowly slip to behind their wheels every time, and that’s how I always end up in the back.  Within a couple laps, I go from the near front to the back of the peloton.  First few laps are chill, but after a few, it strings out, and I’m playing catch up, doing efforts out of the last corner every time to catch up to the people in front of me.  I have power, so I’m able to for a bit, but it’s annoying that every lap this girl would pass me around one of the many corners, only to get dropped out of the last corner meaning I had to bridge the gap, every. Single. Time.  So that was a lot of matches.  All of a sudden one lap, they were just too far ahead, and I knew (or thought) I couldn’t catch back up.  I ended up catching a girl in front of me, and the moto tried twice to get in front of her, but with the corners back to back and narrow rodes, the moto failed, allowing more of us to group and stay in the race as a chase group.  I believe we were actually chase group #2, and for a while, I could see the group ahead of us, so achievable, but I couldn’t do it alone.  Don’t get me wrong, the group was helping, just not enough, not like that Fount girl yesterday who gave me the last bit of boost I needed.  After I got dropped, the rest of the race in that chase group felt pretty easy.  There were maybe 6 of us, and about 3 of us who pulled regularly.  If I’m trying to win a race, I don’t want to pull, but in this case, knowing I won’t win, knowing I more than likely won’t even make it to the end, knew if I didn’t catch back up, would just get pulled out, so was more than willing to pull if that meant staying in.  But I couldn’t do it alone, and eventually we got pulled.  From 20 minutes, getting dropped from the main group, to 43 minutes, I guess it was worth it, but man, I was so disappointed with myself.

Day 10: Fulton Market Grand Prix; Result: 32/65 finished the full race in main pack

Course: four corner flat crit, very wide roads, very long (~0.28mi straightaway), one under train tracks

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

Race Recap:

My morale was basically down the gutter today.  Who do I know who’s great technically at crits? Whitney.  I texted her, gave her a call, and she coached me through some really good points on how to not get dropped.  My main takeaway, always move up.  Never settle for my position, and always move up.  Second main takeaway, it’s ok to burn matches moving up, because it takes way more energy in the back slinky-ing.  Third takeaway, be proactive, not reactive. Get in those first few pedal strokes early before the surge begins.

So I lined up at the front again.  As we start, the entire time, I think about Whitney’s voice echoing in my head, “always move up.”  I’m still not good at moving up within the pack, so I stay on the outer edge of the peloton the majority of the race, having a security curb next to me. At least the curb doesn’t move, but riders do.  As a result, I’m not getting much draft benefit at all, but at least I have the ability to move up.  From this race, I also realize I got some decent power, that despite being in the wind for most the race, I’m still able to push and move forward.  I also tell myself there is no way I’m getting dropped, that I’ll get dropped from trying too hard before I get dropped for not giving it my all. For the first half of the race, I just kept trying to move up constantly, never settling.  By the second half of the race, where I started getting a little fatigued, I would settle if I was in the top 50%.  Honestly, that was the entire race.  As the laps went on, primes were being shouted by the announcer, and I can’t lie, all those $500 and $200 primes were very enticing.  My goal was to finish the race, but I can’t deny there were many moments I thought about blowing my legs up for a $500 prime and to get dropped out of the race.  Because in those moments, I actually felt decent, legs, heart rate and all.  But no, I need to prove to myself I can finish the race.

When they put up the lap counter, I started counting down the laps, starting to get tired, hoping to make it to the end.  I also couldn’t tell what was going on ahead, and apparently there were a few breaks, that’s probably when the peloton was stringing out and I was pushing it a bunch.  I was just trying to stay with the peloton.  The last few laps started getting really hard, but I managed to keep my power relatively consistent, all things considered in a crit with breakaways, so my legs felt decent, and heart rate still ok.  With 2 laps to go, I knew it was go time.  For the last lap and a half, it was basically all out effort.  Out of the last corner, I managed to pass 2 or 3 people.  

I passed the line, I finished.  I actually smiled because I finished.  It’s not even a great result, people strive to win, but I was just happy I finished.  Sure it was a 4 corner crit, and I’m not usually stoked on a flat four corner crit, but boy was I happy today was a four corner crit.

Nutrition: A Torq caffeinated gel 15 minutes before the race, a bottle of Tailwind mixed with Liquid IV for the race.


Take away: I am so incredibly happy I got to race these big P/1/2 fields and gain some experience.  That’s what I came here to do, and I was able to get that experience.  I’m also very grateful Alto Velo provides me the opportunity to race these events.

Read More
Alto Velo Alto Velo

Race Report: Chicago Grit WP/1/2 Day 8

Race: Chicago Grit WP/1/2 Elgin Classic

Date: July 25, 2025

AVRT racers: Louise Thomas, Rachel Hwang 

Top Result: Rachel pulled but placed

Course: three corners, to a chicane, into a downhill, straight into a corner, straight into a slight uphill, into a corner to the straightaway slight uphill to finish

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

Race Recap: Rachel Hwang’s Perspective

I always say a lot of riding is mostly mental.  Agree or disagree, I like to say it’s 90% mental (give or take).

My goal was to stay in the race the entire time and not get pushed to the back.  Louise and I didn’t realize how early they staged, so we started in the back.  Race starts, Louise is able to navigate her way into the pack, but I’m struggling to.  With my (lack of) skills, I kept getting passed on all the corners, and had to constantly play catch up.  The only place I’m able to move up is out of the last corner uphill straightaway where I have to burn matches to move up, but I do as I don’t want to get dropped in the first 5 minutes of the race.

I’m pleasantly surprised how well skilled the field is, with everyone cornering smoothly and no sketchy movements.  The only real other experience I had to go off of was Twilight and that was sketchy as hell, where I was behind 4 crashes within 24 minutes of the race.  Needless to say, I was very happy with the field.  However, I was still getting spat out the back constantly and needed to burn matches to move up.   With each lap, I was getting more and more tired, having done 350+ watt surges over and over.  At one point, I was with a small group of people slightly dropped, the main field about 6 seconds in front.  On the incline, I pull.  I pull for the full lap and I’m fading.  I pull until we come back around out of that corner again and Fount girl gives an all out effort sprint to catch up to the main group.  I’m tired as hell but I know it’s mental, that I have the power to catch up, it’s just whether I want to or not, so I follow close behind.  Surely, we catch the main group.  The announcer goes, “...they know this is their second chance and that it won’t happen again…”  

A few laps later, lap counter 14, minute ~48, I’m dropped.  I didn’t fight too hard to not get dropped as I told myself I have two more days of this.  In my head, I’m also thinking about a meme I saw on IG about channeling inner Remco and van der Poel, “abandoning the [race]” LOL, and in Remco’s post, how it’s ok to stop.  So I did.  I have two more days, plus I just did the W2/3 before this one.

Ok, I come back around, lap 13, and they’re not pulling me.  I’m tired, take me out coach.  I’m not taking myself out, I’m not getting a DNF.  So I just pedal, lap after lap, watching the counter go down, wondering when in the world they’re going to take me out.  Lap 10, finally they take me out.

I didn’t survive but I made it in the race for almost a full hour, so I’m pretty impressed with myself.  And oh yeah, I didn’t know this would be a 75 minute race, and that took me by surprise, but not a happy one. Expecting 60 minute full out effort turned 75, and extra 25%? Too much. So I’m happy with lasting almost a full hour. 

Nutrition: A bar or two, one bottle drink mix. I don’t remember the food I actually ate before this race. 

Read More
Alto Velo Alto Velo

Race Report: 2025 Davis 4th of July Criterium - Men’s Cat 3

Race: Davis 4th of July Criterium - Men’s Cat 3

Date: July 4th, 2025

AVRT racers: George Wehner, Kevin Kauffman

Top Result: Both DNF

Course: 0.7-mile figure-8 course. Wide roads with some slightly sketchy pavement in the corners.

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

Nutrition: Red Bull an hour before the race, and just water during.

Recap: (written by George) Going into the race, I thought it would be a good course for a breakaway, but after getting there and seeing how wide the roads were I wasn’t totally sure how it would play out. Additionally, it was quite hot — around 90 degrees Fahrenheit. I was hoping to get into a breakaway and contest for the win from there.

The race was quite hard from the get-go, and I shuffled to the back early. On lap 2, a guy wearing all black kit clipped his pedal right in front of me and nearly went down, but he saved it. This made me quite wary for the rest of the race, and I really wanted to move up, but with how many turns there were on course, it was quite hard to find good spots to move up. I frequently found riders slotting in front of me on the straightaways and then losing the wheel in the corners, forcing me to close a lot of gaps. It was one of these gaps that took Kevin off the back around this time.

About 20 minutes into the race, I made my way up to the front, but a couple guys had gone off the front at that point. I attacked a couple times to try to bridge the gap, but my attacks were quickly shut down. Later on, the group ended up catching the break, so even if I had bridged up it probably wouldn’t have worked. Pretty soon after this, the heat really started getting to me, and after about 30 minutes of racing I wasn’t able to stay with the group’s surges anymore.

This was quite a frustrating race, as I knew I was just as good of a racer as everyone else in the field and felt that I should be trying for a result, but my legs weren’t great and things just didn’t go my way. Sometimes, you just have a bad day in bike racing, and this just was one of those days.

Read More
Alto Velo Alto Velo

Race Report: 2025 Tahoe Trail MTB 100K

Race: Tahoe Trail MTB 100K

Date: July 19, 2025

AVRT racers: Rachel Hwang

Top Result: 1/23 Women

Course: 2 laps of 30 miles each, all dirt except the first road climb. Per lap, one small climb, small decent, large 1900ft climb, large descent.

Nutrition: 1500 mL hydration pack, 1 bottle hydration, 1 bottle water. 4 gels. Hydration - Tailwind. Gels - Torq (3 caffeinated, 1 uncaffeinated)

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

Race Recap:

Read the course and nutrition information above as it’ll provide context for the below.

I’ve done this race 3 times in the past, not that exciting, and almost did not sign up, but saw this year they decided to change the course.  I had never ridden it before, but saw it was 10k of elevation, and that enticed me to sign up.  I’ve always wanted to podium overall in a big MTB race, so that was my goal coming into it.  I had a feeling the 10k would lead to less sign ups, but really, I was just thinking “You miss 100% of the shots you don’t take.”

Last minute, a day or two before the race, they changed it from 3 to 2 laps, totaling ~40mi and ~7.5k ft elevation.  Before starting, all I was hearing around me was how horrible this course was this year, and I started getting really worried.

The course is a mass start, down a small hill, then up a small hill, through the Northstar Village, all on road for about a couple miles, before throwing us onto a fire road climb.  All this was the same as years past, but then shortly after the fire road turned into really horrible dirt downhill.  It was an access road as if someone took a hoe and loosened up the dirt in clumps.  As if it couldn’t get worse, it turned into single track, with some technical bits causing people to unclip and walk (including me).  The uphills were stressful as I tried not to mess up and unclip and let 10+ people pass me, and the downhills were equally stressful as I tried to hold onto the wheel in front of me to not slow others down.  And, it was so, so incredibly dusty behind everyone.  This singletrack lasted for 11.48miles.  Too long.

This is where I knew the race actually begun.  If you guys don’t know, I take a while to warm up, and always start races slow, not intentionally, but literally do not have the power to keep up.  As soon as we hit fire roads, I smashed.  Again, I wanted to podium.  That was basically all I was thinking about.  I was so tired of losing all these other races, so tired of not trying my best and knowing I could've given more, and on top of that, just a long week at work.

Typically for long races like these, my strategy is to pace, but today, I just went hard enough to know I could keep the pace for at least one lap and didn’t think about the fate of the second lap.  I was third women at this point, and was pretty happy, thinking all I needed was to keep it and not let anyone pass.  I killed that first large climb and passed so many people, feeling so good.

First lap done.  I stopped at the feed zone to pour some water on myself, frantic as always, and kept going.  At this point, I still had more than half my water left so knew I wouldn’t have to stop.

Second lap first small single track climb sucked again but wasn’t as bad without the train of people.

Second lap big climb, I kept the pace up, still same thoughts in my head, tired of loosing, wanting to podium, annoyed with work, letting all my frustrations out.  As I started climbing, passing people, one guy said, “I think you’re third for the women.” “Do you know how far they are?” “Uh… pretty far” “That’s ok, I’m just trying to stay 3rd.” “But at that pace you’re going, maybe you can catch them.”  I genuinely was not thinking about catching them, but I kept the pace, and surely, I passed the first girl.  At the speed I was going and the speed she was going, I knew there was almost no chance of her catching me.  I knew because I’ve been the girl passed, watching others speed away slowly, but knowing I wouldn’t be able to match their speed.  Shortly after, I passed 1st.  At that point, I was overcome with adrenaline, not believing what I just did.  I kept pushing, but a few minutes later, the adrenaline passed, and there was no one left (women) to chase.  I had about 800ft of climbing left, and I started slowing down.  I had to keep reminding myself I would not forgive myself if I let them pass me because I let off the gas, just like all the other races.  So I pushed, and didn’t dare stop at any rest stops even though they had such good Honey Stinger products and I would've taken so many handfuls for later.  I pushed so hard I actually double leg cramped right at the top - good timing.  I raced my way to the bottom, and right before that finish line stretch, was overcome with emotions.  

I hardly ever looked at my power.  I got a power meter for my XC MTB literally for these long races to know what kind of power I was outputting, but today, I purely went on perceived effort and pushed myself.  My power did end up being pretty good, given that it’s so much harder to maintain a high power consistently on dirt.

A race I had done three times prior, two of the 100K,  placing 9th and 15th overall, I literally could not believe that I won. Sure, the competition wasn’t as stiff as years prior, and I can come up with many reasons why it made it easy for me to win, but it doesn’t matter.  I showed up and did it, and that’s one thing I’ve been struggling with this year of not feeling like racing because of X and Y and not pushing hard because of X and Y.  But I gave it everything that day and I left with no regrets.

At the finish line and post race, I was able to hang out with Marc and Nico.  I left feeling very grateful for the Alto Velo community, having teammates basically wherever you go, and people to chat with no matter the circumstance and ability.

Read More
Alto Velo Alto Velo

Race Report: Chicago Grit - Women’s 2/3

Race Report: Chicago Grit - Women’s 2/3

Date: July 18th-24th, 2025

AVRT racers: Maeve Roach 

Top Result: 3/11, 6/16, 1/13, 3/12, 2/13, 1/11, 1/17

Strava:
Day 1: https://www.strava.com/activities/15158524566 

Day 2: https://www.strava.com/activities/15169602319 

Day 3: https://www.strava.com/activities/15181186545 

Day 4: https://www.strava.com/activities/15190669363 

Day 5: https://www.strava.com/activities/15202261478 

Day 6: https://www.strava.com/activities/15214506299 

Day 7: https://www.strava.com/activities/15225013362 

Race Recaps:

Day 1: This was a pretty fun and dynamic race! The pace felt consistent from the start and over time the group whittled down to 4 of us, two girls from the same team did a good job of continuously making attacks so I feel like I unintentionally made the break just by chasing every move. There was a hill right before the finish, so I was grateful for that since I feel like my sprint still has a lot of work to be done and am much more comfortable with an uphill effort. One of the two teammates made a final attack with one lap to go and I sent it to chase after her. Her teammate jumped on my wheel and I was making ground until the down hill. I was still pedaling hard but wasn’t able to close the gap before the final turn. Right after that turn into the climb her teammate came around me and I tried to counter but ended in 3rd, which I am still happy with but probably could have got 2nd if I hadn't chased so hard and just saved my energy for the kicker at the end.

Day 2: This was a pretty technical course, and 1.5mi so a bit longer too. It was rainy and wet so that made me a bit more nervous. The race started and girls were already almost sliding out over paint and around corners and cutting each other off. I hung tight the whole race but felt like I had to work after the u-turn every lap to catch back up to the group. With two laps to go, me and this girl from team wisconsin were working together to push the pace and I felt like we were doing a really good job and I was in a good position but then right before the last u-turn the field swarmed us and I got pretty nervous because the turn was sketch, it was rainy, and seemed like a terrible time to go 4 wide into a u-turn. I worked to catch the field again before the last turn but was in 6th position and just wasn’t able to make up ground. Looking back, I had thought of going around the girl leading before the u-turn to make some ground and wish I had done a longer effort to the finish but it's a long stage race so I'm just happy to have stayed upright during that whole thing.

Day 3: The course was a 4 corner crit with a little hill on the back half of the course before the second turn. The race started and girls were kind of making attacks but then when they got to the front they didn't want to work so everything would slow down again. I was getting pretty tired of the yo-yo and people dive bomb-ing the corners so after the first prime I sent an attack (maybe like 15mins into the race) and nobody came with me so I did a solo TT effort for the rest of the race. I ended up putting 1 min 20 seconds on the field and looking back definitely should have asked someone for a time check and conserved some energy but the triathlete in me just had to send a TT effort I guess. 

Day 4: This was a three turn course with a very slight hill after the first turn. I stayed in the pack and some people attempted to make moves but nothing serious until the prime laps, two girls went from the first prime and after we caught up to them I made an attack. Two girls were on my wheel but wouldn't take pulls (one girl tried but didn't have the legs and then dropped back). So I let the field catch back up because I was not about to pull the whole time. With about 7 laps to go I made another attack and there was a group of 4 of us but again only one person would also pull but didn’t have the legs and pulled off after a couple seconds. So I was stuck at the front pretty much from then on. I slowed down a good amount to let my legs recover and then the last lap picked it up and after the last turn sent a long sprint. Two girls on my wheel were able to just get around me at the finish but I was still able to pull off 3rd after a lot of work that race, so still happy with the result and effort.

Day 5: This course was super fun, it had a sharp right hand turn into an uphill, and a sweeping turn into a long slightly downhill straight to the finish (that part had a bit of a headwind). At the start this one girl made a solo break away attempt, the field sat tight and this one girl and I slowly brought her back in. I made some attack attempts at the hill, but the field pretty much stayed together. Going into the last lap I took the u-turn a little too wide and ended up pretty far back after the climb, so I used that straight before the last turn to work my way up. I ended up going into that last turn in first, which was definitely not the best position to be going into a slightly down hill headwind finish, but then my shoe unclipped so I had to slow and get that together and like 5 people passed me, so I surged after turning and getting my shoe clipped in and got into third position. I started my sprint the same time as the girl ahead of me and we both passed the lead out person, but I didn't have the real estate to sneak into first before the line, but still super happy with 2nd in a field sprint!

Day 6: Another course with a sharp turn, but (sadly) no hills today. I started the race making efforts after turns to see if I could make a break early on but nothing stuck, so I chilled for a couple laps and let other girls make and chase attacks. With 2 laps to go I was getting tired of people soft pedaling at the front so I sent a 60sec effort before the sharp turn to ride people off my wheel, and then made another effort after the turn to stick a solo break the last two laps. It stuck so I was able to snag the win! I think the biggest lesson from this race for me is that analyzing your strengths and the tactics that go along with how to execute them and then having the confidence to commit to them in a race is really helpful. 

Day 7: At the start of this one I went out kind of hard to set the pace, some other girls also took turns pulling but for a lot of the first half it was still that yo-yo kind of effect. Maybe that is just crit racing and I need to get used to it but every time the field slows down I get the urge to make an attack. So, I tried to make another attack about half way through which didn’t stick, so I sat in for a bit until we hit the 7 laps to go, then I decided to make another attempt at a break down the straight away and then took the u-turn quick to make a gap. Then it was 6 laps in another solo break for the win, I was definitely feeling the fatigue from the last week of racing but focused on pushing it after turns and holding a consistent power effort down the straights. 

Read More
Alto Velo Alto Velo

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

Race: Crusher Cup (XC MTB) Race #4 Men’s Cat 2/Sport Age 35+ 

Date: July 27, 2025

AVRT racers: Michael Matthews

Top Result: Men’s Cat 2/Sport Age 35+ 1st/9 (Men’s Cat 2/Sport Overall 1st/26)

Course: Lake Sonoma round #2! The series returned to Lake Sonoma for more low-tech climbing-heavy racing. Hazards included dusty loose trails, tight loose downhill switchbacks and the heat (which didn’t end up being all that bad).

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

Nutrition: ~90g of carbs in a bottle for pre/during race nutrition. Consumed two thirds of it beforehand, and left rest to sip on the climbs.
Event Recap: I knew most of the trails from Race #1 of the series and did some desktop recon to find that this would not be a technical course. Of the races in the series this was the most climbing per mile. My results have been better, the more climbing there has been, previously. My plan was to try to race at the front the whole race and go off solo as soon as possible. I got off to a perfect start and by the time we hit the first descent, after a short pitch to start, I was wheel 3-5 including the juniors - who are usually out of reach because of the start staging. In the third switchback on the descent I lost my handle and went over the bars, but without hitting the deck. Lost two wheels, but back on the bike unscathed. On the big climb of the first lap I slowly chipped away and came into the rolling singletrack to the finish with a few seconds of a lead. Halfway through the descent in lap 2 I slid out and hit the deck at speed unharmed but lost two wheels in the process. My arm and knee were scraped up pretty bad but nothing slowed me down. I got the wheels back on the climb and headed into the last lap in the lead again. On the descent of lap 3 (final) two juniors gained ground on me in the descent and chased me up the climb, keeping me on my toes. In the end it was a 10-ish second gap to 2nd place in Cat 2 and 9.5 MINUTES to 2nd place in my age category!

Read More
Alto Velo Alto Velo

Race Report: 2025 Sand City Criterium Women’s 4/N & Women’s Master’s 1/2/3 35+

Race: Sand City Criterium 2025, Women’s 4/N & Women’s Master’s 123 35+

Date: Sunday: July 27, 2025

AVRT racers: Katie Monaghan, Elena De La Paz, Chris Davis, Janene Ostrow 

Top Result: Katie Monaghan 2/11

Course: Approximately 1k in length: 10 corner criterium with a very short steepish (max 9%) hill after corner 3. Slightly downhill after the hill into corners 5 and 6 and pretty flat from there. Good pavement. Honestly great course: fun, technical, punchy 

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

Nutrition: Coffee and Peanut butter and banana sandwich on drive over. Gushers before the race (am I 5 years old?) Nothing during. 

I had been eyeing this race for some time. I wanted to race it in April of last year and when it was rescheduled to July, it no longer worked with my schedule. So I was excited that I could race it this year because it seemed like a great course. Honestly, it did not disappoint. Not too far from home, technical, fast, good pavement and a punchy little hill that is not punishing like Cat’s Hill.

I was a little disappointed at the small field size. I like to race when I'm a small fish in a big pond. We eventually got the registration numbers up to 11 racers, so it was at least a solid field. The field combined women’s 4/N and women’s masters 35+ 123. At the start of the race I targeted Rachel from Sprinkles. We have raced each other a few times, trading higher placements. I did not know the master’s women well. 

The race mainly went at a fast but controllable pace. I really liked racing with the master’s women. They were assertive, safe, mouthy in the best way and looking to keep the race interesting. 

I wasn’t really sure if I wanted to try for a break or sprint. I’ve never been in a break and my sprint is solid but nothing to write home about. About 10 minutes into the race, I attacked thinking I could maybe hold a solo break. I had a good gap on the field but when I would look back, the peleton continued to be only maybe 20 meters behind me. My heart rate was high and 30 more minutes of that misery seemed awful, so I eventually gave up and slotted back into 5-6th wheel for a few laps to recover. Hannon recently called me out at Egan for only trying when I think something is fun and he’s honestly not wrong. Attempting a solo break to suffer in my own misery hurts. Cornering with and around others is engaging, dynamic and fun. 

After that I mainly tried to stay in the first 4 wheels and not take too many pulls. I occasionally was on the front again if I wanted to move up a wheel or two since our race was small, but I tried to keep those short.

Entering the final lap, I was sitting second wheel behind Andrea (San Jose Bike Club). I actually hadn’t seen Rachel (Sprinkles) in a minute but she came around the outside on the hill to attack. I quickly jumped on her wheel for the final 5 corners. This was my mistake for 2nd place. I stayed on her wheel for all the corners but was feeling pretty in control. I ended up having to break behind her at the final corner before the sprint and came away with second. I wish I sent it around her sooner but ya live and ya learn. 

To be honest, I have very much wanted a podium this season because I’ve felt a lot stronger. It was nice to get this and it does secure a Cat 3 upgrade for me. However, I am really looking forward to racing as a support role for a while. My most fun race of the season was Land Park where we slowed the field for Steph’s break and I got to tag team with Louise as a lead out for Kat for 3rd. I am really a ball sports/team effort person at heart and not an aerobic monster, so I’m excited for more of these types of efforts in the future.

Read More