GroceryPulse.ca
Prices in your cityCompare my groceriesHow it works
Explore⌄
Saved lists & alertsYour shopping lists, budget and price changes.Prices by productBrowse the 50 items and their price history.ShrinkflationUnderstand products with smaller packages.Unit price calculatorCompare your prices and the cost of whole packages.Cities & storesSee where prices are available.ResearchMethodologyRelease calendarIn the newsFor AI assistantsDated comparisons your personal assistant can check.About usHelp & contact
For business⌄
Use cases and samplesWhat retailers, brands and researchers receive.For grocersCheck local competitor prices.Food-basket dataPrice evidence for food-cost research.Data plansData catalogueAPI documentationWhitepaper
Sign in

Privacy Policy

Last updated: October 14, 2026

Overview

GroceryPulse.ca ("we", "our", "the site") publishes Canadian grocery-price research, consumer comparison tools, and licensed institutional data products. This policy explains what personal information we collect, why we collect it, and your choices.

Information We Collect

We collect only the information needed to provide the feature or service you request:

  • Email subscriptions and list updates: your email address, language, consent date and wording version, signup source, and, for list updates, the list you asked about (city, items and quantities, chosen stores and usual store) with its optional name, budget, comparison day, alert preferences and last comparison. Pending requests contain hashed confirmation tokens and keyed request identifiers for abuse prevention. Delivery records prevent duplicate messages and record whether a send completed or needs review.
  • Institutional evaluations: your work email, organization, role, stated use case, requested scope and delivery method, evaluation objective, target timing, and procurement needs.
  • Accounts and paid services: your account email and name, Stripe customer and subscription identifiers, access credentials, and service usage described below.
  • Web server logs: the time, network (IP) address, requested web address and browser or software name of each request to the site, kept for about five weeks at most, as described below.

We do not sell personal information.

Shopping Lists, Shared Links and Outcome Counts

The list comparison works without an account. If you choose Save on this device, your named lists (city, items, quantities, chosen stores and usual store), budget, shopping day, alert preferences and up to 12 comparison snapshots per list are kept in your browser's local storage. They are not sent to us. You can delete individual saved lists, use Forget saved list, or clear this site's data. Device lists do not synchronize to other browsers or accounts, and on-page alerts are checked when you visit.

When you choose Share this list, our server prepares a link that contains your city, items, quantities, chosen stores, usual store, and the date and store totals of the prices you saw, signed so they cannot be altered. The link contains no personal information, and anyone who has it can open it. We do not store the list. Your browser keeps a short, non-reversible fingerprint of the links you create, so that opening your own link is not counted as someone else using it.

We count, per day, how many comparisons, saved lists, shared links, shared lists opened and update requests occur. Each count is broken down only by the page the visit started from, a one-word discovery channel (for example search, social or direct) and language. The counts contain no identifier, no IP address, no list contents and no web addresses. To label the discovery channel, your browser keeps that one word in session storage until the tab is closed.

Public AI Connector and Comparison API

Our public AI connector (grocerypulse.ca/api/shopper/mcp) and comparison API (/api/shopper/catalog and /api/shopper/compare) let an AI assistant or other software compare grocery prices for you. They need no account, key or sign-in, and they cannot read account lists or any other account information.

A comparison request contains only a supported city, or a Canadian postal code of which we use only the first three characters to find the city; the items on the list, as catalogue numbers and quantities or as the text of the list; and optionally which grocery chains to compare and a language. Requests with any other field are refused. When an assistant connects, it also tells us the name and version of its software. A request carries no name, email address or account, and list text should not include personal details. When an assistant runs on its provider's servers, the request comes from those servers, so we see the provider's network address rather than yours, and the provider's own privacy policy covers your conversation with the assistant.

We use a request only to calculate the comparison returned in the same response. Apart from the web server log described below, we do not store requests or results, and we never use them for analytics, advertising, profiling or training AI models.

To prevent abuse, the service counts requests from each network address in one-minute windows. These counters hold only the address, a count and the time the count started, never a list or a query. They exist only in the server's memory, are discarded after they expire and are never saved.

Connector and API requests appear in the web server log like every other request. For connector requests, and API requests sent as POST, the log shows which service was called, not the list. An API request sent as GET carries the list in its web address, so the city, item numbers, quantities and chosen chains are recorded in the log with it. Developers who prefer that lists not be logged should send POST requests.

Premium Account Lists

Premium is an optional shopper subscription. Only when you explicitly save a list to your account do we store its name, city, items, quantities, selected stores, usual store and comparison preferences, including an optional budget. We keep up to 20 account lists and up to 52 eligible dated comparison summaries per list, calculated by our server from the public comparison data when you choose to save a comparison. We do not upload your entire device library or backfill a retailer price history.

Choosing to explore Premium temporarily keeps the selected list in this tab's session storage for up to 24 hours so you can finish signing in and checkout. List contents, names and budgets are not sent to Stripe or placed in login callback URLs. Account lists are visible only after verified sign-in; this workspace initializes no analytics or advertising. The public AI connector cannot access your private library.

Device copies and account copies are independent. You can export or delete retained account lists from your workspace, including after Premium ends. Ending a subscription stops new account saves at the end of paid access; it does not automatically delete retained lists. Deleting an account list does not delete a device copy or unsubscribe a separately confirmed list-email subscription. We retain necessary billing records separately from a deleted grocery list.

