Monday, June 16, 2025

Dirty Kitten Gravel Race - still hunting for the perfect setup

What has become my favorite annual summer gravel race has somehow not yet warranted a post, which is bananas because I've had some decent results over my 5 attempts.

I first heard of Dirty Kitten during the pandemic, and that year it wasn't a race, so much as an isolation fondo. There were timed segments, and riders rolled out at intervals. You were allowed to ride with folks who came with you, and I brought Alastair. Though he holds no love for gravel, this one got into his heart, and we haven't missed an edition since. We always do the Sunday races, which are 40 and 20 miles, as neither of us enjoy gravel quite enough to want a 60 or 80 mile race.

I've been on the podium in the 40-miler every year since 2021, and last year was the closest I've come to victory at 2nd place.

With just over 6 weeks until the 2025 event, I'm beginning my annual panic over training and equipment for an event most folks do just for fun.

The course is just a tick under 20 miles, with no pavement anywhere. Conditions change year-to-year, but generally the gravel is stable and well worn-in, so speeds are pretty high over most of the course. It's absolutely normal to see 20mph+ on the flatter sections, even with my middle-age legs. There are 2 significant climbs that will test gearing limits. The first, Cedar Mountain, is just a deep-gear slog. It comes less than a mile into the course and generally determines who's there to compete. Usually fewer than 10 people make it over the top at the front, and fewer still get a clean run through the off-camber crumble to the screaming fast descent. Last year I nearly ate it--the trail gods demanded a bottle sacrifice.

After that, you're rewarded with 10 miles of flattish gravel. A few sharp turns, a couple bits of soupy gravel, and one section that's best described as "forest road" where the ruts and conditions are unpredictable year-to-year (but I imagine this would be MISERABLE when wet).

Then you get to the signature element of the course: the lollipop of death and the kitten crusher. This 4.3 mile portion of the course is mostly exposed to unabating July sunshine and can be broken down into a few critical elements:

  • the 1.4 mile approach road that pitches upward at anywhere from 3 - 11%. This thing just sucks the life out of you before you even get to the real climb, and every year somebody decides to make this road hurt even more than necessary. But I've never seen a move succeed here, and there's more than enough pain coming.
  • The Kitten Crusher. "Is this the climb?" Oh you sweet summer child... The approach is 8%. The first ramp is 15%. Each blind left turn holds an even-steeper grade, but just wait until it turns right. The Strava segment shows 154.5% and goddamn it feels like it. Whatever little group you've been riding with will be shattered here. Most will walk, but that doesn't really make it easier. Fortunately (?) there's an aid station at the top, and a dude with a sprayer to cool you down. If you stop, your race is done. I've made it over 2 times in 5 years / 10 efforts.
  • The Crusher Descent is quite honestly one of the scariest descents I've ever undertaken on a bicycle. It doesn't help that your heart rate is still sky-high from the climb, but the first turn is loose and steep, and while you're in blessed shade for the first time, that just makes it hard to see. Average gradient -11.4% with peaks close to -20%...in a turn. Hang your ass off the back of the saddle, squeeze those brakes as much as you dare, and just pray for the bottom--you'll get there one way or the other.
  • Though there's no segment for it, the rest of the lollipop sees you climb back up to the approach road and run it in reverse. If you got dropped on the crusher, this is where the work starts. A half-mile climb at 5% back to the road, a quick breather, a 10% punch, and then a screaming 1 mile descent in 2-way traffic of yelling at folks to stay on their side. It ends with a braking zone that would make a F1 driver weep before tackling a sharp right back onto a public gravel road.
The rest of the course is far less dramatic. At about 3 miles, it's 1 mile of flat recovery (or chasing, depending on your crusher results), 1.5 miles of undulating rollers in sunshine, and 0.5 miles of sharp rollers in the shade with an uphill kick to the finish line.

Then you get to do it all again. Yay!

I've spent years trying to get the "perfect" setup for this race. My first forays saw me on a 1x mechanical SRAM setup, always with a 40T chainring, but with various cassettes from 11-36 to one miserable effort with a 11-4(x?) and a WolfTooth goat-link intended to extend the supported cassette size for the derailleur. It didn't work well at all--the chain jumped all over the place and ghost-shifted on every climb. it was awful. Awful awful awful.

