One row per track point

GPX to CSV Converter

Flatten a GPX track into a clean CSV for Excel, Google Sheets, Python or R. One row per point, with elevation, time, heart rate and cadence when present.

All processing happens in your browser — your files never leave your device.

How to use the GPX to CSV Converter

  1. Drop your .gpx file onto the box above.
  2. TrackKit reads every track point and shows the totals so you know what you are exporting.
  3. Click Download to get a .csv file.
  4. Open it in Excel, Google Sheets, or load it with pandas (pd.read_csv) or R.

What the CSV contains

Every track point in your GPX becomes one row. The columns are lat, lon, ele (elevation in metres) and time (ISO 8601 timestamp). If your file records heart rate, an hr column is added; if it records cadence, a cadence column is added. Columns that would be entirely empty are left out, so you do not get a wall of blank cells. The file uses standard comma separation with proper quoting, so it opens cleanly in any spreadsheet without an import wizard fight.

What you can do with it

A CSV turns your route into data you can actually compute on. Drop it into a spreadsheet to chart elevation against distance, spot where your heart rate spiked, or calculate a custom metric. In Python, pandas.read_csv gives you a dataframe in one line. In R, read.csv does the same. Researchers, coaches and hobbyist data-nerds use this to build analyses that no fitness app offers out of the box.

Coordinates and precision

Latitude and longitude are written with full precision (seven decimal places, about a centimetre). Elevation is rounded to the millimetre. Timestamps are kept exactly as they appear in the GPX so you can parse them directly. If a point has no elevation or no timestamp, that cell is simply empty rather than filled with a fake zero, which keeps your averages honest.

Track points only

CSV is a flat table, so it represents the track itself. Waypoints and routes stored in the same GPX are not mixed into the point table; if your file has track points, those are what you get. This keeps every row meaning the same thing, which is what a spreadsheet or dataframe needs.

Nothing leaves your browser

Here is something most online converters gloop over: a route file is a map of your life. The start and end of a run is usually your front door. A "morning loop" repeated fifty times is your home address with a timestamp. That is exactly why TrackKit does the whole conversion inside your browser using the File API. The bytes are read into memory, transformed, and handed back as a download. Nothing is uploaded, nothing is logged, and there is no server that could be breached or subpoenaed. You can open the network tab in your browser and watch: not a single request leaves the page after it loads.

Frequently asked questions

What columns are in the CSV?

lat, lon, ele and time are always present. An hr column appears when your file has heart rate, and a cadence column appears when it has cadence. Empty columns are omitted.

Can I open it directly in Excel?

Yes. The file is standard comma-separated UTF-8 with proper quoting, so Excel, Numbers and Google Sheets open it without an import wizard.

How do I load it in Python?

Use pandas: df = pandas.read_csv("track.csv"). Parse the time column with pandas.to_datetime(df["time"]) if you want real timestamps.

Why are some elevation or time cells empty?

Not every GPS point records elevation or a timestamp. TrackKit leaves those cells blank rather than inserting a zero, so your averages and charts are not skewed by fake values.

Does it include waypoints?

No. A CSV is a single flat table of track points, so every row means the same thing. Waypoints are best kept in GPX or KML, where they have their own structure.

TrackKit converts your files as faithfully as each format allows, but formats are not identical and some data cannot survive every conversion (see the notes above each download). Distance and elevation figures are computed from the points in your file and are estimates for general use, not survey-grade measurements. Always keep your original file as a backup.