Incident Detection

Privacy Policy

Last updated: October 10, 2026

1. Data controller

Jan Komadowski (LoSoft). Contact: support@incident-detection.com.

2. What data the app processes

Incident Detection detects possible crashes during an activity (cycling, motorcycle riding, running, walking, hiking, driving, or water activities like kayaking or canoeing) and, when one is detected, notifies emergency contacts chosen by the user. An optional Check-in mode offers the same emergency-contact notification without tracking an activity at all — see §10. An optional Gym mode offers a similar no-motion-tracking alternative for workouts where the phone isn't carried, using a self-confirmed timer instead of a periodic prompt — see §11. It also offers an optional Guardian mode, letting two people who both use the app pair their phones over Bluetooth so one can tell whether the other is nearby, with an automatic alert to emergency contacts if they lose each other — see §9. It also offers optional Reminders — predefined or user-created health/activity prompts (drink water, take vitamins, stretch, and more), running either all day or only during a specific activity, which can optionally escalate to the same emergency alert described above if left unconfirmed — see §13. To do this, it processes:

Data categorySpecificsInvolves a third party
Location data Session GPS route (point by point), speed, distance, position at the moment an incident is detected, position at the moment a Guardian mode lost-signal alert fires, or (Check-in/Gym mode only) a single position reading taken if a check-in prompt or self-check timer goes unanswered No — the user
Emergency contact data Name and phone number Yes — a third party designated by the user
Photos Photos captured automatically after an incident is detected (if enabled) May depict the user or surroundings
Session data Activity type, duration, statistics, including step count, cadence, and stride length, and — if a treadmill sensor is paired — its speed/distance readings No — the user
Reminder data Which predefined or custom reminders are turned on and their schedule (times of day, interval, escalation setting); if a reminder is left unconfirmed and escalation is on, or you tap "Get help now" yourself, the same single location reading as the Location data row above — see §13 No — the user
Settings UI preferences, detection sensitivity thresholds Not applicable
Nearby Bluetooth devices MAC address, advertised device name (if broadcast), signal strength, and manufacturer data of nearby Bluetooth devices — one scan starts immediately when a possible crash is confirmed (20 seconds), and a second scan runs about 90–105 seconds later (15 seconds), so you can see what devices (e.g. from another vehicle) were nearby, including ones that arrived or left in between Yes — may include devices belonging to people near you, not just you
Guardian mode pairing data A display name and a randomly-generated device id (not your phone's real hardware identifier) exchanged with whoever you pair with in Guardian mode — see §9 Yes — the other person in the pairing, who deliberately, visibly paired with you
Remote location beacon (optional, off by default) If separately turned on, coarse GPS coordinates and a timestamp, sent roughly every 1–5 minutes to a developer-operated relay, which forwards a push notification to whichever Guardian(s) you're already Bluetooth-paired with, via whichever push-delivery transport that Guardian's phone has set up — see §9a Yes — the relay (developer-operated), plus one of three possible push-delivery transports depending on Settings (Google/Firebase Cloud Messaging, a UnifiedPush distributor you separately install, or a direct connection to the developer's own relay with no third party at all — see §3/§9a), plus the linked Guardian(s), same as the pairing data row above
Incident alert through the app (optional, off by default; independent of the remote location beacon above) Only when an alert is actually triggered (crash, missed check-in, heart-rate alert, reminder escalation, or the test notification): the incident type (e.g. "Bike"), the time, and — when available — the coordinates and heading at that moment, sent over HTTPS to the developer-operated relay, which forwards them as a push notification to the Guardian phone(s) you explicitly linked to an emergency contact, over the same push-delivery transport as above. Which emergency contact is linked to which Guardian phone is stored only on your device Yes — the relay (developer-operated), plus the same one of three push-delivery transports as the remote location beacon row; the linked Guardian(s) — see §9a
Paired sensor connection The device address and name of a heart-rate, cadence, treadmill, or radar sensor you choose to pair in Settings, so the app can reconnect to it automatically — including sensors you paired earlier, kept in a saved list so you can switch back without scanning again (you can remove one with "Forget"), plus an optional name you give a sensor, kept on your device only. During a session, if the active sensor does not connect, the app runs one short Bluetooth scan (about 12 seconds) that only looks for the addresses of your own saved sensors, to offer switching to one that is nearby; the result is used on the spot and is not stored or sent No — your own accessory
Heart rate / cadence readings Heart-rate and cadence sensor readings recorded during a session, if you've paired a sensor No — the user (health-related, stored locally only)
Bike radar readings (optional, off by default) Proximity/closing-speed readings from a paired bike radar (currently only the iGPSport SR Mini), recorded per session if radar alerts are turned on; a close pass also logs an incident and, if unresolved, triggers the same emergency notification as a possible crash No — the user (not health-related — it's proximity/speed telemetry about nearby vehicles, unlike the heart-rate row above)
Training plans (optional) A workout plan's structure — step order, duration, and heart-rate/cadence/power/speed targets, plus any notes from the plan's author — either one of the app's built-in plans or a FIT workout file you import; a record of what you actually trained against is kept with the session afterward. Also, an optional max heart rate and per-zone percent boundaries (Settings) used to show a heart-rate-zone target as a real bpm range — see §14 No — the user, though an imported file's notes were written by whoever authored that workout; the max-heart-rate/zone settings are health-related, same as the heart-rate row above
Height (optional) Entered once in Settings, used to estimate your stride length for sessions tracked without GPS No — the user
Step count (physical activity) Read from your phone's built-in step-counter sensor during Run/Walk/Hike sessions, to estimate distance and pace when GPS is unavailable (e.g. treadmill use) No — the user
Strava account connection & activity upload (optional) OAuth access/refresh tokens (encrypted on your device), and — only for sessions you choose to upload — the GPS route, duration, activity type, and heart-rate/cadence of that session (or, for a GPS-free session with a confirmed distance, duration/distance/speed-over-time/activity type/heart-rate/cadence with no route, or, for a Gym session, just duration/activity type/heart rate with no distance at all) Yes — Strava, Inc., only if you connect your account — see §12
Spoken navigation instructions (optional, off by default) Only the on/off setting is stored (on the device). While navigating with it on, the text of the next instruction — the one written in the route file, or standard wording such as "Turn right in 100 m" — is handed to the speech engine you chose in Android's own settings, which says it aloud. The app records no audio and keeps no copy of what was spoken Not by the app. The engine is a component of your phone or one you installed (e.g. Google's); whether it makes the speech on the device or over the internet depends on that engine and voice, not on this app — see §3
Spoken training cues (optional, off by default) Only the on/off setting is stored (on the device). While a training plan runs with it on, short sentences built from the plan's own step names and targets and the live heart-rate/cadence/speed zone check — e.g. "Warmup ends in 10 seconds. Next: High, heart rate 150 to 160" or "Heart rate too high" — are handed to the speech engine you chose in Android's own settings. The app records no audio and keeps no copy of what was spoken Not by the app. Same speech engine and same caveat as spoken navigation above — see §3
Route planner (optional, only when you tap "Calculate route") You pick a start, a destination and stops on a map (the start can be your phone's current position, with the location permission the app already uses). Only when you tap "Calculate route", the start, destination and stops, the way of travelling (walk / run / bike / car), the instruction language and your choices to avoid ferries and toll roads and to prefer paved roads (cycling) are sent over HTTPS to a routing relay operated by the developer, which forwards them to a routing server and returns the route. The route is kept on your device only if you save it Yes — the developer's routing relay (hosted on Cloudflare) and the developer's own Valhalla routing server behind it or, when that is unavailable, the public Valhalla server run for OpenStreetMap, only when you tap "Calculate route" — see §3
Favourite places (route planner, optional) A name you type and a position, saved when you choose "Save to favourites" from the planner's map menu. Kept only on your device, in the app's own database; never sent anywhere by themselves — a favourite leaves your device only as the start, a stop or the destination of a route you ask the planner to calculate (see §3), like any other point. You can rename and delete them one by one in the planner No — your own saved places, but location data
Automatic route recalculation (optional, off by default) The on/off setting and the distance (on the device). While navigating an imported route with it on, and only when you stay farther from the route than that distance for several seconds: your current position, the route's destination, the positions of the stops not yet reached, and the way of travelling for the activity are sent over HTTPS to the same routing relay, which forwards them to a routing server and returns the new route. At most one request a minute. The same request is also sent once each time you choose "Recalculate the route" in the navigation menu of the session screen (with the setting on). The new route is kept in memory for the rest of the ride and not saved Yes — the developer's routing relay (hosted on Cloudflare) and the routing server behind it, only when you turn this on — see §3

All of the above is stored exclusively on your device by default — the app has no server or backend of its own for any of it, with three opt-in exceptions. §3: if you plan a route in the in-app planner, or turn on automatic route recalculation, the points you chose are sent to a routing relay operated by the developer, which stores and logs nothing it receives and forwards them to a routing server. §12: if you choose to connect a Strava account, session data you select is uploaded directly from your device to Strava's own servers, and a minimal relay operated by the developer is used only to broker that connection — it never sees or stores your session data. §9a: if you separately turn on the remote location beacon, coarse coordinates are sent to a developer-operated relay, which does briefly store them (see §9a for the retention window) — unlike the Strava relay, this one is not a pure passthrough. Absent either opt-in, nothing in the table above is transmitted to or stored by the developer. (Absent the routing opt-in, no route points are sent anywhere either.)

3. Who data is shared with

4. System permissions and their purpose

PermissionPurpose
LocationTracking the session route and detecting a sudden stop after a possible crash
NotificationsShowing session status, the crash alert, and — if any Reminders are turned on — a reminder prompt at its scheduled time (§13)
SMSSending a message to the emergency contact
Phone callsAutomatically calling the primary emergency contact (optional, toggled in Settings)
CameraCapturing a photo after an incident is detected (optional, toggled in Settings)
Physical activityReading your phone's step-counter sensor during Run/Walk/Hike sessions, to estimate distance and pace when GPS is unavailable (e.g. treadmill use)
Phone stateChecking cellular service state and whether a SIM (physical or eSIM) is present at all (optional) to warn during a tracked session if there's no signal to send an alert. Never used to read your device's IMEI, subscriber id, phone number, carrier name, or anything else this broader Android permission also gates — only whether a SIM is present.
Bluetooth (scan & connect)Detecting nearby Bluetooth devices after a possible crash, connecting to an optional paired heart-rate/cadence sensor, treadmill, or bike radar, and finding/tracking a Guardian mode pairing partner. Scan results are never used to determine your location.
Bluetooth (advertise)Guardian mode only — broadcasting your phone's own presence so a pairing partner can find and track it. Only active while Guardian mode or "let someone track you" is turned on, either as a standing Settings preference or just for a single session — see §9.
Background operation / battery optimization exemptionReliable crash detection while the screen is off, and reliable Guardian mode tracking
Internet accessFetching map tiles (Google Maps SDK, or MapLibre with OpenStreetMap/CyclOSM/OpenFreeMap/MapToolKit/MapTiler — §3), checking once a day (optional, a Settings toggle) whether a newer app version has been published at incident-detection.com (§3), sending the points of a route you plan or recalculate to the developer's routing relay (§3), and — only once you connect a Strava account — uploading a session to Strava and completing the OAuth connection through the developer's relay (§12), and — only if the remote location beacon is separately turned on — submitting location updates to that relay and receiving Guardians' updates via push (§9a)
Receive boot completedTwo uses: resuming Guardian mode's "let someone track you" broadcasting after a reboot if it was on (§9), and re-arming a standalone reminder's schedule after your device restarts, since Android clears all scheduled alarms on reboot (§13)

Location source: a Settings choice determines whether location comes from Google Play Services' location client (the default, when available) or Android's own location service directly — offered as a fallback for devices without Play Services (e.g. GrapheneOS, microG-less devices). This does not change what's collected, why, or when — only which on-device API supplies it. If anything, the fallback path involves fewer Google-adjacent components than the default, not more.

Location is read either while a session is actively being tracked, or — separately — while the remote location beacon (§9a) is turned on, both cases via a persistent foreground-service notification shown throughout. No new Android permission is required for the latter: a foreground service already counts as "in the foreground" under Android's location permission model, so this does not use background location access — the same location permission row above covers both cases. The app does not request location access outside either of these persistently-notified contexts.

5. Data retention and deletion

6. User rights

Because all data is local, the user has full and direct control: access (session history and contacts screens), rectification (editing a contact), and erasure (deleting a session/contact, or uninstalling the app).

7. Changes to this policy

Changes will be published on this page with an updated "last updated" date above.

8. Contact

For privacy-related inquiries: support@incident-detection.com

9. Guardian mode

Guardian mode and its "let someone track you" counterpart are both off by default and require you to explicitly turn them on and complete a pairing with one or more other people's devices — a Ward's phone can be paired with more than one Guardian at once, each tracked independently.

9a. Guardian mode — remote location beacon (optional, off by default)

A second, independent tier layered on top of everything in §9. Where §9 is strictly local (Bluetooth only, short range, no server), this tier is the opposite: it exists specifically for when the two phones are out of Bluetooth range, by relaying sparse location updates over the internet.

10. Check-in mode

Check-in mode is a different way to use the app: instead of tracking a route or motion at all, it periodically asks whether you're OK, at an interval you choose.

11. Gym mode

Gym mode is for workouts where your phone is set down nearby rather than carried — like Check-in mode, it doesn't track a route or motion at all, but it uses a different way of checking on you.

12. Strava upload (optional)

Connecting a Strava account is entirely optional and off by default — this section only applies if you explicitly choose to connect one from Settings.

13. Reminders

Reminders are optional health/activity prompts, unrelated to the crash-detection modes above — a curated predefined set (drink water, take vitamins, stretch your neck, go for a walk, and more) plus any you create yourself, either standalone (running all day, independent of any tracked activity) or tied to a specific activity type (only while a matching session is being tracked).

14. Training plans (optional)

Training lets you follow a structured workout during a Bike or Run session — either one of the app's built-in plans, or one you import as a FIT workout file, the format most fitness watches and coaching tools use. Unrelated to crash detection — nothing here affects it or triggers an alert on its own.