Cookies for analytics and advertising
We use cookies for analytics and advertising, both sent to Google. Refusing changes nothing you can see.Read the privacy page
FIT
The binary format sports watches record natively. Compact, and unreadable without conversion.
FIT
FIT is a binary format, meaningful only to a program that knows it. It is used for fitness tracking.
The extension is .fit, and the full name is Flexible and Interoperable Data Transfer. Both matter less than what the file can hold, which is what the rest of this page is about.
Garmin published it in 2008. The specification is Flexible and Interoperable Data Transfer.
Age is worth knowing here for one practical reason: the older a format is, the more programs have had time to learn it.
It is written down and implementable, though the vendor decides what the next version looks like. In practice that is enough for the file to keep opening; it is not enough to be sure of it.
FIT stores its content exactly. Saving it again changes nothing, so it can be opened, edited and re-saved as often as you like without accumulating damage — which is what makes it a working format rather than a delivery one.
FIT carries a checksum, so a damaged file is detected rather than silently mis-read.
A checksum will not repair anything. It tells you the file is wrong, which is the difference between finding out now and finding out from whoever you sent it to.
Garmin Connect, Strava and GoldenCheetah read it, and so do most programs of the same kind.
If a file will not open, the format is rarely the problem — it is more often that the program predates it. Converting to something older is the reliable way past that, and it is what the rest of this site is for.
No browser reads it.
That is the single most common reason to convert it: not that the format is bad, but that the place you want to show the file cannot read it.
FIT is meant to be handed over rather than worked in. Editing one is possible and rarely pleasant; the sane approach is to change the source and export again.
The recurring complaints: support outside its home ground is uneven.
None of these is a reason to avoid the format. They are the things worth knowing before you are surprised by one, which is a different claim and a more useful one.
FIT is not an export format. It is what the device records to while you are moving — a compact binary log written a record at a time, designed by Garmin for hardware with very little memory and a battery that has to last a week.
So a FIT file is the original. Everything else you might have of an activity — the GPX, the TCX, the view on a training platform — is derived from it, and derived formats consistently carry less. That single fact is the reason this format is worth understanding rather than converting away as quickly as possible.
The format works by defining its own structure as it goes. A definition message says "records of this type contain a timestamp, a heart rate and a cadence, in these sizes"; the data messages that follow are then just the values, with no field names repeated.
That is what makes it so small — a one-hour ride recorded once a second is tens of kilobytes where the TCX equivalent is several megabytes. It also makes it extensible without breaking anything: a device recording a new measurement adds a definition for it, and older software reads what it understands and skips the rest. A file from a watch released this year still opens in a reader written years ago.
Running dynamics — ground contact time, vertical oscillation, stride length. Cycling power in detail: left and right balance, torque effectiveness, pedal smoothness. Swimming stroke type and count per length. Physiological estimates such as training effect and recovery time. Device information, battery state, sensor identities, and every lap and event marker in the session.
None of that survives a conversion to GPX, and only some of it to TCX. If you are exporting an activity to keep, exporting FIT rather than GPX is the difference between keeping the session and keeping its route.
A text editor shows binary noise. There is no way to glance at a FIT file and see the date or the distance, which is the practical cost of the compactness.
Free readers exist and are good — Garmin publishes an SDK, and several web tools will open a file and show the session, the laps and the streams. For a quick look, uploading to a training platform is usually faster than installing anything. For anything programmatic, the SDK or one of the open-source parsers is the way in.
Garmin devices write them, and so do Wahoo, Zwift, Suunto, Coros and most modern bike computers — it has become the de facto standard for the whole category rather than a Garmin-only format. On a device connected by USB they sit in an Activities folder and can simply be copied off.
Strava, TrainingPeaks, Garmin Connect, intervals.icu and the rest all accept FIT uploads and prefer them, precisely because the extra data is there. When exporting from a platform, take FIT if it is offered; take TCX if it is not; take GPX only if nothing else is available.
FIT to TCX keeps the track, the timestamps, the laps, heart rate and cadence, and drops the running dynamics, the detailed power metrics and the device information. FIT to GPX keeps the track and the timestamps and drops nearly everything else — heart rate survives only as a vendor extension the receiving platform may ignore, and an indoor session with no coordinates has almost nothing left.
Nothing converts in the other direction usefully. A GPX turned into a FIT is a track wearing a training format: one lap, no heart rate, no cadence, because the data was never in the source. Convert down when a platform demands it, and keep the FIT as the copy that holds the session.
It happens: a watch that ran out of battery mid-ride, a file the platform refuses, a session that uploaded with the wrong sport or a wildly wrong distance. Because the format is a sequence of self-describing messages, a truncated file is frequently still readable up to the point it stopped, and several free tools will repair or trim one.
What is worth knowing before editing anything: the file stores both the detailed records and the session summary, and nothing recalculates one from the other. Trim ten minutes of records and leave the summary claiming 42 kilometres, and every platform will believe the summary. Edit both, or use a tool that does.
| Extension | .fit |
|---|---|
| Media type | application/vnd.ant.fit |
| Published by | Garmin |
| First published | 2008 |
| Specification | Flexible and Interoperable Data Transfer |
It is binary, so a text editor shows nothing useful. Upload it to Strava, Garmin Connect or intervals.icu for a quick look, or use one of the free web-based FIT viewers. Garmin publishes an SDK for anything programmatic.
FIT is the compact binary the device records natively; TCX is an XML export derived from it. TCX keeps the track, laps, heart rate and cadence, and drops running dynamics, detailed power metrics and device information.
FIT whenever it is offered. A GPX keeps the track and the timestamps and little else — heart rate survives only as a vendor extension that may be ignored, and an indoor session with no coordinates has almost nothing left after the conversion.
It is self-describing binary: a definition message states what a record contains, and the records that follow are just values with no field names repeated. A one-hour activity is tens of kilobytes where the TCX equivalent is several megabytes.
Garmin created it, and Wahoo, Zwift, Suunto, Coros and most modern bike computers write it too. It has become the de facto standard for the whole category, and every major training platform accepts it.
Often. Because the file is a sequence of self-describing messages, a truncated one is usually readable up to where it stopped, and free tools will repair or trim it. Remember that the summary and the detailed records are stored separately and nothing recalculates one from the other.