Privacy Policy
Last updated: November 4, 2026
HelioMaps is a hunting‑property mapping app made by HelioLogix LLC ("HelioLogix," "we," "us"). This policy explains what we collect, why, and the choices you have. We built HelioMaps to be useful offline and to keep your data yours. We don't sell your personal information.
What we collect
- Account info. If you create an account, we store your email address and authentication details so you can sign in, the display name you choose (others on the ranch you have open who are also sharing see it with your spot when you share your live location), and which version of our Terms you accepted. For each device you sign in on, our sign‑in service also keeps the IP address and browser or device details that device last used when it renewed its sign‑in. This is deleted when you sign out on that device while it can reach our server, or when you delete your account; if you sign out with no connection, or remove the app or lose the phone without signing out, it stays until you delete your account. If you sign in with Google or Apple, that company confirms who you are, and we also store the name it shares with us and, for Google, a link to your profile picture. You can use much of the app without an account.
- Your map content. The property boundaries, pins (stands, feeders, cameras, sign), trails, roads, tracks, saved routes, hunt journal entries and notes you create. These live on your device and, if you are signed in on Pro or Scout, sync to our cloud so you don't lose them. On the free tier your map content is not synced: of what you create or change on the free tier, only what you publish in a public map link (below) is stored on our server, and map content synced to your own ranches while you were on Pro or Scout stays there until you delete your account. If you ask for a Ranch overview, a Best blinds report or a Route report, details of the ranch you chose are sent to Anthropic to write it; see "AI reports" below.
- Trail‑cam photos. Photos you add while signed out, on the free tier or past your plan's limit are kept on your device, where they are not counted against any limit. On a paid tier, signing in saves each photo you add to our private cloud storage automatically, up to your tier's limit (if you hold an Apple or Google purchase, the photos other accounts backed up while holding it can count toward that limit too; see “When a purchase moves between accounts”), and your phone keeps only a temporary copy of it; a photo added when it could not be backed up is held on the phone only until it is. While your plan comes from an Apple or Google purchase that is not linked to your account on our server (for example, just after a Restore on this account), new photos wait on the phone until it is linked. Each Apple or Google purchase also has a daily limit (by UTC day) on new photo backups under it, shared by the accounts holding it; once it is reached, new photos wait on the phone until the next day. If your plan ends, or changes to one with a lower photo limit, our cloud keeps only as many of the photos you backed up as the new plan allows (none on the free tier). This covers your photos wherever they are in our cloud, including in ranches you co‑edit and in copies of a ranch that someone else saved to their own account. About a week after the change (the app shows the days left), the rest are hidden in every ranch that has them: the app no longer shows them, to you or to anyone else, except on a phone that holds the photo's own file; and if a phone copies or restores one of them to our cloud after that, the copy is hidden too. Some time later they are deleted from our cloud for good, from every ranch that has them, while your account is still active, unless you move back to a plan that holds them before then.
- Location. With your permission, we use your precise device location to show where you are and record tracks. Coordinates (your phone's, your ranch's and its pins', a spot you tap, or the map area you view or download) are also sent to the providers listed below: to fetch weather, to find which county your ranch, or you, are in, to compute a route, to load map tiles and map data, to look up what is at a spot you tap or at your ranch, and, when you ask for one, to write a Ranch overview. Some are rounded first; see "Where your coordinates go" and "What each action sends" below. Only if you turn it on do we share your live location, and only with the owner and co‑editors of the ranch you have open; the app shows it to those of them who are also sharing.
- Feeder and timer data. If you use a HelioTimer, the app reads its feed history, battery‑voltage history and diagnostics over Bluetooth. If you are signed in, or once you sign in, that data — together with the timer's serial number, which is its Bluetooth hardware (MAC) address — is uploaded to our cloud and tied to your account, for any timer your phone reads, whether or not you or anyone owns it, so it survives a lost phone and so a feeder's owner sees readings taken by anyone who walks up to it. Each upload also carries the timer's firmware version and its settings, which include its feed schedule and the ZIP code and coordinates set on it for sunrise and sunset. A timer set up on WiFi uploads the same data itself when it checks in, along with its next scheduled feed, how often it checks in and the name of the WiFi network it joined (never the WiFi password). Each upload we store is kept as part of the timer's history. For its next scheduled feed, how often it checks in and the network name, we keep only the most recent, with the time of its last check‑in; the app shows the timer's owner that time and the network name. When you send a timer a command through our server (feed now, a change to how often it checks in, or new settings, which include its ZIP code and coordinates), we keep the command, who sent it, when, and how the timer answered. We also keep the name you give a timer. Releasing a timer clears its name, network name, next scheduled feed, how often it checks in and its last check‑in time, and cancels any command it has not picked up yet. A timer's new owner is not shown the readings and commands we stored before they claimed it; whoever uploaded a reading or sent a command can still see it. The timer itself keeps its recent feed log and battery history, settings including its location, and saved WiFi network until it is factory reset, and anyone who connects to it over Bluetooth can see that network's name. If it changes hands without a reset, its logs and settings are uploaded again after the new owner claims it, when someone connects to it over Bluetooth or it checks in over WiFi, and the new owner is shown them. A reading is a record of the device: while you own a timer, you see every reading stored for it from your claim on, whoever synced it.
- Advertising. On the free tier we show ads through Google AdMob. Every ad request the app makes is flagged non‑personalized, so ads are not targeted using a profile of your activity in other apps. We do not collect or use a device advertising identifier: the identifier permissions are removed from the Android app, and on iOS we do not ask for tracking permission, so the identifier is not available to the ad SDK. AdMob still receives your IP address; a device identifier limited to our own apps, which is not an advertising identifier; on Android, where they apply, other identifiers related to accounts signed in on the device; and basic device and ad‑interaction signals in order to deliver ads, measure them and prevent fraud — an IP address indicates your approximate area. We do not run any analytics or crash‑reporting service of our own. Some outside software in the app does send its maker its own usage and diagnostic data: the Google Maps software that draws the 2D map, AdMob on the free tier, the Mapbox software in the 3D map (Pro and Scout), and Google's ML Kit software, which reads the text on trail‑camera photos on your phone, on every tier when you assign photos to a camera (to find each photo's time) and on paid tiers for Auto‑sort by camera view (see "Services we rely on"). On a paid tier no ads are shown, no ad is requested, and the app does not start the ad SDK (its code is still in the app).
- Phone check for the 3D map. On Pro and Scout, the first time a phone that can be checked opens the 3D map for your account, the app asks Apple (App Attest, on iPhone) or Google (Play Integrity, on Android) to confirm that it is a genuine, unmodified copy of HelioMaps on a genuine phone. It asks again when a check did not go through or a new key is needed (for example after the app is reinstalled), and on Android about once a day while you keep using the 3D map. For this the app makes a key that stays in your phone's secure hardware, and sends our server the key's public half and its ID, with Apple's or Google's answer. Our server keeps the key's public half and ID with your account, along with whether it is an iPhone or Android key, when it was enrolled and last checked, on iPhone, whether the key is from Apple's production or test setup, and, on Android, when its next check with Google is due and a short summary of Google's answer (the app build number Google reported, and labels saying whether Google recognized the app, whether the phone passed Google's check and whether the app came from Google Play) and, if a later check failed, when and why. With the key, our server also keeps, on iPhone, Apple's approximate count of our app's keys on that iPhone over the last 30 days, which it asks Apple for once, when the key is enrolled, and how that request went and when; and, on Android, from Google's answer at each check, Google's rough level of how many integrity checks our app asked for on that phone in the last hour, and the phone's Android version. After that, each time the 3D map asks our server for access to Mapbox, the app signs a one‑time code from our server with that key; each time our server confirms such a signature, it also records when the key was last used and, on iPhone, the key's signature count. Our server keeps each code, with your account, for up to about three hours (up to about 26 hours for a check with Apple or Google), to limit how often codes can be asked for, and counts the checks' results by the hour, with no account information, for about 13 months. We use all this only to make sure that access to the 3D map goes to HelioMaps on a genuine phone, to keep one phone from being used for many accounts' 3D maps and to enforce those limits, never for ads. Each account can have up to five of these keys in use at a time: a sixth takes the place of the one checked or used least recently, and a key replaced this way is deleted about 90 days later unless it passes a new check with Apple or Google first; a key that is never replaced stays until you delete your account. We can exempt an account by hand from this check, for up to 7 days at a time, so that it is let through even when the check does not pass. If we exempt yours, our server keeps a record of it with your account (when we last set it, when it ends and any short note we wrote about it) for up to about 30 days after it ends. Everything our server keeps here that is tied to your account is deleted when you delete your account.
- Shared‑map info. If you share a map with specific people, they can see its contents (including any hunt‑assignment names you added), and we record the email address of each signed‑in person who opens it, so your photos load for them and so we can reverse access later.
- Public map links. If you create a public web link for a property, every pin, road, trail and fence on the property, with their names and coordinates, and the property's name, are published to a page that anyone with the link can open without signing in. Stopping the link takes the page down within about a minute (our web host may keep showing the page for up to a minute) and erases the copy we stored; the property's name stays on our server with your account. Deleting the property in the app stops its link the same way, as soon as the app can reach our server while signed in to the account that made the link. Until then (for example while your phone is offline or signed out) the page stays up, and if the app is removed from that phone first, it can stay up until you delete your account. Your property boundary, parcels, photos and notes are not published. Only create a public link for a property whose locations you are willing to make public.
- Request counts. Our server counts requests to our database other than plain reads, under your account's random ID or, when you are not signed in, your IP address, and each account's daily calls to two of our server functions. It keeps lists of the busiest accounts and IP addresses, including, from Supabase's service logs, the IP addresses of the busiest callers whether signed in or not; see “Request counts” under “Data retention & security” below.
How we use it
- To run the app's features: maps, property lines, pins, navigation, weather, Game activity, and county rut dates.
- To write a Ranch overview, a Best blinds report or a Route report when you ask for one, using the AI service described under "AI reports" below.
- To sync and back up your content across your devices when you're signed in on Pro or Scout.
- To provide live location sharing when you choose to enable it.
- To show ads to free‑tier users, to keep the app stable and secure, and to check that access to the 3D map goes to HelioMaps on a genuine phone that is not being used for many accounts' 3D maps (see "Phone check for the 3D map" above).
- To read your HelioTimer over Bluetooth and, if you're signed in, keep its feed and battery history safe.
Location, in detail
Location is used to center the map on you (which then decides the map area the lookups below send), to record tracks, to fetch weather and your county's rut dates when your ranch has no location of its own, to start an approach path from where you are when you choose My location, and, only when you explicitly start it, to show your live position to others on the ranch you have open who are also sharing. Live sharing is off by default, is opt‑in each time, and stops on its own after 5 hours. You can revoke location access anytime in your device settings.
While the app is not in use. Two features keep using your location after you put the phone away: recording a road or a track, and live sharing. While either is running, the app collects your location with the screen locked or the app in the background, so the line you are recording is not broken and others on the ranch you have open who are also sharing can still see you. Your phone shows an ongoing notification or a location indicator the whole time, and collection stops the moment you stop recording or stop sharing. While a recording runs, and while the map follows you during a live share, the map keeps centering on you. The lookups the map makes each time it comes to rest (under "Moving the map", "All public land" and "Public access easements" below) wait while the app is out of sight, and run once for the view you come back to. The basemap, the Water detail layer, the roads overlay and the other layers drawn as map images (Soils, Crops, BLM land, and All public land whenever it shows as images), and property lines and terrain from our own tile service, may still load for the area around you with the screen locked, and while your ranch has no boundary, parcels or saved center point, so may the weather and rut‑county lookups, each sending your phone's location rounded to about a kilometer. Nothing else in the app uses your location in the background, except that once you have opened the 3D map, Mapbox's software may keep collecting de‑identified location data while HelioMaps has location access, until you close the app (turn it off with ⓘ on the 3D map).
Where your coordinates go. Your ranch's center is the middle of its boundary or, without one, of its parcels; for a ranch with neither, it is the ranch's saved center point, which can be an earlier location of your phone. Weather is requested for your ranch's center rounded to about 10 meters, and the county behind rut dates for the same place rounded to about a kilometer; when the ranch has no center, both use your phone's location rounded to about a kilometer (Best blinds, the Route report, Weather here, Plan approach and Show approach path add weather points of their own, set out below). Place searches send what you type or paste and, when the map is zoomed in closer than a view of several states, the middle of the map rounded to about 10 km, so nearby places come first; routing sends your start and destination. Loading the map sends the area you are viewing to the map services listed below, and property lines only to our own tile service. That area is usually the property you are looking at, but whenever the map is centered on you (you center it, it follows you or records a road or a track, or it opens on your location because nothing else is saved to show) it is the area around you. Which services receive that area, a point or the square around your ranch's boundary and parcels, and when, is set out in "What each action sends" below: some when the app opens or as you move the map, others only after you turn on a layer, tap the map, download an area, import roads, open a pin's card, open Best blinds, the Route report, Weather here or Plan approach, ask for an approach path, look for likely deer spots, or ask for a Ranch overview. A Ranch overview sends Anthropic the ranch outline, its pins' coordinates, the paths of its trails, roads and fences, and the center of each named area; a Best blinds report or a Route report sends Anthropic none, though opening Best blinds can send the coordinates of a stand or other pin to USGS where our own terrain copy has no height for it.
What each action sends
Beyond the basemap, the Water detail layer (on by default), the roads overlay when you turn it on, and the property‑line and terrain tiles from our own tile service, which load for the area you view while they are showing, and the search, routing, road‑import, 3D‑map, connection‑check and firmware requests (see "Services we rely on"), here is what the app sends, and on what action. Most recipients are public‑records services run by government agencies. Each feature is labeled with the tier it comes with. A layer you turn on stays on, even after you close the app, until you turn it off. While you are signed in and the app has not yet confirmed your tier with our server, paid layers left on from an earlier Pro or Scout plan keep loading, and Best blinds, Plan approach and Show approach path can open and make their lookups, and Find likely deer spots and Line of sight can run.
- Opening the app (every tier; no switch): the app asks the National Weather Service for the forecast at your ranch's center, or your phone's location, rounded as described above, then again every 30 minutes while it runs and whenever that place changes. For rut dates it also asks Stadia Maps which county that place is in, whenever the place falls in a ~1 km area the app has no answer for yet.
- Moving the map (every tier; no switch): each time the map comes to rest with the app on screen, including when you switch ranches or the map centers on you, and when you turn Forest roads & trails, Public access easements or All public land on or off, the area in view goes to the Bureau of Indian Affairs for tribal area boundaries when the view is in eastern or central Oklahoma or nearby.
- Soils on (every tier): as you move the map, the area in view goes to the USDA's Natural Resources Conservation Service for soils.
- Crops on (every tier): as you move the map, the area in view goes to the USDA's Cropland Data Layer service.
- All public land on (paid tiers): public land is drawn from our own tile service at every zoom, from a copy of USGS's PAD‑US 4.1 inventory, and a tap on public land is looked up in that copy too. Neither USGS nor Esri receives the area in view or the point you tap. BLM land on (paid tiers): as you move the map, the area in view goes to the Bureau of Land Management.
- Public access easements on (every tier) or Forest roads & trails on (paid tiers): once you zoom in, when you turn one on and each time the map comes to rest, the area in view goes to the USDA Forest Service, and for easements also to the Bureau of Land Management.
- Tapping the map (every tier): a tap that does not land on a pin, one of your own roads, trails or tracks, or a forest road or trail sends the point you tapped nowhere: the app answers it, where it can, from the property lines and tribal areas it has already loaded. A tap on an owner name shown on a parcel is answered the same way, whichever layer answers taps. Turning on Soils or Crops (every tier) or All public land (paid tiers), or choosing one under Tap the map to see (in Tools; choosing it also turns it on), sends those taps to that layer's service instead; for All public land, that is our own tile service: the app fetches the map tile around the tapped point, a square roughly 1.5 to 5 km across, rather than sending the point, and no government service receives the tap. After you choose Elevation under Tap the map to see, each tap asks our own tile service for the terrain around that point, unless it is already saved on your phone, and sends the point to USGS only where our terrain copy has no height for it. Opening a pin's card does the same for that pin. After you choose Line of sight (Scout), each tap, and each pin you run it from, asks our own tile service for the elevation tiles up to 10 km around that point, unless they are already saved on your phone. At the 0.6 mi reach, once it has those tiles, it also asks Amazon Web Services, where Meta and the World Resources Institute publish their tree height map, for the parts of that map's files that cover a square about 2 km (1.2 miles) across centered on that point, unless the heights it already holds cover at least 99% of that square or an earlier read is still running. Those heights stay on your phone only while Line of sight is open and are never saved. After two reads in a row fail to get through, it asks for none until you close and reopen Line of sight. The 1.9, 3.1 and 6.2 mi reaches ask for none. While an approach path waits for you to tap its start, that tap is the start, and the lookups set out under Show approach path below go out then.
- Writing a Ranch overview (paid tiers): tapping Write overview or Write again first sends your ranch's center (for a ranch with no center, the middle of its pins) to the Natural Resources Conservation Service (soil) and the Cropland Data Layer (crops), whether or not those layers are on; it looks up the public land there in our own tile service's copy instead, fetching the map tile around the center rather than sending the point. It may also send the center to Stadia Maps to find its county. For the center and up to 12 stands whose elevation the app does not already have from an earlier lookup, it asks our own tile service for the terrain around them, unless those tiles are already saved on your phone, and sends a point to USGS only where our terrain copy has no height for it. All of this goes out before the app asks whether to write an unchanged ranch again, and before our server checks how many AI reports you have left, so it is sent even if you keep the overview you have or have none left.
- Opening Best blinds (paid tiers), with no tap needed: for each stand, feeder, food plot, bedding area and funnel whose elevation the app does not already have from our terrain data or an earlier lookup, it asks our own tile service for the terrain around the pin, unless those tiles are already saved on your phone, and sends the pin's coordinates, rounded to about a meter, to USGS only where our terrain copy has no height for it. It may also send your ranch's center (for a ranch with no center, the middle of its pins) to Stadia Maps to find its county, and, for a ranch that is only pins, it asks the National Weather Service for the forecast at the middle of its pins, rounded to about a kilometer. While the screen is open it re‑ranks every 5 minutes, asking again only about new or moved pins and about lookups that failed, and, for a ranch that is only pins, asking the National Weather Service again every 30 minutes. Get report retries elevation lookups that failed and, if the forecast is out of date, asks the National Weather Service again.
- Opening the Route report (paid tiers, once the app has confirmed yours), from the navigation banner on a trip with a choice of routes to a stand, blind or elk pin, with no other tap needed: it asks the National Weather Service for the forecast at that pin, rounded to about a kilometer, then again every 30 minutes while it is open. Get route report (or Get a new report) asks the National Weather Service again if that forecast is more than 30 minutes old, and asks our own tile service for the elevation tiles that cover up to 3 km around the pin and the pins near it, unless they are already saved on your phone; it sends nothing to USGS. Both go out before our server checks how many AI reports you have left, so they are sent even if you have none left.
- Weather here (every tier) and Plan approach (paid tiers), on a pin's card: tapping Weather here asks the National Weather Service for the forecast and active alerts at that pin, rounded to about 10 meters, then again every 30 minutes while it is open and whenever you refresh it; Compare adds up to two more pins you pick, each sent the same way. It also looks up each of those pins' elevation, unless one for that spot is already saved on your phone: it asks our own tile service for the terrain around the pin, unless those tiles are already on your phone, and sends the pin's exact coordinates to USGS only where our terrain copy has no height for it. Tapping Plan approach on the free tier opens only a note about Pro and sends nothing. On a paid tier, opening it, with no other tap needed, asks the National Weather Service for the forecast at that pin, rounded to about a kilometer, then again every 30 minutes while it is open. Once a forecast is showing, it asks our own tile service for the terrain around the pin and around eight points about 300 meters out from it, one in each compass direction, unless their heights or those tiles are already saved on your phone, and sends any of those nine points, not rounded, to USGS only where our terrain copy has no height for it. Try again asks again about the ones that failed.
- Show approach path (paid tiers), on a pin's card: on the free tier it opens only a note about Pro and sends nothing. On a paid tier, tapping Show path (or, when you chose to tap the start, tapping it on the map) asks the National Weather Service for the forecast at that pin, rounded to about a kilometer; it may instead reuse one the app fetched for that same rounded spot less than 30 minutes ago. Once it has a current forecast, it asks our own tile service for the elevation tiles that cover a square up to about 10 km across, centered between the pin and the start you chose (your phone's location, or a point you tap, up to about 8 km from the pin; a start farther away sends nothing) and reaching at least about 300 meters past each of them (about 800 meters for an elk pin), unless those tiles are already saved on your phone; it sends nothing to USGS. It sends the USDA's Cropland Data Layer service a grid of up to 625 points, not rounded, centered on the pin and reaching up to about 900 meters from it north, south, east and west, to learn the cover there, and it asks Amazon Web Services, where Meta and the World Resources Institute publish their tree height map, for the parts of that map's files that cover up to 1.5 km around the pin. Once those tree height reads have finished or timed out, it also asks Amazon Web Services in Frankfurt, Germany, where the European Space Agency publishes its WorldCover land cover map, for the parts of that map's files that cover the whole square, to find lakes, ponds and rivers. The USDA grid and the tree height map stop at the edge of that square, so on the side of the pin away from your start they reach less far, which can show roughly which way you start from; the land cover map's parts cover the square itself, which shows roughly where it lies. The path itself is worked out on your phone: your ranch's roads, trails and boundary are not sent anywhere for it.
- Find likely deer spots (Scout), in Tools, under Ranch: on the free tier and Pro the button shows a padlock and opens the Scout plan instead, sending nothing about your ranch; while you are signed in and the app has not yet confirmed your tier, it can run. It runs only when you tap it. If your map content syncs to our cloud, it first syncs, and goes no further if it cannot. It then asks our own tile service for the elevation tiles that cover a square centered on your ranch's boundary and parcels, as wide as their longer side plus 400 meters on each side, up to about 13 miles (21 km) across, unless those tiles are already saved on your phone; it sends nothing to USGS. If the boundary and parcels spread more than about 12 miles (20 km), it stops before asking our tile service, USDA or Amazon Web Services anything about that square. Once it has the terrain, it sends that same square, not rounded and with no account information, to the USDA's Cropland Data Layer service for the land cover across it, except for a ranch in Alaska, Hawaii or a U.S. territory, where it asks USDA nothing. Your phone saves USDA's answer. While that copy is still on your phone, a run over the same square within 30 days of it uses it and asks USDA nothing, and a later run asks USDA again and uses the old copy if that fails. When the land cover cannot be read, Run on terrain only asks USDA nothing. Once it has the land cover, from USDA or from the copy on your phone, it also asks Amazon Web Services, where Meta and the World Resources Institute publish their tree height map, for the parts of that map's files that cover the same square, the parts over the box around your ranch's boundary and parcels first, which can show roughly where that box lies in the square. Run on terrain only asks for none. Those heights are not saved on your phone; another run over the same square while the results stay open uses the ones already read and asks for none. The picks are worked out on your phone: neither our tile service, USDA nor Amazon Web Services receives your boundary, roads or pins. Add saves the picks you leave switched on as pins on the ranch, marked as predicted, in place of earlier predicted pins nobody has kept, and they are saved like your other pins (see "Your map content"). Under the same rule, Add syncs again first, and nothing is saved if it cannot; if a predicted pin changed on another phone since the search, nothing is saved until the search runs again.
- Downloading an area for offline use (every tier): with BLM land on (paid tiers), the download also fetches that layer for the box you draw from the Bureau of Land Management. Everything else in the download comes from USGS and our own tile service, including, on a paid tier, the box's public land and forest roads.
Property lines come from our own copies. Parcel boundaries and owner names come from public government records, but the app reads them from copies we prepare and host, so drawing them sends the map area and your IP address, with no account information, only to our tile service, which runs on Cloudflare. No county or state server is asked for property lines. Other layers and map taps do reach government services, as set out above.
AI reports: Ranch overview, Best blinds and Route report
On a paid tier (Pro or Scout), three features are written by Claude, an AI model run by Anthropic: the Ranch overview, a standing write‑up of one ranch; the Best blinds report, which explains your phone's own ranking of your stands for the next 24 hours; and the Route report, which explains your phone's own ranking of the walking routes to the stand, blind or elk pin you are navigating to. Nothing is sent to Anthropic until you tap Write overview (or Write again), Get report (or Get a new report) on Best blinds, or Get route report (or Get a new report) on the Route report; the app never asks for any of them on its own. Before your first AI report on a phone, the app asks whether you allow details of your ranch to be sent to Anthropic; until you tap Allow, that tap sends nothing, to Anthropic or anyone else. It asks again on that phone when a different account uses AI reports. You can withdraw it on the Account screen, under AI reports consent (Anthropic); the app then asks again before your next report. It also asks again after Sign out & remove or Delete account, or if the question's wording changes in an update. The request goes from your phone to our server, which passes it to Anthropic. The other lookups each feature makes, including the ones that go out when you open Best blinds or the Route report, are set out under "What each action sends" above.
What Anthropic receives for a Ranch overview, for the ranch you chose: its name, outline, acreage, center point and bounding box, the state and county it is in, and the coordinates of its pins, with the pin names and types; your pin notes, unless you switch "Include my pin notes" off; trails, roads and fences, with their paths, and named areas, with their center points (a walk you saved as a trail or road is sent as one); how many tracks you have recorded and their total length, never their paths; the dates and times of stand assignments, without the names of the people assigned; feeder schedules, feed logs, battery readings, firmware versions and last sync times; trail‑camera photo counts by hour, never the photos; the county rut phase and deer season; your ranch's time zone, which your phone works out from where the ranch is, or your phone's time zone where the app cannot tell the ranch's; and the public land, soil and elevation lookups for the property, plus the crop lookup. It sends no weather forecast. Right after an overview is written, "Export the data sent" on the overview screen shows you the exact file; the button is gone once the app restarts.
What Anthropic receives for a Best blinds report. Your phone ranks the stands itself. For the top five stands in each sit window, it sends the window's times, each stand's name and place in the ranking, and up to six short lines the phone wrote about it: the forecast wind and where your scent drifts, the names of nearby pins with their distance in yards and compass direction from the stand, feed times and how each feeder has been running, the walk in from its parking pin, fog, low sun, how far a pin lies above or below the stand, and how often it was hunted in the days before. With these goes the time zone the times it sends are on: your ranch's, which your phone works out from where the ranch is, or your phone's where the app cannot tell the ranch's. It sends Anthropic no coordinates, no ranch name or outline, and no notes.
What Anthropic receives for a Route report. Your phone ranks the routes itself, by how much each would disturb the ground you hunt. It sends the name of the pin you are walking to and the animal you chose (whitetail or elk). For each route it sends its name (such as Route 2), how its length compares with the most direct route, and up to six short lines the phone wrote about it: the hour the forecast wind carries your scent onto the hunting area or, when your scent stays off the hunting area, which way it drifts; the hour that, in light wind, rising or sinking air carries your scent to a spot of the hunting area, and how many feet above or below the path that spot is; how close the route passes to pins where animals are likely then, and to funnel, water and sign pins; how many yards of it run close to the hunting area; and, on Scout, how many yards of it are in view of the pin, or of a pin near it, on bare ground. With these go a few lines about the whole report: the time the walks are timed from (when you tap), with the time zone of the pin you are walking to, which your phone works out from where that pin is, or your phone's time zone where the app cannot tell the pin's; the pins around the one you are walking to; and what the report could not check. Wherever these lines name another pin, they give its name with its distance in yards and compass direction from the pin you are walking to. It sends Anthropic no coordinates, no route paths, no ranch name or outline, and no notes.
What is never sent, by any of the three: your name, email address or account identifier; feeder or timer serial numbers; camera labels; the names on hunt assignments; your photos; and the names or addresses of any landowner, yours or your neighbours'. Anthropic receives only a one‑way hash of your account as an abuse‑prevention identifier.
How Anthropic handles it. Anthropic acts as our service provider under its commercial terms: it processes the request to write the overview or report, does not use your data to train its models, and deletes inputs and outputs within 30 days, except where longer retention is required by law or to enforce its usage policy. Our server does not keep what was sent: it keeps a usage record of each request (which feature, when, how many tokens it used and Anthropic's reference number for it), to count the AI reports on your account in each allowance period (your plan's billing month or year, the monthly period set by a redeem code entered on Android, or otherwise the calendar month, in UTC) and for billing, and deletes that record with your account, apart from the daily counts described next. The finished overview or Best blinds report is saved on your phone; a Route report is not saved: it is kept only while the app is running, and is cleared when you sign out.
When a purchase moves between accounts. AI reports, 3D map access, cloud photo backup and the amount of new data an account can add are counted for each Apple or Google purchase as well as for each account: our server notes which purchases each account has held, by the store’s reference number for the purchase or, when the IDs a purchase moves from hold no purchase to move, by a placeholder standing for a move. To recognize a purchase when it reaches another account, our server also keeps the store’s reference numbers for the purchase and for its latest transactions (renewals, for example), each naming the store and whether it was a test purchase, with the time each was last recorded and with no account ID, name or email. Each is deleted within 1 year and 7 weeks of the last notice RevenueCat sends us about the purchase; a notice that names an account already deleted records none and does not extend that time. If an account that held a purchase or used AI reports is deleted, we keep, for up to 1 year and 7 weeks and with no name or email, the deleted account’s random ID, the store’s reference numbers for its purchases (each naming the store and whether it was a test purchase) or placeholders standing for moves, with dates recording when it held each one and when the account was deleted, and, if it used AI reports, how many it used on each day, so that restoring a purchase on another account carries its count over. If an account that held an Apple or Google purchase is deleted, we also keep, for up to 40 days and with no name or email, how many 3D map minutes were counted to it on each of its last 39 days on which any were, with its random ID and when it was deleted, so that restoring the purchase on another account carries those minutes over too. For each photo an account that holds an Apple or Google purchase starts backing up to our cloud, our server also records the photo’s file name (which begins with the account’s random ID), the account’s random ID, the store’s reference number of each purchase the account held at that moment (or a placeholder standing for a move), and when, so that the photo can count toward that purchase’s photo limit on every account that holds it. We erase that record within about two days once the photo’s file has been erased from our cloud storage and no photo still in the app names it; a photo never saved to a ranch, or never finished uploading, is erased about 6 months after it was started. The total of new data an account has added (see “Data retention & security”) can also count toward the data limit of every account that holds a purchase it holds or held.
Sometimes RevenueCat moves a purchase to an ID that is not a HelioMaps account. Usually that is the ID of an app install that was not signed in, or the install ID RevenueCat keeps beside a signed‑in account. Our server then notes the purchase under a code made from that ID, as it would for an account: the store’s reference number (naming the store and whether it was a test purchase), with dates recording when the code held it. When RevenueCat moves a purchase to or from such an ID while the IDs it moves from hold no purchase to move, our server notes, instead of the reference number, a placeholder standing for a move, with the date of this move, under the code of each ID it moves to or from that is not a HelioMaps account. From then on, it can also note under any of those codes a purchase named in a later RevenueCat notice for that code’s ID, or for another ID RevenueCat joins to it. This is so that the AI reports and 3D map minutes already used on a purchase still count on the next account it reaches. No name or email is kept with any of it, and each note is deleted within 1 year and 7 weeks of when it was made.
Our server’s logs are kept for up to a week. For each move, they show the RevenueCat IDs named in RevenueCat’s notice, including any HelioMaps account’s own ID, and the code made from each ID that is not an account. For RevenueCat’s other purchase notices, they can show IDs the notice names, some beside their code or beside the HelioMaps account’s own ID. When noting a purchase fails, they show the store’s reference number, at times beside the code or the account’s own ID. When the app asks our server to re‑check your plan (such as at sign‑in, when the app starts, or on a Restore), or when RevenueCat’s notice moves a purchase to another account, they can show the account’s own ID, at times beside the store’s reference numbers for its purchases and their latest transactions.
An overview or report is generated text based on the data above. It is not a prediction, it is not legal or regulatory advice, and it can be wrong. Verify locally.
Services we rely on
These providers process what's needed for their function.
- Supabase: account sign‑in, database, and private cloud storage for your synced content and for photos backed up before the move; it decides who can see every backed‑up photo.
- Cloudflare R2: private storage for your backed‑up photos. A photo opens only through a short‑lived link our server issues after checking that you may see it (your ranch, one you co‑edit, or a map shared with you). Cloudflare receives your IP address when your phone uploads or downloads a photo; the files are named with random identifiers, never your name or email.
- Google AdMob: advertising for free‑tier users, requested as non‑personalized only. Receives your IP address; a device identifier limited to our own apps, which is not an advertising identifier; on Android, where they apply, other identifiers related to accounts signed in on the device; basic device details; how you interact with the app and its ads (such as app launches and taps); and app‑performance diagnostics, for ad delivery, measurement, analytics and fraud prevention. It does not receive a device advertising identifier from this app (see "Advertising" above), and it receives none of your map content, pins or coordinates. On a paid tier the app does not start the ad SDK and requests no ads.
- RevenueCat: manages HelioMaps paid subscriptions (Pro and Scout) on our behalf (processes purchase/receipt data, a device identifier and, once you sign in, your HelioMaps account identifier; its software starts on every tier). It also gives us reports on our subscriptions, built from those purchase records. RevenueCat keeps its record of your account, with any purchases, after you delete your account. Purchases are handled by the Apple App Store / Google Play.
- Google Maps: the default satellite basemap, drawn on your phone by the Google Maps SDK; the map area you view is sent to Google to load imagery. The Google Maps software also sends Google your IP address, basic device details (such as model and operating system), crash reports from its own code, an ID of its own for counting active users, and how you pan and zoom the map. Coordinates the app can read in what you type or paste into place search are read on your phone. If you paste a Google Maps short link (goo.gl) or an Apple Maps link that it cannot read coordinates from, the app opens that link itself to find the place, following it only on to Google or Apple, so they see that request and your IP address, but not your GPS location. A link to any other site is never opened. Anything it still cannot place is sent to Stadia Maps as a search. With Google as your basemap and an area saved for offline use, the app may also ping a Google address to check for signal when the map opens or you return to the app; that request carries nothing about you beyond your IP address.
- Google ML Kit: reads the text on your trail‑camera photos, on your phone: on every tier when you assign photos to a camera, to find each photo's time, and on paid tiers for Auto‑sort by camera view. The ML Kit software sends Google its own usage and diagnostic data: device details (such as model, operating system and ML hardware), the app's package name and version, identifiers for this device or install, which of its functions ran, how the text reader was set up (such as image format and resolution) and which version of it ran, the size of its input and output, and how it performed, with any error codes. Google's lists of this data, for Android and for iPhone, include neither your photos nor your location.
- USGS National Map / 3DEP: satellite and topographic imagery and the Water detail layer (on by default), for which it receives the map area you are viewing, and the elevation data behind our terrain maps, which we host ourselves (U.S. Government public domain). It also answers elevation lookups (for the Elevation choice under Tap the map to see, a pin's card, Weather here, Plan approach, Best blinds and a Ranch overview) where our own terrain copy has no height, and for these receives the points set out under "What each action sends" above.
- Mapbox / Maxar: the 3D map on HelioMaps Pro and Scout. Opening it sends Mapbox the map area you view, to load its imagery and terrain, and your IP address. Mapbox's software in the 3D map also sends Mapbox a random usage ID and basic device details (such as model, operating system and network type) and, while HelioMaps has location access, may send de‑identified location data. Mapbox collects and uses this data under its Product Terms, Data Processing Addendum and Privacy Policy. You can stop the usage and location data at any time: tap ⓘ on the 3D map, then Mapbox Telemetry, then Stop participating. Each time the 3D map opens, Mapbox still receives the map area, your IP address and the random ID it uses for billing, possibly with basic device details such as model and operating system. Offline downloads use USGS imagery on every tier. The 3D map also draws five of the map layers you have on (Water detail, BLM land, Slope, Aspect and Elk terrain finder) and loads them the same way the 2D map does: with Water detail on (the default) it sends the area in view to USGS, with BLM land on to the Bureau of Land Management, and with Slope, Aspect or Elk terrain finder on to our own tile service. To withdraw your agreement to the 3D map's Mapbox notice, tap Withdraw on "Mapbox consent (3D map)" under Account; the 3D map then asks again before it next opens.
- Stadia Maps: address and place search, finding which county a place is in, and real‑road routing. Your typed or pasted query is sent, and while you type, what you have typed so far is sent to suggest places; when the map is zoomed in closer than a view of several states, the middle of the map, rounded to about 10 km, goes with each so nearby places come first; tapping a suggestion sends that place's Stadia ID to find where it is. For county rut dates, the app looks this up on its own, with no tap, whenever your ranch's center, or your phone's location when the ranch has none, falls in a ~1 km area it has no answer for yet, and sends that place rounded to about a kilometer; for a Ranch overview or Best blinds, the exact center of that ranch (or the middle of its pins) is sent. For routing, your start and destination coordinates are sent to compute the route (route data © OpenStreetMap contributors, ODbL). For a saved route that follows roads, or one shared by code, our server keeps only the start and end of each road stretch, not the road line. Each signed‑in phone that opens it (yours, a co‑editor's, or a guest's) sends those points to Stadia Maps, with no tap, to draw the road between them: for a saved route, the first time its ranch opens on that phone, and again after a failed try when the ranch reopens or the app comes back to the screen; for a route opened by share code, the first time it is opened each time the app runs, and again when it is reopened after a failed try.
- National Weather Service (weather.gov): weather forecasts. Receives your ranch's center, rounded to about 10 meters, or, when the ranch has none, your phone's location, rounded to about a kilometer; for a ranch that is only pins, Best blinds sends the middle of its pins, rounded to about a kilometer, and the Route report sends the pin you are walking to, rounded to about a kilometer; Weather here sends its pin, and any pin you compare with it, rounded to about 10 meters; and Plan approach and Show approach path each send their pin, rounded to about a kilometer.
- Overspan: road and trail data from OpenStreetMap. When you tap Import roads from the map, the app sends the box around your ranch's boundary and parcels to our server, which asks Overspan for the roads and trails inside it. Overspan is a paid service run by Miju Limited in New Zealand; its privacy page says the service runs on a server in Vienna, Austria. It receives the box from our server, never your account details or your IP address, and says it never writes the query to disk. Our server does not keep the box: it keeps a count of your imports for each day, with no location, to hold each account to a daily limit, and deletes that count with your account; our request counts also count your imports, for the current and the previous UTC day (see “Request counts” under “Data retention & security” below). Nothing is sent to Overspan otherwise. Road data © OpenStreetMap contributors, ODbL.
- Public‑records map services: the USDA (its Natural Resources Conservation Service, its Cropland Data Layer and the Forest Service), the Bureau of Land Management and the Bureau of Indian Affairs. These supply the map layers and lookups set out under "What each action sends" above. Each receives the map area or point set out there and your IP address, no account information. These agencies are not our service providers: each handles what it receives under its own terms. The public‑land layer comes from our own copy of public data from USGS; using it sends nothing to that agency or to Esri.
- Amazon Web Services (tree height map): Meta and the World Resources Institute publish their tree height map as public files on Amazon Web Services. When you ask for an approach path (paid tiers) and the app has a current forecast for the pin, the app reads the parts of those files that cover up to 1.5 km around the pin, as far as the square set out under Show approach path above. When Find likely deer spots (Scout) runs and has the land cover, the app reads the parts that cover its square, as set out under Find likely deer spots above. When Line of sight (Scout) runs at its 0.6 mi reach and has the elevation tiles, the app reads the parts that cover a square about 2 km (1.2 miles) across centered on the point you tap or the pin you run it from, as set out under Tapping the map above. Amazon Web Services receives which parts were asked for, which shows roughly the area they cover, and your IP address, with no account information, and Meta, which publishes the files there, may see those requests too. Neither is our service provider: the files are public, and each handles what it receives under its own terms.
- Amazon Web Services in Frankfurt, Germany (ESA land cover map): the European Space Agency publishes its WorldCover land cover map as public files on Amazon Web Services, on Amazon's servers in Frankfurt, Germany. When you ask for an approach path (paid tiers) and the app has a current forecast for the pin, the app reads the parts of those files that cover the square set out under Show approach path above, after the tree height reads have finished or timed out, to find water. Amazon Web Services receives which parts were asked for, which shows roughly the area they cover, and your IP address, with no account information, and VITO, which manages those files for the European Space Agency, may see those requests too. These requests leave the United States. Neither is our service provider: the files are public, and each handles what it receives under its own terms.
- Anthropic: writes the Ranch overview, the Best blinds report and the Route report on our behalf, only when you ask for one, and returns the text. What it receives, and how it handles and deletes it, are set out under "AI reports" above.
- HelioLogix tile service: our own hosting, on Cloudflare's storage and CDN, for property lines, terrain (including the Elk terrain finder layer), public land (a copy of USGS's PAD‑US 4.1, drawn at every zoom and used to answer public‑land taps, and kept with areas saved for offline use from the zoom where property lines appear), and the copy of the Forest Service's easement and forest‑road data that the app uses offline or when the live services do not answer, all prepared from public government records. Receives the map area you view, the map tile around each point you tap on the public‑land layer, the area around each point that the Elevation choice under Tap the map to see, a pin's card, Weather here, Plan approach, Best blinds, a Ranch overview, a Route report or Line of sight looks up, the square an approach path or Find likely deer spots covers, and the box you draw for an offline download, with your IP address and no account information.
- Apple / Google: app distribution and in‑app purchases / subscription management, and the 3D map's phone check (see "Phone check for the 3D map" above). On iPhone, Apple's App Attest service vouches for the app's key under Apple's own terms, and our server sends Apple back the receipt that came with that check, with nothing else about you, to read Apple's count of our app's keys on that iPhone. On Android, Google Play's own software on your phone gathers what Google needs for its answer (such as the app's details and license, your phone's security state and Android version, and a one‑way code that ties the answer to this check) under Google Play's terms, and our server sends that answer back to Google to read, with nothing else about you. Choosing "drive there" opens your phone's maps app and hands it the destination.
- GitHub: hosts HelioTimer firmware updates. When you tap Check for update on a connected timer, the app asks GitHub for the latest version, and Download & install downloads it from there. GitHub receives your IP address, and nothing about your account, your location or the timer.
- Resend: sends alert emails about the service, such as on the hourly photo cleanup or on use of the 3D map, only to us, and receives the text of each. Of these, the ones that can name your account are the alert that an account reached its daily or monthly 3D map limit, which holds the random ID of that account, the day, which limit it reached, that limit and the minutes counted toward it, and, if we have exempted your account by hand from the phone check, the alert that it was let through without passing it, which holds its random ID and the day; and the alerts about requests to our service, which can hold an account's random ID, up to 5 IP addresses and the busiest paths (see “Request counts” under “Data retention & security” below).
We do not sell your personal information. We never give advertisers your GPS location, your coordinates, your map content or your photos; AdMob does receive your IP address, which indicates your approximate area (see "Advertising" above).
Property records and landowner names
This section is for landowners, whether or not you use HelioMaps.
HelioMaps displays property boundaries drawn from public county and state records, and — where that government publishes it as part of the same public record — the name on the parcel, along with the parcel number, acreage, situs address and land use. We do not create this information, we do not buy it from data brokers, and we do not combine it with anything else. It is shown as reference for someone working out where a boundary runs.
We prepare our copies from official government publications whose terms allow redistribution — statewide programs such as the Texas Geographic Information Office's StratMap land‑parcels dataset and North Carolina's NC OneMap — and the app reads those copies from our own service so the map works quickly and offline. It is the county's record, published through that government's own program, and it is public whether or not HelioMaps exists.
Where a county withholds an owner name — several states exempt law‑enforcement officers, judges and domestic‑violence survivors from disclosure — HelioMaps shows the name blank, and we never fill a blank name in from another source.
If you want your name removed, the county is where that happens. We are not the source of the record and cannot change it: your county assessor or appraisal district holds it, publishes it, and is the only place it can be corrected or restricted. Many counties have a process for this, and several states have a statutory exemption you may qualify for. Once your county updates its record, HelioMaps picks up the change when we next refresh that county's data.
Something wrong? If the information we show does not match your county's record — a stale name, the wrong parcel, a boundary in the wrong place — email privacy@heliomaps.com with the county and the parcel number or address and we will look into it.
Your choices & rights
- Location. Grant or revoke it in your device settings; the app still works with it off (with fewer features).
- Delete your data. You can delete individual ranches, pins, and photos in the app. A deleted item is hidden but not erased from your phone: its record, and for a photo possibly a copy of the image, stays there until you choose Sign out & remove (under Sign out on the Account screen, while you are signed in) or Delete account in the app on that phone, or uninstall HelioMaps; deleting your account by email or from another phone does not clear it. On any plan, a photo you delete in the app while you are signed in, on a phone that still has it, is deleted in our cloud too. So is each photo you backed up that is on a pin or ranch you delete there. The photo's file is erased from our cloud storage within about 30 days, unless something else in our cloud, such as a copy of its ranch or the ranch it was copied from, still uses that file. A ranch you own and delete there while you are signed in is deleted in our cloud too, on any plan, with everything on it. Anything else you delete reaches our cloud only while you have Pro or Scout, and is then hidden on your other devices too. Once a delete reaches our cloud, the item's record stays there, marked deleted and hidden, until you delete your account; on a ranch someone else owns, it stays with that ranch. To delete your whole account, use Account ▸ Delete account in the app (details at Delete your account). This removes your account, your synced map content, your cloud photos, your public map links, and the full stored history of any timer you own. Pins, notes, trails, roads, tracks, named areas, routes, hunt assignments and journal entries you added to a ranch someone else owns stay with that ranch, as part of its owner's map, and our server keeps no record that you added them, apart from the photo entries described below; your photos are removed from it. Readings you uploaded, or that a timer uploaded while it was yours, stay with that timer if you don't own it when you delete your account (it is someone else's or no one's, or you released it earlier), unless whoever owns that timer deletes their account while they own it. They are unlinked from you. Commands you sent to a timer you no longer own are deleted with your account. A timer's owner is shown only the readings stored since they claimed it, plus any they uploaded themselves. Some other records also stay after you delete your account, some with no set end date; each is set out under “What may be kept” on Delete your account: for a photo you added to a ranch someone else owns, an entry marked deleted that names the pin it was on; records of your photo uploads (about 6 months) and of the photo files we erased or tried to erase (no set end date); our counts of your photos in our cloud, with their file names (usually a few minutes), and the file names of your photos waiting on a retry list on their way to erasure (usually a few minutes); your account's random ID and when it was deleted (about a day, or until our counts of your photos are cleared if that is later); if, after a drop in your plan, a phone's copy or restore of one of your photos was saved hidden, a note of your account's random ID (usually a few hours); if a job hiding or deleting your photos after a drop in your plan had failed for your account, its record of the tries (about a minute); a Sign in with Apple record (up to about 2 months); the AI report counts, 3D map counts, purchase reference numbers, placeholders for moves and photo records described under “When a purchase moves between accounts” (in “AI reports” above); if your account was refused 3D map access for reaching its daily or monthly limit, possibly a record and an email about it (about 13 months for the record, no set end date for the email); if we exempted your account by hand from the 3D map's phone check, possibly an email saying it was let through the check without passing it (no set end date); RevenueCat's own record of your account; a record of the deletion's progress (up to about a day after it ends); counts of what your account saved or sent to our server (up to about a day); if your account had added about 800 MB of new data, its random ID and when we first recorded it passing that mark (up to about 5 minutes) and, with no account ID, the combined new data of a large set of Apple or Google purchases it held (until about 20 minutes after the deletion, or about 20 minutes after no other such account holds that set if that is later); for each Apple or Google purchase you held, counts of each day's photo backups refused because the photos of other accounts holding it filled its limit, and of each day's new photo backups under it (up to about a day after that day ends; no account ID); your account's random ID in our request counts and in our records and emails about them (up to about 2 days for its daily counts; about 7 days in our per‑minute and log lists of the busiest callers; about 400 days for the daily lists of the busiest accounts and the records of the emails; until about 7 days after any block on it ends; and with no set end date for the emails and for any raise of its limits we set by hand; see “Request counts” under “Data retention & security” below); and the service logs and legal records described there.
- Phone backups. If your iPhone is backed up to iCloud or a computer, the backup can hold a copy of the app's saved sign‑in, your ranches with their pins and trails, and your photos, and deleting your account or data in the app does not remove copies already in those backups.
- Public links. A public map link stays live until you stop it in the app, delete its property (see "Public map links" above) or delete your account. Stopping it takes the page down within about a minute (our web host may keep showing the page for up to a minute) and erases the copy we stored.
- Advertising. We do not use a device advertising identifier, so there is nothing to reset for this app. Your device‑level ad settings still apply to other apps: Android ▸ Settings ▸ Privacy ▸ Ads; iOS ▸ Settings ▸ Privacy & Security ▸ Tracking.
- Ads. Any paid tier removes ads entirely — none are shown, none are requested, and the app does not start the ad SDK.
Data retention & security
We keep your synced content while your account is active, except backed‑up photos that a drop in your plan puts over its limit, wherever they are (see "Trail‑cam photos" above), and delete it when you delete your account, in the app or by email. On any plan you can also ask us by email to delete a whole ranch you own, which we do the way the app does; single items are deleted in the app, not by email (see “Delete only some data” on Delete your account). For what a delete leaves in our cloud, and what stays after you delete your account, see "Delete your data" above. We use reputable providers and reasonable safeguards to protect your data, though no method of transmission or storage is 100% secure. Ranch overview, Best blinds report and Route report requests are deleted by Anthropic within 30 days, with the exceptions described above; we keep only a usage record of each request, which is deleted with your account, apart from the daily counts described under “When a purchase moves between accounts” (in “AI reports” above) and the request counts set out under “Request counts” below. We also keep daily counts of your 3D map sessions and road imports, and a history of your plan, to enforce limits and for billing; these are deleted with your account, apart from the 3D map counts described under “When a purchase moves between accounts” (in “AI reports” above) and the counts of road imports described under “Request counts” below. Each day (UTC), our server may keep a record of one account refused 3D map access for reaching its daily or monthly limit, normally the first that day (a later one can replace it if our server could not confirm that the email about it was sent): its random ID, when it was refused and when the email about it was sent, which limit it reached, that limit, how many 3D map minutes counted toward it and, if any, how many other holders of the same Apple or Google purchase (other accounts, or the codes described under “When a purchase moves between accounts”) were counted with it. We keep that record for about 13 months, and, to watch for misuse of the 3D map, we send ourselves an email about it through our email service, Resend, with the random ID of the account, the day, which limit it reached, that limit and those minutes; neither is deleted with the account, and we keep the email with no set end date. The records of the 3D map's phone check are kept as set out under "Phone check for the 3D map" above. If we have exempted an account by hand from that check, we may also send ourselves an email about it through Resend, saying it was let through the check without passing it, with its random ID and the day. We send at most one such email each UTC day, about the first exempted account let through that day. It is not deleted with the account, and we keep it with no set end date. We also keep daily counts of what your account saves or sends to our server, including map items, shares and links, timer readings and commands, and live sharing (how many items of each kind and, for most kinds, how much new data and how much changed data), for up to about two days, and a total of the new data it has added, for as long as the account exists, to enforce our limits on how much one account, or the accounts holding one Apple or Google purchase, can save; after you delete your account they are kept, with no name or email, for up to about a day. Once an account has added about 800 MB of new data, our server also keeps the account's random ID and when we first recorded it passing that mark, so that, when the Apple or Google purchases such an account holds, taken together as one set (each by the store's reference number or a placeholder standing for a move), have more than 1,000 holdings between them, past or present, by accounts or by the codes described under “When a purchase moves between accounts”, it can keep the combined new data that counts toward their shared limit, under a scrambled code (a hash) of those reference numbers and placeholders, with no account ID or email; for a set with more than a million such holdings it keeps only when it last checked the set, with no total. That record is recomputed by a job that runs every 5 minutes (a set can wait for a later run) and is deleted within about 20 minutes once no such account holds that set. The account's ID and when we first recorded it passing that mark are deleted within about 5 minutes after the account is deleted. When our server refuses to back up a photo because a cloud photo limit is full, it keeps, with the account's random ID and the date (no photo, file name or email), a count of that day's such refusals and the time of the last one, so that it can limit how often it re‑checks a full account. When the photos of other accounts holding the same Apple or Google purchase decided the refusal, it also keeps such a count for each Apple or Google purchase the account holds, with the store's reference number (or a placeholder standing for a move) and the date and no account ID, so that it can limit how often it re‑checks a full purchase. For each Apple or Google purchase, it also keeps a count of each day's new photo backups by the accounts whose photos that purchase covers, with the store's reference number (or a placeholder standing for a move) and the date and no account ID, so that it can limit them per purchase; that count is deleted within about a day after its day ends. The account's record is deleted when the account is deleted, and its counts of earlier days the next time that account is refused for a full limit, so a count can be kept until then; a purchase's count of refusals is deleted within about a day after its day ends. To count your backed‑up photos toward your plan's limit, our server also keeps, with your account's random ID, the file name of each photo you backed up that is in our cloud, in any ranch, and not deleted or hidden there, with how many such copies of it there are; each is deleted soon after its last such copy is deleted or hidden. A photo file's name (which begins with its uploader's random ID) can also wait on a retry list, usually for a few minutes, before our server checks it again and, if nothing in our cloud still uses the file, queues it for erasure. After a drop in your plan, if a phone copies or restores one of your hidden photos to our cloud, our server keeps a note of your account's random ID and when, until the drop ends or those photos are deleted for good; our hourly check then clears it. If our job that hides or deletes your photos after a drop cannot finish for your account, our server keeps your account's random ID with a record of how many times the job tried, when, and what last stopped it, until the job finishes or is no longer needed. We also keep, for your account, a count of how much it sent us to save or delete on the latest UTC day it sent any, counting requests that were then undone, and how much of that went through, kept until a few minutes after that day ends, to limit how much can be sent and then undone in one day; both are deleted with your account, or at the latest about a day after it. We also keep one record for your account of when its latest 10‑minute period of subscription checks (when the app asks our server to re‑check your plan) began and how many checks were counted in it, to limit how often they can run; it is deleted with your account. We also keep one record for your account of the latest UTC day on which we counted a redeem code it entered on Android that gave it nothing new (a wrong or used‑up code, for example), and how many we counted that day, to limit how many can be tried; it is deleted with your account. To limit how much public map links can send, our server may count, for each hour, how much data it sent for an account's public map links; any such counts are deleted within about two hours, and with the account. Other short‑lived rate‑limit records, which can include your IP address, are deleted within about three hours, apart from the request counts set out under “Request counts” below. Supabase, which runs our sign‑in service and database, also keeps its own service logs of requests, which include IP addresses, for up to a week before deleting them.
Live location. While you share your live location, our server keeps only your phone's latest position on the ranch you have open, the time your phone took that position and the time our server last heard from your phone, with a random number the app makes each time it starts and a counter; the app shows that position, with your display name, to others on that ranch who are also sharing. If your phone stops reaching our server, our server stops sending that last spot to others 30 minutes after it last heard from your phone, and a phone that has itself lost touch with our server can keep showing the last spot it received. The position is deleted when your stop reaches our server or you delete your account, and otherwise 30 to 35 minutes after your phone last reached it. A stop leaves a note that you stopped, with no position, which is deleted 30 to 35 minutes after the stop or with your account. Our server also counts how many live sharing records your account creates each day (for example when your phone starts or stops sharing), with no position, kept like the other counts described above.
Request counts. To spot one account, script or IP address overloading our database or running up our costs, to stop such an account, and to keep the service running, our server counts the requests sent to our database other than plain reads (some of the app's reads count too): a request sent while signed in under the account's random ID, and one sent without signing in under the IP address it came from. It also counts each account's calls each UTC day to two of our server functions: the one that saves a Sign in with Apple link, and road import. Each counted request is held, with that random ID or IP address and the path it called on our server, until it is added to the counts below, normally within about two minutes. For each account we keep how many counted requests it sent in each minute, for about 10 minutes. For the current and the previous UTC day, we keep how many it sent that day, the count of its busiest minute, in how many minutes it reached our per‑minute limit, and its calls to those two functions; and, for about 2 days, the minutes in which it reached that limit. For each UTC day, we keep our lists of that day's busiest accounts, up to 50 by requests and up to 50 by busiest minute, with each one's random ID, requests, busiest minute and minutes at that limit, for about 400 days.
If an account is blocked from sending requests, by our server or by us, we keep its random ID, the reason and when the block ends, until about 7 days after it ends. If we raise one account's limits by hand, we keep its random ID and by how much, until we remove it.
For each minute, we keep how many counted requests were sent across the service, signed in and not, with no account information, for about 30 days. For about 7 days, we also keep that minute's busiest callers (by account random ID or, for requests sent without signing in, by IP address) and busiest paths, with their counts.
Our server can also read Supabase's own service logs of our project every 5 minutes. It keeps the counts of requests by service and by function, for about 30 days. When a count reaches our level, it also keeps up to 5 of the busiest IP addresses and paths of those 5 minutes (a path to a photo file holds the random ID of the account it belongs to), and the busiest account's random ID where those logs carry it, for about 7 days. None of the request counts and lists above holds the content of a request or of its answer (only the path it called), or a name or email address.
When an account reaches or passes one of our request limits or is blocked, when requests across the service jump, or when that log check stops or cannot read, we send ourselves an email through our email service, Resend, normally at most one for each kind of alert each UTC day. It holds the counts and, depending on the alert, an account's random ID, up to 5 IP addresses and the busiest paths. We keep our record of each such email, with those details, for about 400 days after its day, and the email itself with no set end date. None of the request counts, lists, records or emails above is deleted with an account: an account's random ID can stay in them after the account is deleted, until the times above.
Children
HelioMaps is intended for adult hunters (18+) and is not directed to children. We don't knowingly collect personal information from anyone under 18.
Terms
Your use of HelioMaps is also governed by our Terms of Service, which include important safety, boundary‑accuracy, and liability disclaimers.
Changes
We may update this policy as the app evolves. We'll post the new version here and update the date above.
Contact
Report a problem, in the app, opens an email to support@heliomaps.com in your own mail app, filled in with your phone's system and its version, the app's version, your account identifier and the time. You can edit or delete any of it before you send it, and nothing is sent unless you send that email.
Questions, or want your data deleted? Email support@heliomaps.com. Before we act on a deletion request sent by email, we confirm it comes from you with a one‑time code sent to your account's sign‑in address (see Delete your account).
HelioLogix LLC · Engineered for the Hunt · heliomaps.com