Fitness data verification

One workout.One honest record.

Your watch says 10.4 km. Your phone says 10.1. ActivityTruth compares every recording of the same workout — the FIT file from your watch, the GPX your platform exported, a TCX or CSV — shows exactly where and why they disagree, and recommends one evidence-based record. You keep the final word on every metric.

406automated tests passingCORE + DATABASE
42/42live beta-readiness checksDEPLOYED ENV
152/152end-to-end regression checksSEVEN MILESTONES
0third-party trackers or scriptsFIRST-PARTY ONLY
What it does

Everything is evidence.
Nothing is asserted.

01

Upload the same workout twice

Files you export yourself — from any platform that produces FIT, GPX, TCX, JSON, or CSV, including Garmin and Strava exports. No accounts to connect; no integrations claimed that don't exist.

02

See the evidence

Summary discrepancies, second-by-second stream differences, GPS route deviations, sensor dropouts, and pause differences — localized in time, with the tolerance math shown.

03

Get one honest record

Deterministic, explainable recommendations with decomposed confidence — never presented as absolute truth. Unresolvable conflicts stay visibly unresolved. Freeze reports, export JSON/GPX/TCX/PDF, share privately.

04

Private by default

Activity files contain sensitive location and health data. Everything you upload stays private to your account; reports and routes are never public. Sharing is opt-in via expiring, revocable links with route-redaction controls.

How it works

Three steps.
Zero guesswork.

I

Upload your recordings

Export the same workout from each device or platform and drop the files in. Format detection and parsing preserve every raw value — nothing is mutated, ever.

II

Review the evidence

Confirm the recordings are the same workout, then explore localized discrepancies: summary metrics, per-second streams, GPS deviations, pauses, and anomalies — with the math shown.

III

Freeze one record

Accept, override, or leave metrics unresolved. Freeze an immutable, checksummed report; export canonical JSON, GPX, TCX, or PDF; share privately with expiring links.

pipeline — real job stages
1$ activitytruth verify morning-run/
2detect_format ok fit + gpx
3parse_files ok 2,408 samples, raw values preserved
4match_activities ok same workout, confirmed by you
5compare_summary ok 3 discrepancies localized
6compare_streams ok clock offset +2s, evidence stored
7resolve_canonical ok draft ready -- you keep the final word
deterministic · versioned · re-runnable
Verified, not claimed

Numbers we can prove.

Every figure below comes from the published verification reports in this project's repository — the same discipline the product applies to your workouts.

406
automated tests pass on every commit
42/42
live checks against the deployed beta before launch
86
row-level security policies isolating your data
12
database migrations, replayed from scratch in CI
Formats

Works with the files
you already have.

No account connections in beta — you stay in control by exporting files yourself, from any platform that produces them.

FIT
Garmin native, via the official SDK
GPX 1.0/1.1
route + extension streams
TCX
training center exports
JSON
documented mappings
CSV
summary exports
Garmin
file export
Strava
file export
Polar
file export
Suunto
file export
COROS
file export
Wahoo
file export
Apple Health
file export
Privacy

Your data is
the whole point.

Activity files contain sensitive location and health data. Everything you upload stays private to your account; reports and routes are never public. Your data is never sold and never used to train models without separate explicit consent.

RLS everywhereTLS in transitHash-only tokensNo 3rd-party scriptsDelete anytime

Row-level security on every table

86 database policies scope every row and file to your account — verified by tests on every commit and re-verified after every restore drill.

Hash-only share tokens

Share links are 256-bit tokens stored only as hashes, with expiry, revocation, and per-link privacy profiles. Your start location never has to leave your account.

First-party telemetry only

No third-party analytics, no tracking pixels, no external scripts. Logs and error reports are allowlist-redacted so tokens, coordinates, and health values can never appear in them.

Delete anything, anytime

Any file, any report, or your entire account — deletion cascades through the database and file storage, and an orphan scanner verifies nothing survives.

Ready to trust
your training log?

ActivityTruth is an invite-only closed beta. If you hold an invitation, it takes about two minutes from token to your first comparison.

Accepted formats: FIT · GPX · TCX · documented JSON · CSV summaries