Patrick Roy ("we", "us", or "our") operates the Tromi mobile application for Android, iPhone and iPad ("the App"). This Privacy Policy explains what information the App accesses, how it is used, and your choices. It covers both versions of the App; where they differ, the difference is noted.
The App requests access to your device's location (precise/GPS or approximate; on iPhone and iPad, only while you are using the App) to:
Location data is processed on your device and is not transmitted to our servers. It leaves your device only through the trip planner, as described under Network Requests below: a new trip starts from your current position, whose coordinates are sent to OpenStreetMap Nominatim to fetch a readable place name, and the coordinates of your trip stops are sent to OpenRouteService when you tap "Compute trip" (or "Recompute"). If you deny location permission, the App falls back to a default postal code you can configure in Settings.
The App fetches publicly available data from the following sources:
| Source | Data | What is sent |
|---|---|---|
| Régie de l'énergie du Québec | Gas station prices | Standard HTTP headers only |
| Le Circuit électrique | EV charger locations | Standard HTTP headers only |
| Open Charge Map | EV charger locations | Geographic bounding box (not your exact location); the request also carries an API key that authenticates the app, not you |
| OpenStreetMap (weekly file on GitHub Pages) | Station amenities and park entry points (welcome/visitor-center locations), on Android from version 1.0.9 and on iPhone and iPad from version 1.0.1 | Standard HTTP headers only |
| OpenStreetMap (Overpass API) | Station amenities and park entry points (welcome/visitor-center nodes), on Android before version 1.0.9 and on iPhone and iPad before version 1.0.1 | Geographic bounding box (not your exact location) |
| Société des traversiers du Québec | Ferry schedules (GTFS) | Standard HTTP headers only |
| Transports et Mobilité durable Québec | Highway rest areas | Standard HTTP headers only |
| Tourisme Québec / Données Québec | Tourist attractions (SIT Québec) | Standard HTTP headers only |
| Ministère des Ressources naturelles et des Forêts du Québec | Parks (TRQ_100k) and per-park polygon geometry | Standard HTTP headers only |
| Wikipedia (REST summary) | Park descriptions | Article title only (e.g. "Parc national de la Gaspésie") plus an app-identifying User-Agent header, as Wikimedia policy requires |
| OpenRouteService | Driving directions and stop-order optimization for the multi-stop trip planner | Coordinates of the trip stops you have chosen (and only when you tap "Compute trip" or "Recompute"); the request also carries an API key that authenticates the app, not you |
| OpenStreetMap (Nominatim) | Place labels for trip stops, and looking up a contact's address for the trip planner | The coordinates of a trip stop placed from a location — one you drop on the map or place via GPS, including the automatic starting stop of a new trip, which uses your current position when location is enabled (to fetch a readable place name); or the postal address text of a contact you explicitly pick (to convert it to map coordinates). Sent only for those trip-stop actions, plus an app-identifying User-Agent header |
| Statistics Canada (WDS) | Monthly average retail gasoline prices (Montréal + Québec for regular, premium and diesel, plus the Canada average for regular) for the in-app Gas Prices chart | Standard HTTP headers only (a request for the public price table) |
| OpenFreeMap | Vector map tiles for the map display | Standard HTTP headers and the map tile coordinates needed to render the area you are viewing |
No personal information or device identifiers are sent to these services, and your location is sent only as trip-stop coordinates to Nominatim and OpenRouteService, as described here. Geographic bounding boxes used in API queries cover broad areas and cannot identify individual users. Trip-planner requests to OpenRouteService include the coordinates of the stops you assembled — these are only sent when you tap "Compute trip" or "Recompute", are not associated with any account or identifier, and are not stored beyond what OpenRouteService logs to operate the service. Requests to Nominatim (OpenStreetMap) are made only when a trip stop is placed from a location — when you drop or GPS-locate a stop, and automatically for a new trip's starting stop when location is enabled (the stop's coordinates are sent to fetch a readable label) — or when you use the trip planner's "Choose a contact" option (the chosen contact's postal address is sent to convert it to coordinates). They carry no account or identifier. The User-Agent sent to Wikipedia, Nominatim and Overpass (and, on iPhone and iPad, to OpenRouteService) identifies the app and its current version (e.g. "Tromi/1.x") plus a public Google Play Store URL — it does not include any user data.
To keep cached data, price alerts, and the home-screen widget current, the App also repeats these public-data requests periodically in the background (by default about every 12 hours, adjustable in Settings) using Android's WorkManager or, on iPhone and iPad, iOS Background App Refresh, which iOS schedules at its own discretion and which you can turn off in the iOS Settings app. Background refreshes fetch only the public datasets for the layers you have enabled — they send no location.
The trip planner's optional "Choose a contact" feature ("From a contact" on iPhone and iPad) uses the system's built-in, permission-free contact picker, on Android as on iPhone and iPad: the system shows your contact list, and only the single postal address you tap is handed back to the App. The App never requests the contacts permission and cannot read your contact list — it only receives the one address you choose, which it then forward-geocodes via Nominatim (see above) to place a trip stop. The address is not stored beyond the trip stop's resulting coordinates and label.
Some screens open external web pages in a browser tab (a Chrome Custom Tab on Android, a Safari view inside the App on iPhone and iPad) — for example the Québec 511 road-conditions map, EV incentive program pages, Statistics Canada, park, attraction and scenic-route web pages, and the data-source credits. Those pages are loaded by your browser and governed by the respective site's own privacy policy; the App passes them nothing beyond the link itself. When you choose to navigate to a station, park, or trip stop, the App hands that destination's coordinates and name to the navigation app you use (e.g. Google Maps or Waze on Android, Apple Maps on iPhone and iPad), which applies its own privacy policy.
The following data is stored on your device only, in the App's database and settings (Room and DataStore on Android; SQLite and UserDefaults, in a container shared with the App's widget, on iPhone and iPad):
This data is never transmitted off your device by the App, apart from the trip-stop coordinates sent for routing and place names as described under Network Requests.
On iPhone and iPad, this data is included in your device backups (iCloud Backup, or a backup to your computer), like other apps' data, so restoring a backup brings back your favorites, trips and price alerts. Those backups are handled by Apple and by your computer under your own account, not by us. On Android, the App excludes this data from device backups.
The App may request permission to send local notifications for price alerts you configure. These notifications are generated entirely on your device — no push notification service is involved.
The App declares the androidx.car.app.MAP_TEMPLATES permission so it can display nearby stations and your active trip on an Android Auto screen. This permission grants access to car-screen templates only — it does not collect any data from you or your vehicle.
On iPhone, the App uses Apple's CarPlay fueling and EV charging capabilities to display nearby stations and chargers, your favorites, and your active trip on a CarPlay screen. CarPlay shows the App's screens on the car display only — the App does not collect any data from you or your vehicle.
The App does not knowingly collect any personal information from anyone, including children under 13. Since the App collects no personal data, it complies with the Children's Online Privacy Protection Act (COPPA) and similar regulations.
All data is stored locally on your device. Uninstalling the App removes all stored data; on iPhone and iPad, a copy may remain in earlier device backups until they are deleted or replaced. Price history snapshots are automatically pruned after 30 days.
We may update this Privacy Policy from time to time. Changes will be posted within the App or on this page with an updated revision date.
If you have questions about this Privacy Policy, you can contact us at: