Privacy
Race Timer does not collect, send or share anything about you. It has no network access, no analytics, no advertising and no account. What it keeps is your own settings and the clock reading for a race in flight, in the app's private storage on the device you are using.
What it collects
Nothing. No personal information, no usage analytics, no crash telemetry, no device identifiers, no contacts, no location, and no health or fitness data. There is no account to create and nothing to sign in to.
Neither the watch app nor the phone app asks for internet permission, so neither is capable of sending information anywhere.
What it stores on your device
Race Timer saves a little state locally so that a race in flight survives the app being closed or the device restarting mid-sequence, and so your choices are still there next time you open it.
Each app keeps its own file in its own private storage, and the two are not shared between devices. The last column says which app keeps each value: the phone app does not offer the signal-box lead-in and never changes a device volume, so it stores nothing for either.
| What | Why | Stored on |
|---|---|---|
| Which start sequence is selected | So a restored race resumes at its own duration and cadence | Watch and phone |
| The scheduled gun time, as a monotonic clock reading | So the countdown resumes at the correct remaining time | Watch and phone |
| The scheduled gun time, as a wall-clock reading | Best-effort recovery after a restart, when the monotonic reading is no longer valid | Watch and phone |
| The monotonic clock reading at the moment the race was saved | To detect a restart and fall back to the wall-clock value | Watch and phone |
| The start sequence you last chose | So the app opens on the sequence you use instead of resetting | Watch and phone |
| The lead-in time a race was last armed with | So the same lead-in is offered next time rather than re-entered every race | Watch only |
| Which audio stream a running race raised the volume on | So the app knows which stream to put back when the race ends | Watch only |
| That stream's volume before the race raised it | So your original volume is restored rather than left turned up | Watch only |
That is timing state and your own settings. It holds nothing about you and nothing that identifies you or your device: the values are clock readings, a sequence identifier, a number of seconds, an audio stream index and a volume level. Neither app has any text box, so there is nothing you could type into either one.
All of it goes when you uninstall the app, or when you clear the app's storage from the device's own settings.
The one exception
Device backup
The phone app switches Android's Auto Backup off, so nothing it stores is included in any backup.
The watch app leaves Auto Backup on. That means the values in the table above are eligible for the backup Android itself keeps in your Google account — so on the watch this is the one route by which stored data can leave the device, and it is worth saying plainly rather than leaving you to infer it.
- The backup is made by the operating system, not by Race Timer. The app does not start it, cannot read it, and is not told when it happens.
- It is end-to-end encrypted with your device's PIN, pattern or password on every version of Android this app runs on.
- Nothing in it identifies you. The values are the ones listed above and nothing else.
Auto Backup is what lets your sequence preference follow you to a replacement watch. Turning it off for the whole device is a setting Android gives you, and Race Timer works the same either way.
Permissions, and why they are asked for
| Permission | Why it is needed | Asked by |
|---|---|---|
| Foreground service, and the special-use foreground service type | To keep the start sequence running accurately while the screen is off, so the horn and vibration cues still fire at the right moment | Both apps |
| Wake lock | To hold the processor awake for the length of a running sequence so cue timing does not drift while the device is idle. It is sized to the remaining race and released when the sequence ends | Both apps |
| Post notifications | To show the ongoing-activity notification Android requires for a running foreground service, and which lets you get back to the running race | Both apps |
| Vibrate | To deliver the haptic signal for each race cue | Watch app only |
Neither app asks for location, microphone, camera, contacts, storage, body sensors, or any health or fitness permission.
Sharing
Race Timer shares nothing with anyone, because it collects nothing. There are no third-party components in the app, no advertising networks, no analytics providers and no crash-reporting services.
Children
Race Timer is a general-purpose sports utility and is not directed at children. Because it collects no data at all, it collects no data from children.
Security
What the app stores is held in its own private, sandboxed storage, which Android isolates from every other app on the device. Because the app transmits nothing there is no data in transit to protect, and the device backup described above is encrypted by Android before it leaves the watch.
Changes to this policy
If Race Timer's behaviour changes in a way that affects this policy — if a future version gains network access, or an optional account — the policy is updated before that version is published.
Contact
Questions about this policy go to dave@madcowsailing.com.
This page restates, for sailors, the privacy policy published at sailordave17.github.io/race-timer/privacy-policy, which is the copy Google Play fetches. Both were written from the same source. If they ever disagree, that one governs and this one is the defect — please say so at the address above.