Privacy policy

Applies to the FitFitr app for iPhone and iPad and to this website. Last updated [DATE].

The short version

On this page

Who is responsible

[Name or company], [street and number], [postcode and city], [country].

Privacy questions: privacy@fitfitr.app.

What stays on your device

FitFitr reads a .fit file, shows you the edit, and writes the result where you tell it to. All of that happens on your iPhone or iPad. There is no account to create and no server of FitFitr's own that your file could be sent to.

The only parties that can ever receive anything are you, your device, and the services you choose to use from inside the app, described below.

Analytics and crash reports

Both are off on a fresh install and stay off until you turn them on. There is no consent wall when you first open the app, and the analytics and crash-reporting software does not start until you agree.

With your consent, FitFitr sends product events to Google Analytics for Firebase and crash reports to Firebase Crashlytics, both operated by Google. Every value in an event is a name from a fixed list, a yes or no, or a band such as small or large. Exact counts are never sent.

Never collected

  • Coordinates or any part of a GPS track
  • Heart rate, power or cadence values, and training zones
  • Weight, height, age, gender, VO2max or other athlete data in the file
  • Activity timestamps and session start times
  • Device serial numbers and product names
  • File names
  • Advertising identifiers

Firebase also logs a few events of its own: the first launch, a new session, time in the app, and app or iOS updates. They carry the app and iOS version and the device model, language and country, and nothing from a file.

A crash report includes the sequence of event names that came just before the crash, so the problem can be reproduced. It contains the same fixed-list values and nothing else.

Retention: Google Analytics keeps this data for 14 months.

Every event the app can send, all 32 of them

The full list of events, their parameters and the bands they use, as in the app's source. Generated from the same document the app's code is checked against.

Opening a file

EventParameters
file_import_startedimport_source
file_import_succeededimport_source, decode_time, + the file's shape
file_import_failedimport_source, reason
file_import_cancelled—

Editing

EventParameters
edit_tool_openedtool
spike_removal_appliedsensor, mode (remove/replace), affected
metric_adjustment_appliedsensor, adjustment, magnitude, affected
section_removal_appliedaffected, share
field_strip_appliedfields, has_device_info
elevation_set_appliedrescaled_track
sport_change_appliedfrom_sport, sport
device_change_appliedmanufacturer
edit_undoneaction

Anomaly review

EventParameters
anomaly_scan_completedgroups, flagged, has_metric, has_gps_jump
anomaly_resolvedanomaly_kind, anomaly_resolution, affected
anomaly_review_closedunresolved

Combining two files

EventParameters
combine_candidate_loadedimport_source, overlap, conflicts
combine_candidate_failedimport_source, reason
combine_appliedconflicts, from_file_a, from_file_b
combine_cancelledstage

Saving and exporting

EventParameters
file_save_succeededoutput (new_file/replaced_original/before_upload), edits, + the file's shape
file_save_failedreason
file_export_starteddestination (files/strava/share_sheet)
file_export_completeddestination (files/strava)
file_export_faileddestination (files/strava), export_reason

Onboarding tours

EventParameters
tutorial_begintour
tutorial_completetour
tutorial_skippedtour

Screens

EventParameters
screen_viewscreen_name, screen_class

Settings

EventParameters
theme_changedtheme
app_icon_changedicon, icon_source (match_style/manual)
analytics_consent_changedis_granted, surface (settings/post_save_prompt)

Place names

To title a ride with the town it started in, FitFitr asks Apple Maps once for the file's first position fix. The coordinate is rounded to about 110 metres and sent to Apple, and nothing else goes with it: not the rest of the track, not the file, not its name. It is not sent to Google or to anyone else.

This happens only for a file that has GPS data, while it is open on the detail screen. The town name is kept in memory while the app runs and is never written into your file. Analytics does not receive it.

Strava

Nothing is sent to Strava until you have signed in there and tapped Upload to Strava.

  • What Strava receives. The .fit file as it stands when you tap upload, with whatever it contains: time, GPS track, heart rate, power, cadence, and athlete data a device wrote into it. Anything you removed first is not in it. The file's name and any activity name or description you entered go with it.
  • Who handles it. Strava, under its own privacy policy.
  • Signing in. On Strava's own page. FitFitr never sees your password and asks for one permission only: to upload activities for you.
  • What stays on your device. Strava's sign-in token, in the iOS Keychain, on this device only.
  • Disconnecting. Revokes the app's access at Strava and deletes the token. The file you uploaded stays on Strava until you delete it there.

Who receives what

RecipientWhenWhat
Google (Firebase)Only after you agreeFixed-list events, crash reports
Apple (Maps)When a file with GPS is openOne coordinate, rounded to about 110 m
StravaOnly when you tap uploadThe .fit file and the text you entered

This website

This website sets no cookies, runs no analytics and loads no fonts, scripts or embeds from other services.

The light/dark switch in the top corner stores one thing: your choice, the word light or dark, in your browser's local storage on your device. It is not a cookie, it is never sent to anyone, and you can remove it by clearing this site's data in your browser. Without the switch, the page follows your device's appearance setting.

The start page reads your browser's language setting on your device once, to send you to the English or German pages. The setting is not stored and not sent to anyone.

[Hosting: this website is served by GitHub Pages, and GitHub may process visitors' IP addresses in its server logs. Wording to be confirmed in legal review.]

Your choices and rights

You can turn analytics and crash reports off in the app's Settings at any time. Turning them off stops collection and deletes whatever was queued on your device but not yet sent.

[Your rights of access, rectification, erasure, restriction, portability and objection, and the right to complain to a supervisory authority. Wording to be settled in legal review.]

Changes to this policy

This page is updated whenever what the app collects or sends changes. The date at the top shows when it last changed.