2 years ago I upgraded the gravel bike to electronic shifting, settling on a 10-44 cassette and keeping that same 40T ring up front. I was still dropping chains, but on the 2nd lap I finally made it over the crusher for the first time ever.

Last year I picked up a derailleur hanger alignment tool and corrected a massive mis-alignment, which made shifting so much smoother, but the chain *still* fell into the wheel on the way up. I ended up panicking on the 2nd lap and just got off the bike before it could fail again, costing me the potential to sprint for the win.

The only constant over the years has been at the front of the drivetrain: that 40T ring. While the gearing of the past 2 years has gone deeper than 1:1, I've still only gotten over the crusher 50% of the time, and lost the chain into the wheel 4 times. At the opposite end of the spectrum, the SRAM AXS app shows I only used the 10T cog for 54 seconds of the entire race.


That 54 seconds had an average power of 133W, as well. By contrast, the 44T cog saw 4:26 of use at an average power of 304W, with the steepest 2 ramps of the crusher at over 400W. 


So this year I'm thinking of trying something different. I cannot affix a SRAM XDR-compatible cassette deeper than 10-44 (if such a thing even exists), and even if I could, through some sort of updated Goat-link equivalent, I would never want to re-invite the issues I had with the bike 3 and 4 years ago. Going XD (SRAM's mountain-bike drivetrain popular in "mullet" gravel bikes) would add tons of cost. But I can move to a smaller chain-ring for $20.

I've resisted this option for years for a few reasons. The first is, honestly, it feels wimpy to go smaller up front. I'm a Big Strong Man(TM)! I don't need a smaller ring for MonsterCross or any other gravel/CX racing I do, and the idea of constantly swapping equipment is not even close to appealing. But aside from that, there's chain-line efficiency: the 15T (4th from smallest) gets almost 45 minutes of use--far and away the most used gear on this course, followed distantly by the 17T at just over 30 minutes. Using a smaller chain-ring would put that use farther outboard, creating a less optimized chain-line, which increases drive-line resistance, even if only slightly. Then there's the compound issue of more chain movement and slap--even with a clutched derailleur--as the chain moves farther outboard. I run a chain-keeper on this bike, but when the chain comes off, it always gets tangled in the keeper, which makes it just that much harder to re-seat when you're already on the limit. I don't want to create another situation where I panic and just get off the bike.

So what size ring? I went through this exercise when setting up the old crit bike as a purpose-built climber, and ironically ended up at 40T on that bike, too, though that was driven by wildly different goals and maths.



The power-meter crankset on this bike has a 5-bolt 110BCD interface, so I could go down as far as 34T, but that would see me spun-out for almost 15 minutes of the race. The gear-ratios of 40:15 and 34:13 are nearly identical, so that 45-minutes in 15T would become 45 in 13T, and it would come with a ridiculously deep gear on the climbs.


A 36T chain ring would offer one deeper gear for the climbs while only cutting off the top gear on the flats, making me spun-out for only about a minute. A 38T ring is honestly insignificantly different from a 40T--changes at the front need to be more substantial than changes at the back.

Since I'm trying to solve for about half of 4:26 of the race, I don't want to make a change that will impact the faster bits, so I've settled on trying the 36T.

According to my calculations, that will reduce the top speed at 90RPM to 26.9mph, which will only affect the two main descents--but let's be honest: I wasn't doing much pedalling on those anyway.



Sunday, May 18, 2025

Wintergreen Returns!

For the first time since 2019, the Wintergreen Ascent Hill Climb was back on offer. Alastair and I decided to tackle the 7.3 mile, 2500' climb since he was fresh back from his first season of collegiate road racing and had a ton of fitness. We headed up on one of the most beautiful race mornings in recent history for a ride that would hold an almost perfectly consistent low-70's temperature all the way up.

