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.