Privacy Policy

Gradient Weather  ·  Last updated: October 2026

Gradient Weather is built with a fundamental commitment to privacy. You do not need an account to use the app. Your personal data is not sold and is not used for advertising. This policy describes in clear terms what information the app collects, how it is used, and the choices you have.

1. Who We Are

Gradient Weather is developed and published by Subtle Signals Ltd, a private limited company incorporated in England and Wales. References to "we", "us", or "our" in this policy refer to Subtle Signals Ltd.

This policy applies solely to the Gradient Weather Android application and does not apply to any other Subtle Signals products.

2. Our Privacy-First Approach

  • No account required. You never need to register or provide personal information to use the app.
  • No third-party analytics or tracking. The app contains no analytics SDKs, no advertising networks and no third-party tracking. We count a few anonymous app events ourselves, without any identifier, to see which features are used and which work well. Section 6 explains exactly what.
  • No data sold. We do not sell, rent, or trade any user data.
  • Local-first storage. Your preferences, saved locations, and alert settings are stored exclusively on your device.
  • You control your data. Deleting the app removes all locally stored data.

3. Data We Collect and How We Use It

3.1 Location Data

The app uses your device location to fetch an accurate weather forecast for your current position. Location is the only data strictly necessary for the app to function.

  • Foreground location is used to fetch your current weather and to display radar and rain-grid overlays on the map.
  • Background location is used, only if you enable weather alerts, to monitor your neighbourhood via a geofence and trigger alert checks. This processing occurs on-device; your location during background checks is not transmitted to us.
  • Your coordinates are sent to third-party weather providers solely to retrieve a forecast (section 4). We do not keep your location beyond serving the request, with one exception: while the Imminent Rain alert is switched on, our server keeps the coordinates you registered so it can watch the rain forecast for your area. They are removed when you switch the alert off, and automatically after 90 days without the app refreshing them. Providers may keep technical request logs, as described in their own privacy policies.
  • Your location is never used for profiling, advertising, or any purpose other than delivering weather information.
  • You can revoke location permission at any time in Android Settings.

3.2 Anonymous Emoji Weather Reports

The app includes an optional community feature that lets you submit a single emoji to describe current conditions near you (for example, rain or sunshine). Submitting a report is always voluntary and requires an explicit action.

When you submit a report, the following data is sent to our backend:

  • The emoji you selected.
  • Your approximate location. Coordinates are sent to our Cloudflare Worker backend, where they are immediately rounded to a geohash cell of roughly 1 km accuracy. Precise coordinates are not stored.
  • An anonymous sender ID. A randomly generated UUID created locally on your device the first time you submit a report. It is stored on-device only, persisted with Android DataStore, and is never linked to your identity. It is used solely to enforce a per-user cooldown to prevent duplicate submissions.

Aggregated emoji counts per geographic area are displayed to other nearby users. Individual reports are not exposed to other users. Raw report records are automatically deleted from our servers after 24 hours.

3.3 Push Notifications (Firebase Cloud Messaging)

If you enable community weather alerts, the app subscribes to anonymous Firebase Cloud Messaging (FCM) topic channels based on your geohash, a short alphanumeric code representing a geographic cell of approximately 5 km × 5 km. This allows the app to receive push notifications when nearby users report severe conditions.

  • Your precise location is never sent to Firebase. Only the derived geohash topic identifier is used.
  • FCM associates no personal identity with a topic subscription.
  • Topic subscriptions are automatically updated if you move to a new area, and previous subscriptions are removed.
  • You can disable community alerts at any time in Settings, which immediately removes all FCM subscriptions.

If you switch on weather warnings, the app registers its push token with our server, together with the countries of the places you get warnings for (in the US, their forecast zones). It never sends coordinates or names for this. The registration is removed when you switch weather warnings off, and automatically after 90 days if the app stops refreshing it.

3.4 Data Stored Locally on Your Device

The following data is stored in the app's private storage on your device only and is never transmitted to us.

DataPurpose
Cached weather dataDisplay forecasts instantly while a fresh fetch loads
Saved locationsFavourite places you have added
Alert preferences & thresholdsYour configured weather alert settings
Anonymous sender ID (UUID)Cooldown enforcement for emoji report submissions
Subscribed geohash cellsTracks which FCM topics to unsubscribe when you change location
Appearance settingsTheme, units, widget order and other preferences
Dynamic icon preferenceWhich app icon variant is currently active

3.5 Arcade Mini-Games (optional)

