Data Model

How raw data becomes organized data.

Sample rows from the raw Peloton CSV
Timestamp Title Type Discipline Watts
2018-03-21 45 min Metrics Ride Music Cycling 217
2018-03-25 60 min Power Zone Endurance Ride Power Zone Cycling 223
organize.py classifies each row

Classification

15 min Warm Up
Type is "Warm Up" — adds to hours but not workout count
Ancillary
45 min Metrics Ride
Not a Power Zone format — counts in volume but no watts tracking
Volume
60 min PZ Endurance Ride
Power Zone with valid watts — counts in both volume and performance
Volume Performance
and calculates volume and performance metrics
Volume
2,964 core workouts
Monthly totals hours, workouts, miles
Heatmap daily effort tier
Headline stats streaks, totals
Instructors rides per instructor
Performance
1,474 Power Zone rides
Scatter each ride: date + watts
Rolling median 90-day trend line
Annual summary avg, p75, p90, max
FTP tests benchmark results