Email Subscriptions and List Updates

When you explicitly opt in, we use your email to send the updates you asked for: changes to one shopping list after a weekly price update. This form does not enroll you in the Thursday Grocery Pulse. We keep the signup source, consent wording version and time as a record of consent. The list you asked about is used only to calculate its updates, and each update links back to that list. A request remains pending until you confirm the exact list through the emailed link. Links expire after 48 hours and cannot be used twice. We do not use an unconfirmed request to enroll an address or change an existing subscription. If you choose grocery-assistant alerts, we also store the preferences you submit to decide when to compare the list and which changes to email. Editing or deleting a device list does not unsubscribe its separate email subscription; use the unsubscribe link in an email to stop delivery.

Every commercial email will identify GroceryPulse and provide a working unsubscribe mechanism. You may also withdraw consent by writing to privacy@grocerypulse.ca. If you unsubscribe, we retain the minimum suppression record needed to honour that choice and stop active list updates. We do not add evaluation contacts to this list unless they separately opt in. Permanent delivery rejections and unsubscribe choices stop further list emails. A later opt-out also invalidates older unconfirmed requests.

Institutional Evaluation Requests

Evaluation information is used to assess fit, prepare a relevant sample, respond to your request and, if both parties proceed, support contracting and onboarding. It is not sold or used to enrol you in consumer email campaigns. Access is restricted to authorized GroceryPulse administrators.

Web Server Logs

Our web server keeps an access log of every request to grocerypulse.ca: the time, the network (IP) address the request came from, the web address requested, the response status and size, the referring page and the browser or software name (user agent). We use it to keep the site secure and running, to fix problems and to understand overall traffic. We do not use it for advertising or sell it, and log files are deleted after about five weeks at most.

Analytics and Cookies

If you accept optional cookies, Google Analytics 4 collects usage information such as pages visited, referral source, approximate location, browser, and device category. We use it to understand and improve the site, including which list-tool actions are used (never the contents of a list). You can decline optional analytics in the cookie prompt.

Essential cookies store your consent preference, city selection, and signed-in session. They are used to provide requested site functions rather than advertising.

Service Providers and Affiliate Links

  • Google Analytics provides consent-gated traffic analysis.
  • Stripe provides checkout, invoicing, and billing management. Stripe receives payment and billing details directly; GroceryPulse does not store complete card numbers.
  • Resend sends requested email confirmations and list updates. It processes recipient addresses, message contents and delivery status in the United States. Email open and click tracking are disabled. Signed delivery feedback helps us honour bounce, complaint and unsubscribe suppression.
  • Infrastructure providers host the site and database in Canada and the EU.
  • Google AdSense may show advertising on some consumer pages if you accept optional cookies. Ads are separate from comparisons: no paid relationship affects prices, rankings or methodology.

Details about providers and processing locations are available from privacy@grocerypulse.ca.

Commercial Customers

If you subscribe to Team Data or the Commercial API, we may retain:

  • Account and billing data: contact name, organization, email, billing identifiers, and, where applicable, billing address.
  • API credentials: hashed access tokens and related entitlement data.
  • Usage logs: request timestamps, endpoint paths, and response status codes, retained for rate limits, service support, and abuse detection. We do not log response payloads.

Retention and Safeguards

We retain personal information only as long as needed for the stated purpose, contractual or legal requirements, security, and consent-suppression records. Access is limited, browser clients cannot write directly to lead or subscriber tables, and paid API credentials are not stored in recoverable plain text.

Your Choices and Rights

You may:

  • Ask what personal information we hold and how it has been used
  • Request access to or correction of your personal information
  • Withdraw email consent and stop list updates
  • Decline optional analytics cookies
  • Request deletion, subject to legal, security, billing, and suppression-record requirements

Children's Privacy

The site is not directed at children under 13, and we do not knowingly collect their personal information.

Contact and Changes

Privacy questions, access requests, corrections, deletion requests, and consent withdrawals can be sent to privacy@grocerypulse.ca, which reaches our Privacy Officer, the person in charge of the protection of personal information. If you are not satisfied with our answer, you can complain to the Office of the Privacy Commissioner of Canada or, in Quebec, to the Commission d'accès à l'information. We may update this policy and will publish the new effective date here.

GroceryPulse.ca

Independent Canadian grocery prices. Shopper collection targets 16 cities, including all 10 provincial capitals; comparisons depend on available dated prices. The licensed index keeps its original 13-city, 21-banner panel.

Your groceriesCompare my groceriesPrices in your cityPrices by productShrinkflation
Understand the dataHow it worksCities & storesMethodologyResearchRelease calendarIn the newsAbout us
For businessUse cases and samplesFor grocersFood-basket dataData plansData catalogueAPI documentationWhitepaper
Help & contactQuestions & price correctionsSign inPress enquiriesSales enquiriesSite directoryTerms of usePrivacy policyFrançais
Cited in
CBCWinnipeg Free PressTVA NouvellesJournal de Québec
Data from public retailer websites · Not affiliated with any retailer© 2026 GroceryPulse

We use cookies for analytics to improve your experience. Privacy Policy