Skip to main content

A Summer of Seven Centuries

Table of Contents

Using Progressive Training, Durability Experiments, and AI-Assisted Decision Making to Prepare for STP
#

When I started getting serious about cycling last year, I knew that I’d need to ride the annual Seattle to Portland (STP) bike ride - it felt like an essential “must do” ride that seemingly everybody had done at least once. It’s a 200-mile ride, typically done over two days in July - though some folks do it in one day. My goal was simply to finish the ride successfully.

When I started training for STP, my longer rides generally topped out around 50 miles - I’d done a few 60-ish mile rides, but they’d left me pretty spent. I think for a lot of recreational riders, somewhere around 50 miles becomes a familiar distance - it is long enough to feel substantial, but still short enough to be manageable. Beyond that point, the ride starts to become a different kind of problem. You are on the bike long enough that small mistakes compound, and you need to become more deliberate about how you manage the day.

I outlined my situation to ChatGPT: I wanted to be able to ride STP successfully; I explained what my current longest rides had looked like in terms of distance and elevation gain, and I asked it to help me come up with a training plan that would get me to the start line confident that I could finish. The plan was straightforward: extend the long ride progressively - build from roughly 50 miles to 60, then 70, 80, 90, and eventually 100. I planned some routes around Lake Washington that would let me add distance without adding much navigational complexity. Between the I-90 and SR-520 crossings, I could create loops, figure-eights, and longer variations that were familiar enough to ride almost automatically, but varied enough that I did not feel like I was repeating the same route every weekend.

For the first several weeks I followed that pattern closely. On March 14, I rode 30 miles around the north end of Lake Washington. A week later, I rode 46 flat Zone 2 miles. On March 28, I completed a 52-mile Lake Washington loop, followed by a 64-mile figure-eight the next weekend and a 70-mile variation through Mercer Island the week after that. The progression was not dramatic, but that was the point. Each week made the next distance feel a little more ordinary, and by April, 50 miles no longer felt like the practical limit of a long ride.

Adapting the Plan
#

As spring continued, the original plan became less tidy because better opportunities came along. The Emerald City Ride looked really fun - you get to bike over a bridge that’s normally car-only - but it was only about 20 miles and happened to fall on the weekend when I wanted an 80-mile training day. Rather than choosing between the event and the training plan, I combined them. I rode the event and then added enough mileage afterward to finish with 82 miles for the day.

The same thing happened the following weekend with the Ride for Major Taylor . The organized ride was around 60 miles, so I extended it and turned the day into my first century, jumping straight past the planned 90-mile weekend.

That flexibility became an important part of the training process. Later in the summer, for example, I used travel plans as an opportunity to turn the ride home from Deception Pass into another century. Rather than treating the original plan as something I needed to follow exactly, I used ChatGPT to sanity-check these changes: was I still getting the training stimulus I wanted, and was the jump in distance or workload reasonable?

From Endurance to Durability
#

Once I had demonstrated that I could ride 100 miles, the training problem changed. The training plan ChatGPT and I had been iterating on shifted from endurance toward durability: not simply riding farther, but riding effectively after fatigue had accumulated. STP is not a century problem - a century would only get me halfway there. That meant the later part of my training block became less about simply extending distance and more about testing how well I could keep riding once fatigue accumulated. I wanted to know whether I could handle long rides on consecutive days, whether my pacing would remain sensible after six or eight hours, whether I could continue fueling when I was tired of eating, and whether I could recover well enough from a very long ride to continue training the next day.

The schedule through May and June reflected that shift:

By this point, the training rhythm had settled into something that looked roughly like a century every other weekend, with a shorter 40- to 60-mile ride in between. That pattern was useful because it allowed me to continue building endurance and durability without making every weekend a recovery problem. The goal was not to complete the biggest possible ride every Saturday. It was to accumulate enough work that the long rides became familiar while still recovering well enough to absorb the training.

