PowerInsight
PRIVACY

Analyzed on your device. Stored only for you.

What happens to your ride data, stated plainly rather than left to a privacy policy no one reads.

Your ride is read and analyzed on this device, in this page — every number in your report is computed by your browser, never on a server. The report and the file it came from are then saved to your account, which is how your history and your trends are there the next time you sign in.

The file is read here, and kept for one reason

When you choose a .fit or .tcx file, this page reads it and computes the whole report on your machine — no number in your report is calculated on a server. The file itself is then stored alongside that report, privately: it is not public, it has no shareable link, and it is read back for exactly one purpose. When the analysis improves, your saved rides are re-measured from their own files instead of being frozen at whatever the old version worked out; without the file, every improvement would reach only the rides you upload afterwards. A fingerprint (a SHA-256 hash) of the contents is stored with it, which is how re-uploading a file you already have is recognised as a ride you have rather than analyzed twice.

What is saved is the report

As soon as the analysis finishes, the numbers it produced are saved to your account, with no save button and no confirmation — that is what makes a history and a trend possible at all. A saved ride holds the report you were shown: the date and time of the ride, its duration, the power, heart-rate and cadence figures, the findings, and the power curve behind them. Nothing is added to it later, and a saved ride is never rewritten. While you are reading a report, a copy of it also sits in this browser’s own session storage — that is what makes moving between its tabs instant — and your browser drops that copy when you close the tab.

Where you rode is part of it

If your file has GPS in it, the saved report includes the ride’s route as a list of coordinates, which is what draws the map when you open the ride again. That means the places your rides start and end — for most riders, their home — are in our database. It is the most sensitive thing we hold, so it is named here rather than left inside the phrase “your report”. Deleting the ride deletes its route with it; there is no way to keep a ride and drop only its map.

An account is required

Signing in is handled by Clerk, and your email address and password live with them, not with us — we never see the password, and signing in with Google tells us only your email address. Your profile figures — weight, sex, birth year, weekly hours — are ours, in the same database as your rides. Every one of them is optional; they exist because a report cannot give you watts per kilo without a weight, and it says so and moves on when a figure is missing.

Who else holds it

Two processors, both named for the same reason the map provider below is. Clerk holds the account: your email address, your password and the sessions that keep you signed in. Their sign-in code loads on every page here, so Clerk receives a request when you open one, whether or not you are signed in at the time. Neon runs the Postgres database that holds your saved rides and your profile. Vercel serves these pages, runs the server code — and therefore sees the requests your browser makes to it, as any host does — and its Blob storage holds your ride files, in a private store rather than one anything with the address can read from.

Deleting it

Any ride can be deleted from your ride history, and the delete is immediate and permanent — the report, its route and every trend computed from it go, with no recycle bin and no undo. Your whole account can go the same way, from your profile page: every ride, every route, your trends, your profile figures and the sign-in itself, in one action and with nothing kept back for us. The stored file goes with the ride it belongs to, and closing your account removes every file you have ever uploaded — so uploading a file again is the only thing that can bring a ride back, and that is yours to do.

Ask, and the language model behind it

The Ask page is the one place a third party sees anything about your riding. When you ask a question there, your question and the answer to it — a total, an average, a set of weekly figures, minutes per zone — are sent to Groq, which runs the language model that puts them into a sentence. Your ride file never goes, no individual ride goes, and nothing identifying you goes: Groq receives figures and a question, not a rider. The model is never asked to work a number out, only to describe one this site computed — which is why an answer there says the same thing your report does. If you never open Ask, nothing of yours reaches it.

No advertising, profiling, or model training

Your ride data is not used for advertising, profiling or training purposes, and is not sold or shared with anyone beyond the processors named above. There is no analytics service on this site and no third-party tracker. Every number in your report — and every number Ask quotes — was computed by code you can read, on your own device or on ours.

The analysis engine

The code that does the computing is Python, and the browser downloads it the first time you visit — around 17 MB, from the jsDelivr CDN and from this site. That download happens before you pick a file, and the CDN receives only what any request for a static file reveals: it never sees your ride.

Route map tiles

When a route map is drawn — on a new ride or on one you reopen from your history — the map tiles under it are fetched from OpenFreeMap, which serves OpenStreetMap data. As with any browser-based map, that provider may receive basic network information and the approximate area being requested, which is roughly where the ride was. Nothing else about the ride is sent to them.