WaitWise Privacy Policy

Independent service. Not operated by the Government of Ontario or any hospital. Wait times are estimates. Community reports are crowd-reported, not verified by hospitals.

Effective date: October 22, 2026

WaitWise helps people find nearby Ontario hospitals and clinics and view historical and community-reported wait information. WaitWise is not an emergency service or medical advice. In an emergency, call 911.

Information we collect

How location and reports are used

On-device request learning: A small in-memory statistical model learns traffic-request latency and failure rate to reduce retries on poor connections. Refresh timing follows the server's traffic expiry; it does not extend that expiry. The model contains no GPS history, account identifiers or clinical information, is not uploaded and resets when the app restarts. Shared server traffic learning uses aggregate public-area travel times, not individual journeys.

Official health resources: The Health information screen links to Health811 and official Canadian and Ontario influenza/respiratory-virus guidance. WaitWise hosting checks the fixed English/French links and caches reachability results for seven days, refreshing on use after expiry. These checks do not send your location, account data or symptoms to the linked providers. Link-check timestamps are not medical reviews or the providers' publication dates. Opening an official link connects your device to that provider, which applies its own privacy policy; calling 811 uses your phone service. Failed checks are labelled unverified rather than treated as updated guidance.

Arrival confirmation: After sign-in and location consent, the foreground app checks device location services and obtains a fresh fix to find an unambiguous hospital within 350 m or clinic within 200 m, allowing for GPS uncertainty. It asks you to confirm the facility; it does not automatically report a wait. Denied permission, disabled services, stale or imprecise fixes and ambiguous sites can prevent detection. Oakville uses an approximate ER-side arrival point derived from the official hospital map and public entrance geometry, not a surveyed door coordinate. Other hospital pins may still represent campus centres rather than verified emergency entrances. Corporate and hospital aliases for the same identified campus are consolidated without deleting their anonymous reports or ratings. No new background tracking is used for this arrival prompt.

Private testing: App data and submissions require an invited, email-verified account while private testing is enabled. Approved email addresses are stored in a server-side allowlist; each tester uses their own password and session. Sessions authorize requests, but anonymous feedback/report rows do not store account IDs. Revoking an invitation blocks subsequent API access. Verified administrators retain access. Account deletion remains available to revoked accounts with a valid session and also removes their invitation. Android sessions use encrypted device storage; web sessions use browser storage. The website also retains its separate private testing login. Public health/status and policy pages do not expose app data.

Language preference: Without a saved choice, the app reads your device/browser language locally: French uses French; English and unsupported languages use English. No language-selection onboarding is required and this detection is not sent to the backend. Your explicit English or French choice is saved only on your device, without signing in. It applies to the interface and new local notifications, remains after sign-out or account deletion, and can be changed before the initial disclosures or in Account settings. Official facility names are retained. This privacy policy and the linked deletion page are currently available in English.

Nearby wait feedback: While the app is open, new hospital/clinic reports from others can trigger a popup after a fresh device-location check within 350 m for hospitals or 200 m for clinics, including GPS uncertainty, and at least five raw reports. Existing estimates on initial load, your own newly submitted report, and supporting votes alone do not trigger it. Updates are checked periodically, not delivered instantly; multiple reports between checks may appear as one updated aggregate. This does not use background tracking or push notifications. “Still accurate” adds limited support, capped at 25% of raw-report weight, without becoming another report or bypassing the five-report threshold. “Not accurate” asks for a corrected wait from 0.5 to 24 hours and saves it as a new anonymous report. Feedback fields include facility, estimate minutes, report count, latest report timestamp, verdict and corrected minutes when applicable, never device coordinates. A session header authorizes private-testing access, but feedback rows contain no account ID. We store timestamps, snapshot minutes and a random receipt separately from reports. Positive counts appear only after five actions; these are not unique-person counts or proof of accuracy. Device location checks can be spoofed. Feedback older than seven days is removed when new feedback is accepted. Corrected reports follow the existing report retention policy.

Private milestones: Successful report and confirmation counts, UTC monthly counts and recent random submission receipts are stored only on this device. These counts do not measure people helped, do not sync to an account and are not public. Users sharing a device share the counts. Checkout does not count twice. Clear them in Account settings; account deletion also clears them on that device. Signing out does not clear these device-level counts.

On-device models: To reduce network requests, the app runs small models on your device. One learns how often community wait times change by hour of day; it contains no facility you viewed or personal data. When you are signed in, another records which facility details you open and at what hour, so likely wait forecasts can be loaded in advance. It is stored only on this device, never sent to WaitWise, and is cleared when you sign out or delete your account. The app also checks request rates and location-fix quality on the device to pause runaway requests and ignore implausible GPS jumps; these checks are kept in memory only and are not sent anywhere.

Confirmation abuse limits use network addresses, as do other API rate limits. Shared networks may share a limit. No hidden reliability scoring or automatic filtering based on account reputation is used. The public leaderboard is disabled in the current app; legacy opted-in records and older-client API access are retained.