The app includes hidden arcade games with a public leaderboard and, at times, promo codes as prizes. Playing is optional. The leaderboard is anonymous: it shows a nickname and avatar our server makes up, never your name.

  • Random player ID. The first time you play, the app creates a random ID on your device. It is not linked to your identity, your Google account or your device. It is stored in the app's data, so it is included in your Android backup if you have backup turned on.
  • What we store. With that ID we store your best score and its details (run length and items collected), when you set it, your avatar and, if you win one, which promo code you received. Nothing else.
  • Usage counts. If Share anonymous usage counts is on, we also count, without your player ID, how many days after your first game you play, and when and where (country) games are played, how long runs last and how they end, and how often codes and scores are shared.
  • Fair play. To stop cheating, top scores and prize claims are checked with Google Play Integrity, which confirms the request comes from the genuine app on a real device.

3.6 Gemini and Other Assistants (optional)

On Android 16 and later, you can ask an assistant app such as Gemini about the weather, and it can get the answer from Gradient Weather. This only happens when you ask. The app never sends anything to an assistant on its own.

When you ask, the assistant tells the app which place you mean, if you named one, and for hourly forecasts which day. The app then gets the weather the same way it does when you use the app (section 4) and gives the assistant:

  • the name of the place, such as your default location's name or the place you asked about, with its region and country;
  • the weather you asked for, such as current conditions, the forecast, weather warnings, air quality, pollen, sea conditions, sunrise and sunset, the moon phase or what to wear;
  • for Family & Friends, each person's name, the place you linked to them and their current weather;
  • a link that opens the right screen in Gradient Weather.

If a place name could mean more than one place, the app lists the matches, which can include your saved places, so the assistant can ask you which one you mean.

The app never gives an assistant your coordinates, your contacts' phone numbers or photos, or any identifier. If you name a place that isn't one of your saved places, the app looks it up by name with OpenWeatherMap and finds its time zone with timeapi.io, as it does when you search for a place in the app.

What the assistant does with this information is covered by the assistant's own privacy policy. For Gemini, see Google's Gemini Apps Privacy Hub. We don't receive or keep your questions or the assistant's answers.

Each time an assistant uses the app, the app sends us an anonymous usage count (section 6): the kind of request, whether it worked, how long it took, whether it used your default location and whether you have Premium. It never contains place names or anything about your contacts. You can turn this off in Settings → Privacy, under "Share anonymous usage counts".

To stop an assistant using Gradient Weather, turn off its access in the assistant's settings. In Gemini, you can disconnect individual apps in its Connected Apps settings.

4. Third-Party Weather Services

To deliver forecast data, the app sends your coordinates to the following services. We do not control these services' own data practices. Please refer to their respective privacy policies for further information.

ServiceData sent
Pirate Weather APILatitude & longitude for current forecast
MET Norway LocationforecastLatitude & longitude for hourly/daily forecast
OpenWeatherMapCoordinates for radar tile layers; place names you search for, in the app or through an assistant (section 3.6)
timeapi.ioCoordinates of a place you search for, to find its time zone
Rainbow.aiYour coordinates for minute-by-minute rain forecasts (the Imminent Rain alert and its rain chart), sent by our server every 10 to 30 minutes while the alert is switched on; map tile coordinates for the precipitation radar layer
GeoapifyCoordinates for reverse-geocoding (place name lookup)
RainViewerNo personal data; public radar tile requests only
OpenFreeMap / MapLibreNo personal data; public map tile requests only
Subtle Signals Cloudflare WorkersCoordinates and anonymous sender ID (emoji reports); anonymous usage counts with no identifier (section 6); Google Play purchase token, to verify purchases (section 5); random player ID and game scores (section 3.5)
Google Play IntegrityIntegrity check when you post a top score or claim a prize in the mini-games (section 3.5)
Firebase Cloud MessagingGeohash topic identifier only (no location, no identity)
Firebase Remote Config (Google)Firebase installation ID, app version, Android version, language and region settings, and time zone, to fetch which features are switched on

All connections use HTTPS. The app's Network Security Configuration explicitly blocks unencrypted (cleartext) HTTP traffic.

5. In-App Purchases and Subscriptions

Gradient Weather offers optional paid subscriptions. All payment transactions are processed entirely by Google Play. Subtle Signals Ltd does not receive, process, or store any payment card details, bank account information, or other billing data. Google is the merchant of record for all purchases made through the app.

The transaction is governed by Google's Privacy Policy and the Google Play Terms of Service.

The app stores your subscription status (active or expired) on your device. To confirm that a purchase is genuine, the app sends the Google Play purchase token to our verification server, which checks it with Google and returns a signed confirmation. We don't store the purchase token. If you cancel and choose to tell us why, your answer is stored without any identifier for up to 12 months.

6. Analytics and Advertising

