Privacy Policy
Effective November 6, 2026
IPROMENTOR LLC ("we", "us") makes the Crossbuck app and the crossbuck.app website. This policy explains what we collect, why, and the choices you have.
The short version
- Your continuous GPS trail stays on your phone. We do receive which railroad crossing you waited at or drove through and when, linked to your account's random ID, and, without your account, when the app warned you about a crossing and whether you went another way. Those records, and the map areas the app asks about, show some places your account has been, and together can reveal parts of a route.
- An account is created automatically, with no name or email. Signing in with Apple or Google is optional.
- We don't sell your personal information, show ads, or use it for targeted advertising.
- You can delete your account and its data in the app at any time. Some accounts can also be deleted on our website or by email (see "Deleting your account").
What we collect and why
Your account
When you first open the app, it creates a guest account: a random identifier, with no name or email. It lets the app report crossings under one ID, so we can prevent abuse and count each account once.
If you sign in with Google, Google shares your name and email address with our sign-in provider, Firebase Authentication, which keeps them with your account. If you sign in with Apple, we don't ask Apple for your name or email. Signing in normally keeps your guest account, so its history carries over. If that Google or Apple account already belongs to another Crossbuck account, the app switches to that account instead. Before it does, it tells you that switching deletes the guest account and its data, and you can cancel to keep them. If the switch fails, you keep the guest account. If the switch works but deleting the guest account fails, the app tells you, and the guest account is deleted after 12 months unused.
Our own database keeps your account's random ID, when it was created and last used, the crossing events linked to it, and the running totals the app shows under "Your impact" (see "Your impact" below). Your name and email, if any, stay with Firebase Authentication. The one exception is crossing reporters (below): we keep a short note of who each reporter invite is for.
Location
With your permission, the app uses your phone's precise location:
- While Crossbuck is on screen, to show crossings near you and warn you about one ahead.
- With the screen off or another app open, after you tap "Start watching", so warnings keep coming while you drive. Your phone shows that it's happening (on Android, a "Crossbuck is watching for crossings" notice; on iPhone, the location indicator). Tap Stop (in the app, or on the Android notice) to end it at any time. It also ends when you swipe Crossbuck away from your recent apps, when your account changes (signing out, deleting it, or switching accounts), and after 10 minutes without moving. While you're waiting at a crossing it keeps going, for up to about 2 hours. Switching to another app doesn't end it; that's its purpose.
- On every drive, only if you turn on "Watch automatically" (in the app's introduction or in Settings) and allow location all the time ("Always" on iPhone; "Allow all the time" and Physical activity on Android). Your phone then tells Crossbuck when a drive may be starting: on Android, Google Play services' activity recognition says when the phone is in a vehicle; on iPhone, iOS wakes Crossbuck when your location changes significantly or you leave where you last stopped. Crossbuck then watches as it does after "Start watching", with the same notice or indicator, and stops once you've parked for a few minutes, or when you tap Stop (then it stays off for that drive). Whether you're in a vehicle, and where you are between drives, stay on your phone: as always, we receive only crossing events. Turn it off in Settings → Watch automatically, or by changing Crossbuck's location access to "While using the app" in your phone's settings.
The app works out on your phone when you approach, wait at or pass a railroad crossing. Your GPS trail isn't sent to us. What we do receive:
- Crossing events: which crossing, what happened (you stopped there long enough to suspect a train, drove through, or left another way), when, and how the app was watching (open on screen, after "Start watching", or "Watch automatically"), which tells us how many people use each. Each event is linked to your account's random ID, so we can prevent abuse and count each account once. A crossing is a precise place, so an event shows that your account was at that crossing at that time.
- Heads-ups: when the app warns you that a crossing ahead may be blocked, it tells us which crossing, when, when you would have reached it at the speed you were driving, and an estimate of how long the way around takes, and how the app was watching. If you then go another way, it tells us that too. Your phone decides that you went another way (you didn't reach the crossing, and kept driving elsewhere); your route isn't sent. We store heads-ups without your account ID, only until we've counted them (within 3 days), to count how many drivers took the way around and the time they saved.
- Your impact: each night, once a blockage you reported has ended, we add to running totals kept with your account: how many blockages you reported, how many drivers were warned about them, how many of those took the way around, and your share of the minutes they saved (shared with anyone else who reported the same blockage). We keep only these totals and when they last changed, not which crossings or when you waited; the app shows them to you under Settings → Your impact. We work them out from your crossing events and the heads-ups, before those are deleted. After a drive on which you reported a blocked crossing, the app also asks us how many drivers have been warned about it since you waited there, to thank you; we answer only for crossings your account reported in the last 6 hours, with counts.
- Area lookups: to show crossings and their status near you, the app asks for a map area about 20 miles across, not your exact position. We don't store these requests except in our server logs (see "Technical information").
- Searching for a crossing: what you type (a street, city or crossing number) and that same map area around you, so the nearest matches come first. We use it only to answer the search: we don't store it, and it isn't in our server logs.
Turning off location access stops new location readings. Events the app already recorded but hasn't sent yet (for example, while you were offline) are still sent. Neither deletes events already sent; to delete those, delete your account (see "Deleting your account").
Crossing reporters
We invite some people to be crossing reporters. A reporter can tell Crossbuck that a train is blocking a crossing, or that it has cleared, from that crossing's page in the app.
- Joining: reporters join with a personal invite code, using an account signed in with Google or Apple.
- The invite: when we make an invite, our team records a short note of who it's for, for example a first name and the business they run near a crossing. When you join with the code, the invite and its note are linked to your account.
- Your confirmations: we keep which crossing, whether you said it's blocked or has cleared, and when, linked to your account. A confirmation indicates that your account was near that crossing at that time.
- Location: the app offers confirming only within about 500 meters of the crossing. It checks that distance on your phone, and the GPS coordinates it uses aren't sent to us.
We use confirmations to:
- show drivers that a crossing may be blocked;
- count blockages;
- see how often each reporter's confirmations match what drivers' phones detected nearby, so we can keep the program reliable. We work this out when we look at it; we don't store a score.
What other drivers see
Other drivers see each crossing's status: whether it may be blocked, since when (to the minute), and when it was last updated. When two or more drivers are waiting, the app shows how many; with one, it shows only that drivers are waiting. When a crossing reporter has confirmed a blockage, it also shows "Confirmed by a Crossbuck reporter" and how long ago the latest confirmation was (for example, "6 min ago"): that is one reporter's confirmation and its time.
We don't display the names, businesses, account IDs or invite details of drivers or reporters. Even so, a status with a time can, together with other information, say something about a person who was there, and where few reporters take part, people who know the area may be able to guess who confirmed.
While a blockage lasts, and for up to a day after, our server keeps a note of it: the crossing, when it began and ended, and how many phones were waiting, with no account IDs. Each night, blockages that have ended become counts for their crossing by day of the week and hour ("Tuesdays, 7 AM: 12 blockages, 310 minutes"), and the note is deleted.
Notifications
If you allow notifications, the app shows its warnings as notifications, created on your phone.
If you save a crossing, you get a notification when it appears blocked or a crossing reporter confirms a train is blocking it, and when traffic is moving again. For that, the app subscribes your phone to the crossing's alerts through Firebase Cloud Messaging, a Google service: Firebase gives your copy of the app a notification token and keeps which crossings it's subscribed to. We don't collect the token, and our server doesn't know who saved which crossing: your list of saved crossings stays on your phone. When a saved crossing's status changes, our server sends one message to every phone subscribed to that crossing. It says only which crossing, whether it appears or may be blocked or has cleared, since when, how many drivers are waiting, and whether a crossing reporter confirmed it. Occasionally we may also send everyone who saved a crossing a short message about it, such as a closure. On iPhone, the message carries its text, written by our server in the app's language (English or Spanish), and reaches your phone through Apple's push notification service; so the app subscribes to that language's alerts, and Firebase can tell which language your copy of the app uses. To stop them, remove the crossing, turn off Alerts for saved crossings in Settings, or uninstall the app.
Feedback and problem reports
If you email us from the app (Send feedback, Tell Crossbuck on a crossing's card, or Report a problem), your phone's email app opens with a message you can read and change before sending. It includes the app's version and your phone's model and system version. A problem report also includes what the app detected on your phone in the last hour: which crossings it followed, how far away they were, when it was stopped or moving, and what it sent, but no GPS coordinates. The app keeps that record on your phone for an hour; it reaches us only if you send the email.
Crash reports
When the app crashes, Firebase Crashlytics receives a report: what the app was doing (the error and the app's state), the device model and system version, and a random installation ID, which stays the same while the app is installed. We add only which app update was running (see "App updates"), never your account ID or custom logs, and the app doesn't put your location or crossing events in them. Like any internet service, Crashlytics receives your IP address, from which a rough location can be inferred. The app has no analytics or advertising SDKs.
App integrity
To confirm requests come from the genuine Crossbuck app and prevent abuse, the app uses Firebase App Check with Apple App Attest (iPhone) or Google Play Integrity (Android). These services use technical information about the app and your device, processed by Apple, Google and Firebase under their terms.
App updates
Each time it starts, the app asks Expo's update service (EAS Update) whether a newer version of its code is available, so we can fix problems without waiting for an app store release. The request includes your device's platform, the app's version and update channel, and a random installation ID that the update service creates and keeps on your phone; like any internet service, Expo receives your IP address. It doesn't include your account, your location or anything about your drives.
Technical information
Our servers (the app's API and this website) receive standard technical information with each request, such as your IP address, the time, the address requested (for the app, which map area), and the app or browser version. We keep our server logs (in Google Cloud) for 30 days. Cloudflare, which hosts the website, processes this information to deliver and protect it, and keeps its own logs under its own terms.
The website
crossbuck.app sets no cookies. It uses Cloudflare Web Analytics to count visits, without cookies, without storing anything in your browser, and without following you across other sites. For each page view it records the page, the site that linked to it, your browser and type of device, your country (from your IP address), and how quickly the page loaded. We see only totals, never who visited.
- "Use my location" asks your browser for your location only when you press it. The search runs in your browser; your location isn't sent to us.
- ZIP code search also runs in your browser. Your browser downloads the list of ZIP codes that share its first two digits (for example, all "77…" codes), so our host sees those two digits, not the ZIP code. The ZIP code appears in the page address after a "#", which browsers don't send to servers, so a search can be shared.
- Light or dark mode, if you choose one, is saved in your browser's local storage, not sent to us.
- Deleting your account on the website (crossbuck.app/delete-account) signs you in with Google through Firebase Authentication, only to delete your account. Google's sign-in window is Google's page, with Google's own cookies. The page keeps the sign-in in memory only, not in your browser's storage: it ends when you finish, cancel, or close the tab.
How we use information
- To run Crossbuck: detect likely blockages, warn drivers, show crossing history, and suggest a way around.
- To keep Crossbuck secure and prevent abuse, such as fake reports.
- To fix problems and improve accuracy.
- To count heads-ups, drivers who took the way around, and the time they saved.
- To publish statistics about crossings (see below).
- To comply with the law.
How we share information
- Service providers that run Crossbuck for us, under their terms for processing data on our behalf: Google (Google Cloud, which hosts our API and database; Firebase Authentication, Crashlytics, App Check and Cloud Messaging), Cloudflare (the website, and counting its visits), Expo (app updates), Apple (sign-in, and notifications on iPhone), and Google (sign-in).
- Other drivers see crossing status, as described above.
- Statistics about crossings. Crossing history on crossbuck.app ("often blocked 5–6 PM") comes from the Federal Railroad Administration's public reports, not from our users; live status comes from drivers using the app. Totals from app use, such as how many drivers use Crossbuck, how often drivers found a crossing blocked on each day of the week and hour, and how many heads-ups helped drivers take the way around, are counts across accounts: they don't include account IDs, individual events or their dates. We may publish statistics or share them with partners such as cities, researchers or navigation services. We don't share records about individual accounts with them.
- When required by law, or to protect the safety and rights of people and of Crossbuck.
- If Crossbuck is sold or merged, this policy continues to apply to your information.
We do not sell your personal information, and we do not share it for targeted advertising.
How long we keep it
| Information | Kept |
|---|---|
| Account (random ID; name and email if you signed in) | Until you delete it. Guest accounts unused for 12 months are deleted: the Firebase Authentication account, our account record, its crossing events and impact totals. |
| Crossing events | 90 days, then deleted |
| Your impact totals | Until your account is deleted |
| A crossing reporter's invite: its code, the note of who it's for, and its link to the account | While you're a reporter. Deleted when you leave the reporter program, when we end your participation, or when your account is deleted. Invites never used are deleted after 30 days, and ones we cancel, at once. |
| A crossing reporter's confirmations | Like other crossing events: 90 days after each confirmation, then deleted, or sooner when you delete your account. |
| Our record of what our team did in the reporter program (invites made and cancelled, reporters removed), identified by a random internal reference, not the invite code, the note or an account | 1 year, for running the program and looking into misuse, including after the related account is deleted. When the invite is deleted, we remove the link between that reference and your account from our active systems; copies in database backups and server logs expire as described for those in this table. |
| Our Google Cloud server logs (IP addresses, requests, map areas) | 30 days |
| Database backups | 30 days. If we ever restore one, we delete again any account deleted since. |
| Saved crossings and the notification token | On your phone and in Firebase Cloud Messaging until you remove them, delete your data in the app, or uninstall the app. |
| Crash reports | Crashlytics keeps them 90 days, then begins removing them from its live and backup systems. Not linked to your account. |
| Emails you send us | As long as needed to answer them, and no more than 2 years |
| Statistics (counts across accounts, such as how many drivers use Crossbuck, blockages per crossing by day of the week and hour, and heads-ups, ways around and minutes saved) | Indefinitely. They contain no account IDs, individual events or dates. |
| Notes of blockages drivers' phones detected (crossing, start and end, number of phones; no account IDs) | Until counted, within a day after the blockage ends |
| Heads-ups (crossing, times, detour estimate, whether you went another way; no account IDs) | Until counted, within 3 days |
Deleting your account
You can delete your account in the app, whatever kind it is. Depending on the account, there are other ways too:
| Account | In the app | On crossbuck.app | By email |
|---|---|---|---|
| Guest | Yes | No (a guest account has nothing to sign in with) | No (see below) |
| Signed in with Google | Yes | Yes | Yes |
| Signed in with Apple | Yes | Yes | No |
- In the app: Settings → Delete account (signed in) or Delete my data (guest). When the app says your account was deleted, it's deleted: your account in Firebase Authentication, and our account record with its crossing events and impact totals. If you're a crossing reporter, your invite, its note and its link to your account are deleted too. If the app can't reach us (for example, you're offline), nothing is deleted: the app tells you, and you can try again. Once our server has accepted the request, if any part of the deletion fails, we finish it within a day. If you signed in with Apple, the app first revokes Crossbuck's access to your Apple ID. Deleting in the app also ends "Start watching", discards events the app hadn't sent yet, and forgets your saved crossings, deleting the phone's notification token and with it its subscriptions to their alerts.
- On the website, without the app: at crossbuck.app/delete-account, sign in with the Google or Apple account you used in Crossbuck and confirm. Your account is deleted as in the app, and with Apple we first revoke Crossbuck's access to your Apple ID.
- By email, if you can't sign in: write to privacy@crossbuck.app from the email address of the Google account you used. We reply to check the request is yours, delete the account within 30 days of your reply, and tell you when it's done.
When an account is deleted outside the app (on the website or by email), our servers refuse crossing reports sent for it from then on. If Crossbuck is still installed on a phone, the app notices the next time it's opened with an internet connection: it ends "Start watching", discards events it hadn't sent (they're never sent under another account), and starts as a new guest. Until then, a "Start watching" session already running on that phone keeps using location on the phone, and its requests still reach our server logs, but we refuse the crossing reports it sends.
After deletion, some copies expire on their own: our database backups and server logs within 30 days (if we restore a backup, we delete your account again), and crash reports as described in "How long we keep it". Statistics already counted remain; they contain no account IDs or individual events. For crossing reporters, our record of what our team did in the reporter program also remains, for up to a year (see "How long we keep it"). It identifies invites by a random internal reference; we remove the link between that reference and your account from our active systems when your invite is deleted.
Uninstalling the app removes the app's data from your phone in the usual way, but copies may remain in backups of your phone or in data your phone's system keeps. It doesn't delete anything on our servers.
If you only used a guest account and uninstalled the app, we have no name or email with which to find and verify that account from a request. Its crossing events are deleted after 90 days, and the account after 12 months unused.
Your choices and rights
- Location and notifications: turn them on or off in your phone's settings.
- Saved crossings: remove one from its card, or turn off Alerts for saved crossings in Settings.
- Start watching when you want warnings with the screen off, or turn on Watch automatically to have Crossbuck do it on every drive; tap Stop at any time.
- Leaving the reporter program: Settings → Crossing reporter → Leave the reporter program, at any time. From then on you can't send confirmations, and confirmations you'd already sent stop affecting any crossing's live status: on our server immediately, and on other drivers' phones when they next refresh, usually within a minute. Your invite, its note and its link to your account are deleted. Confirmations you'd already sent are kept until 90 days after each confirmation, unless you delete your account sooner. Statistics already counted remain; they contain no account IDs. Our record of what our team did remains as described in "How long we keep it". The same applies if we end your participation.
- Wherever you live, you can ask to see the personal information we have about your account, or ask us to delete it. Email privacy@crossbuck.app. We answer within 45 days. If we say no, reply to our answer to appeal, and we'll answer your appeal within 45 days too.
- To check a request is yours, write from the email address of the Google account you signed in with. A guest account, or an Apple sign-in, gives us no email address to check against, so delete those accounts in the app (or, with Apple, on the website).
- We won't treat you differently for using these rights.
Precise location is considered sensitive information under some state laws. We use it only with your permission, and you can withdraw that permission at any time in your phone's settings.
Children
Crossbuck is for drivers and isn't directed to children under 13. We don't knowingly collect information from them. If you believe a child has given us information, contact us and we'll delete it.
Security
We protect information with encryption in transit, access controls, and by collecting as little as we can. No system is perfectly secure.
Where information is processed
Crossbuck is operated from the United States. Our API and database run in Google Cloud in the United States (Iowa). Our other service providers, including Firebase and Cloudflare, may process information in other countries where they operate.
Changes to this policy
If we make material changes, we'll tell you in the app or on this page before they take effect. The effective date at the top shows when this policy last changed.
Contact
Privacy Team, IPROMENTOR LLC: privacy@crossbuck.app