By mid-May, the idea of riding STP in one day was becoming less hypothetical. I’d done two centuries and a number of rides over 50 miles, and a consistent pattern was emerging: I could complete a century with more elevation gain than STP in about six hours and generally feel pretty good afterward. That didn’t mean I was ready to ride another hundred miles, but it made the question worth testing.

Using ChatGPT to Evaluate the Evidence
#

This was where ChatGPT became more useful than a static training plan. I was not asking it to tell me whether I was “ready” in some magical binary sense. I was using it to help evaluate what the rides actually meant.

After a big ride, I could look at power, heart rate , pacing, fueling, recovery, and subjective fatigue and ask whether the ride had actually increased my confidence in a one-day STP attempt. If a ride went poorly, the conversation was not simply about whether I had failed. It was about why it went poorly and whether the cause was fitness, pacing, nutrition, heat, fatigue, or something else.

The back-to-back 52- and 55-mile rides were useful because they gave me a sense of how my body handled accumulated fatigue. The 120-mile ride was even more important because it pushed me well beyond the century mark and gave me experience managing a ride once the distance stopped feeling familiar.

Neither of those experiments could prove that I would be able to ride 207 miles in one day, but each one made the unknown a little smaller. That was really the objective of the entire block.

Making the One-Day Decision
#

By late June, I wasn’t guessing from a single good century; I had accumulated evidence across several different kinds of long rides, and the one-day question had changed. Earlier in the spring, the question was whether 207 miles was even realistic. By the end of June, the question had become whether I had seen enough from my training to justify attempting it.

I had completed multiple centuries, successfully handled back-to-back endurance days, ridden 120 miles without falling apart, practiced fueling over very long durations, and recovered well enough from those rides to continue training. The evidence suggested that I could complete the ride in 12 hours or less if I could maintain roughly the same pace into the second century. Even if I slowed substantially, I figured I had enough margin to finish in 14 hours and arrive before dark.

On the Thursday before STP, I cancelled the hotel room that I’d booked.

What the AI Actually Did
#

ChatGPT did not make me fitter, and it did not make the one-day decision for me. The miles provided the training stimulus, and the rides provided the evidence. What the AI did was help me structure the plan, design useful experiments, interpret the results, and challenge assumptions along the way. Instead of following a generic century plan, I was able to continually ask whether the training I was doing was actually answering the questions I cared about.

That distinction matters. The useful role for AI was not to replace the work or to make decisions for me. It was to help me reason through the process with more structure.

The Result
#

On July 11, I rode all 207 miles from Seattle to Portland in one day in just under 11 hours of riding time. I completed the first century in five hours - my fastest century ever, thanks in no small part to some helpful paceline drafting.

Training did not make the ride easy, but it did make the challenge understandable. Reaching 100 miles no longer felt like reaching the edge of what I knew I could do. I had been there repeatedly throughout the summer and had spent the previous several months preparing specifically for what came next. That, more than the number of centuries, was the real success of the training block.

Looking back, the progression itself is something I’m proud of. Between early May and STP, I completed 100 miles at the Ride for Major Taylor , 101 miles on the Seattle Grand Tour , 100 miles at Flying Wheels , 120 miles on the three-ferry ride , 100 miles riding home from Deception Pass , and finally 207 miles from Seattle to Portland . In a little over two months, that added up to seven centuries’ worth of riding - counting STP for the two centuries that it very definitely was.

Including the rest of the training rides and my commutes to and from work, I rode a total of 2,134 miles over more than 151 hours between February 23rd - the day after Chilly Hilly - and STP.

The biggest change was not simply that I became capable of riding farther. My perception of what counted as a long ride changed. In March, 50 miles felt like a big day. By July, a 50-mile ride had become the shorter weekend between centuries. A century was still a long ride, but it was no longer unfamiliar. I understood how to pace it, how to fuel it, what fatigue felt like, and how much I could expect from myself late in the day.