Benchmarking Strava's power estimator algorithm

Beloved Marple-enthusiasts,

We're back with another blog post, this time on your request!

Two weeks ago we asked you what kind of data you wanted us to visualise with Marple.

Cycling came out as a clear winner. Convenient! We had already planned to kick-off the Marple summer in Spain for a work-from-where-the-sun-shines week. Now we had an excuse to also bring our bikes.

The main reason we cycle is obviously to impress our friends and ex-girlfriends on Strava. Kidding not kidding, Strava is a cool application to gain insights in your ride data and compare it with friends.

Strava also estimates the average power output of your ride in watts. This is an ambitious estimate, because next to speed, weight and road gradient (values Strava typically knows), there are multiple other variables that influence power that Strava does not have information about. Think about weather conditions, the aerodynamics of your bike position, whether you are drafting behind your friends (yeah you, Matthias), etc.

As Strava's estimated power output has been at the heart of quite a few discussions within our team before, we decided to put this estimate to a test.

We planned a route, rode our bikes, and uploaded the ride to Strava.

Idris rode the ride with a standard power-meter. Before uploading the ride to Strava, however, we cut the power data from the file.

Then we uploaded the ride data (without the power data) to Strava. Second, we fetched Strava's estimates of Idris' power output from Strava (we found this data easily in JSON-format in the Network section of the developer tools of our browser).

After converting this data to csv-file format (using a plain and simple custom python script), 99% of the work was done.  In the blink of an eye, Marple parsed the csv-file to its databases and in one click we immediately had a very clear view of how the actual power output compared to Strava's estimation.

Setting both metrics to the same scale shows that Strava's estimation is doing a pretty impressive job.

We noticed that Strava's estimated power output is quite noisy. No problem for Marple. With a click on a button, we applied a moving-average to

this data, creating a signal that tells a much clearer story.

By organising our data in different workbooks, and adding different metrics to those workbooks, we gain further insights under the hood of our data.

For instance, we noticed that when the gradient increases, Strava mostly underestimates the actual power output. The other way around, downhill Strava mostly overestimates the power output. As these two tendencies cancel each other out in a roundtrip as ours, Strava's overall estimate is still pretty accurate.

Are there any insights we are missing?

WIth love from Spain,

The Marple crew