Privacy policy

This describes the BikeOtter mobile app and the website at bikeotter.app. It was written by reading what the software actually does — which fields a live-tracking point carries, which sweep deletes it and when, which hosts get contacted — rather than from a template. Where a limit is stated as a number, that number is the one in the code.

Version 1.9 · last updated 7 October 2026 · applies to the app and to this site

The short version

  • There is no analytics and no crash reporting. No Google Analytics, no Firebase, no Sentry, no advertising or attribution SDK — neither in the app nor on this website. Nothing here counts you.
  • Most of the app needs no account at all. Route planning, route push, ride download, rules and alerts all work signed out, and your settings stay on the phone. An account exists only for live tracking, ride-notification e-mails, the Strava link, route sync if you switch it on (§3.2) and — for Plus riders who switch it on — a backup of their settings (§3.1).
  • Your ride files and your voice stay on the phone, and so do your routes unless you switch on route sync. Speech recognition runs on-device; there is deliberately no cloud speech tier. Route sync, and saving a route in the route planner on this website, keep a copy of your routes in your account (§3.2).
  • Live tracking is the one feature that publishes your position, to anyone holding the link, for the length of the ride. Heart rate, power and cadence are off by default. Your position points and the session record are deleted together, 7 days after the ride ends or expires.
  • Two things the app does without asking: it checks for a code patch on launch, through Shorebird, and that check cannot be turned off. It carries no identity we give it — but it does reach a server. §10.1 explains exactly what we know and what we don't. And on launch it asks RevenueCat, which handles Plus purchases for us, whether you have Plus (§10).
  • Nothing is sold, rented or shared for advertising. Ever.