Location is used to find nearby facilities and support the on-site and checkout features. It is not attached to submitted crowd reports. Crowd reports are combined for wait estimates and are only exposed in public summaries when at least five reports are available. Authorized clinic and health-authority dashboards receive thresholded aggregates, not account-linked report rows.

Map tiles are requested from OpenStreetMap. Their tile requests may reveal your IP address and the map area being viewed to the tile provider. WaitWise also uses Ontario Health monthly emergency-department averages and facility-directory information from Statistics Canada and OpenStreetMap; these are not live wait feeds.

Visit features, reminders and offline use

Sharing and service providers

We do not sell personal information or use advertising analytics SDKs. Data is processed by WaitWise hosting providers. TomTom processes route coordinates to return traffic-aware drive estimates. Resend processes account-confirmation emails when enabled. Expo, Google Firebase Cloud Messaging and Apple Push Notification service deliver wait-alert notifications to the app; your browser maker's push service (Google, Mozilla, Apple or Microsoft) delivers them on the website. OpenStreetMap provides map data. Environment and Climate Change Canada provides area weather data used in forecasts. Sentry (Functional Software, Inc., EU data region) receives anonymous crash and error reports so we can fix problems; before a report leaves your device, WaitWise removes locations, email addresses, phone numbers, sign-in tokens and search details, and it never includes screen recordings, screenshots or your account. A small share of anonymous performance timings is sent too. Cloudflare Web Analytics counts page views, where visitors came from (the referring site), their country and type of device or browser, and how fast pages load; it uses no cookies, does not track you across sites, and does not collect your location, account or health information. Opted-in leaderboard names are public; thresholded facility aggregates may be shown to authorized clinic or health-authority accounts.

Retention and deletion

Alternative-care selections: When you select directions to a recommended walk-in clinic or urgent care centre, the app sends the destination facility identifier for a monthly aggregate counter. Calls, Health811 links and ordinary directions from the main facility list are not counted. Counts measure selections, not unique users, arrivals or confirmed diversions. Repeated selections are throttled; optional daily budgets can cause undercounting. No individual route history, user coordinates or account identifier is saved in these aggregates. Rate limiting uses a daily secret-salted hash of your network address in separate rate-limit records; hosting providers may still process network addresses. Monthly counts and thresholded wait aggregates have no automatic expiry. General route-choice collection is retired; legacy records are retained for migration compatibility.

Monthly wait metrics: Facility/month check-in and checkout aggregates are stored separately, without account identifiers or individual submission timestamps. Optional collection caps can make these counts incomplete. Admin dashboards show groups only once their minimum sample threshold is reached. These measures are not a guarantee of legal anonymization or regulatory compliance. A private Grafana data source displays these aggregate wait metrics through a dedicated read-only API. No raw reports, account records or clinical records are supplied to Grafana by this API.

Anonymous service ratings remain with anonymous reports and cannot be identified for deletion by account.

Watchlist facility identifiers and alert thresholds are saved to your signed-in account in Cloudflare D1 and synced across devices. No GPS coordinates or notification push tokens are stored with these preferences. Signing out pauses device notifications but preserves cloud preferences. Account deletion removes cloud preferences. Device notification state is isolated by account, and each phone needs notification permission. Sync occurs on sign-in, foreground resume, explicit refresh and periodic active/background checks; it is not instantaneous. Older shared device preferences are imported only when you explicitly choose to import them. Appearance remains device-specific. Push tokens and browser push subscriptions for wait alerts are deleted on sign-out and account deletion.

Account-linked information is retained while your account is active. You can delete your account from Account settings in the app. This deletes your account, verification and password-recovery records, alerts, leaderboard profile/events, and linked visit sessions. Anonymous reports, legacy route records, monthly wait aggregates and alternative-care counts are not linked to accounts and may remain; they cannot be located by account for individual deletion.

If you cannot access the app, use the account and data deletion page or email [email protected] from the address on your account.

Accessibility and privacy

WaitWise is committed to accessible design and protecting your privacy. Formal AODA and PHIPA compliance has not been independently verified.

Ontario Health readiness: WaitWise is not connected to ONE ID, WTIS or ConnectingOntario ClinicalViewer and does not access patient records from these systems. Staff/admin readiness work does not replace professional identity verification, Ontario Health authorization, privacy/security assessments or legal agreements. Community-reported waits are not official provincial clinical measurements. Any future connection or change to personal-information processing requires review and an updated disclosure before activation.

Experimental forecasts: The backend collects compact facility/hour check-in wait totals and counts without account identifiers, tokens or individual event timestamps in those aggregates. It uses bounded hourly slots and daily collection caps; old inactive slots can remain but are excluded from training. Signed-in, verified approved users can request experimental hourly wait forecasts; administrators and the private Grafana data source can view the same aggregate projections. Insufficient, stale or unvalidated history does not produce predictions. Forecasts are not live clinical data, patient counts, flu surveillance or advice to postpone care. Existing Alternative Care remains accessible to approved users without forecast access.

Security and contact

Passwords are stored as bcrypt hashes, and production connections should use HTTPS. You are responsible for protecting your sign-in credentials. For privacy questions or deletion requests, contact [email protected].

WaitWise
Website: www.wait-wise.ca