Privacy Policy
Tidecast (iOS, watchOS) · Effective 21 October 2026
1. Who is responsible
The data controller is Raphaël Goupille, the publisher of Tidecast on the App Store. Contact for any question about your data: [email protected].
2. What stays on your device
- Spots, alerts and preferences (units, activity, background…): stored locally (SwiftData and the app's settings). They are not sent to any server and not synced through iCloud.
- Widgets and Apple Watch: the app shares the active spot with its widgets through a local App Group, and sends it to your paired Apple Watch over WatchConnectivity (from your iPhone to your watch, with no server of ours in between).
- Notifications: tide alerts are local notifications scheduled on the device. Live Activities are also updated locally, without push notifications.
- Calendar and sharing: adding a window to your calendar opens Apple's event editor; nothing is written until you save it, and the app does not ask for calendar access. Sharing goes through the system share sheet.
- Tide computation: predictions, sun and moon are computed on the device, offline.
3. Your location
Location is asked for only while you use the app ("While Using the App"), as a one-off fix, at roughly one-kilometre accuracy. It is used to:
- find the tide stations nearest you — worked out on the device;
- estimate the drive time to a spot: the location is sent to Apple Maps (Apple MapKit) as the origin of a directions request.
It is never saved on the device beyond the session (it is reused for a few minutes in memory), never sent to any service other than Apple Maps, never included in statistics, and the app does not track you continuously. Without it, you find your spot by name or on the map. You can withdraw the permission in iOS Settings > Privacy & Security > Location Services > Tidecast.
The text iOS shows is: "Tidecast uses your location to find the tide stations nearest you. To tell you how long it takes to reach a spot, it asks Apple Maps for directions from where you are. Your location is never stored, shared with anyone else or tracked."
4. Conditions and map data
To show live conditions, the app queries public services and Apple's. These requests concern the spot or station you are looking at, not your position, and carry no identifier. Like any internet connection, they pass your IP address to the service queried.
| Service | What it receives |
|---|---|
| NOAA CO-OPS and NDBC (US) | The station's or buoy's identifier. |
| NWS api.weather.gov (US) | The spot's coordinates (forecasts, weather and marine alerts). |
| Apple WeatherKit (Apple Weather) | The spot's coordinates (wind, UV, pressure…). |
| NOAA nautical charts (gis.charttools.noaa.gov) | The extent of the map on screen, when the chart layer is on. |
| Apple Maps (MapKit) | The text of a place search and the visible map area; a station's or a tapped point's coordinates, to name it; your location for directions (section 3). |
| Candhis relay (Cloudflare Workers, France) | A plain read request for the file of latest wave readings, with no parameters. The relay receives no data from the app and stores none. |
| App Store (itunes.apple.com) | For "Our other apps" in Settings: those apps' identifiers, the store country and the language. |
5. Usage statistics and crash reports (Google Firebase)
Tidecast uses Firebase Analytics and Firebase Crashlytics (Google) to learn which features are used and to fix crashes.
When
- European Union, EEA, United Kingdom, Switzerland (and the French overseas departments): nothing is sent until you answer "Share" on the "Help improve Tidecast" onboarding screen. "Don't share" costs nothing in the app.
- Elsewhere: collection is on until you turn it off.
- Everywhere: the app's Settings > Privacy > "Share usage and crash data" lets you change your mind at any time. One switch covers both statistics and crash reports.
Since the app has no other way of knowing where you live, the region is inferred from your device's settings: if the Region setting, the time zone or the region of your first preferred language points to one of these areas, your consent is asked for.
What is sent
- Events describing kinds of action and where they came from: subscription screen shown (and from where), purchase or restore, activity chosen among the built-in ones (an activity you named yourself is only reported as "custom"), spot saved (US or France market), kind of alert created, answer to the location step, Siri action, Live Activity, share or calendar entry (their kind), rating request, one of our other apps opened.
- Two properties: free or Pro, metric or imperial units.
- The technical data Firebase collects automatically: a random app instance identifier specific to this installation; device model, iOS and app version, language; an approximate location (country, region) that Google derives from the IP address.
- On a crash: the technical trace of the crash and the device's state at that moment (Crashlytics).
Never sent: your location, a spot's coordinates or name, an activity's name, or anything you type. Firebase's advertising features are off whatever your answer (ad storage, ad user data and ad personalisation denied), the identifier for vendors (IDFV) is not collected by Firebase, and the app does not use the advertising identifier (IDFA) or ask for tracking permission (ATT).
6. Purchases and subscriptions (Apple, RevenueCat)
Tidecast Pro purchases are processed by Apple: the publisher never receives your name, email address or payment details. The app uses RevenueCat to check your Pro entitlement and restore purchases. RevenueCat receives an anonymous identifier it generates for this installation, the App Store transaction information (product, date, renewal, trial, country and currency) and technical data (app and system version).
If statistics are on (section 5), the app also gives RevenueCat the Firebase app instance identifier, so that RevenueCat can pass purchases, renewals and cancellations on to Firebase Analytics. The link is removed as soon as you turn statistics off.
7. Legal bases (GDPR)
- Statistics and crash reports: your consent in the EEA, the UK and Switzerland (Art. 6(1)(a) GDPR and the rules on device storage); elsewhere, the publisher's legitimate interest in improving the app, which you can object to at any time in Settings.
- Purchases and subscriptions: performance of the contract (Art. 6(1)(b)) and the publisher's legal obligations; legitimate interest for fraud prevention and subscription management.
- Location and conditions requests: providing the service you ask for (Art. 6(1)(b)), with the iOS location permission, which you can withdraw.
8. Processors and recipients
- Google (Firebase Analytics, Firebase Crashlytics) — firebase.google.com/support/privacy
- RevenueCat, Inc. (subscription management) — revenuecat.com/privacy
- Apple (App Store, Maps / MapKit, Weather / WeatherKit) — apple.com/legal/privacy
- Cloudflare (hosting of the Candhis relay, which receives only a read request) — cloudflare.com/privacypolicy
The public data services (NOAA, NWS) receive the requests described in section 4. No data is sold or shared for advertising. Google, RevenueCat and Cloudflare may process data outside the European Union, notably in the United States; these transfers rely on the EU–US Data Privacy Framework or on the European Commission's standard contractual clauses, depending on the provider.
9. Retention
- Data on the device: until you delete it in the app or delete the app.
- Firebase Analytics statistics: 14 months, after which only aggregate statistics remain.
- Crashlytics crash reports: 90 days.
- RevenueCat purchase data: as long as needed to manage your purchases, then as required by law (accounting in particular).
10. Your rights
You have the rights of access, rectification, erasure, restriction, objection and portability, and the right to withdraw consent at any time. Since nothing is linked to your identity, this is how they work in practice:
- Statistics: turn off "Share usage and crash data" in the app's Settings; nothing more is sent from then on.
- Local data: deleting a spot or an alert erases it; deleting the app erases all its data from the device and leaves this installation's Firebase identifier permanently orphaned.
- RevenueCat: the identifier is anonymous. For an access or erasure request, write to [email protected] with the order ID of your purchase (shown on Apple's receipt); it lets us find the matching record.
- Firebase: the publisher cannot match a request to anonymous statistics without an identifier; they are deleted at the end of the retention period.
You may lodge a complaint with your data protection authority — in France, the CNIL (cnil.fr). Residents of California: the publisher does not sell or share personal information as defined by the CCPA.
11. Children
Tidecast is not directed at children and is not designed for anyone under 13. The publisher does not knowingly collect data about children.
12. Security and disclaimer
All of the app's connections use HTTPS. Not for navigation. Predictions may differ from actual conditions.
13. Changes
This policy may change with the app. The effective date above is then updated; any change that requires your consent will be asked for in the app.