Privacy Policy — ExposureCast
Covers: the Android app “ExposureCast”, the legal pages and the contact form on www.rooksbury.com
and the product page www.exposurecast.com
Effective: 25 September 2026 · Version: 1.3
Language: This is a translation. The German version (https://www.rooksbury.com/exposurecast/datenschutz) prevails.
This policy explains which personal data arise when you use ExposureCast, visit the legal
pages on www.rooksbury.com or the product page www.exposurecast.com, or write to us using the
contact form, where they go, and what
rights you have (Art. 13 GDPR).
1. Controller
Michael Schubert, trading as Rooksbury
Rilkestr. 4
86199 Augsburg
Germany
Email: support@rooksbury.com
We have not appointed a data protection officer; as a sole trader we are not required to under § 38(1) of the German Federal Data Protection Act (BDSG).
2. Summary
- No account, no sign-in. The app does not know your name or email address.
- No advertising, no purchases, no analytics in this version. The app contains no advertising SDK, no purchase SDK and no analytics or crash-reporting service (details in section 12).
- Your places, trips and settings are stored only on your device. We receive only what a forecast needs, and the feedback you choose to send.
- Your location is rounded: the app stores your GPS location to 4 decimal places, about 11 metres, and sends it to our server at that precision.
- Some map services are loaded by the app directly. Those providers see your IP address and roughly the map area you are looking at (section 7). The “Rain” and “Clouds” layers, whose providers are in the USA, are loaded only after you agree.
- Our server stores feedback (“seen / not seen”) without any identifier of your device and deletes it after 24 months (section 8).
- Our server does not store messages sent via the contact form. It forwards them as an email to our mailbox at Google Workspace (section 11).
3. What stays on your device
The app stores on your device, in the storage of the app interface and mirrored into the app's Android preferences storage:
- your places with name and coordinates (4 decimal places, ~11 m); for “My location” that is your location;
- trips with stages and date ranges;
- saved opportunities with place, time and your own feedback;
- reminders you have set;
- whether you have agreed to the “Rain” and “Clouds” map layers;
- feedback not yet sent;
- the last forecast feed per place;
- a small summary for the home-screen widget (place name, up to three opportunities);
- settings for the interface, the camera and the AR view.
These data are not sent to us, except as described in sections 5 and 8. They disappear when you clear the app data or uninstall the app. For Android backup see section 10.
Reminders are local notifications. They are scheduled on the device and contain the name of the opportunity, the lead time and the place name. No server is involved.
Camera: the camera permission is used only as a live background in the AR view. No image leaves the device.
4. Location
When you add “My location” and grant the location permission, the app requests your precise location. After that it refreshes it silently when you open the app and when you return to it; it is stored again and sent to our server again only if you have moved more than 1 km. There is no background location; the app does not even request that permission. The app rounds the location to 4 decimal places (~11 m) when storing it.
If you tap the light-pollution map, the app sends the tapped point to our server unrounded; that is any point on the map, not your location.
The app determines the location through the Google Play services on the device (“Fused Location Provider”). Without Play services, “My location” does not work. Our app itself sends nothing to Google in the process. Whether and which data Play services transmit to Google while locating cannot be determined from our code; it depends on settings of your device for which Google is responsible. Google provides information in its privacy policy (section 15).
Places you search for or pick on the map are also stored with 4 decimal places. Stages in the trip planner are stored as the place search returns them, unrounded; that is the coordinate of a searched place, not your location.
5. Our server api.exposurecast.com
The app fetches forecasts, place search, sky data and map overlays from our own server. The following is sent:
- your IP address and the identifier of the Android WebView (device model, Android and WebView version);
- the coordinates of the selected place (4 decimal places), the place name, for place search the search text, language and date;
- for feedback, its content (section 8).
Cloudflare. The connection runs through Cloudflare's network (Cloudflare Tunnel). The encrypted connection ends at Cloudflare, so Cloudflare sees every request in full: your IP address, the address including coordinates, place name, search text and the content of feedback. Cloudflare passes your IP address on to our server. What Cloudflare logs and for how long is determined by Cloudflare under its own terms (section 15).
Hostinger. The server runs on a rented virtual server at Hostinger. Everything our server stores is kept there.
What the server does with requests:
- It uses your IP address only in memory to limit requests per minute (protection against overload).
- It keeps results in memory for a while so that not every request reaches the data sources again. Keys are rounded coordinates, for place search the search text. Depending on the type this lasts 20 minutes to 24 hours, for the terrain horizon up to 30 days; that entry holds only the place rounded to about 110 m. A restart deletes everything.
- No access log: the server does not write your requests to a log. Only the server's start and error messages remain.
- Developer feature AR recording: for troubleshooting, the app's hidden developer mode (tap the version line seven times) can record orientation-sensor values of the AR view and send them to the server: time, mode, app version, sensor values, markers and the location rounded to 2 decimal places (~1 km). In production the server has this intake switched off; it rejects such recordings and stores nothing. If it is briefly switched on for a diagnosis, stored recordings remain until we delete them by hand; there is no automatic deletion for them.
6. Services our server queries for you
For forecasts and place search our server queries the following services. These providers see the IP address of our server, not yours, but the data we send along.
| Provider | Purpose | What is sent |
|---|---|---|
Open-Meteo (api.open-meteo.com, marine-api.open-meteo.com) | weather forecast, rain forecast, tides | coordinates rounded to 0.1° (~11 km); for the rain forecast a grid around a point rounded to 0.5° (~55 km) |
MET Norway (api.met.no) | fallback, only if Open-Meteo fails | coordinates with 4 decimal places (~11 m) |
Photon by komoot (photon.komoot.io) | place search and place name for coordinates | for search the search text and the coordinates of your current place as a hint; for place names the coordinates; each rounded to 2 decimal places (~1 km) |
Amazon Web Services, “Terrain Tiles” dataset (s3.amazonaws.com) | terrain horizon (Pro) | tile numbers of a block of tiles around the place rounded to about 110 m; the centre of the block reveals the place to about 6 km. |
NOAA Space Weather Prediction Center (services.swpc.noaa.gov) | Kp index (aurora) | no data about you |
GFZ Helmholtz Centre Potsdam (www-app3.gfz-potsdam.de) | Kp nowcast (aurora) | no data about you |
7. Services the app queries directly
The app loads these services itself. The provider therefore sees your IP address, the WebView identifier and the address of the tile. The tile roughly reveals which map area you are looking at.
Rain and Clouds only after you agree. When you first switch on these layers, the app shows a notice that it loads images from RainViewer (for Clouds also from NASA GIBS) in the USA, transmits your IP address in doing so, and that data protection there is not equivalent to EU law. Only when you choose “Load” is a request sent to these providers; with “Cancel” none is. The app remembers your consent per layer on the device. In the USA the level of data protection may not match that of the EU, and for these two providers none of the usual safeguards exist (section 15); that is why we ask. Withdrawal: at any time in the settings under “Data & about” → “Reset map consent”. After that the layers load nothing and ask again the next time you switch them on.
| Provider | When | What is sent |
|---|---|---|
CARTO (basemaps.cartocdn.com) | every map (dark base map) | tile numbers. The detail map opens on the selected place with tiles of about 13 km, “Centre” zooms to about 3 km, manually down to street level. |
Esri (server.arcgisonline.com) | only after tapping “Satellite” | tile numbers as above |
NASA GIBS (gibs.earthdata.nasa.gov) | only with the “Clouds” layer, after your consent | tile numbers, at most about 50 km precise |
RainViewer (api.rainviewer.com, tilecache.rainviewer.com) | with the “Rain” and “Clouds” layers, after your consent; tiles only with “Rain” | first a list without location (also for the Clouds timeline), then tile numbers, at most about 200 km precise. RainViewer names the tile server itself in its response; it can change without any action on our part. |
8. Feedback (“seen / not seen”)
When you give feedback, for example whether a predicted opportunity happened, the app sends to
our server: a random identifier of the report, the type of report, your verdict, the time, the
coordinates of the place (4 decimal places; they appear a second time in the field slot), the
phenomenon, the displayed probability and whether it was calibrated, the app version, and the
day, the distance to the event, the displayed rating and whether it is a retrospective report.
No identifier of your device is included. The server adds the time of receipt.
It does not store your IP address with it.
Without a network, the app collects feedback on the device and sends it later.
Purpose: we compare forecast and observation to improve the displayed probabilities.
Consent and withdrawal: feedback reaches us only when you tap one of the buttons yourself; that is your consent (section 13). You can withdraw it at any time by email to support@rooksbury.com; we then delete the reports for the place and time you tell us. Reports still waiting on the device disappear with the app data.
Storage: in a file on our server at Hostinger, for 24 months from receipt. After that the server deletes the report automatically. Hostinger backs up the server once a week and keeps the two most recent weekly backups. A deleted report may therefore remain in these backups for about two more weeks until it is overwritten there.
Because reports carry no identifier of your device, we can match them to you only if you tell us the place and approximate time (section 16).
9. Links you open yourself
Some source credits are links (Open-Meteo, Creative Commons, RainViewer). They open in the browser only when you tap them. Only if the map cannot be loaded does the app offer an “Open map” link to OpenStreetMap; this link contains the coordinates of the place, so OpenStreetMap learns them when you tap it.
10. Android platform
- Backup: the app does not exclude Android backup. If backup is enabled on your device, Android may back up the app data from section 3, including places and trips, to your Google account. This backup goes to Google, not to us.
- WebView: the app shows its interface in the Android System WebView. The WebView may check visited addresses against Google Safe Browsing; the app does not turn this off.
- Location: see section 4.
11. The legal pages and the contact form on www.rooksbury.com, the product page on www.exposurecast.com
This policy is published on www.rooksbury.com; the ExposureCast product page is on
www.exposurecast.com (exposurecast.com redirects there). Both websites are served by
our server at Hostinger through Cloudflare's network. When you visit them, Cloudflare and our
server see your IP address, the requested address, date and time, and your browser's identifier.
The pages load nothing from other servers: no scripts, fonts, images or stylesheets. They contain no JavaScript, and our server sets no cookies.
No access log: our server does not log visits to these pages. It only records error messages of the web server, for example if a page cannot be read. Such a message may contain the requested address (and, if your browser sends it, the page you came from), but not your IP address: as the sender, our web server only records the connection from the Cloudflare tunnel. These messages are kept in a log store of at most 2 MB. When it is full, the oldest are overwritten; it is deleted when the web server is set up anew. There is no fixed period. The messages may remain in Hostinger's weekly backups (section 8) for up to about two weeks longer.
Cloudflare: when you visit these pages, Cloudflare normally does not set any cookies either.
Cloudflare features that would set cookies, insert scripts into the pages or make your browser
send reports about failed connections to Cloudflare are switched off for these pages (Bot Fight
Mode, email address obfuscation, Network Error Logging). One exception remains: if Cloudflare
considers a request suspicious, it may first answer it with its own challenge page and set the
technically necessary cookie cf_clearance for it
(https://developers.cloudflare.com/fundamentals/reference/policies-compliances/cloudflare-cookies/).
How long Cloudflare stores the access data is determined by Cloudflare; Cloudflare has not published a fixed period. According to its own statement, Cloudflare processes this data only for a limited period of time (https://www.cloudflare.com/trust-hub/gdpr/); details are in Cloudflare's privacy policy (https://www.cloudflare.com/privacypolicy/).
Contact form. You can write to us at https://www.rooksbury.com/contact. The form asks for your email address and your message, and optionally for your name. Without an email address and a message it accepts nothing, because otherwise we could not reply to you.
When you submit it, your browser sends the details to our server api.exposurecast.com, also
through Cloudflare; besides your IP address, Cloudflare also sees the content.
Our server turns it into an email to our
mailbox support@rooksbury.com and hands it over, encrypted, to the mail service of Google
Workspace; it sets your email address as the reply address.
Our server does not store the message, neither in a file nor in a log. It uses your IP address only in memory to accept at most three messages per hour from the same address; this counter expires after one hour. A field in the form that is invisible to people detects automatically filled-in requests; we discard those without sending them.
The message is then kept in our mailbox at Google Workspace (section 15), like any email you write directly to support@rooksbury.com. We use it only to answer your enquiry. Deletion: we delete the message once your enquiry has been dealt with, unless a statutory retention obligation prevents this. Gmail removes deleted emails from the trash after 30 days.
12. What this version does not contain
- No advertising. No advertising SDK is included (and no consent dialog for it). The app only contains a prepared interface and a placeholder area that load nothing and transmit no data.
- No purchases through a payment service. No purchase or subscription SDK is included.
- No analytics, no crash reporting, no tracking.
If we introduce advertising or purchases, we will change this policy before the new version of the app is released.
13. Legal bases
| Processing | Legal basis |
|---|---|
| Requesting location, computing the forecast for your place (sections 4–6) | Art. 6(1)(b) GDPR: you request the forecast for your place, and it cannot be computed without the place. |
| Loading map tiles directly from CARTO and Esri (section 7) | Art. 6(1)(f) GDPR. Our legitimate interest: to show you the place and direction of an opportunity on a map. For this the app loads map images from the provider, who inevitably sees your IP address and the map area; satellite images from Esri only when you choose “Satellite”. |
| “Rain” and “Clouds” layers (RainViewer, NASA GIBS; section 7) | Art. 6(1)(a) GDPR (consent), for the transfer to the USA Art. 49(1)(a) GDPR. Withdrawal: settings → “Data & about” → “Reset map consent”. |
| Feedback (section 8) | Art. 6(1)(a) GDPR (consent by sending it). Withdrawal by email to support@rooksbury.com (section 8). |
| Request limiting, Cloudflare, Hostinger (section 5) | Art. 6(1)(f) GDPR. Our legitimate interest: to keep the server reachable and protect it from overload by too many requests. |
| Visiting the legal pages (section 11) | Art. 6(1)(f) GDPR. Our legitimate interest: to keep available the legal texts we are required to publish. |
| Contact form and emails to us (section 11) | Art. 6(1)(b) GDPR if your enquiry concerns a contract with us or steps prior to one; otherwise Art. 6(1)(f) GDPR. Our legitimate interest: to answer your enquiry and to protect the form from masses of automatically sent messages. |
14. Retention
| Data | Period |
|---|---|
| Data on the device (section 3) | until you delete them in the app, clear the app data or uninstall the app |
| Server caches (section 5) | 20 minutes to 24 hours, terrain horizon up to 30 days; in memory only, a restart deletes them |
| Request-limiting counters | one time window, usually one minute, one hour for the contact form |
| Server access log | not kept |
| Feedback | 24 months from receipt, then deleted automatically; up to about two weeks longer in Hostinger's weekly backups |
| Consent to “Rain”/“Clouds” (on the device) | until you reset it in the settings or clear the app data |
| Messages sent via the contact form | not at all on our server; in our mailbox at Google Workspace until your enquiry has been dealt with, unless a statutory retention obligation applies (section 11) |
| Logs at Cloudflare | according to Cloudflare's terms |
| Access data of the legal pages and the product page | with us no access log; web server error messages without your IP address in a store of at most 2 MB, no fixed period (section 11); at Cloudflare no published fixed period, Cloudflare states “a limited period of time” (section 11) |
15. Recipients, location and transfers to third countries
The providers from sections 4 to 11. “Third country” means outside the European Economic Area. For the USA, the European Commission has adopted an adequacy decision only for companies participating in the EU-U.S. Data Privacy Framework (DPF); for Switzerland an adequacy decision exists.
| Provider | Legal entity and seat | Privacy information | Third country and basis |
|---|---|---|---|
| Cloudflare | Cloudflare, Inc., 101 Townsend Street, San Francisco, CA 94107, USA | https://www.cloudflare.com/privacypolicy/ | USA. DPF-certified according to its own statement; standard contractual clauses as a fallback. |
| Hostinger | Hostinger International Limited, 61 Lordou Vironos Street, Lumiel Building, 4th floor, 6023 Larnaca, Cyprus | https://www.hostinger.com/legal/privacy-policy | Seat in the EU. Our server is located in Germany (Frankfurt). Hostinger cites standard contractual clauses for sub-processors outside the EU. |
| CARTO | CartoDB Inc., 307 Fifth Avenue, Floor 9, New York, NY 10016, USA | https://carto.com/privacy/ | USA. DPF-certified according to its own statement; standard contractual clauses as a fallback. |
| Esri | Esri, 380 New York Street, Redlands, CA 92373, USA | https://www.esri.com/en-us/privacy/privacy-statements/privacy-statement | USA. DPF-certified according to its own statement. |
| NASA (GIBS) | National Aeronautics and Space Administration, US federal agency | https://www.nasa.gov/privacy/ | USA. DPF participation not possible, no safeguard found. Transfer only after your consent in the app (sections 7 and 13). |
| RainViewer | Meteolab Inc., Delaware, USA (the provider gives no address) | https://www.rainviewer.com/privacy.html | USA. No DPF participation and no standard contractual clauses found. Transfer only after your consent in the app (sections 7 and 13). |
| Photon (komoot) | komoot GmbH, Friedrich-Wilhelm-Boelcke-Straße 2, 14473 Potsdam, Germany | https://www.komoot.com/privacy | not a third country |
| Open-Meteo | OpenMeteo GmbH, Hintere Schilligmatte 6, 6463 Bürglen (UR), Switzerland | https://open-meteo.com/en/terms | Switzerland, adequacy decision. |
| MET Norway | Meteorologisk institutt (Norwegian Meteorological Institute), Postboks 43 Blindern, 0313 Oslo, Norway | https://www.met.no/en/About-us/privacy | Norway is part of the EEA. |
| Amazon Web Services | Amazon Web Services EMEA SARL, 38 Avenue John F. Kennedy, L-1855 Luxembourg | https://aws.amazon.com/privacy/ | Seat in the EU; the US parent company is DPF-certified according to its own statement. |
| NOAA SWPC | National Oceanic and Atmospheric Administration, US federal agency | https://www.noaa.gov/organization/information-technology/privacy | USA; receives no data about you. |
| GFZ Potsdam | GFZ Helmholtz Centre for Geosciences, Telegrafenberg, 14473 Potsdam, Germany | https://kp.gfz.de/en/data-protection | not a third country; receives no data about you. |
| Google (Play services, Android backup, Safe Browsing) | Google Ireland Limited, Gordon House, Barrow Street, Dublin 4, Ireland | https://policies.google.com/privacy | The US parent Google LLC is DPF-certified according to its own statement. |
| Google Workspace (our mailbox, also for the contact form) | Google; which Google company is our contracting party depends on the Google Workspace terms of service and our billing address | https://cloud.google.com/terms/data-processing-addendum | USA and other countries possible; basis see below under “Processing on our behalf”. |
Processing on our behalf: Cloudflare, Hostinger and Google Workspace process data on our behalf. With all three, a data processing agreement under Art. 28 GDPR applies:
- Cloudflare: the data processing agreement is incorporated by reference into Cloudflare's terms of service (https://www.cloudflare.com/terms/, section 6.1; https://www.cloudflare.com/cloudflare-customer-dpa/). It bases the transfer to the USA on the EU-U.S. Data Privacy Framework, and alternatively on standard contractual clauses.
- Hostinger: the data processing agreement is an annex to Hostinger's terms of service and expressly covers virtual private servers (VPS) (https://www.hostinger.com/legal/dpa).
- Google Workspace (our mailbox support@rooksbury.com, which also receives the messages from the contact form): the basis is Google’s “Cloud Data Processing Addendum” (https://cloud.google.com/terms/data-processing-addendum), which we accepted on 13 September 2026. Under this agreement Google may process the data in any country where Google or its sub-processors maintain facilities, including outside the EEA. For transfers to countries without an adequacy decision, Google applies a transfer solution of its own, of which it informs us, and otherwise standard contractual clauses. For the USA, since 1 September 2023 this has been the EU-U.S. Data Privacy Framework, in which Google LLC participates (https://cloud.google.com/terms/alternative-transfer-solution).
16. Your rights
You have the right of access (Art. 15 GDPR), rectification (Art. 16), erasure (Art. 17), restriction of processing (Art. 18), data portability (Art. 20) and to object to processing based on Art. 6(1)(f) GDPR (Art. 21). You may withdraw consent at any time with effect for the future (Art. 7(3)). An informal message to support@rooksbury.com is sufficient.
Because there is no account and no device identifier, we can match feedback on the server only via the place and time you tell us (section 8).
You can revoke the location permission at any time in the Android settings (Settings → Apps → ExposureCast → Permissions).
17. Complaints to the supervisory authority
You may lodge a complaint with a data protection supervisory authority (Art. 77 GDPR), in particular in the Member State of your residence, place of work or the alleged infringement. The authority responsible for us is:
Bayerisches Landesamt für Datenschutzaufsicht (BayLDA)
Promenade 18, 91522 Ansbach, Germany (postal address: Postfach 1349, 91504 Ansbach)
https://www.lda.bayern.de · Complaints: https://www.lda.bayern.de/de/beschwerde.html
18. Security
The app connects to all services only over encrypted connections (HTTPS).
19. No automated decisions
The app computes probabilities for weather and sky events. It makes no decisions about persons within the meaning of Art. 22 GDPR. We do not process special categories of personal data (Art. 9 GDPR).
20. Children
The app is not directed at children under 16.
21. Changes
We update this policy when the processing changes. The version linked in the app and published at https://www.rooksbury.com/exposurecast/privacy applies.