TCX CSV

TCX to CSV Converter

Extract heart rate, GPS, cadence, and pace data from a TCX file into a flat CSV for spreadsheet analysis.

Drop your .tcx file here

or click to browse — file never leaves your device

All processing happens in your browser. No data is uploaded to any server.

What Is TCX and Why Convert to CSV?

TCX (Training Center XML) is Garmin's XML-based format for activity data that includes GPS coordinates, heart rate, cadence, power, distance, speed, and lap structure. It was the standard export format for Garmin Training Center before FIT replaced it. Many platforms still export TCX: Polar Flow, Fitbit, older versions of Garmin Connect, and some third-party apps. Converting TCX to CSV transforms the nested XML structure into flat, comma-separated rows — one row per trackpoint — making the data immediately usable in Excel, Google Sheets, Python pandas, R, or any data analysis tool. This is ideal for athletes and coaches who want to build custom dashboards, run statistical analysis, or create training reports beyond what any single platform offers. The conversion runs entirely in your browser — your data stays private.

Compared to TCX's verbose XML structure — which nests trackpoints inside laps, laps inside activities, and uses XML elements for every field — CSV is flat and compact. A 30-minute run that produces a 500 KB TCX file becomes a 60–100 KB CSV. More importantly, CSV is immediately readable in any spreadsheet application without XML parsing. The TCX structure is distilled into column names: each trackpoint row contains all its metrics side by side, which is exactly what statistical and data visualisation tools expect.

Why Convert TCX to CSV?

CSV is the common language between fitness devices and data analysis tools. If you want to build custom training charts in Excel, calculate lactate threshold power in Python, run a regression between cadence and heart rate in R, or feed your training data into a machine learning model, CSV is the format you need. TCX files are designed for platform import — not for analysis. Converting TCX to CSV is the first step in any data-driven coaching or self-analysis workflow.

For coaches working with multiple athletes across different platforms (Polar, Garmin, Fitbit), TCX is often the common export denominator. Converting each athlete's TCX exports to CSV enables consistent cross-athlete analysis in a single spreadsheet or script, without needing platform-specific API access or format-specific parsing code.

TCX to CSV — What Gets Exported?

The CSV output contains one row per trackpoint with columns for timestamp, latitude, longitude, altitude, distance, heart rate, cadence, power, speed, and temperature (where available).

Supported TCX sources

  • Polar Flow (export as TCX from activity page)
  • Garmin Connect (export original → TCX)
  • Fitbit export archive
  • Garmin Training Center
  • Any app that exports standard TCX 2.0

What Data Appears in the CSV?

The CSV output has one row per TCX trackpoint with these columns: timestamp (ISO 8601), latitude (decimal degrees), longitude (decimal degrees), altitude_m (metres above sea level), distance_m (cumulative), heart_rate_bpm, cadence_rpm, power_w (from TCX ActivityExtension if present), speed_ms (metres per second, from ActivityExtension), and temperature_c (rarely present in standard TCX). Columns with no data appear as empty cells — not zeros — so you can distinguish missing data from actual zero values.

vs. Platform CSV Exports

Garmin Connect, Polar Flow, and Fitbit all offer some form of CSV export, but these typically give you aggregated data — daily summaries or lap averages — rather than raw per-trackpoint data. This converter gives you the full temporal resolution of the original TCX at its native recording interval (1 second, 2 seconds, or variable with SmartRecording). For analyses like power curve computation or fatigue modelling, this raw resolution is essential.

Common Issues

If the CSV has many empty columns, the source TCX probably lacks optional fields. Polar Flow TCX exports typically include heart rate but rarely power or cadence unless you used a compatible sensor. Garmin TCX exports are richer but may omit speed and power from older devices. If you need fields that the platform's TCX export omits, try requesting a FIT export if available — FIT files contain a broader range of metrics, and the FIT-to-CSV converter will extract whatever is present.

Adaptive Sport Data in TCX Files

TCX files from wheelchair sports computers, handbike GPS units, and sit-ski systems are parsed using the same TCX 2.0 standard as any other activity. Power data from handcycle power meters connected to a Garmin Edge or similar device appears in the power_w column if the TCX was exported with ActivityExtension data. Coaches working with adaptive athletes can apply the same power and training load analysis as for able-bodied athletes — adjusted for the different energy expenditure models applicable to arm-powered sport.

Frequently Asked Questions

What recording interval does the CSV use?

The CSV preserves the original recording interval from the TCX file. If your device recorded every 1 second (common on Garmin devices with SmartRecording off), each row represents 1 second. If SmartRecording was on, trackpoints may be 2–10 seconds apart with variable spacing depending on pace changes. The timestamp column in the CSV shows the exact time for each row, so you can confirm the interval.

Does this work with Fitbit TCX exports?

Yes. Fitbit's TCX exports follow the standard TCX 2.0 specification and are fully supported. Fitbit exports typically include heart rate and GPS but not cadence or power. The distance_m column may also be absent from Fitbit TCX files depending on the activity type — these will appear as empty cells in the CSV output.

© 2026 raacon/. Free fitness tools for athletes.

raacon is a trademark of Raadig AS (NO 833 209 132)

Not affiliated with any sport brands.

mail@raadig.no

Privacy Policy

We use cookies for analytics and advertising (Google AdSense). No personal data from fitness tools leaves your browser. Privacy Policy