Indoor Workout Files: What to Do When There Is No GPS Track
Your indoor ride is done. You open the file and there is no map. No line, no route, no points on a road — just numbers. Your first thought is that the file broke. It did not. A bike on a trainer does not move through the world, so there is no track to draw. The file is telling the truth in the only way it can.
Indoor files confuse tools and riders alike. Some sites reject them as if they were corrupt. Some tools “fix” them by drawing a fake track, which is worse than no track at all. And riders delete them as junk, losing real training data — heart rate, cadence, power, and time — that took real effort to make.
This guide sets the record straight: what an indoor file holds, why the missing map is right, how platforms treat such files, and how to merge and convert them without inventing data. It ends with trainer setup tips that make the next indoor file richer from the start.
The twin case is an outdoor file that lost its track to a fault. That one is damage, and it belongs to a different guide. If your file came off a trainer, this one is yours. If it came off the road with no points, see the fault hunt in the corrupt-file guide, linked at the end.
No map is not a broken file
A GPS track is a list of places. A trainer ride has one place: your room. A file that listed that one place four thousand times would be junk, so devices do the sane thing — they write no position points at all, or a null place mark. The file is not missing a part it should have. It never had that part, by design.
Judge an indoor file by what a workout is: time under load. The file holds a second-by-second record of the work — heart rate, cadence, power if a meter was paired, speed and distance as the trainer or a wheel sensor counts them. That record is the training. The map was never the training. It was a view of it.
This split — data rich, map poor — is the key to every choice below. Keep the data. Do not fake the view. And do not let a tool talk you into either error.
What an indoor file still holds
Run an indoor file through a health check and the stream list reads like a full ride: heart rate across the whole session, cadence, power where a meter fed it, plus the trainer's own speed and distance. What is absent is one line: position. Elevation may be flat or absent too, which is also true — your room did not climb.
Formats hold this data unevenly. FIT holds it all, by design — it was made for device data, track or no track. TCX holds it well too; position-free TCX files are an old, valid form. GPX is the weak home: its heart is the track point, so a file with no points is a poor fit, and some GPX writers emit an empty shell that strict readers refuse. The form choice for indoor files is not taste. It is fit for the data.
Speed from a trainer earns a line of its own. On the road, speed comes from the wheel and the sky. On a trainer, it comes from the wheel alone, or from the trainer's own math. Either way it is an honest count of work — the wheel turned, the time passed. What it is not is a road speed: no wind, no hill, no coast. Read indoor speed as effort, and the odd look of it stops being odd.
Distance works by the same rule: wheel turns times wheel size. A smart trainer can also report “virtual” distance shaped by a fake grade. Two files from one session — one from the watch, one from the app — may then claim two distances for the same ride. Both are “true” by their own rule. Pick one source of truth for your log, and note which. Future you will thank present you for the note.
Why some sites reject or misread indoor files
Many tools were built outdoors-first. Their read path asks for a track, finds none, and gives up — or worse, plots the one null point they find and shows your ride as a dot in the sea. Neither says a thing about your data. It says the tool's map brain has no mode for a ride that stayed in one room.
Platforms are better than small tools here, on the whole. The big training sites take indoor FIT and TCX files and show them as what they are: a session with graphs and no map. If a site rejects your indoor file, test the form first — send FIT in place of GPX — before you doubt the data. The format split, and why FIT is the safe home for device data, is laid out in FIT vs GPX vs TCX: which format keeps your data.
One misread to watch: distance. A trainer's distance is a count of wheel turns made into miles by a wheel size. If that size is set wrong in the device, the file's distance is wrong in a smooth, hard-to-spot way. Your power and heart rate do not care. Your pace graph does. If indoor pace looks off by a fixed share, check the wheel size before you check the file.
Here is how the three forms hold an indoor session, side by side:
| Form | How it marks an indoor session | Watch for |
|---|---|---|
| FIT | A sport and sub-sport field names the trainer session | Richest record; apps and watts ride along |
| TCX | An activity type marks the session; laps stay clean | Good training data; no place mark, which is fine |
| GPX | Points lack position, or hold one fixed point | Some readers fail it; the form was made for tracks |
The pattern in the table is the whole lesson: the closer a form sits to training data, the better it treats a ride with no road in it. FIT was born in devices. TCX was born in training tools. GPX was born on the trail. None of them is wrong — they just grew up in different houses.
Convert an indoor file the safe way
Convert toward data, never toward a map. FIT to TCX, or TCX to FIT, keeps the session whole: the streams move, the totals are recounted, the file stays true. Those are safe trips. The unsafe trip is any convert whose goal is a track: a tool that offers to “add GPS” to an indoor file is offering to invent a ride you did not do, on roads you never saw. Decline it, every time.
If a form demands position — a route tool, say — the honest move is to keep the indoor file out of it. Use the file where sessions are read: training sites, coaching tools, your own log. An indoor file in GPX form, if you must make one, should hold its data in the extension blocks and be labeled for what it is. Expect some readers to show nothing. That is their limit, not your file's fault.
The same rule guards heart rate work. If your indoor session holds the beats for a day when the outdoor unit missed them, the streams can be joined by time — the method in how to add heart rate data to a GPX file works for any time-stamped pair, indoors or out.
Merge an indoor session with the rest of the day
Race and training days mix forms. A warm-up on the trainer, then the ride out of doors. A brick day: a bike leg on the road and a run that ends on a treadmill. The files are unlike — one has a track, one does not — but they share a time line, and time is all a merge needs. Stitch them in time order and the day reads as one session with a map for the part that had one.
Stream picks work as they do outdoors. Take heart rate from the file that holds it best — often the indoor unit, close to its sensors. Take position from the outdoor file, whole and alone: mixing a null track into a real one adds noise, not data. The coverage block after the merge will show position for the outdoor span and none for the indoor span. That is not a loss. That is the day, told straight.
For a full race built of legs — some indoors in a rain-hit triathlon, most not — the race-order flow is in how to merge multisport files into one race record. The indoor rules here ride along inside it.
A brick note: triathletes stack an indoor bike and an outdoor run in one day, and the two files look like a fault at first glance — one with no map, one with a fine map, same morning. They are both sound. Join them by time, keep both as they are, and the day reads whole: watts, then road. The multisport rules from the race guide apply — order by start time, keep the spans honest.
And a storage habit for the indoor shelf: name the file with the session type — “trainer-2x20”, “recovery-spin” — since no place name will ever attach to it. Outdoor files sort themselves by where they went. Indoor files all went to the same room. The name is the only map they get.
Virtual worlds earn one note. A ride in a virtual app has a map of a fake place and a file to match — points on roads that do not exist. Those files are sound: the streams are real, the speed is the app's math, the place is a game board. Merge and convert them like any indoor file. Just do not be shocked when the map shows an island that no ship can reach.
And pool swims: a watch in pool mode counts lengths, not points. The file holds laps and time, no track at all. It is an indoor-style file in the water. It merges with the day's bike and run for a brick log, and it checks the same way — span, totals, streams — with the map left blank by design.
Set the trainer up so the file is rich next time
An indoor file is only as rich as the sensors paired at the start. Pair the heart rate strap to the unit that will save the file, not to a second unit you will not keep. Pair the power meter the same way. If your trainer sends speed and cadence, pair those too — a file with four streams trains models and coaches far better than a file with one.
Set the wheel size right, and if the trainer offers a spindown or zero-offset step, do it on the maker's rhythm. Those two dull tasks are the whole gap between an indoor file you can trust and one you must squint at. And name the session in the device if it lets you — “indoor” in the title saves a future you from a fault hunt that was never needed.
Last, file the raw copy. Indoor files are the ones most often wiped in app clean-outs, since they look like blanks in a list. They are not blanks. They are proof of the work no one saw. The merge and convert tools on the FitMerge tool page read them as first-class files — no track required.
The short version
No map means no movement, not no data. Keep indoor files in FIT or TCX, merge them by time like any file, never let a tool invent a track — and the session counts for all it was worth. For the case where two devices split one ride between them, see how to combine FIT files from two devices.
Sources and further reading
- Pulse — MedlinePlus Medical Encyclopedia — What a pulse rate is, how it is read, and what the numbers mean at rest and at work.
- Physical Activity Guidelines: Current Guidelines — health.gov — The current U.S. guidelines for weekly activity — the base your training log is built on.
- Exercise and Fitness — Harvard Health Publishing — Harvard Medical School's hub of exercise research and guides for all levels.