My Peloton Journey
Background
I purchased a Peloton bike in March 2021. While the bike tracks plenty of metrics, I wanted to consolidate my full workout history and see if any interesting trends could be extracted.
Method
I accessed Peloton’s API and pulled my data using the requests library in Python. I was then able to manipulate the data to create the plots below. My cycling workouts recorded several metrics captured by the bike, while my non-cycling workouts only reported basic information.
Cycling workouts: Calorie and output ranges by class length
Peloton calculates Output at a given moment as a combination of cadence (leg speed) and resistance, and it serves as a good metric for determining how hard I worked in each cycling workout. As expected, the general trend shows that calories burned and total output tends to increase as the class length increases.
I immediately noticed the low end of calories and output for 20 & 30 minute classes were nearly identical, and lower than for 15 minute classes. Without any context, this might seem unlikely. I quickly realized that this is due to 20/30 minute “Recovery” and “Low Impact” rides I take on my rest days. These rides are meant to be easier.
*The below plot is interactive.
Cycling workouts: Calorie and output ranges by instructor
I decided to look at the same metrics by instructor instead of class length. Was there an instructor who was more likely to push me? While this was an interesting plot to create, I realized that there were too many caveats to definitively say whether an instructor motivates me more than others.
For example, I have taken more 45 minute classes with Kendall Toole than any other instructor, and she is known for rock playlists, which I prefer when I’m ready for a hard workout. Meanwhile, Emma Lovewell often has more mellow playlists, which I like for recovery rides. Lastly, I like Robin Arzón’s HIIT and Hills rides, which are very intense and often shorter in length.
While this plot was fun to look at, I quickly realized I would have to control for more factors before I could draw any real conclusions.
*The below plot is interactive.
Chronological history of average output for cycling workouts
In an attempt to control for class length, I wanted to see if my average output (not total output) has improved since getting the Peloton bike and doing my first workout on March 15, 2021.
The below plot does still include recovery, low impact, warm-up and cool-down rides, which are not meant to push you to your max effort.
Even without removing these lower-effort workouts, I could clearly see a slump between workout #76-#88 when I was generally feeling more fatigued in my workouts.
I chose to use a lollipop plot instead of a bar chart because of the number of data points. Having ~90 bars on one graph can be overwhelming, whereas the bars on a lollipop plot are less obtrusive and draw your attention to the points at the ends of each line.
*The below plot is interactive.
Chronological count of peloton workouts (all types)
Lastly, I wanted to see how often I was doing a Peloton workout since I first joined in April 2020. Creating a heatmap based solely on the number of workouts and ignoring specific metrics allowed me to include non-cycling workouts to get a fuller picture of my history with Peloton.
Unsurprisingly, when gyms re-opened in October 2020, I worked out less frequently with the Peloton app, but when I got the bike in March 2021, my frequency increased.
*The below heatmap is interactive.
Data from