Thursday, May 1, 2025
Door to Door or Drive to Ride?
Tuesday, April 1, 2025
Putting Banister To Bed
![]() |
Graph of the Fatigue, Fitness, and Form the Banister model predicted for me based on my training over the the last few years. |
I have blogged a lot about the Banister model. At the bottom of this post you will find a list of my earlier posts on this topic. The input to the Banister Model is daily training Load, where Load is a combination of how long I ride (in minutes) and how hard I ride (which I calculate from my heart rate.) The output of the Banister Model is predicted performance a.k.a. Form. (Think of this as perFORMance.) How well does that prediction match my actual performance? In my most recent post on this topic I said "I have been using the Banister model for more than two years now and it certainly has not been perfect at predicting the impact of my training on my cycling ability, but I have the impression that it does give me hints that are helpful in combination with what my body tells me in optimizing my training." That evaluation is both subjective and qualitative. The management consultant Peter Drucker is famous for his saying "If you cannot measure it, you cannot improve it." In this post I am going to discuss my efforts to quantitatively compare my performance to that predicted by the Banister model.
I have all kinds of subjective impressions about my performance. For example, last May I rode the 60 mile long Art of Survival with my friend Roger and felt that my performance was poor because, despite the fact that I relied heavily on the eAssist of my eBike and despite the fact that he reported that he had not had the opportunity to train enough before the event, I found it very difficult to keep up with him. Obviously that is not a metric I can use to determine if the Banister Model's prediction of my performance is accurate. What could I use? Can I look at the scientific literature concerning the Banister Model for guidance on a metric? I have read a few papers on this topic and the kinds of metrics they use tend to be things like maximum power output during a five minute time trial. (See, for example, this paper.) What I am trying to optimize is average speed during a five hour group ride which is a very different thing. The former is a measure of fast twitch muscle strength whereas the latter relies much more on slow twitch muscle fibers. It would be like trying to determine how strong your legs are by measuring your arms. I am unenthusiastic about using such short term metrics.
I could use a longer time trial to assess my Form. The problem with that is, in my old age, a long time trial is tiring to the extent that the very training I am trying to optimize is disrupted. It is similar in concept to crash testing a car if you only have one car. After the test, you might know the car was safe, but unfortunately it is now destroyed so that knowledge is of no value. So what could I measure that would be relevant to my training goals and would also not disrupt my training? If you look at my recent posts, it's obvious that I have been hoping to use the average speed at which I ride my training rides for that purpose. For many reasons, that is a very imprecise and subjective measure but back in 2021 I did a statistical analysis that my speed on selected subsets of these rides might be useful nonetheless. For this post, I used my speed on a subset of rides all of which were on my Cañada route, where the level of effort I attempted during ride were all the same, and the bicycle I rode was the same. This is how the speed on those rides compared to the performance predicted by the Banister model:
As is shown in this graph, the Banister has essentially no ability to predict my speed on a Cañada ride. R2, shown at the top of the graph, is a measure of predictive power that varies between 0 and 1, where a value of 1 means perfect prediction and a value of 0 means no prediction. The value of 0.001 measured here is about as close to 0 as one is likely ever to see.
Why is the Banister model not working for me? There are many plausible explanations, but before I get into them, I think it will be useful to say a little more about how the Banister model works. As noted above, the Banister model takes as its input the Load of each of my bike rides. It then uses that to calculate two hidden variables, Fitness and Fatigue. I call these variables hidden because there is no way to measure Fitness and Fatigue on their own, instead they are used to calculate Form (performance) which can be measured. To calculate Fitness and Fatigue, Banister uses two constants called k1 and k2. It multiplies Load by k1 and adds it to Fitness and multiplies it by k2 and adds it to Fatigue. In modern usage, k1 and k2 are often customized for each athlete but out of the box, the Banister model sets k1 = 1 and k2 = 2 and those are the values I am using. If this was all there was to the model, Fitness and Fatigue would just keep increasing forever. However, because we know that Fitness and Fatigue decrease over time, every day those accumulated values of Fitness and Fatigue are decreased exponentially. Specifically:
Ta and Tb are two more constants whose value can be customized to the athlete, but out of the box, have values of 15 and 45, respectively. I use these out of the box values, and as a result, my calculated Fatigue decreases by half after 10 days and my Fitness decreases by half after 31 days.
There are reports that Banister model and the related, widely used Training Peaks software package do work for many athletes so this is a problem with me, not with Banister. Given that, I can now turn to the question of why.
1) Maybe the Banister model is not working for me because my training is too constant.
2) Maybe the Banister model is not working for me because of confounding factors.
3) Maybe the Banister model is not working for me because training speed is a bad metric.
4) Maybe the Banister model is not working for me because I have not customized its constants.Most current writing about the Banister model recommends not using the out of the out of the box constants but rather fitting these constants to the data from each individual athlete. I am working on software to allow me to do that, but to date, have not completed that work and don't know if or when I will. It is possible I will complete this software, fit the constants, and all of a sudden the Banister model will start working for me. If that happens, I will post about it.
5) Maybe (gasp!) the Banister model is wrong. (Not likely, but hear me out.)
There is a lot about the Banister model that doesn't make intuitive sense to me. It is my understanding that most coaches and exercise scientists believe that it is important that an athlete not do a workout (at least a hard workout) until that athlete has recovered from the previous workout. What "recovered" means varies, but at a minimum, it is when their Form has returned to what it was before the workout. According to the Banister model using the out of the box constants, that takes 16 days. A more stringent version of this rule is that "recovered" means until an athlete's form has peaked. According to the Banister model, this would take 39 days. Both of these numbers seem totally bonkers to me. Similarly, I am puzzled that following any reasonable training program means that, according to the Banister model, Fatigue always remains high. As I was laying awake thinking about this one night before bed, I asked myself what seemed reasonable to me. It seemed to me that a linear model of recovery might better fit my experience than the exponential model of Banister, that my Fatigue would be reduced by a fixed amount each day until it was gone entirely. But by how much each day? My experience has been that it takes me two days to recover from a Cañada ride, so I set up a model where my Fatigue decreased by that much. When I fit the same set of Cañada rides I used above to test the Banister model, I again found no correlation between my level of Fatigue and my speed on a ride. However, I remembered my post from last January where I found that the correlation between heart rate and ride speed improved dramatically when I looked at rides over the course of a few months rather than over the course of a few years, so I tried again, using a shorter time frame. In addition, to improve my chances, I used a time frame during which my predicted Fatigue changed substantially. Here is what I found:
Conclusion:
- "Modeling Fitness, Fatigue, & Form" posted December of 2021
- "My Fitness, Fatigue, and Form" posted May of 2023
- "Cycling Career Saved" posted July of 2023
- "Update on the Banister Model" posted October of 2024
Sunday, March 2, 2025
Winter Break
In the blog post I published at the beginning of December, I promised "I will do my best to maintain as much fitness as I can given the weather and will refocus come February 2025." I was probably a bit overconfident in picking February as the precise time when the weather would improve, it is March and the weather is still sketchy, but other than that I feel like I am more or less doing what I had promised, and I will talk more about that below. However, I want to underline what I assure you was a deliberate pessimistic tone to that promise; '... do my best ... given the weather ...'. What's that about?
The Weather
- When the weather cooperates I ride my Cañada route, 17 miles, 90 to 100 minutes, three times a week and recovery rides on my trainer, 30 easy minutes, two times a week, a schedule I referred to hereafter as my Outdoor Schedule.
- If it rains once or twice during the week, sometimes I can move my rides around so I can still stick to the schedule above.
- When I can't just work around the rain, when it rains every day, for example, I ride on my indoor trainer, and therein lies a story.
My Best
I originally set up my trainer for recovery rides, short rides at low intensity (Zone 1*) which have as their purpose facilitating recovery from an earlier, hard ride rather than generating fitness on their own. I was inspired to do this when I moved into the well-named Emerald Hills; those hills made low intensity rides on the road impossible. I find the trainer extremely boring so I originally assumed that recovery rides was all it was good for. This year, I decided to reconsider if I could also use that trainer as a way of dealing with bad weather. The key was not letting Best be the enemy Good. While it is true that given my limited tolerance for boredom meant that my trainer could never be a complete replacement for rides on the road, perhaps there were rides I could do on the trainer that would be better than an uncalled for recovery ride.
I had previously found one possibility, my Gillen Interval Ride, six sprints in Zone 7. During the last few months, I have found another. While doing the riding that lead to my Counting Talk Test post, I convinced myself that a ride on my trainer in a 71" gear at 70 RPM was a legit Zone 2 ride while at the same time not being that much more unpleasant than a recovery ride at 55 RPM. Thus, on a day where I felt that a recovery ride wouldn't do, I could simply up my RPMs. To be honest, this is still not a great workout but it is much better than nothing and better than a recovery ride. Best of all, this ride is quite sustainable, I can ride it six days a week. If I am feeling especially motivated, I found I could increase the length of that ride from 30 minutes to 60 minutes, doubling the benefit. However, I confess that by the end of those 60 minutes my willpower is exhausted such that I would find it difficult to do more than one of these in a week. So, a sustainable schedule is six Zone 2 trainer rides a week, five of them 30 minutes long, one of them 60 minutes long. Hereafter, I will refer to this as my Indoor Zone 2 Schedule. By way of comparison, the Gillen Intervals take me about 45 minutes to complete and again, I can only manage one of these a week. So my final of the three schedules discussed in this post is five 30 minute trainer rides in Zone 2 and one Gillen Intervals ride, hereafter referred to as my Gillen Schedule.
Sometimes, depending on weather, I do a mix of my outdoor schedule and one one of these trainer schedules. Finally, I occasionally break out of my rut and do something altogether different, but for the remainder of this post I will focus on the three basic schedules described above, my Outdoor Schedule, my Indoor Zone 2 Schedule, and my Gillen Schedule.
Before moving on, I would like to share a thought: I am very lucky to have found outdoor cycling, which I can do most of the year, as a form of exercise I enjoy. Even on a day that I am not in the mood for a ride, a 90 minute outdoor ride is more pleasant and easier to complete than an easier (lower intensity) 30 minute ride on my trainer, and when the weather is nice and I am in a mood to ride, a 400 minute ride can be quite fun.
How Did I Do?
My goal was to do the best I could, given the weather, to cycle enough to maintain my health. Back in 2022, I blogged about cycling for health, describing routines recommended by Coach Hughes, the coach I follow, and by the Medical Community. I am not going to repeat that post, so if you are interested in the details, look there, but briefly, both recommend a Minimal Schedule and an Optimal Schedule. (Coach Hughes also recommends a Super-Optimal schedule which is well beyond my reach so I will speak of it no further.)
My Outdoor Schedule exceeds the requirements of the Medical Community's Optimum Schedule and Coach Hughes Minimal Schedule. It does not meet Coach Hughes Optimal Schedule but it comes close, it checks all the boxes and has about 80% of the recommended minutes.
My Indoor Zone 2 Schedule exceeds the Medical Community's Minimal Schedule and has about 70% of the minutes of the Medical Community's Optimal Schedule. Coach Hughes is very prescriptive in terms of recommending a specific number of minutes at specific Intensities, but if I can be allowed to count minutes in Zone 2 as minutes in Zone 1, then this schedule meets Coach Hughes minimal schedule except for the minutes in Zone 3. In my opinion, this counts as quite close. However, it comes nowhere near Coach Hughes Optimal Schedule. Clearly, this schedule is way better than nothing and is way better than what I have done in prior years but is clearly less desirable than my Outdoor Schedule.
My Gillen Schedule is the trickiest to compare in that neither the Medical nor Coach Hughes recommendations anticipate the High Intensity Interval Training (HIIT) that is central to this schedule and so I have to estimate some equivalences to make that comparison. For comparison to the Medical Schedule, I am going to use the equivalence claimed in the original Gillen et al. paper that one minute of HIIT is equivalent to 45 minutes of Moderate Intensity exercise. Using that equivalence, my Gillen Schedule easily exceeds the Medical Community's Minimal Schedule and has about 80% of the minutes of the Medical Community's Optimal Schedule making it a bit better than my Indoor Zone 2 schedule. My Gillen Schedule comes nowhere near Coach Hughes Optimal Schedule. Compared to his Minimal Schedule, the total minutes, given reasonable equivalences, is pretty close. I would say it comes about as close as my Indoor Zone 2 schedule but interestingly, deviating in the opposite direction. My Indoor Zone 2 Schedule is missing High Intensity and my Gillen Schedule is missing Low Intensity. This might suggest some mix of these two schedules could be my best compromise for maintaining my health.
In summary, doing the above analysis has left me pretty satisfied that I did a reasonable job this winter of working around both the weather and my distaste for riding on my trainer with schedules that maintain my health. How does this year compare to last year?
Compared to this same time last year, the amount of riding I have been doing has gone up but my speed has gone down. I compared December 2023/January 2024 to December 2024/January 2025. Last year I averaged 208 minutes per week of riding as compared to 291 minutes a week this year. To compare speed, I considered rides on the Cañada route where my intention was a Pace ride (Zones 2 and 3) and where I completed the ride on my Bianchi Volpe (no eAssist.) Last year, I rode 11 rides that qualified and completed them at an average speed of 10.7 miles per hour. This year, I rode 10 rides that qualified and completed them at an average speed of 10.1 miles per hour. There are a lot of ways to look at this data to try to explain away this decrease, and to be honest, I don't think my speed has really decreased by 0.6 miles per hour in just one year, but I think there is no doubt my speed has been decreasing over the last several years, and that decrease does not come from a reduction in training. This is illustrated in the next two graphs.
The first graph illustrates the drop in my ride speed since my move to California in 2017. This is one of several analyses I have done which show my speed falling over this time period. I have posted about this before. In this analysis, I collected the highest speed on the Alpine route for each month since my move and plotted that as a function of time:
* How hard I ride, e.g. how fast, can be expressed in terms of Training Zones, Zone 1 (very easy) through Zone 7 (very hard.)
Sunday, February 2, 2025
The Counting Talk Test
Back in November, I reviewed a series of videos from the online cycling magazine GCN. In that review I mentioned that the authors felt that heart rate was not a good way to identify one's Zone 2, but that breathing rate was. The criterion they suggested for the top of Zone 2 was the point where conversation is forced but possible. This metric is used, in various forms, by many coaches and is called the Talk Test. I do not find the criterion used by GCN easy to use because it is vague; what exactly does it mean for conversation to be forced but possible? Recently, I encountered an alternative version of the Talk Test which I found much easier to use, a version called the Counting Talk Test.
The Counting Talk Test (CTT) is a way of quantitating the Talk Test. In the Counting Talk Test, you exhale, take a deep breath, then count "One one thousand, two one thousand, three one thousand..." until you cannot count one number higher without taking a breath. This measurement is made while resting and then during exercise. The results of the Counting Talk Test is expressed as the percentage of number a patient can reach during exercise relative to what they can reach while resting. The table at the top of the post shows the results of my first attempt to use that test. What I did was get on my trainer, set the gears at 61", ride at 60 rpm for five minutes and then executed the CTT. I then increased the gear to 71" (maintaining my cadence at 60 RPM), rode for five more minutes and then repeated the CTT. I repeated this for 80". 91", and 106". At 106" I was only able to continue for 2 minutes. I then reduced the gear to 71" and measured CTT after 5 then 3 minutes. As I acquired more experience with the CTT, I have gotten better executing it. One consequence of this is that I have decided that my resting CTT is closer to 23 counts rather than the 16 counts measured in that first test, so I now calculate my percentages relative to that constant value of 23.
I encountered the Counting Talk Test in the Journal of Exercise Physiologyonline (JEPonline) Volume 5 Number 1 February 2002. This paper, and in fact every paper I have encountered that investigates the Counting Talk Test, considers it in a medical context rather than a sports context (which is why I used the word patient rather than athlete in the previous paragraph.) The medical community mostly uses a three zone Intensity system, Easy, Moderate and Vigorous, as opposed to the seven Intensity zone (Zones 1 through Zone 7) that the coach I follow, Coach John Hughes, uses. However, over the years I have come to the conclusion that the top of most coaches' Zone 2 and the top of the medical communities' Moderate exercise zone are both equal to each other and equal to the aerobic threshold. Since locating my aerobic threshold is probably the most important use I have for the Talk Test, the difference in training zone systems was not a big limitation. What was a big limitation is that the authors of this paper chose not to distinguish between Moderate and Vigorous exercise but considered the two together (they reported a value for the Counting Talk Test of 55% at the bottom of Moderate Exercise and 30% at the top of Vigorous Exercise.) The value I needed, the boundary between Moderate and Vigorous exercise, was not reported. A search for a scientific study that did report that value lead to Frontiers in Physiology Volume 13 article 832647 2022
The Frontiers in Physiology paper was, in fact, a comparison between the Counting Talk Test and an alternative they developed, the Regulated Monosyllabic Talk Test. I was not persuaded to switch to their Regulated Monosyllabic Talk Test but did find this paper useful because it reported the values for the Counting Talk Test at lower and upper boundaries of the Moderate (63% to 48%) and Vigorous (48% to 32%) exercise zones.
Both of these papers had as their goal the use of some version of the Talk Test to find the boundaries of the Moderate and/or Vigorous Exercise zones. To do that, they had to know where these boundaries are and then measure the value of their Talk Tests at these boundaries. How did they define these boundaries? Unfortunately, they did so using Heart Rate, exactly what GCN (and others) have argued should be avoided. In response to that concern, I compared the CTT to the version of the Talk Test used by GCN and determined that the percentages given in the Frontiers in Physiology appear to be about right, at least for me.
How does the CTT compare to heart rate as a way to measure Intensity? The main thing I use heart rate for is to measure average Intensity of a ride and thus cumulative Load over time and the CTT is impractical for that purpose. The reason I initially pursued it was that it was one more test that I could use to determine if I had correctly located my aerobic threshold. Having done that I now continue to use now and again it because it is free of some of the complexities of heart rate. Heart rate can be higher or lower based on fatigue, stress, caffeine, environmental temperature, etc. Based on my experience so far, CTT seems to be much less sensitive to such considerations. Also, heart rate is a lagging indicator, it takes time for it to increase after Intensity increases. As best I can tell, CTT responds to an increase in Intensity with little or no delay.
Does the aerobic threshold I measure using CTT agree with what I had previously assumed it was? The answer to that question is not so simple, as is illustrated by the following output from the software used by my heart rate monitor:
This ride was on my Trainer and done at a constant effort, 70 RPM in a 71 inch gear. The Counting Talk Test yielded a value of 11 counts which corresponds to 48%, the top of Zone 2. However, my average heart rate over the course of that ride is 123 beats per minute which corresponds to the middle of Zone 2. Is this a disagreement? Perhaps, but note that, although I held my Intensity constant over the 30 minute of the ride, my heart rate was not constant but increased during at least the first half of the ride. If I look at only the second half of the ride, my heart rate, estimated by the white line, is at 132 beats per minute, much closer to the top of Zone 2. I suspect that my heart rate during the first half of the ride is not a good indicator of Intensity because heart rate lags behind Intensity. If this explanation is correct, then the Counting Talk Test agrees with the other approaches I have used to locate my lactate threshold.
In summary, I think the Counting Talk Test is a better way to estimate breathing rate than the approaches suggested by the exercise community to date. To be most useful, the exercise community would have to adopt the CTT (or something similar) and calibrate it against reliable laboratory measures of Intensity like blood glucose or O2/CO2 levels in the breath. This would provide a clear, accurate way for the average athlete to locate their aerobic threshold quickly, easily, and inexpensively.
Thursday, January 9, 2025
Heart Rate and Intensity
- Speed is only a good indicator for one specific route. It is possible that I might be able to map some kind of equivalence for two commonly ridden routes like the Alpine and Cañada routes, though I worry that even this level of data processing could lead to false conclusions. Perhaps more importantly, many of my rides are ridden over a wide variety of routes, none of which I ride commonly enough to provide the data needed to map speed onto Intensity. That is why many cyclists use power meters.
- The speed corresponding to a given level of Intensity changes with training. The graph at the top of this post shows data for rides on the Cañada route between June 17 and October 26 of 2024. If I do a similar analysis for rides on the Cañada route between July of 2022 and October of 2024, the R-squared value drops from a respectable 0.70 to a useless 0.36. This is because variations in how much I was training and my resulting fitness varied substantially over that longer time period.