GPXVeil

How GPS tracks reveal where you live, work and when you're away

6 min readUpdated July 2026
A lone runner on a park path with a city skyline behind — the kind of route that starts and ends at home

A GPS track is a list of points, and two of them matter far more than the rest: the first and the last. On most recorded activities those two coordinates sit within a few metres of a doorway, a driveway or a bike-room door. Everything else in the file — pace, heart rate, the shape of the route — is what you look at. The endpoints are what a stranger looks at. This guide follows how endpoints, timestamps and the repetition between files turn an exported track into an address, and shows where the usual precautions stop working.

The first and last fix are the whole problem

Press start on a watch and it writes a point as soon as it has a satellite fix, often before you have taken a step. Press stop and it writes another. Both coordinates are typically recorded to six or seven decimal places, and six decimals is about eleven centimetres of latitude — so precision is not the limiting factor. The limiting factor is how long you stood still waiting for the fix, which on a clear morning is a few seconds.

The result is a first fix that is often inside a garden, a courtyard or a hallway window's worth of a building. That is not an approximation of your neighbourhood. In dense housing it narrows the possibilities to one or two buildings; where a driveway is involved, to one.

The same applies to the finish, which for most people is the same place. A loop that begins and ends within twenty metres of one point is a strong claim that the point is home: no other location in a week of activities gets used that way.

Repetition turns a point into an address

One track is a guess. Five are a conclusion. Individual fixes scatter by several metres from session to session, but the scatter is random and the centre is not, so averaging the endpoints of a handful of activities converges on the real starting point far more tightly than any single file does.

Platforms do that aggregation for you and publish the result. A public activity feed, a list of recent routes or an aggregated heat map all make the cluster visible without anyone downloading a single GPX. Heat maps have already been shown to expose more than intended: in 2018 the published global activity heat map of one large fitness platform made the perimeter running loops inside otherwise unremarkable sites clearly legible, simply because they were the only recorded movement for miles around.

The lesson generalises beyond that one case. Any dataset that draws many people's routine movements makes routine places visible, no matter how anonymous each individual contribution is.

Timestamps describe a routine, and a routine describes an absence

Nearly every track point in a watch export carries a <time> value in UTC, accurate to the second. Across several files those timestamps say more than the coordinates do: a 06:40 start every Tuesday and Thursday, a longer run on Saturday morning, nothing at all through the last two weeks of August.

A routine is useful to anyone who wants to know when you are not at home. The inverse of “runs at 06:40 on weekdays” is “the flat is empty between 06:40 and 07:30”. The gaps are as informative as the entries, because they say when you are reliably out of town.

Removing timestamps costs something. Without them there is no pace and no duration, and platforms downgrade the file from an activity to a route. Keeping only the relative spacing, with the first point moved to a neutral epoch, is usually the right compromise: the workout survives, the calendar does not.

Segments, leaderboards and the people you ride with

Hiding your own map does not hide your segment results. On platforms with public leaderboards, a segment that starts three hundred metres from your door and that you have ridden a hundred and eighty times is an arrow pointing home, even when every one of your activity maps is cropped.

Group activities leak in the same way. If four people record the same ride and only one of them crops the file, the uncropped version describes where the group formed and where each rider peeled off. Photographs attached to an activity carry their own coordinates in EXIF unless the platform removes them.

None of this is an argument against sharing routes. It is an argument for deciding what a file contains before it leaves your machine, instead of relying on a display setting you cannot audit.

Why a 200-metre privacy zone is often not enough

A privacy zone on the major platforms hides the part of a route that falls inside a circle of a chosen radius; the drawn map picks up where the track crosses that circle. The geometry is the problem. The visible track begins exactly on the circle's edge, so the hidden centre lies at a known distance — the radius — from a point anyone can read off the map.

One activity narrows the centre to a circle of candidates. Two activities leaving in different directions give two such circles, which intersect in at most two places. Three usually leave one. Platforms mitigate this by randomising the cut point slightly, but the mitigation is small compared with the information contained in a dozen activities.

On a straight road the arithmetic is worse. If the first six hundred metres out of your street is a straight line, extrapolating the visible bearing backwards by the radius lands within a few metres of the true start, and houses on a typical street stand ten to twenty metres apart. A 200-metre zone on such a road narrows the answer to a handful of doors.

What actually helps

Delete rather than hide. A trim removes the points from the file, so there is no hidden segment to reconstruct, and a zone in a cleaning tool deletes every point inside the circle and splits the track where it crosses the boundary. Neither leaves an edge that sits at a known distance from a centre, because the file no longer contains the centre at all.

Vary what you delete. Cutting exactly five hundred metres from every activity recreates the circle problem at a different radius. Different amounts on different files, or a zone whose radius you change from time to time, breaks the pattern.

Then check everything else: timestamps, waypoints named after places, the author field, the creator attribute that names your watch, and the elevation profile, which is a weak but real fingerprint of a particular hill. Clean the file before the first upload — a platform that has already received the original keeps it.

The takeaway

The endpoints of a GPS track, repeated across a few files, are an address. Radius-based hiding leaves an edge that can be extrapolated back to its centre, so delete the points instead of hiding them, vary how much you delete, and strip the timestamps and names before the file leaves your computer.

Related tool
GPX Veil · GPX privacy cleaner

Open a track and see exactly what it gives away