RoadSense NS
Awaiting first publish
Unique road coveragePrivacy & counts
Municipalities coveredTelemetry transparency
Privacy & counts
Every telemetry source, named in plain language

RoadSense aggregates community road-quality data without tracking individuals. This page lists every place data flows, with live counts where they exist. If a source isn't named here, it isn't collected.

01 · Live aggregate counts

The published map, in numbers

These come straight from the public statistics view that powers the home map. They refresh every few minutes and never reference an individual contributor.

Kilometres mapped
Road segments scored
Active potholes
Municipalities covered
Drive samples published

Generated at:

02 · What leaves your phone

Drive samples and pothole reports — that's it

The iOS app collects accelerometer, location, speed, and heading while you drive. Privacy zones and endpoint trimming run on-device, before anything is queued for upload. The app does not have access to your contacts, your photo library beyond a single capture you authorise, your advertising ID, or any account on your phone.

  • Drive samples — uploaded as anonymous batches keyed by a rotating device hash. Endpoints (start and end of trip) are trimmed before they leave the phone.
  • Pothole marks and follow-ups — uploaded with the same anonymous device hash. The server never receives your name, email, or any identifier you typed into your phone.
  • Optional pothole photos — captured in-app, EXIF-stripped on-device, and only uploaded after you tap Submit. Photos go through manual moderation before they touch the public layer.
  • Feedback you send — the message you type, the screen you came from, your iOS version, and an optional reply email. No location, no drive data, no device ID is attached.
03 · What lives on the server

Aggregate views, plus the audit rows behind them

Supabase (PostgreSQL + PostGIS) stores everything below. Raw rows are not exposed publicly — only aggregate views that the home map and reports query through.

  • readings — drive samples, retained ~6 months on a rolling basis. Aggregated nightly into segment-level scores.
  • segment_aggregates — the per-road numbers behind the map. Public.
  • pothole_reports / pothole_actions / pothole_photos — manual reports, follow-up confirmations, and approved photos. Only active reports and approved photos surface publicly.
  • feedback_submissions — feedback messages from this site and the iOS app. Only the maintainer (service-role) can read this table; anonymous and signed-in roles cannot.
  • device_tokens — anonymous, rotating per-device tokens hashed before storage. Never the raw value.
  • rate_limits — short-lived counters keyed by IP and device hash, used to throttle abuse.
04 · Third parties

Three named services, scoped tightly

  • Mapbox — renders the public map and provides geocoding for the search box. Standard tile requests reveal viewport coordinates as you pan, the same as any web map.
  • Sentry — captures iOS crashes and slow operations so the app keeps working on real phones. User identifiers are never sent. Coordinates and drive data are filtered out before any event leaves the phone.
  • Vercel— hosts this website. Standard request logs (IP, user agent, path) live in Vercel's infrastructure for operational reliability.

No analytics, no advertising, no session-replay tools, no Firebase, no Mixpanel, no Amplitude, no PostHog cloud, no Segment. If we add another service, it'll be listed here before it ships.

05 · Your controls

Pause, prune, and ask

  • Pause collection from Settings to stop sending anything new.
  • Add a privacy zone to keep an area off the map entirely. Zones are evaluated on-device, before upload.
  • Delete local contribution data from Settings. Already published aggregates stay public — they have no link back to your phone.
  • Send feedback (top-right of this site, or Settings on iOS) to flag anything you want changed.
  • Email graham.mann14@gmail.com for anything else, including policy challenges or correction requests.