Menuva Privacy Policy

Menuva 隐私政策

Effective date: 22 March 2026 · Last updated: 20 April 2026

This Privacy Policy is provided in accordance with the UK General Data Protection Regulation (UK GDPR) and the Data Protection Act 2018 (DPA 2018). It explains how Menuva handles personal data when you use the Menuva iOS app (the "App") and the Menuva web pages we operate (the "Website") (together, the "Service"). Menuva is designed to be accountless and data-minimising, but some information (especially location data, analytics event data, and online identifiers) can still be personal data under UK GDPR. This policy should be read alongside our Terms & Conditions, Cookie Policy, and Complaints Procedure.

Key points:

  • we do not transmit raw latitude/longitude off-device (both the App and the Website process location on-device only)
  • both the App and the Website use analytics for usage measurement
  • analytics does not log free-text search queries, specific dietary or allergen selections, or allergen severity
  • customization identifiers are hashed so analytics cannot identify specific menu choices
  • ad tracking features (ad storage, ad user data, ad personalization) are disabled by default

1.1 Controller. Duke DJ Saputra (student-led project, "Menuva").

1.2 Email. hello@menuva.co.uk.

1.3 Address. Warwick Business School, University of Warwick, Scarman Rd, Coventry CV4 7AL, United Kingdom.

1.4 If you contact us by email, we process the information you include to respond.

1.5 We have assessed that we are not required to appoint a Data Protection Officer under Article 37 of the UK GDPR. For privacy enquiries, contact hello@menuva.co.uk.

2.1 Menuva is intended for users in the United Kingdom. If you use the Service elsewhere, this policy still applies, and our service providers may process data internationally (see Section 8).

3.0.1 Where a feature is specific to one platform, it is marked "(App only)" or "(Website only)." The main differences are: the App uses device location for venue discovery and the Website uses device location for the optional "Sort by Distance" toggle on the menus page (both on-device only); the App stores dietary preferences on-device; both the App and Website offer analytics opt-out toggles; and the App and Website use different technologies for abuse prevention (see Section 6.A.3).

A. Precise location (App and Website, foreground)

