SafeBiteTO

Privacy policy

Last updated: November 2, 2026

Billy Chan operates SafeBiteTO, an iOS app for exploring Toronto restaurants and their public health inspection records, and this website. The app is intended for users in Canada. For privacy questions and requests, email contact@billycychan.com.

At a glance

Location, searches and local storage

SafeBiteTO requests location permission when you choose Use Current Location or the map’s Location button. You can choose a browsing area manually instead. With permission, the active map can show your position.

Nearby requests send your selected browsing coordinates to our data service to find restaurant records. These can be coordinates from your current location or an area chosen manually. Restaurant searches send your search text. Opening a restaurant sends its identifier to retrieve inspection details.

The app saves your appearance preference, selected browsing area and coordinates, up to five recent areas, and up to five recent restaurant searches used to open a result. After nearby results load successfully, the selected browsing area is saved and can be restored at launch without requesting a new location.

Clear recent restaurant searches in Search. Clear recent areas in the area picker opened from the home screen. Clearing either history keeps the current browsing area. Revoking location permission does not delete a previously saved area or information already received by online services. Device backups may preserve local data according to your backup settings.

Maps and restaurant services

Map displays and area searches use Apple Maps. Search here and Use Current Location in the area picker send selected coordinates to Apple Maps to obtain an area name. The map’s Location button centres the map without itself searching for restaurants or saving a browsing area. See Apple Maps and privacy.

Our restaurant gateway runs on Cloudflare and passes restaurant queries to the database service. Network providers receive IP addresses and request information to deliver and protect the service. The gateway derives a keyed identifier from your IP address for rate limiting. Its application log statements include request ID, endpoint type, status, duration and cache status; nearby and detail statements also include that derived identifier. This identifier is pseudonymous, not a guarantee of anonymity.

Search text and coordinates are sent in request URLs. They are excluded from the gateway’s custom log payload, but may be available to infrastructure services processing those requests. Do not put sensitive personal information in restaurant searches. See Cloudflare’s privacy policy.

Usage analytics

Release builds automatically enable Google Analytics to understand how discovery, inspection views and other features are used and where requests fail or take too long. Custom events describe feature interactions, screens, outcomes, result counts and timing. They exclude search text, coordinates, addresses, restaurant identifiers and AI summary text.

Google can also process app, device and installation information and approximate location derived from network information. The app disables Analytics IDFV collection, automatic screen reporting and advertising-personalization signals, and sets Analytics advertising storage, advertising user data and advertising personalization consent to denied. These settings apply to Analytics; the advertising SDK is separate.

The Analytics property currently has Google signals off and granular location/device collection on. The app does not currently provide an in-app analytics opt-out. Contact us about questions or requests concerning this collection.

Crash reports

Release builds use Google Firebase Crashlytics to send crash reports, app and device information and installation identifiers to diagnose failures. Automatic crash reporting is disabled in Debug builds. Crash reporting is separate from usage analytics.

Google also processes Firebase Service Data generated in providing and administering Firebase. The project’s Service Data setting allows Google to use that data to improve non-Firebase Google services. See Firebase privacy and security.

Advertising

SafeBiteTO integrates Google Mobile Ads for banner advertising. The SDK can process network-derived approximate location, device identifiers, advertising interactions, performance information and diagnostics for ad delivery, measurement and fraud prevention. Available identifiers and other collection depend on device permissions and SDK behavior. Ad requests and SDK initialization can communicate with Google even when an ad is not displayed.

The app’s banner ad unit currently has no active mediation groups. The app does not currently provide an in-app advertising consent or privacy-choice screen. Denying location permission or clearing search history does not disable the advertising SDK. We do not describe all advertising as non-personalized or all SDK information as anonymous.

For Google’s handling of this information and available Google account controls, see Google’s privacy policy and how Google uses information from apps and sites. Google account controls do not necessarily stop all SDK collection.

AI summaries

Inspection summaries use Apple’s on-device model when you open a summary or retry generation. There is no cloud fallback. Custom usage events can record a summary request and its outcome, but exclude summary text. AI summaries can make mistakes; consult original inspection records for official findings.

This website has no account registration, payment form, advertising SDK or client-side analytics configured in its source. Its own scripts do not set tracking cookies or tracking browser storage. Cloudflare hosts the website and processes network request information to deliver it. Its response headers also configure browser network-error reporting to Cloudflare, which supported browsers may use to report connection failures. Visual effects use browser capabilities and accessibility preferences on your device.

If you email us, we receive your email address and the information you send, and use it to respond to your inquiry or privacy request. Avoid including sensitive information that is unnecessary for your request.

Opening an external link connects to the selected website, whose privacy practices apply to that visit.

Retention

Infrastructure records, advertising information and email correspondence have separate retention arrangements. We have not established a single fixed retention period covering all of these categories. Provider policies and configurations govern provider-held records; the periods above do not promise deletion of all exports, backups or copies. Contact us to ask about a particular record or request deletion.

Sharing, international processing and security

Information goes to the hosting, database, maps, analytics, crash-reporting, advertising and email services used for the purposes described above. Providers may process information outside Canada, including in the United States, where different laws and lawful access rules can apply. Canada-only app availability does not mean all processing occurs in Canada.

We may also disclose information where required by applicable law. No system can guarantee complete security. Do not send passwords or unnecessary sensitive personal information in support messages.

Your privacy requests

Email contact@billycychan.com to ask what personal information we hold about you, request access or correction, ask about deletion or withdrawal of consent, or raise a concern. Rights and exceptions depend on applicable law. We will respond within the time required by the law that applies to your request.

We may need proportionate information to verify your request and find relevant records. A name or email alone may not identify an installation or pseudonymous gateway record. Do not send identity documents unless we explain why they are needed and provide an appropriate way to send them. Removing local histories does not delete provider-held records.

You can also raise concerns with the Office of the Privacy Commissioner of Canada or the applicable provincial privacy regulator. A parent or guardian concerned about a child’s information can contact us using the same email address.

Policy changes

Changes will be posted on this page with an updated date. Where applicable law requires additional notice or consent before a new collection or use, those requirements still apply. This policy does not itself supply consent for every collection described above.