Recent changes

25 May, 2017 by David Johnstone

A handful of changes have been made to this site recently. Here’s a quick summary:

  • Added highlight option to searching rides table (instead of search only filtering)
  • Added CSV export for rides table
  • Allow clicking on power curve chart time labels
  • Moved training load chart settings to training load page
  • Changed plan text rendering to faster and simpler HTML converter instead of Markdown
  • Show HR and cadence peaks on ride edit page
  • Added support for ThB and SmO2 sensor data in FIT files
  • Raw file download via API
  • Added PWC130 to Flexicharts

In more detail:

The recently introduced table of rides has two new features: Searching can now highlight rides that match the search instead of only showing rides that match the search, and a CSV representation of the data can be shown with the click of a button.

When showing CSV, the data can be separated by either commas or tabs (TSV). Tab separated data can be copy and pasted directly into Excel or other spreadsheets, while comma separated data can be saved in a plain text file and consumed by programs.

The power curve chart has been updated so that the time labels can be clicked on, which is equivalent to clicking on the chart at that time (so it “freezes” the chart at the given… continue reading


Drag and drop training plan creation

12 April, 2017 by David Johnstone

Here’s an easier way to make training plans. Plans can now be dragged directly from the training plan library and onto the calendar.

Clicking on “plan library” now reveals a list of training plans, which can be dragged and dropped onto the calendar. It’s normally taller than in the screenshot above, but I wanted a picture that includes the top and bottom. Holding the mouse over a plan for a moment reveals the details of the plan. Typing something into the “filter” searches for plans by title or group. Clicking on “show full editor” brings up what clicking on “plan library” used to.

The complete list of drag and drop operations supported on the calendar is:

  • Drag from the plan library to the calendar: adds the training plan to the day.
  • Drag a plan from the calendar to another day on the calendar: move the training plan to the new day.
  • Drag a plan from the calendar to another day on the calendar while holding down control/alt/option/command: copy the training plan to the new day.
  • Drag a plan from the calendar to the “rubbish” area at the bottom of the plan library: delete the training plan from that day.

If you don’t see the “plan library” button, it’s probably because you haven’t… continue reading


A big update

7 April, 2017 by David Johnstone

This update has been in the works for a while, but it’s finally ready. And it’s a big one. Here’s a summary of what’s new and improved:

  • Rides views
    • New searchable and sortable table
    • Calendar now shows more summary info
    • Plans can be dragged and dropped on calendar
  • Power curve chart
    • “New” power curve chart is now default power curve chart
    • Power curve chart library
  • “Drawing” on training load chart
  • RPE
  • Virtual rides
  • A handful of other things

Rides views

Previously, there was the “new” calendar and the “old” list of rides. Now the calendar shows monthly power curve and training load summaries, the old list has been updated so it’s going to stay around, and there’s a new sortable and searchable table that is also useful for mass editing and deleting. The interface has been updated to make all these views easily accessible, and any can be set to the default view.

For touch screen users, the arrows in the header can now be clicked/touched without navigating to the top-level link (which affected the coaching menu and would have affected the rides menu.)

continue reading


Comparative statistics for females

27 October, 2016 by David Johnstone

There are far more males than females who use this site, which has meant that there hasn’t been enough data to make decent comparative statistics charts for females. Now there is, so now there is a second set of charts for females that can be found under Athlete > Statistics.

The power curve chart for females looks particularly rough because of the lower number of people it’s based on. It’s similar to what the chart for males looked like when it was first added, but it will improve over time. The top group shown on the chart is the 90–95% bracket, leaving the top 5% not shown on the chart.

There is now a new top segment on the chart for males, which shows the 98th percentile, leaving only the top 1% not shown.

continue reading


Flexicharts builder and other improvements

29 April, 2016 by David Johnstone

Quite a few improvements have been made to Flexicharts. The most obvious one is that there’s a “chart creator” button, which, when clicked, shows a simple interface that allows custom charts to be created with a few mouse clicks and no typing.

This chart creator isn’t able to create a lot of charts that can be entered directly as commands, but it makes it possible to build some charts with a quick and simple interface.

There are a lot more changes to Flexicharts beyond the chart creator.

The colour of points can be based on data by specifying color as an axis.

chart().pwc170(0.5, 'y').epower_curve(1200, 'x').day_lts('color').color('blue-gold').x_axis(160, 360).y_axis(190, 420)

continue reading


Segments and more

15 April, 2016 by David Johnstone

Here’s a long overdue update to the site. The major new feature is segment tracking with automatic interval detection.

Segments are parts of a ride. They are given a name, and all segments of the same name can be compared against each other. The main use of segments at the moment is tracking intervals over time, as it provides a very easy way to see, for example, how all of those twenty minute intervals are going.

Segments can be created on ride pages, using the tools there to find and save segments. Alternatively, segments can be created automatically for intervals recorded with a power meter. To do this, you first need to set it up by specifying what duration intervals you do and a couple of other things so that the site knows what to look for. Intervals are then searched for in all existing rides, and all rides uploaded in the future.

There’s quite a few more updates too, including:

  • Trend lines can be shown on the “power vs. L/R…” chart, which shows L/R power balance and other advanced power metrics.
  • Trend lines can be created on Flexicharts using the .trendline() function. This uses the Loess method for estimating the trend.
  • Duplicate rides can be uploaded.
  • HTTPS is always used, as opposed to being optional… continue reading

Strip power data from Strava uploads

6 April, 2015 by David Johnstone

If you don’t want to share your power data with the world, it’s now possible to have the power data of your rides stripped from the ride files that are uploaded to Strava. There are also options to remove heart rate and cadence data. These new options can be found on the linked accounts page.

This works by creating a new TCX file based on the ride file was uploaded and uploading that to Strava. If none of the data stripping options are enabled and your ride is a FIT, TCX or GPX file, then the original ride file is uploaded to Strava. If your ride is one of the other file formats that Cycling Analytics supports, a converted TCX file will be uploaded. TCX files don’t support temperature data, so that is lost in the process.

On the topic on importing and exporting rides, a number of people have asked about automatic importing from Garmin Connect. This isn’t yet supported, and the main issue is that Garmin charges US$5000 to access this. When this doesn’t seem like so much money, I imagine that this will be added to the site.


A small collection of changes

4 April, 2015 by David Johnstone

In one sentence: Two new Flexicharts commands, coaching UI improvements, some more calendar options for showing day names and week numbers and changing the first day of the week, and Pioneer ride files are now supported.

There are two new commands for Flexicharts. rebase_dates allows the dates to be shifted so that multiple data sets can be shown on top of each other on the same chart, which means it’s possible to compare the long-term stress of multiple years on one chart (as shown below). accumulate causes the chart to show cumulative data, so you can see how distance accumulates throughout the year. There are a couple of examples of this in the default Flexicharts library.

rebase_dates works by giving it a date, and then it shifts the x-values (when dates) so that the date provided is day 0, the next day is day 1, and so on. The Flexicharts documentation has been updated with more details and examples of the new commands.

Coaches will notice that, when looking at one of their athlete’s pages, there is now a dropdown menu in the header to provide access to the analysis and athlete configuration pages. The URLs for the athlete pages have also changed to make this possible, and coaches can use these pages for their athletes without using… continue reading


Improved comparative statistics

27 March, 2015 by David Johnstone

The colourful chart that shows how your power curve compares with all other Cycling Analytics users has always had a problem with faulty power readings skewing the data high, especially for short time periods. This issue has now been fixed with the help of some smarter filtering algorithms.

Here’s what it looked like before today’s update. It turns out that 5% of Cycling Analytics users don’t have a maximum power output of over 2000W.

continue reading


Flexicharts library and other changes

5 March, 2015 by David Johnstone

A few changes to Flexicharts have been made:

  • All commands now start with chart() instead of rides.
  • Flexicharts can now be saved so that you don’t have to continuously retype the same commands.
  • Multiple commands can be given at once (separate with semi-colons).
  • Time in a power or heart rate zone can be used in charts with power_zone(index) and hr_zone(index) functions.

Commands now start with chart() instead of rides because this change was necessary to allow for multiple commands at once (which also means charts saved in the library can contain multiple commands for multiple charts). There have been some big under-the-hood changes, but everything else should work the same as they used to.

As an aside, it’s been interesting to see the response to Flexicharts. For some, it provides a powerful interface to their cycling data, but to others, it’s opaque and unfriendly. Command line interfaces aren’t popular in general, and I understand why, but I think it’s overall useful that this functionality exists.

Finally, the new power curve chart now supports custom colours for series. Click on the colour bar in the legend to change them, and then enter any valid CSS colour (i.e., #000, #000000, black, rgb(0, 0, 0), and hsl(0, 0%, 0%) are equivalent). It’s… continue reading

Page 1 2 3 4 5 6 7

This is the blog of Cycling Analytics, a website that exists to help people analyse the data produced by modern bike computers, with a special focus on power data.

You can follow this in your favourite feed reader.

Also, I'm on Twitter as @cyclist_dave.