I'd done this race from 2017 to 2019, and the first year had to get off the bike halfway up and wait for pain to subside. In retrospect, I was significantly underweight at 137.7 lbs that day, and I finished dead last in category. In 2018, I finished 2nd in my 5-year age-bracket (40 - 44), and 3rd in my BAR age-bracket (35-44). In 2019 I swapped to a compact chainset and raced CAT3 in a BAR bid and got 4th.

At racing-age 50, I'm fully embracing the Masters life, and with Alastair racing CAT3, I chose the 50-54 group. The bike I raced previously was considerably lighter than the Aeroad, and seeing as I weigh a little more now than I did then, I needed to save equipment weight where I could. I pulled it down off the wall at 16.38 lbs and ran through my options.

The Ultegra 6800 groupset had been on it since November 2015, and while I'd stuffed a 11-32 cassette onto it a couple times, it never really worked all that well. 4 years ago I pulled the ancient Dura-Ace crankset and replaced it with another 5-bolt 130BCD power meter crank, with the idea that I could hold on to my chainring investments. Immediately the industry abandoned that standard and I found myself stuck with an expensive crankset with limited ring options--you can't put anything smaller than a 38T ring on 130BCD. I felt stuck for years with that setup, and considered the bike *done* when I bought the Aeroad.

While the Aeroad runs 50/37 rings up front, it supports up to a 33-tooth cassette out back--much deeper gearing than the standard 53/39 - 11/28. But the Aeroad is also heavy, even with lightweight climbing wheels.

So, standing in the garage and over-thinking things as usual, I noticed Alastair's abandoned gravel bike with its SRAM Force CX1 drivetrain: 40T chainring, 11-36 cassette. Every single bit lighter than the Ultegra 6800 equivalent. I also noticed an abandoned Ultegra R8000 drivetrain sitting in a box. An idea was born: swap out my 6800 with the SRAM CX1 and upgrade his CX bike to R8000.

The conversion took my old Blue Axino down to 15.72 lbs. Then I remembered a lightweight saddle that was also lying around, and that brought me down to 15.58. Fully 0.8 lbs removed, and the only things I had to buy were a cheap 5-bolt 130BCD 1x chainring ($20) and a new chain, since the Blue had been put up with a badly worn-out chain. Of course I opted for the lightweight gold chain, because why not?

I took it out to the local Thursday night fast group ride with that setup and, while it was spun out regularly, managed to hold on and grab a KOM I never thought I'd get. I guess I was as ready as I was gonna be?

As this wasn't my first tangle with Wintergreen, I knew the biggest mistake would be to over-commit early. The first mile is mostly flat, then it kicks up sharply. I was desperately hopeful the deeper gearing would let me stay out of wattage danger before even turning in to the resort road.

I set off at a tepid 300W and thought the guy ahead was getting away, but just held steady. I even backed it down a touch since I didn't believe I could legitimately average anything higher than 280W. Within a few minutes I was noticing him getting closer, and by the first time I had to use the deepest gear I was right beside him.

Steady, steady, steady. Heart-rate in range, power fluctuations as minimal as possible. RPM sinking into the low 70's, but that's a hell of a lot better than the 50's or 40's that I'd seen before! Suddenly I was at the entrance, one of the steepest ramps of the day. I'd caught a few more people and had another in sight, but for the first time I doubted myself, and then I lost the granny gear. The whole entire reason I'd put the SRAM setup on the bike was failing me.

It took a few minutes of pain, confusion, and anger to realize I could hold it in the granny gear by holding the shifter in. So that was gonna be the entire remainder of the ride: to get 40/36, I'd have to keep pressure on the lever. 25 minutes of hand-cramping while trying to keep the rest of my body from revolting. Then I felt the cable slip, and now I had to hold the lever even farther in (found afterward the anchor bolt was loose--I got lucky it didn't slip any further!).

But steadily more riders came into view, and by the time I got to the sunshine sectors I was passing walkers. Nobody had passed me and the resort itself was in view. So close!

Then I heard a grind behind me, and slowly another rider began to pass me...in my category. The last 2 ramps were abject misery as he passed me and then pulled away, and it was all I could do to make it across the finish line. I hit stop at 44:33, 1 second after crossing the line.

