Consumer Health Data Privacy Policy
Effective date: October 2026
This policy explains how MenuVision ("we", "our", or "us") handles consumer health data under Washington's My Health My Data Act. It applies to Washington residents and to anyone whose consumer health data we collect in Washington. Consumer health data is information that is linked, or could reasonably be linked, to you and that identifies your past, present, or future physical or mental health, including what can be inferred about your health. A food preference is not always health data, but allergy information, and warnings based on it, can be.
You can scan menus and read general dish information without saving allergy or diet preferences. MenuVision gives menu information, not medical advice. A warning, or the absence of one, does not establish whether a meal is safe for you.
Health Data We Collect and Why
- Allergies and other food preferences. If you agree to use preferences for personalized warnings, we collect the allergies and custom allergy entries you choose to save, your diet type, your dietary restrictions (such as halal, kosher, Hindu-Friendly, or Jain), and the ingredients you dislike. These choices can reveal health information, and religious diets can reveal religious beliefs. We use them only to remember your preferences and to show possible conflicts with menu items. The app asks for your agreement before it saves any of them, and you can use MenuVision without saving preferences. We also keep your warning and filter display settings (which kinds of warnings to show, and how strictly to filter). These display settings do not contain the allergies, diet choices, or dislikes you entered.
- Your consent choice. We keep a record of your most recent choice about preferences: whether you agreed, declined, or withdrew, when, and which version of the notice you saw. The record does not contain your allergies or other preferences. We use it to know whether to use your preferences and to show that we asked.
- Menu photos and menu information. We receive the menu photos you submit, the menu text and ingredient information derived from them, and your saved menu history. A photo, its text, or its link to your preferences can reveal health information. We use this information to analyze the menu you submit and to show and keep the results you ask for. We also reuse general dish and ingredient names, with the explanations we write for them, in a shared dictionary that other users' scans use, as described below.
- Personalized warnings. The app compares menu information with your saved preferences to show possible conflicts and to filter dishes. This comparison runs on your device, and the warnings it produces are not saved to your account. Your preferences themselves are stored on your device and with Supabase, as described below.
- Account and service records linked to the information above. Your account identifier, scan and job records (including the notification token for a scan, if you allow notifications), purchase and credit records, and free-scan eligibility records can link the information above to you. We use them to provide the features you request, deliver results, manage credits, and prevent repeated claims of the free scan. Our service also keeps scan-failure records and technical logs linked to your account or scan, so that we can operate the service and fix problems. The app does not collect GPS location, and we do not use IP addresses to determine your location; our providers' servers see your IP address when the app connects to them.
- Health information in messages you send us. If you include health information in an email to us, including one you start from the app, we receive it with your contact details and use it to answer your message or request.
MenuVision does not use usage analytics in the released app. We do not deliberately attach your MenuVision account ID to the crash and error reports described below.
Where the Information Comes From
- You: the preferences and custom entries you choose to save, your consent choice, the menu photos you submit, the actions you take in the app, and the messages and requests you send us.
- Your device and your use of the service: account, notification, purchase-verification, free-scan eligibility, scan-failure, and crash and error information generated while you use the app.
- Our analysis provider: the dish names, menu text, and ingredient estimates generated from your menu photos, and the explanations generated for dish and ingredient names.
- The app itself: the comparisons between menu results and your preferences, including possible-conflict warnings and filtered results.
Who Receives Health-Related Information
The categories of consumer health data we share, and why:
- Your saved preferences and your consent record go to Supabase, which stores them for us. Basis: your consent. The app's features never send them to OpenAI, Sentry, Apple, Expo, or Google. The one exception is a copy of your data that you ask us for: if we deliver it through Google Drive, Google handles that copy, as described below.
- Menu photos and the dish text read from them go to Supabase, which stores them, and to OpenAI, which analyzes them. Basis: necessary to provide the menu analysis you request. Before your first scan, the app also asks your permission to send them to OpenAI.
- Notification delivery information goes to Expo and Apple: your notification token, a fixed message that your scan is ready, and random menu and scan identifiers. It contains no restaurant name, dish text, or preferences, but it can be linked to your use of MenuVision. Basis: necessary to deliver the notifications you allow.
- App update information goes to Expo, which delivers app updates: an installation identifier, the app and update versions, and, if the app has stopped because of an error, a short description of that error. Basis: necessary to keep the app you use working and up to date.
- Health information you include in a message to us goes to Google to route and handle our support email, as described below. Our current support mailbox is Google Workspace and uses written data processing terms; messages to the former support address still pass through the legacy consumer-mail service. Basis: necessary to answer your message or request.
- Crash and error diagnostics, which can describe the part of the app or the scan that failed, go to Sentry. Basis: necessary to keep the service you use working.
What each recipient receives depends on the features you use:
- Hosting, storage, and authentication (Supabase): Supabase stores and processes your account, your saved preferences and consent record, your menu photos, the menu information extracted from them, your saved menus, scan jobs, scan-failure records and logs, and related service records. Menu photos are currently stored in a publicly readable location so that our analysis service can retrieve them: anyone who has a photo's link can view it without signing in. Avoid including people or other personal details in menu photos.
- Menu analysis (OpenAI): OpenAI receives your menu photos and the dish text read from them, including names, descriptions, sections, and categories, to identify dishes and estimate ingredients. Dish and ingredient names, and sometimes the menu's description of a dish, are also sent to write explanations. We do not send your account identifier or your saved allergies, diet, or other preferences to OpenAI. A photo or its text can still contain health information that you included, and can identify you. OpenAI keeps or deletes this data under its own API data terms; we do not promise that OpenAI retains nothing.
- Sign-in, payments, free-scan eligibility, and notifications (Apple): Apple receives what is needed for the Apple features you use: Sign in with Apple, App Store purchases, the device check that limits the free scan to one per iPhone, and push notification delivery. A notification that your scan is ready carries a fixed message, never anything read from your menu. These features do not send your saved allergies, diet, or other preferences. Apple also has its own obligations for its records of these services, such as your purchases.
- Notifications and app updates (Expo): Expo routes scan-ready notifications to Apple. Each notification carries your notification token, a fixed message that your scan is ready, and random menu and scan identifiers; it never contains a restaurant name, dish text, or your saved preferences. When notifications are on, the app gets its notification token from Expo, which sends Expo device and app identifiers and your device's push token. The app also uses Expo to check for and download app updates, sending an installation identifier, the app and update versions, and, if the app has stopped because of an error, a short description of that error. Expo also sees network information, such as your IP address, when the app connects. This information can be linked to your installation of MenuVision.
- Optional sign-in (Google): Google handles Google sign-in if you choose it, in its own role.
- Crash and error reports (Sentry): Sentry receives reports of crashes and errors, with information about the app, the device model and system version, and the part of the app involved. The released app does not deliberately attach your MenuVision account ID to these reports, and Sentry's software can assign an identifier to the app installation. Before a JavaScript error report is sent, the app limits its fields and filters common identifiers and sensitive text; native crash reports are processed separately. A report can still describe the operation that failed. We do not collect performance traces; crash diagnostics can include reports that the app stopped responding or was terminated by iOS. Sentry keeps these reports for 30 days.
- Support email (Google): our support and privacy-request mailbox is provided by Google Workspace, which processes your message and anything you choose to include for us under written data processing terms. If we deliver a data export you asked for through our Google Workspace Drive, Google processes that export, and the information used to share it with you, under the same terms. Messages sent to our former support address still pass through consumer Gmail under Google's own service terms before any forwarding into Workspace; the Workspace agreement does not describe that earlier handling.
- Other MenuVision users: dish and ingredient names read from menus may be added, with the explanations we write for them, to a shared dictionary that every user's scans draw on. The dictionary has no link to your account or to the menu a name came from, and it does not contain your preferences. Names that include diet or health words are never added; only names made of common food words are. Any other name is explained for your scan only. If you believe an entry contains your information, contact us and we will remove it.
Supabase, OpenAI, Sentry, and Google (for our Google Workspace support mailbox and Workspace file sharing) process this information for us only under written terms that limit them to providing their services to us. Expo handles what it receives under its own service terms and privacy policy, not under a data processing agreement with us. Apple, and Google for Google sign-in and the legacy consumer-mail service, also have their own obligations for the services they provide in their own roles.
If you used a test version of the app before its public release, it may also have sent account-linked usage events to Mixpanel, an analytics provider, and crash reports with your account identifier to Sentry. You can ask us to access or delete that information.
MenuVision has no affiliates. We do not sell consumer health data. We do not use geofences around health care facilities or anywhere else.
How We Protect Health Data
We limit access to consumer health data to what the service needs, and use administrative, technical, and physical safeguards to protect it. Each account can read only its own saved data, the app connects to our service over HTTPS, our hosting provider's data centers are physically secured, and within MenuVision only its operator can view the service's records. No method of storage or transmission is completely secure.
Your App Controls
- Preferences: before you save any preferences, the app asks whether to use them for personalized warnings. You can agree and choose preferences, or continue without preferences and still scan menus and read general dish information. If you saved preferences before the app asked, it asks once whether to keep using them or delete them.
- Withdrawing consent: tap Withdraw and delete my preferences in Settings > Privacy > Personalized warnings and preferences, or in Settings > Your Preferences. Personalized warnings stop on this device at once. The app deletes your saved allergies, custom allergy entries, diet, religious diets, and dislikes from your account and from this device, and records the withdrawal. If the deletion cannot finish, for example without a connection, the app says so, keeps personalized warnings off, and tries again. Your other devices stop using your preferences after their next successful check with our service, which happens when the app is opened or brought back on screen. Your account, credits, and menu history stay. Turning personalized warnings back on asks for your agreement again.
- Editing and deleting: change your preferences and warning settings, or delete your account, in Settings; delete individual menus from History.
- Photo sharing with OpenAI: before your first scan, the app asks your permission to send menu photos and the dish text read from them to OpenAI. Settings > Privacy > Photo sharing with OpenAI > Withdraw removes that permission on this device, so the next scan asks again. It does not erase photos or results already processed, and it does not cancel a scan already submitted.
- Privacy requests: Settings > Privacy > Privacy request opens an email to us, for access, deletion, withdrawal, or an appeal.
- Crash reports: there is no in-app setting for crash and error reports.
These controls do not cover every right. You can use the request method below for access, withdrawal, deletion, or the list of recipients, including information held by providers.
Your Washington Health Data Rights
You have the right to:
- Confirm whether we collect, share, or sell your consumer health data, and access that data.
- Receive a list of all third parties and affiliates with which we have shared or sold your consumer health data, with an active email address or other online way to contact each of them.
- Withdraw consent to our collection and sharing of your consumer health data.
- Have your consumer health data deleted, including notice to the processors and other third parties that received it so that they also delete it.
- Appeal a decision not to act on your request.
To make a request, email support@menuvisionapp.com, or use Settings > Privacy > Privacy request in the app, and tell us which right you want to use. "Health data request" is a useful subject line, but it is not required. Please do not send passwords, identity documents, or a detailed medical history. To confirm that a request is about your data, we may send a one-time code to the email address on your account and ask you to reply with it. You do not have to create a new account to make a request.
We respond without undue delay and within 45 days of receiving your request. Confirming your identity does not restart that period. When reasonably necessary, we may take one additional 45 days, and if we do, we tell you why within the first 45 days. We answer requests free of charge at least twice a year; the law allows a reasonable fee or a refusal only for requests that are manifestly unfounded, excessive, or repetitive.
When we answer a request to access your data, we also give you the list of every third party and affiliate with which we have shared it, with an email address or other online way to contact each of them.
If we decline to act on a request, you can appeal by replying to our decision or by emailing the same address with your request and why you think it should be reconsidered. "Health data appeal" is a useful subject line. We give you a written decision and our reasons within 45 days of receiving your appeal. If we deny the appeal, we tell you how to contact the Washington Attorney General.
We do not discriminate against you for using these rights. Removing information that a feature needs can stop that feature from working: for example, personalized allergy warnings need your allergy preferences. Removing your preferences never takes away credits you bought.
Deletion and Retained Copies
Deleting a saved menu from History removes its saved record and attempts to remove its photos; that cleanup can fail and leave a photo. It does not by itself remove the scan's job record, which is deleted with your account.
Photos from a scan that does not produce a saved menu (it fails, you cancel it, or it can't start) are not added to your history. They may be deleted automatically when the scan ends, or remain stored until you delete your account; this cleanup is best effort.
Account deletion attempts to revoke stored Apple sign-in authorization and remove uploaded photos before deleting your account and linked records, including preferences, saved menus and stored Apple sign-in tokens. If required Apple revocation or photo removal fails, your account is kept so deletion can be retried. Purchase and credit-history records linked to your account are deleted with it, except the limited purchase-claim and Apple refund records described below. The app's deletion steps do not by themselves confirm completion of deletion from every provider or backup.
TestFlight rollout notice: The automatic deletion-request record and its 37-day retention described below take effect once our server rollout is verified. Until then, the deletion service used by current TestFlight builds may not create that record. For a tracked deletion request or follow-up with the services that hold your data during this transition, email support@menuvisionapp.com.
Deleting your account in the app is a complete deletion request: you do not need to email us as well. When you ask, we first record the request: your account's identifier, the email address on the account, when you asked, and whether and when the deletion finished. It also keeps, from your scans, when your first and last scans were, how many there were, and whether a notification token was found on them (never the photos, the menus or the token itself), so that we can work out which services may still hold your data and ask them to delete it. If our database cannot record a request when it arrives, the app says the account could not be deleted and nothing is deleted; we find that request in our server logs and follow it up by email. If the deletion cannot finish and you do not try again, we follow up by email. Once your account is deleted, we use the email address to delete your support emails and any data export we sent you, and to tell you the deletion is complete. The record also lets us apply the deletion again if our database is ever restored from a backup. We keep the email address only until we finish your request, and we delete the record 37 days after your account is deleted, or 37 days after your last attempt if the deletion did not finish.
Supabase keeps automated backups of our database for 7 days and then deletes them. Before a backup is ever used to restore our database, we apply again every account deletion, and every decision to decline or withdraw consent to use your preferences, recorded since that backup was made, so a deleted account is not restored and withdrawn preferences are not used again. If our live database were ever lost entirely, choices made after the last backup could not be applied again this way; we would tell the people affected wherever we can identify them. Database backups do not include stored photos, so a deleted photo is not brought back by a restore. Deletion from archived or backup systems may be delayed only as the law allows, no longer than six months after we verify that the request is yours.
When you ask us to delete your data, in the app or by email, we delete it from our records, including those Supabase stores for us, and we notify each other processor and third party that holds data we can link to your account, asking them to delete it. OpenAI's copies of your photos and menu text follow OpenAI's API data terms; they do not carry your MenuVision account ID, though a photo or its text can still identify you. Sentry keeps crash reports for 30 days. We delete support emails you sent us once your question or request is closed. These technical limits do not reduce your deletion rights.
Some limited records remain after account deletion. Their link to your account is cleared, but they can remain linkable to you and are not anonymous:
- Purchase claims: one record for each App Store purchase, with its Apple transaction identifier, kept to prevent the same purchase from being credited twice and to keep financial records.
- Apple refund records: records of Apple's refund notices, with Apple transaction identifiers, kept to reconcile refunds and keep financial records.
- Free-scan record: a one-way hash of your device's token, kept to prevent repeated free-scan claims.
- Deletion request record: your account's identifier, the times of your request, and the dates and number of your scans and whether a notification token was found on them, with the email address on the account until we finish your request, kept for 37 days as described above. (This record starts once our server rollout is verified; see the TestFlight rollout notice above.)
- Shared dictionary entries: dish and ingredient names from menus you scanned, with their explanations, which have no link to your account. We remove any entry you show us contains your information.
Where any of these records is consumer health data, it stays subject to the deletion rules above unless a specific legal exception allows us to keep it.
If you would like your preferences deleted without deleting your account, use Withdraw and delete my preferences in Settings, or email us.
Children's Privacy
MenuVision is not intended for children under 13. We do not knowingly collect personal information, including consumer health data, from children under 13. If you believe we have collected such information, contact us so we can investigate and address it.
Changes and Contact
Before we collect additional categories of consumer health data, use it for additional purposes, or share it with additional categories of recipients, we update this policy and ask for your affirmative consent. When this policy changes, we post the new version with its effective date.
For health-data questions, requests, or appeals, email support@menuvisionapp.com.
See the Nevada and Connecticut Health Data Supplement for those states' additional health-data disclosures and rights. The general Privacy Policy describes MenuVision's other personal information practices.