The app does not include any third-party analytics SDKs, advertising networks or tracking libraries, and it never reads your device's advertising ID. We use Firebase only to send push notifications (Cloud Messaging) and to switch app features on or off remotely (Remote Config).

Anonymous usage counts. To understand which features people use and which work well, the app sends us a small number of anonymous events, such as "a detail page was opened", "an upgrade screen was opened from the Alerts tab" or "a purchase was completed". Each event contains only:

  • what happened and which screen or feature it came from;
  • the app version and app language;
  • coarse context, such as whether you have Premium and how many days ago the app was installed, in ranges.

When an event arrives, our server adds the country your connection comes from and the hour it arrived. For assistant (section 3.6) and Family & Friends events it also adds the region, such as a state or province.

Family & Friends events also include how many people you've added and the country and region of the place you chose for each of them, never their names, numbers or exact location.

These events never contain a user ID, device ID or advertising ID, your location, the names or numbers of your contacts, or any payment details, and they can't be linked to each other or to you. They are processed on our Cloudflare Workers and stored as counts.

You can turn this off at any time in Settings → Privacy, under "Share anonymous usage counts".

Legal basis: our legitimate interest in improving the app (GDPR Article 6(1)(f)).

7. Data Retention

DataRetention period
Raw emoji report records (server)Automatically deleted after 24 hours
Aggregated geohash emoji countsRolling 30-minute live window only
Anonymous sender ID (on-device)Until you uninstall the app or clear app data
All other on-device dataUntil you uninstall or clear app data
Anonymous usage events (server)Individual events deleted after 90 days; totals kept for 25 months
Cancellation feedback (server)Deleted after 12 months
Imminent Rain registration (server): push token, registered coordinates and a one-way code made from your Premium purchaseUntil you switch the alert off; deleted after 90 days without a refresh
Weather warnings registration (server): push token and warning areasUntil you switch warnings off; deleted after 90 days without a refresh
Mini-game scores and prizes (server)Kept while the game and its leaderboard are available; deleted on request

8. Security

All network traffic is encrypted with HTTPS/TLS. On-device data is held in Android's sandboxed private storage, inaccessible to other applications. API keys are compiled into the application binary and obfuscated with R8. They are not transmitted to us.

Like any online service, our servers see your IP address when the app connects. We use it only to keep the service running and protect it from abuse, and we don't store it in our databases.

9. International Data Transfers

Weather API requests may be processed on servers located outside the United Kingdom or European Economic Area. For example, Pirate Weather servers are located in Canada; Cloudflare operates a global edge network. Where such transfers occur, they are covered by the respective provider's Standard Contractual Clauses or equivalent adequacy safeguards. Firebase Cloud Messaging is operated by Google LLC under Google's EU–US Data Privacy Framework certification.

10. Children's Privacy

This application is not directed at children under the age of 13, or under 16 in the European Union and United Kingdom. We do not knowingly collect personal data from children. If you believe a child has submitted personal information through this app, please contact us and we will delete it promptly.

11. Your Rights

Under UK GDPR and EU GDPR, you have the following rights regarding your personal data:

  • Right of access. You may request a copy of any personal data we hold about you.
  • Right to erasure. You may request deletion of your anonymous sender ID and any emoji report records associated with it, or of your mini-game scores (tell us the nickname shown in the game). We will fulfil valid requests within 30 days. See how to delete your data.
  • Right to rectification. You may request correction of any inaccurate personal data.
  • Right to data portability. You may request your personal data in a portable format.
  • Right to object. You may object to processing based on legitimate interests.
  • Right to withdraw consent. Location and notification permissions can be revoked at any time via Android Settings without affecting your use of other app features.

Legal basis for processing (GDPR Article 6): Location data is processed on the basis of performance of the service you requested (Article 6(1)(b)). Anonymous emoji reports are processed on the basis of legitimate interests (Article 6(1)(f)), specifically, providing a crowd-sourced local weather layer to users. Anonymous usage counts are processed on the basis of legitimate interests (Article 6(1)(f)), specifically, improving the app's features and design. Mini-game scores and prizes are processed to provide the game you chose to play (Article 6(1)(b)).

12. Weather Accuracy Disclaimer

Weather forecasts and alerts are provided for general informational purposes only. Subtle Signals Ltd does not guarantee the accuracy, completeness, or timeliness of any forecast or alert data. Do not rely solely on this application for safety-critical decisions. Always consult official guidance from your national meteorological authority.

13. Changes to This Policy

If we make material changes to this policy, we will update the "Last updated" date above and, where appropriate, notify users via an in-app notice or the Google Play Store listing. Continued use of the app following publication of changes constitutes your acceptance of those changes.