Strava export to dashboard
Your Strava history in the units the app shows you.
Request your bulk export from Strava, drop the activities CSV here, and the numbers finally match the app. Distance arrives in meters and is converted, Average Speed arrives in meters per second and is turned into a pace you can read, the human-formatted Activity Date is parsed into a real timestamp, and Moving Time is kept distinct from Elapsed Time so your averages are not ruined by coffee stops.
Prefer the full explorer? Open the app, or start from the generic dashboard builder.
The app shows kilometers, the file contains meters
Strava's export is written in the units a database would choose, not the ones you see on your phone. Distance is meters, so a 10K run is the number 10000. Average Speed is meters per second, so an easy jog is 2.68 and a hard tempo effort is 3.6, which is a scale nobody has intuition for. Divide distance by a thousand and convert speed into minutes per kilometer and the same file suddenly reads like your training log instead of a physics problem set.
Then there is the date. Activity Date comes out as something like Apr 3, 2026, 7:15:00 AM, a display string rather than an ISO timestamp. Sort that column alphabetically, which is what a spreadsheet does when it fails to recognize the format, and April lands before January. This page parses the string properly, so a year of training sorts into a year of training and the weekly volume chart means something.
How to export from Strava
- Open your Strava account settings Sign in at strava.com on the web, click your profile picture, then Settings. The bulk export lives under My Account, in the section about downloading or deleting your account. The mobile app does not offer it.
- Request the archive Choose Download Request for the archive rather than anything on the deletion side of that page. Strava builds the file in the background and emails you a link when it is ready, which usually takes minutes to a few hours.
- Unzip the archive You get a zip containing a lot more than the spreadsheet: your GPS files, photos, comments and clubs. The one you want is activities.csv at the top level.
- Open activities.csv It is genuinely wide, with dozens of columns, because Strava includes every metric any device has ever sent it. Most are empty for most rows, which is normal.
- Drop it on this page Distance and speed are converted on load, Activity Type becomes the first filter chip, and the trend chart uses weekly volume rather than raw activity count.
The bulk archive is the full history, not a date range, so it grows with your account. A decade of activities makes for a large file, and it is worth splitting by year if you only care about the current season.
Try with sample Strava data (the same columns, 78 rows, no upload needed).
What the dashboard shows
Every panel below is built from a column that is actually in the export, named the way Strava names it.
- Weekly volume. Distance summed by week in kilometers, which is the number that actually predicts whether a training block is working.
- Pace over time. Average Speed converted to minutes per kilometer, plotted per activity, so the improvement curve is visible without any manual arithmetic.
- Activity type mix. Run, Ride, Swim, Walk and whatever else your devices have invented, as a share of both count and time.
- Heart rate distribution. Average and Max Heart Rate where they exist, with the strapless activities excluded rather than counted as zero.
- Moving against elapsed. The gap per activity, which quantifies how much of a long ride was actually spent riding.
- Elevation and relative effort. Elevation Gain against Relative Effort, which together explain why a short hilly run felt harder than a long flat one.
Activity ID,Activity Date,Activity Name,Activity Type,Elapsed Time,Moving Time,Distance,Elevation Gain,Average Heart Rate,Max Heart Rate,Average Speed,Calories,Relative Effort
Six things about a Strava export that surprise people
- Distance is in meters. Always, regardless of the unit preference set on your profile. A marathon is 42195 and a casual walk is 3200. Divide by a thousand for kilometers.
- Average Speed is meters per second. Not kilometers per hour and definitely not pace. Multiply by 3.6 for kph, or divide 1000 by the value and convert to minutes for pace per kilometer.
- Activity Date is a display string. Something like Apr 3, 2026, 7:15:00 AM rather than ISO. Spreadsheets frequently fail to parse it and fall back to alphabetical sorting, which scrambles the timeline.
- Elapsed includes your stops. Moving Time excludes them. Pace computed on Elapsed Time flatters nobody and makes a ride with a long lunch look like a bad day of fitness.
- Heart rate columns are often blank. Every activity recorded without a strap or a wrist sensor has nothing there. Treating blank as zero drags your average heart rate down toward resting and ruins the chart.
- Activity types are inconsistent. The same kind of session recorded on a phone, a watch and a third-party app can arrive as three different type strings. Group loosely before you trust the mix.
Convert the meters, turn the speed into pace, keep the blanks blank. Do that and the export becomes the training history the app never quite shows you, because the app only ever shows one activity at a time.
Frequently asked questions
Why is my Strava distance in the tens of thousands?
Because the export writes distance in meters while the app displays kilometers or miles based on your profile setting. The export ignores that preference entirely. A 10K run is stored as 10000 and a 100 kilometer ride as 100000. Divide by 1000 for kilometers, or by 1609.34 for miles. This page reads the column as meters and converts it before anything is charted.
How do I turn Average Speed into pace?
The column is meters per second, so divide 1000 by the value to get seconds per kilometer, then convert that to minutes and seconds. A value of 3.33 works out to 300 seconds, which is a five minute kilometer. Doing this by hand for a season of runs is miserable, which is why the dashboard shows pace directly and keeps speed available for cyclists who prefer it.
Should I use Moving Time or Elapsed Time?
Moving Time for pace and Elapsed Time for how long you were out. Strava pauses the moving clock when you stop, so the two diverge on any ride with traffic lights or any run with a water stop. Computing pace on elapsed time makes every session look slower than it was. Computing duration on moving time undercounts how much of your Saturday the ride actually consumed.
Why is my average heart rate so low?
Almost certainly because activities recorded without a heart rate sensor have blank values that something in your pipeline read as zero. A few zeros mixed into real readings pull the average down dramatically. Blanks should be excluded from the calculation, not counted. This page skips empty heart rate cells rather than substituting a number, and tells you how many rows were skipped.
Can I get a date range instead of everything?
Not from Strava directly. The bulk export is your entire account history in one archive, with no date filter offered. If you only want the current season, load the file here and filter on the date axis, or split it first by year with the CSV splitter. For long-standing accounts the full archive can be genuinely large, so splitting is worth the extra minute.
Does my route and heart rate data leave my machine?
No. Everything happens inside the tab you already have open, and the panels are computed from data held only in memory. A Strava archive is a detailed record of where you go and when, which is about as personal as fitness data gets. There is no upload step and no account here, so the only copy of the file is the one you downloaded.
Related tools
See a training year without converting anything yourself
78 activities in raw Strava units: meters, meters per second, human-readable dates, a few strapless sessions with blank heart rate and two inconsistent activity types.
Open the sample Strava dashboard