Shockingly, my results were identical to 2018: 2nd in my 5-year age-bracket (50-54), 3rd in my BAR age-bracket (45-54). Perhaps more shockingly, I was 23 seconds faster than in 2018. The bike may be lighter, but the rider isn't. I weighed ~5 lbs less in 2018 than I do now, but that increased weight has coincided with a greater ability to maintain power. My average power that year was 261W--this year it was 277W.

In 2018 I went off the line like it was a traditional TT: burst to speed above FTP and then settle in. I was 30 seconds faster in the first half. This year, with the tepid launch, I was better able to tackle the 2nd half, and finished that 1 minute faster than ever before.

I'm very pleased with my results, even if some friends were a couple minutes faster. Alastair finished 100 seconds behind my time, but he makes no claims to be either a TT specialist nor a spindly climber.

I'm looking forward to resolving the granny gear issue and going after it again next year. I think the gearing is right, and the bike is just about as optimized for weight & aero as it can be.

And I didn't have any cardiac events! Yippee!

Ok now for the super nerdy stuff. Data analysis has also improved pretty significantly since 2018, and while others may have been aware of W' back then, I wasn't, and I had no meaningful tools to compare activities directly.



This chart shows 2018 in orange, 2025 in fuchsia. You can see the hard launch and resultant higher early speeds, correlating directly to a W' loss in the first half mile. Everything tracks pretty steadily until ~2.5 miles in, when there are some deep fluctuations in 2018 that ultimately lead to a heart-rate period above 180bpm right around the 4-mile mark.

Cadence varies pretty significantly between the two, as well, with a slightly lower average in the opening 2 miles and a big drop right around that same W' low-point, strongly indicating the higher gearing in 2018 was a detriment to my race. The lowest cadence recorded that year was 49RPM (the zeroes are erroneous--I didn't stop), as opposed to 67RPM for that same point this year. After that, I clearly had to back off power, which cost me the race. W' starts to recover at that point, and every spike afterward has both lower power and heart-rate. I was cooked and barely holding on.

This year I was much more stable with my W' depletion, and it looks like I can still work on some very minimal strategy improvements to keep that depletion a bit more linear, or at least not let it recover so much before the end...or maybe save a touch for a wimpy sprint.

I've got options if I can keep this fitness for another year!

Thursday, March 27, 2025

Cardiac Event

I raced outside for the first time this year over the weekend. Didn't do great in either of the 2 races I joined, and figured I'd do a little self-flagellation on Zwift to atone for my sins and hit the Alpe. It was never intended to be a crushing attempt at it--just a low threshold effort of ~250W, or ~3.8W/kg. The kind of effort that should put my heart-rate at about 165 bpm and just hold steady.

Things did not go to plan. I was fine for the first 20 minutes, then started to feel really sluggish. I fought to maintain power, but my heart-rate for that 250W was averaging 173, making me even angrier at my poor training for this season.

Power dipped in the 2nd 20 minutes to ~230W, and my heart-rate stabilized at 170. Ok, groovy, but then THIS happened. 


Rolling close to the top, about 40 minutes into it, I felt a flutter and a gasp. HRM de-trained and started dipping, which happens sometimes, and usually I just back off power and it catches back up after a moment. Only this time the flutter was still there. I started feeling like boiled garbage and watched in horror as the number on the screen bounced to 200, then 210, then 224, and it STAYED there for a few seconds while my chest felt like a purring cat. After a solid minute of wild readings ranging from 155 to 224 and ending around 180, it finally dropped back to 165 and held there.

I've had tachycardia episodes my whole life. They usually make me feel like I'm out of breath and self-resolve after a few seconds. I've only caught them in ride data a couple of times, and this is the first time I've *ever* experienced an episode at an already-high heart-rate, and it did not feel good.

It was all I could do to finish the ride, which was probably a very stupid idea (but dammit I've done the Alpe 24 times now and I need that "masochist" badge), and all night long if I stood up for more than a minute or so I'd get woozy.

Not gonna lie--I was a little scared going to bed that I might not wake up this morning.

So my ride title "Accelerate to Cardiac Event" was not a joke, and I'll be sure to bring this up with my doctor*



*in a few months