Frequently asked questions

Is this affiliated with the Phoenix Fire Department?

No. We are an independent third party that uses Phoenix's publicly published incident feed under the City's Open Data Policy. We do not represent the City and we are not endorsed by them.

Can I rely on this for emergency response?

No. Cactus Watch is for situational awareness only. If you have an emergency, call 911. Our data can be delayed, incomplete, or temporarily unavailable. Do not make safety-critical decisions based on what you see in the app.

How fresh is the data?

We pull the City's feed every 60 seconds. The free tier of the app refreshes every 10 minutes plus a manual pull-to-refresh gesture. The paid tier (when it launches) refreshes every minute.

Why is the free tier so spartan?

Because we want it to actually be free, with no ads and no selling your data. A spartan free tier funded by a paid tier (when it launches) is the only honest way to do that. The free tier still gives you the real product: live incidents in your city. The paid tier adds polish and convenience.

Why does the free tier rate-limit me?

Server costs scale with traffic. The free tier caps at one feed pull every ten minutes per device, plus a pull-to-refresh override capped at one extra fetch every two minutes. This keeps our DigitalOcean bill at $22/month even at thousands of free users. Without the cap, a few aggressive clients could break the budget for everyone.

What does "962" mean? Why do I see it sometimes?

It's a Phoenix CAD code for vehicle crash. Phoenix's feed sends most codes with human-readable descriptions, but a few are sent as raw codes. We translate the most common ones (962 → Vehicle Crash, 962BC → Crash Involving Bicycle, etc.) so you don't have to memorize dispatch jargon. If you see a code we haven't translated yet, email us and we'll add it.

Why don't I see police calls?

Phoenix Police runs a separate dispatch system that is not publicly published in the same way. We are working on adding scanner-derived police call transcripts as a paid feature, but it is not currently available.

Why don't I see calls in Mesa, Tempe, Glendale?

Each city runs its own dispatch system. We launch with Phoenix because it's the largest population center and has the cleanest public feed. Mesa, Tempe, Glendale, Scottsdale, Tucson are next, in roughly that order, after we have paying subscribers to fund the work.

Does the app drain my battery?

No. We do not run in the background. The app only refreshes while you have it open. No GPS polling, no location tracking, nothing happening when the screen is off.

Why doesn't the app ask for my location?

Because v1 doesn't need it. We show all Phoenix incidents on one screen, and the list is short enough that you can scroll. When the paid tier adds a "incidents within X miles of me" filter, we'll ask for location at that moment, and you can opt out.

Where can I report a bug or request a feature?

Email tradebridge2026@gmail.com. We read every message.

How do I delete my data?

There is nothing tied to you to delete. We do not have your name, email, location, or any account. Server logs that include your IP address are auto-rotated after 7 days. If you want to be sure, just stop using the app.

Is Cactus Watch open source?

The backend is currently closed-source while we stabilize the data pipeline. We may open-source the iOS app and parts of the backend after launch. The data we consume is already public; the value we add is the labels, caching, and packaging.