Recent updates
- 2026-05-09 (v1.11.0): Manifest gains the
alarmspermission. The alarm only schedules a daily local maintenance sweep (prunes stale selector-health and diagnostics-ring entries). No new data is collected, transmitted, or shared. v1.7.0–v1.10.0 shipped security hardening (sender-trust on the page-fetch bridge, post-redirect URL re-validation, per-window token bucket) but introduced no new data surfaces. - 2026-05-06 (v1.6.0): No new local-storage surfaces; clarification of existing diagnostics-ring privacy contract. Tooltip "Report wrong data" link now functional.
- 2026-05-06 (v1.5.0): Privacy-policy URL strip centralized at the diagnostics-ring boundary so origin+pathname is the only URL shape ever recorded. Cross-tab cache merge now structurally validated.
- 2026-04-2x (v1.4.x): Added latency histogram (per-bucket scan→first-badge counts), service-worker startup counter, and per-site selector-health telemetry — all stored locally; never transmitted.
Overview
Sugar Tracker - UK Grocers ("the Extension") is a browser extension that displays nutritional sugar, salt, saturates, and calories content information on UK grocery websites. This privacy policy explains how we handle your data.
Data Collection
The Extension operates entirely within your browser and does not transmit any information to external servers owned or operated by us.
Data Storage
The Extension stores the following data in Chrome's built-in storage APIs on your device:
- Cached Nutrition Data: Nutrition values (sugar, salt, saturates, calories) for products you've viewed, stored in
chrome.storage.localto improve performance and reduce repeated page loads. Each entry carries a small schema-version stamp so a future update can discard incompatible shapes cleanly. - User Preferences: Your settings such as whether the extension is enabled, which nutrients to display, and your chosen colour theme, stored in
chrome.storage.sync. - Technical Diagnostics: A small, capped ring buffer of the most recent extension errors and rate-limit events (origin and pathname only — no query strings, no cookies, no personal content), stored in
chrome.storage.localunder a dedicated key. This is what the “Copy Diagnostics” button in the popup footer exports for you to paste into a bug report. The ring never transmits on its own. - Selector-Health Telemetry: A per-site tally of which CSS selector matched each product container, stored locally so the popup can show a “Needs review” chip when a grocer's page layout drifts. No product URLs or content are stored with this.
- Viewed-Product Record: A list of identifiers for products you have already seen on the supported grocers, stored in
chrome.storage.localand capped at 5,000 entries (oldest dropped first). Each identifier is the retailer's own product code where the page exposes one, otherwise a normalised product name, otherwise the product page's URL with any query string and fragment stripped. The extension uses it only to tell a product you have seen before from one you have not, so first-seen badge animations do not replay on every visit. It records which products, not when, how often, or in what order, and it never leaves your device.
This data:
- Never leaves your device unless you explicitly copy and share diagnostics
- Is not shared with any third parties
- Can be cleared by removing the extension or clearing the extension's local and sync storage
Website Access
The Extension requires access to the following websites to function:
- waitrose.com
- ocado.com
- sainsburys.co.uk
- tesco.com
- asda.com
- morrisons.com
- coop.co.uk
- iceland.co.uk
This access is used solely to:
- Read nutrition information from product pages
- Display sugar, salt, saturates, and calorie badges on product images
The Extension does not:
- See or record your browsing anywhere outside the eight grocery domains listed above — it has no access to any other site, so no other page you visit can be observed or stored
- Collect personal information — no name, email address, postal address, account, or payment details
- Transmit your shopping activity anywhere. The viewed-product record and nutrition cache described under Data Storage are written to your device and stay there; they are never uploaded to us or shared with any third party
- Build a profile of you, infer anything about your health, or use the viewed-product record for any purpose other than telling a product you have already seen from a new one
- Access any data outside of these specific grocery websites
For the same reason, the Extension's Chrome Web Store listing declares the Website content and Web history data categories. Google requires disclosure of data an extension handles “even when data is processed or stored locally on a user's device and is not transmitted to external servers or third parties”. Reading nutrition text from a retailer's page is website content, and the bounded viewed-product record is a local record of grocery product pages you have opened. Both stay on your device. The declaration describes what the Extension reads and stores; this policy describes what happens to it afterwards, which is nothing beyond your own browser.
Third-Party Services
The Extension does not use any third-party analytics, tracking, or advertising services.
Data Requests to Grocery Websites
When you browse grocery websites with the Extension enabled, it may make requests to those websites' pages or APIs to retrieve nutrition information. These requests:
- Are made directly from your browser and extension service worker
- Do not pass through our servers
- Are subject to the respective grocery website's privacy policy
Authenticated API Requests (Ocado, Sainsbury's)
Some retailers (currently Ocado and Sainsbury's) only expose complete nutrition data through JSON APIs that require an authenticated session. When the Extension cannot read nutrition values from the visible HTML, it falls back to these APIs and sends the retailer's own session cookies with the request — the same cookies your browser already sends when you navigate the site normally. Specifically:
- These requests are always GET (read-only). The Extension never writes cart data, submits orders, or modifies your account.
- Requests are only issued while you are actively browsing a supported grocer tab. Session cookies never leave the original retailer's origin.
- No cookies, session identifiers, or request bodies are ever sent to any third party or to servers we operate — there are no such servers.
- If you do not want authenticated fallback requests, you can either disable the Extension for a specific site via the popup, or sign out of Ocado / Sainsbury's before shopping — badges will still appear from the page HTML where possible.
Permissions Explained
| Permission | Purpose |
|---|---|
storage |
Store cached nutrition data locally and save extension settings in Chrome storage |
alarms |
Schedule a daily background sweep that prunes stale selector-health and diagnostics-ring entries from local storage. The alarm runs only on your device and never communicates externally. |
| Host permissions | Access the 8 supported grocery domains to read and display nutrition data |
Children's Privacy
The Extension does not knowingly collect any information from children under 13 years of age.
Changes to This Policy
We may update this privacy policy from time to time. Any changes will be reflected in the "Last Updated" date at the top of this policy.
Your Rights
Since we do not collect any personal data, there is no personal data to access, modify, or delete. You can remove all locally stored data by:
- Clearing the extension's local and sync storage
- Uninstalling the extension
Contact
If you have questions about this privacy policy, please use our feedback form.