Cycling Analytics now supports activities other than cycling. Cycling Analytics remains focussed on cycling, but many cyclists do exercise other than cycling and it pays to keep track of that too. Cycling Analytics has always supported the data files, but now the activity type is indicated on the calendar and elsewhere.
Most of what’s new here is the ability to see and specify activity types. On the calendar, for example, activities that aren’t cycling have a little icon next to their name. The main change concerning how data is handled is that pace (minutes per kilometre or mile) instead of speed is shown by default for runs. Activities uploaded in the last couple of years or so should already have the correct activity type. Activity type can be changed on the activity page for individual activities or in bulk using the rides table view. The easiest way to fix older activities might be to go to the rides table and search for something like
avg_speed < 15 to find activities that aren’t cycling. The rides table can now be searched by entering the activity type. For example, entering
type == 'running' will show all runs.
The main ride chart can now show W’ balance. It’s hidden by default and can be revealed by selecting it in the legend. W’ balance models how much energy you have left. For example, the ride in the image above can be divided into three sections. The first half is relatively easy (with a few short hard bits) so the W’ balance line (purple) remains high. Then there is an extended hard effort that comes close to exhausting W’ balance. The final part of the ride is easy and allows W’ balance to recover. The underlying theory was partly discussed when the power model was added:
According to the critical power model, you can sustain a certain power output indefinitely (critical power, CP) and you also have a certain amount of additional energy that can be used above the critical power (W’).
W’ balance, originally developed by Philip Skiba, models how the amount of work remaining in W’ is depleted and recovers during a ride. At the start of a ride, W’ balance is equal to W’. When riding above CP, W’ balance is depleted. When riding below CP, W’ balance recovers. The closer the current power output is to CP, the slower W’ balance is depleted or recovers. In theory, if W’ reaches zero, you are spent and cannot produce more than CP (in practice, W’ can go below zero when W’ or CP are incorrect or when it falls short as a model of human endurance).
By default, the CP and W’ used are based on Cycling Analytics’ power model’s estimate based on the previous six months of riding (from the date of the ride you’re looking at). They can be changed by clicking on the numbers in the legend.
One significant difference between W’ balance and Cycling Analytics’ power model is that the power model is largely based around steady state efforts, while W’ balance also handles uneven efforts. For example, in the above ride, the hard effort is on undulating terrain and doesn’t have particularly impressive efforts according to the power curve chart, so the power model significantly underestimates the CP and W’ required. W’ balance is much more accurate in these cases. (A better version of the power model would incorporate this.)
A number of other changes have also been made to Cycling Analytics in this update.
The rides table can show a summary of all the activities shown on the table. It’s hidden by default and shown when the “show summary” button is clicked. By default, the summary will be for every activity you have logged, but filters can be used. For example,
year == 2020 or
year == 2020 && type == 'cycling' for all activities in 2020 and all rides in 2020 respectively. The summary shows information for each field displayed in the table.
For those who use RPE, it’s now possible to use a 0–10 scale instead of the default 6–20 scale. Switching between the scales converts existing RPE measures with no data loss. This article explains how this works in more depth.
For coaches, there is a new athletes page, which contains a sortable table that, for each athlete, can show up to the previous and upcoming six weeks worth of activities and plans, power curve maximums for up to the previous twelve months, and a few other things. This can be found via the link on the coaching page or at the top of the list in the coaching dropdown in the page header.
This site has received a minor facelift that I think sharpens its appearance. Some colours have been slightly changed.
There’s now a short list of rides immediately before and after the current ride at the bottom of the ride page. (It’s also possible to navigate between rides by clicking on the training load chart that’s also at the bottom of the ride page.)
The mass editor on the rides table now allows summary data to be edited.
There is now a short FAQ.
Ride titles can be sent to Strava when they’re edited on the ride page. This is controlled with an “also set on Strava” checkbox that’s next to the title when editing.
CSV data for laps and segments can be shown on ride pages. This can be copy-and-pasted into Excel.
A couple of changes have been made to Flexicharts.
.load() now shows training load based on power and heart rate data, rather than only power data as it used to. This is the same as how the training load chart works by default. If you want to use only power data, there is now
.load_power(). There is now a
.sport('<type>') command, which filters out activities that aren’t of the specified type. For example,
chart().type('running').distance().group_by(year).aggregate(sum).table() shows how far you ran each year in a table.
This is the blog of Cycling Analytics, which aims be the most insightful, most powerful and most user friendly tool for analysing ride data and managing training. You might be interested in creating an account, or following via Facebook or Twitter.