Rooksbury

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


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:

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:

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:


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.

ProviderPurposeWhat is sent
Open-Meteo (api.open-meteo.com, marine-api.open-meteo.com)weather forecast, rain forecast, tidescoordinates 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 failscoordinates with 4 decimal places (~11 m)
Photon by komoot (photon.komoot.io)place search and place name for coordinatesfor 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.

ProviderWhenWhat 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 consenttile 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


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

If we introduce advertising or purchases, we will change this policy before the new version of the app is released.


13. Legal bases

ProcessingLegal 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

DataPeriod
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 countersone time window, usually one minute, one hour for the contact form
Server access lognot kept
Feedback24 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 formnot 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 Cloudflareaccording to Cloudflare's terms
Access data of the legal pages and the product pagewith 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.

ProviderLegal entity and seatPrivacy informationThird country and basis
CloudflareCloudflare, Inc., 101 Townsend Street, San Francisco, CA 94107, USAhttps://www.cloudflare.com/privacypolicy/USA. DPF-certified according to its own statement; standard contractual clauses as a fallback.
HostingerHostinger International Limited, 61 Lordou Vironos Street, Lumiel Building, 4th floor, 6023 Larnaca, Cyprushttps://www.hostinger.com/legal/privacy-policySeat in the EU. Our server is located in Germany (Frankfurt). Hostinger cites standard contractual clauses for sub-processors outside the EU.
CARTOCartoDB Inc., 307 Fifth Avenue, Floor 9, New York, NY 10016, USAhttps://carto.com/privacy/USA. DPF-certified according to its own statement; standard contractual clauses as a fallback.
EsriEsri, 380 New York Street, Redlands, CA 92373, USAhttps://www.esri.com/en-us/privacy/privacy-statements/privacy-statementUSA. DPF-certified according to its own statement.
NASA (GIBS)National Aeronautics and Space Administration, US federal agencyhttps://www.nasa.gov/privacy/USA. DPF participation not possible, no safeguard found. Transfer only after your consent in the app (sections 7 and 13).
RainViewerMeteolab Inc., Delaware, USA (the provider gives no address)https://www.rainviewer.com/privacy.htmlUSA. 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, Germanyhttps://www.komoot.com/privacynot a third country
Open-MeteoOpenMeteo GmbH, Hintere Schilligmatte 6, 6463 Bürglen (UR), Switzerlandhttps://open-meteo.com/en/termsSwitzerland, adequacy decision.
MET NorwayMeteorologisk institutt (Norwegian Meteorological Institute), Postboks 43 Blindern, 0313 Oslo, Norwayhttps://www.met.no/en/About-us/privacyNorway is part of the EEA.
Amazon Web ServicesAmazon Web Services EMEA SARL, 38 Avenue John F. Kennedy, L-1855 Luxembourghttps://aws.amazon.com/privacy/Seat in the EU; the US parent company is DPF-certified according to its own statement.
NOAA SWPCNational Oceanic and Atmospheric Administration, US federal agencyhttps://www.noaa.gov/organization/information-technology/privacyUSA; receives no data about you.
GFZ PotsdamGFZ Helmholtz Centre for Geosciences, Telegrafenberg, 14473 Potsdam, Germanyhttps://kp.gfz.de/en/data-protectionnot a third country; receives no data about you.
Google (Play services, Android backup, Safe Browsing)Google Ireland Limited, Gordon House, Barrow Street, Dublin 4, Irelandhttps://policies.google.com/privacyThe 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 addresshttps://cloud.google.com/terms/data-processing-addendumUSA 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:


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.