numcal. / FIT TOOLS / VIEWER

See the ride,
not just the file.

Drop a FIT, GPX or TCX file — get the map, the elevation profile, heart rate, power and splits. Free. Nothing uploaded — it is parsed right here in your browser.

Drop a .fit / .gpx / .tcx file here
or click to browse — or load a sample ride

Field notes

Is my file uploaded?

No. The file is parsed by JavaScript running on this page — it never leaves your machine, and there is no server-side copy to delete. The one network request the viewer makes is for the map background tiles (from OpenStreetMap), which necessarily reveals the rough area of the map you are looking at to the tile server. If that matters to you: the elevation profile, stats and splits all render before and without the map. Details in the privacy note.

What does it read?

FIT recordings from Garmin, Wahoo, Coros, Suunto, Zwift and friends; GPX tracks and routes (including Strava exports with heart rate and cadence extensions); and TCX activities. GPS position, elevation, heart rate, speed, cadence, power and temperature are all picked up where present — indoor-trainer files with no GPS get their charts by time instead of a map.

Where do the numbers come from?

If the file carries the device's own session summary (FIT files do), those totals are shown — they are the numbers your head unit displayed. Otherwise they are computed from the raw points: moving time counts seconds where you were demonstrably moving, and elevation gain is accumulated from a smoothed profile with a 2 m threshold so GPS elevation noise doesn't inflate your climbing. That's the same reason two apps rarely agree on elevation gain to the meter.

It says the file is damaged

The viewer decodes leniently: a truncated recording or a bad checksum still renders everything that survived. To get a clean file you can upload to Strava or Garmin Connect, run it through the repair tool — same recovery, rebuilt into a valid FIT.