What is a GPX file?
GPX stands for GPS Exchange Format. It is an open XML standard maintained by TopoGrafix, and it is plain text, so you can open one in any text editor. A recorded activity is stored as a track: a long list of track points, each with a latitude and longitude, and usually an elevation and a timestamp.
That simplicity is why almost every app and device reads GPX, including the poster editor on this site. The flip side is that the base format has no field for heart rate, cadence or power. Those only show up when the app writing the file adds them as extensions. See does a GPX file have heart rate data? for how that works.
What is a TCX file?
TCX is Garmin's Training Center XML format, from Garmin's old Training Center software. It is readable XML too, but organised around a workout instead of a route. An activity has a sport type and is split into laps, and every lap carries its own totals such as time, distance, calories and average and maximum heart rate.
Inside each lap, trackpoints have native fields for position, altitude, distance, heart rate and cadence. Power is added through a Garmin extension. Garmin Connect still offers TCX as an export, and many training platforms accept it.
What is a FIT file?
FIT (Flexible and Interoperable Data Transfer) is a compact binary format from Garmin, developed by its ANT+ subsidiary Dynastream. Garmin watches and bike computers record in FIT, and so do Wahoo, Coros and Hammerhead devices. Zwift saves its rides as FIT files too.
Besides GPS points, a FIT file stores laps, sessions, events such as pauses, device and sensor details, and every sensor channel the device logged at the same time. Being binary, it is much smaller than GPX or TCX, but you cannot read it in a text editor.
GPX, TCX and FIT side by side
| GPX | TCX | FIT | |
|---|---|---|---|
| File type | XML text | XML text | Binary |
| Defined by | Open standard (TopoGrafix) | Garmin | Garmin (Dynastream) |
| Typical source | Route planners, phone apps, GPX exports from Strava and Garmin Connect | Garmin Connect exports, older Garmin devices | Garmin, Wahoo, Coros and Hammerhead recordings, Zwift |
| Heart rate, cadence | Only via extensions | Built in | Built in |
| Power | Only via extensions | Via Garmin extension | Built in |
| Laps | No | Yes | Yes |
| File size | Large | Large | Small |
| Open in a text editor | Yes | Yes | No |
.FIT vs .TCX: which one should you keep?
Keep the FIT. It is the file your device actually wrote, so nothing has been dropped or rounded on the way. Treat GPX and TCX as copies you make for a specific purpose:
- Use FIT as your archive, and for uploads to Strava, Garmin Connect, TrainingPeaks or intervals.icu.
- Use TCX when a tool does not take FIT but you still want laps and heart rate in the file.
- Use GPX when the line on the map is what matters: sharing a route, loading it onto another device, or printing it as a poster.
How do I edit a TCX file?
Since TCX is plain XML, you can open it in Notepad, TextEdit (in plain text mode) or VS Code and change values directly. A common fix is the Sport attribute on the <Activity> element, for example when a ride was saved as Other. Deleting trackpoints by hand is riskier: the lap totals stay the same, so distance and time no longer match the track.
To cut off the start or end of an activity, the free GPS Crop tool is easier. It reads TCX, GPX and FIT, shows a map preview while you set the range and saves in any of the three formats. A FIT file cannot be edited as text, so convert it first with the GPX, TCX & FIT converter.