3.A.1 If you grant location permission (iOS "When In Use" in the App, or browser geolocation permission on the Website's menus page), precise location is read on your device to:

  • show nearby venues and determine which venue's menus to load (App), and
  • re-order the menu list by distance when you enable the "Sort by Distance" toggle (Website).

3.A.2 How it works.

  • In the App, location updates may run continuously while the App is in the foreground on relevant screens (for example, home/map).
  • On the Website, the browser geolocation API is called only when you tap "Sort by Distance" (and silently on subsequent visits if you previously enabled the toggle). No continuous updates.
  • Distance calculations happen locally on your device on both platforms.
  • The App may cache your last known location and city on-device only (for example, via iOS local storage) for faster loading and fallback behavior. The Website persists only a single boolean flag (whether "Sort by Distance" is on) in browser localStorage; it does not cache coordinates.

3.A.3 What we do not do.

  • We do not transmit raw latitude/longitude off-device (App or Website).
  • We do not intentionally store your precise location in our databases.
  • In the App, analytics receives only a boolean flag (has_location true/false) and the venue identifier (restaurant slug), never coordinates. On the Website, analytics for the "Sort by Distance" toggle records only the toggle state (on/off) and, on failure, the browser's error code and a short truncated error message; coordinates are never sent.

3.A.4 You can disable location access at any time in iOS settings (App) or in your browser's site permissions (Website). If you deny or revoke location access, manual venue selection and alphabetical ordering remain available on both platforms.

B. Dietary and allergen preferences (on-device)

3.B.1 If you set dietary or allergen preferences in the App, they are stored on-device only and are not synced to our servers. Analytics events for dietary and allergen configuration log only whether the change was made during onboarding or in settings (is_settings_mode). Specific selections are never sent.

C. Analytics (App and Website)

3.C.1 The App uses Firebase Analytics and the Website uses Google Analytics (GA4) to understand usage and improve the Service. Both are provided by Google. The App disables automatic screen reporting and uses manual tracking only.

3.C.2 Categories of events we collect. Analytics events fall into the following categories:

  • Navigation and discovery: opening menus, using the map, enabling location, starting a search, and navigating between screens.
  • Menu browsing: viewing item lists, selecting items, opening item details, scrolling through categories, and toggling subsections.
  • Engagement metrics: time spent on each screen (screen dwell), time spent on each menu category (category dwell), and scroll depth percentages (25/50/75/100%) per category.
  • E-commerce funnel (standard GA4 events): view_item_list, select_item, view_item, add_to_cart, remove_from_cart, and view_cart.
  • Order review: opening the order summary, clearing the basket, and toggling the order language.
  • Settings and preferences: opening settings screens, configuring personalization, and changing language or currency.
  • Onboarding: completion of each onboarding step (App only).

3.C.3 Event parameters. Events include contextual parameters such as:

  • venue identifiers (restaurant slug, location ID),
  • boolean flags (for example, has_location, is_open, is_nearest_venue, has_items_in_basket),
  • counts (for example, basket count, search result count, filter count),
  • currency codes and price values in minor units (for e-commerce funnel analysis),
  • static screen and category names,
  • time values (dwell seconds), and
  • scroll depth percentages.

3.C.4 User properties. The App syncs eight display and locale preferences to analytics as user properties: preferred language, preferred currency, appearance mode, energy unit, and four display toggles (show converted prices, always translate, show menu images, show descriptions). These are preference settings only and do not include dietary or health data.

3.C.5 Screen and page tracking. The App tracks 12 screens with static screen names (for example, "home", "menu", "profile") and dynamic context as custom parameters (for example, restaurant_slug on the menu screen). The Website tracks page views with page path and referrer.

3.C.6 Privacy protections in analytics.

  • Free-text search queries are never logged. Search events send only the result count.
  • Dietary and allergen configuration events log only is_settings_mode (a boolean indicating onboarding vs. settings). Specific dietary or allergen selections are never sent.
  • Allergen subsection interactions log only the subsection identifier and whether it was expanded or collapsed. Severity information is not included.
  • Menu customization identifiers (customization and option IDs) are hashed using Fowler-Noll-Vo 1a (FNV-1a) to opaque values before being sent to analytics. The original names cannot be recovered from analytics data alone.
  • Location data in analytics is limited to a boolean flag (has_location) and venue identifiers (restaurant slug). Coordinates are never sent.
  • No personal identifiers, names, or email addresses are included in analytics events. We do not set a custom user ID in analytics.

3.C.7 Device and technical data. Firebase Analytics and Google Analytics process device and app information and identifiers used for measurement (for example, an app-instance identifier), plus technical data that may be processed by the analytics provider to deliver the service securely and reliably (such as IP address and request metadata).

3.C.8 Ad features. Ad storage, ad user data, and ad personalization are all disabled by default in both the App and the Website. We do not collect the advertising identifier (IDFA), do not use tracking based on App Tracking Transparency (ATT), and do not use analytics for cross-app or cross-site advertising.

3.C.9 Outbound link tracking. When you click a link to an external website, the link URL and link text (up to 100 characters) are recorded in analytics to understand which external resources are useful.

D. Feedback (optional, Website)

3.D.1 If you submit feedback at menuva.co.uk/feedback, your submission may include:

  • your responses, and
  • optional contact details (only if you choose to provide them).

3.D.2 If you include contact details, they are personal data.

E. Technical and network data (Service delivery)

3.E.1 When your device or browser connects to Firebase/Google infrastructure to fetch menus and images, technical data such as IP address and request metadata may be processed by service providers to deliver content, maintain security, and prevent abuse.

3.E.2 The App connects to our servers to check for service announcements (such as maintenance notices or new feature alerts). No personal data beyond the technical data described in Section 3.E.1 is sent in these requests.

F. Website analytics (Google Analytics)

3.F.1 The Website runs Google Analytics (GA4) to measure page views and menu interactions. The Website collects a subset of the analytics events described in Section 3.C above. Features that are specific to the App (such as onboarding, map interactions, and on-device preferences) are not collected on the Website.

3.F.2 GitHub Pages (our hosting provider, operated by GitHub, Inc., a subsidiary of Microsoft Corporation) may also process technical log data (IP address and request metadata) to deliver the Website securely.

3.F.3 Website-specific events. On the Website, we additionally track: page views and content views (with referrer URL), redirect page visits for marketing attribution (which QR codes and campaigns drive traffic, including UTM parameters), 404 error page hits, outbound link clicks (as described in Section 3.C.9), menu scroll depth, and the "Sort by Distance" toggle events on the menus page (toggle state on/off; on failure, the browser's error code and a short truncated error message - never coordinates). We do not log search queries, dietary or allergen filter selections, or any personal identifiers.

G. Cookies and similar technologies

3.G.1 We use the following technologies to store or access information on your device:

  • Google Analytics cookies (_ga, _ga_*): set by Google to distinguish unique users and maintain session state. These are analytics cookies and require your consent or opt-out acknowledgement.
  • Google reCAPTCHA cookie (_GRECAPTCHA): set by Google reCAPTCHA v3 on the menus page for bot detection and security. reCAPTCHA also analyses browser behaviour and device signals beyond the cookie itself (see Section 6.A.3). We treat this as strictly necessary for protecting our backend services from abuse. From April 2026, Menuva is the data controller for reCAPTCHA data processed on the Website.
  • Local storage: We store language preference, analytics opt-out choice, cached menu data, and cached page content in your browser's localStorage for performance and functionality. These do not track you and are strictly necessary for the Service to function.

3.G.2 The legal basis for storing analytics cookies on your device is the statistical analysis exception under the Privacy and Electronic Communications (EC Directive) Regulations 2003 (PECR), Schedule A1, paragraph 5 (inserted by the Data (Use and Access) Act 2025, s.112). The legal basis for processing the resulting analytics data under the UK GDPR is legitimate interests (Article 6(1)(f)). See Section 5 below.

3.G.3 For a full list of technologies used, see our Cookie Policy.

3.G.4 Under the DUAA 2025 statistical analysis exception, we confirm that: (a) analytics cookies are used solely for statistical measurement to improve the Service; (b) the resulting information is aggregate and cannot be used to identify individuals; (c) analytics data is not shared with third parties except Google as our analytics provider assisting with service improvements; and (d) Google's data sharing for products and services is disabled in our analytics configuration. You may opt out of analytics at any time using the toggle in the website footer.

H. On-device browser storage

3.H.1 We store the following in your browser's local storage for functionality and performance: your language preference, your analytics opt-out choice, cached menu data and page content (to reduce loading times), whether you have dismissed the ordering disclaimer, and whether you have enabled the "Sort by Distance" toggle on the menus page (a single on/off flag, no coordinates). A temporary navigation hint is stored in sessionStorage and is automatically cleared when you close the browser tab.

3.H.2 None of this data is transmitted to our servers or shared with third parties. It is deleted when you clear your browser data.

I. Consent records (App only)

3.I.1 When you accept these Terms and our Privacy Policy in the App, we record the date and time of your acceptance, your device model, operating system version, and app version. This record is currently stored only on your device. We may in future transmit consent records to our servers to maintain auditable records of consent as required by data protection law. We will update this policy before doing so.

J. Currency conversion (App only)

3.J.1 The App fetches current exchange rates from ExchangeRate-API (exchangerate-api.com) to display prices in your preferred currency. Only the requested base currency code is sent. Your IP address is transmitted as part of the network request. Responses are cached on your device for up to 7 days to minimise external requests.

4.1 Across both the App and the Website:

  • no account registration, and no sign-in,
  • no names, emails, or phone numbers unless you voluntarily provide them via feedback or email,
  • no free-text search queries in analytics (only result counts),
  • no specific dietary or allergen selections in analytics (only a boolean flag),
  • no allergen severity information in analytics,
  • no advertising identifier (IDFA) collection, and no ATT-based tracking, and
  • no cross-app or cross-site tracking for advertising.

UK GDPR requires a lawful basis for processing.

PurposeDataLawful basis
Provide nearby venue discovery, load correct menus, and optionally sort the menus page by distancePrecise location (on-device; App and Website)Consent (you enable iOS location permission in the App, or browser geolocation permission on the Website)
Provide the Service reliably and securelyTechnical/network data handled by providersLegitimate interests (operate a secure, reliable service)
Understand usage and improve the ServiceAnalytics event data (App and Website)Legitimate interests (product improvement and pilot evaluation)
Measure menu browsing and order patternsE-commerce funnel events, engagement metricsLegitimate interests (product improvement)
Receive and respond to feedbackFeedback content; optional contact detailsConsent (you choose what to submit) and/or legitimate interests (improving the Service)
Maintain auditable consent recordsConsent event data (App only)Legitimate interests (UK GDPR Art. 7(1) record-keeping)
Display prices in your preferred currencyIP address (transmitted to API), currency codeLegitimate interests (providing the currency conversion feature you request)

5.2 Balancing test. We have assessed that our legitimate interests in understanding usage patterns for product improvement do not override your rights, given that: analytics data is pseudonymous and does not include personal identifiers; IP addresses are anonymised; you can opt out at any time via the website footer toggle; and we have disabled Google's data sharing features. Our full Legitimate Interests Assessment is documented internally and available on request.

You can withdraw consent for location processing at any time by disabling location permissions in iOS settings (App) or in your browser's site permissions (Website), or by turning off the "Sort by Distance" toggle on the menus page.

To opt out of analytics on the website, use the analytics toggle in the footer or visit our Cookie Policy. Once opted out, no analytics data will be collected on future visits.

6.1 We share data only as needed to run the Service.

A. Google Firebase / Google Cloud / Google Analytics

6.A.1 We use Google services:

  • Firebase Storage (menus and images delivery),
  • Firebase Firestore (read-only menu metadata),
  • Firebase Analytics (App usage analytics),
  • Google Analytics / GA4 (Website usage analytics),
  • Firebase App Check (abuse prevention; see Section 6.A.3).

6.A.2 Google processes data as needed to provide and secure these services.

6.A.3 Firebase App Check. We use Firebase App Check to verify that requests to our backend come from genuine instances of the Menuva app or website, preventing automated abuse.

  • On iOS: App Check uses Apple's App Attest, which generates cryptographic device attestation tokens verified by Firebase. These tokens are unique per app installation (not backed up, not synced across devices) and contain no hardware identifiers. Tokens may be retained by Firebase for up to 30 days when replay protection is used.
  • On the Website: App Check uses Google reCAPTCHA v3. reCAPTCHA analyses browser behaviour and device signals (including mouse movement, scroll behaviour, keystroke dynamics, browser fingerprint, and IP address reputation) to verify that requests come from genuine users. See Google's Privacy Policy and reCAPTCHA Terms of Service.

B. Google Forms (feedback)

6.B.1 If you submit feedback via Google Forms, Google processes that submission as the form provider.

C. Apple

6.C.1 Apple processes App Store distribution and provides developers with aggregated App Store metrics.

D. Participating venues (aggregated only)

6.D.1 We may share aggregated pilot reporting with participating venues. We do not share precise location data or per-device analytics.

6.D.2 As of the "Last updated" date, venue partners do not have access to our analytics dashboards. If we enable partner access in the future, we will update this policy first (see Section 12).

6.D.3 We do not sell personal data.

6.2 Sub-processors. Google LLC (Google Analytics / GA4, Firebase Firestore, Firebase Storage, Firebase App Check, Google reCAPTCHA v3, Google Forms), Apple Inc. (App Store Connect analytics), GitHub, Inc. (Microsoft Corporation) (Website hosting via GitHub Pages), ExchangeRate-API (exchangerate-api.com - currency conversion rates). We will update this list if we add or change sub-processors.

7.1 We keep data only as long as needed:

  • Precise location: used on-device on both the App and Website; not stored in our databases. The App may cache the last known location/city on-device until you delete the App or reset preferences. The Website stores only a "Sort by Distance" on/off preference flag in browser localStorage, and no coordinates.
  • On-device preferences and caches: stored locally until you delete the App or clear browser data
  • Analytics (Firebase/GA4): retained for 14 months (per our current analytics retention configuration)
  • Feedback submissions (Google Forms): we periodically review feedback and delete or anonymize it when no longer needed, typically within 24 months, unless we need to keep it longer to resolve issues or for legitimate record-keeping
  • Service-provider logs: may exist within third-party infrastructure for security and operational reasons and are retained per provider configuration

8.1 Our service providers may process data outside the UK, primarily in the United States:

  • Google LLC (Analytics, Firebase, reCAPTCHA, Google Forms): Google is certified under the UK Extension to the EU-US Data Privacy Framework. Google's Data Processing Terms also include UK Standard Contractual Clauses as a fallback mechanism.
  • Apple Inc. (App Store distribution, aggregated metrics): transfers are protected by Standard Contractual Clauses.
  • GitHub, Inc. (Microsoft Corporation) (Website hosting via GitHub Pages): GitHub participates in the UK Extension to the EU-US Data Privacy Framework. GitHub's Data Protection Agreement also includes Standard Contractual Clauses.
  • ExchangeRate-API (exchangerate-api.com): currency conversion rates.

9.1 We use reasonable technical and organizational measures to protect data, including encryption in transit and at rest where supported, and restricted administrative access.

10.1 The Service is intended for users aged 13+. We do not knowingly collect personal data from children under 13. The App does not currently implement age verification.

10.2 For young users and parents. Menuva is designed to be used by anyone aged 13 and over. If you are under 18, please ask a parent or guardian to read this policy with you. In simple terms: we count how many people use Menuva to help us improve it, but we don't know who you are, we don't store your name or email, and we don't share your information with advertisers. You can stop analytics at any time by using the analytics toggle in the footer.

11.1 Depending on your circumstances, you may have the following rights under the UK GDPR: access (Art. 15), rectification (Art. 16), erasure (Art. 17), restriction of processing (Art. 18), data portability (Art. 20), and objection (Art. 21). You also have the right to lodge a complaint with the Information Commissioner's Office (ICO): website ico.org.uk, phone 0303 123 1113, address Wycliffe House, Water Lane, Wilmslow, Cheshire SK9 5AF.

11.2 Article 11: identification not required. Because the Service does not require identification of data subjects, we may be unable to identify your personal data in our analytics systems. Under UK GDPR Article 11, we are not required to process additional information solely to identify you. If you contact us to exercise your rights, please provide any information that could help us locate your data (for example, the email address you used to submit feedback or the approximate date of your correspondence). Where we cannot identify your data, we will explain why and what steps you can take.

11.3 Exercising your rights. To exercise any right, email hello@menuva.co.uk with the subject line "Data Request." We will respond within one calendar month.

11.4 Objecting to analytics. You can object to analytics processing at any time. On the Website, use the analytics toggle in the footer or visit our Cookie Policy. On the App, use the Analytics toggle in Settings to disable analytics collection. Because analytics is not tied to an account identity, we generally cannot locate or delete past analytics records associated with a specific person.

11.5 Automated decision-making. We do not use your data for automated decision-making or profiling that produces legal or similarly significant effects.

11.6 Provision of data. Providing personal data is not a statutory or contractual requirement. The Service functions fully without analytics. You may opt out at any time.

11.7 Data breach notification. In the event of a personal data breach, we will notify the ICO within 72 hours where required under UK GDPR Article 33 and inform affected individuals without undue delay where there is a high risk to their rights and freedoms (Article 34). Where a breach involves data subject to the Privacy and Electronic Communications Regulations 2003 (PECR), we will also comply with the PECR breach notification requirements.

12.1 If we change how we process data (for example, adding new analytics events or SDKs, introducing user accounts, changing analytics retention settings, or expanding who can access analytics dashboards), we will update this policy and, where appropriate, provide in-app or Website notice. Apple also requires keeping App Privacy disclosures accurate.

12.2 Version history.

DateSummary
20 April 2026Disclosed the new Website "Sort by Distance" toggle on the menus page: location is read via browser geolocation, processed on-device only, never transmitted off-device; only an on/off preference flag is stored in browser localStorage; analytics records toggle state and (on failure) error code and short error message, never coordinates.
22 March 2026Added cookie/tracking disclosures, sub-processor list, international transfer details, DUAA statistical exception conditions, expanded children's section, data breach notification, automated decision-making statement, data subject rights reframed under Art. 11, analytics opt-out mechanism, PECR breach notification reference, platform differences summary.
12 January 2026Initial version.

14.1 For complaints about how we handle your data, see our Complaints Procedure, which also explains how to escalate to the ICO under UK GDPR Article 77.