Privacy Policy
Last updated: October 2026
Haul ("we", "our", "the app") helps you compare grocery prices across stores near you and find the cheapest place to shop. This policy explains what information we collect, why, how long we keep it, and what rights you have over it.
We are a Canadian service and this policy is written to meet our obligations under Canada's Personal Information Protection and Electronic Documents Act (PIPEDA).
Who We Are
[Legal business name to be confirmed], operating Haul, located at [mailing address to be confirmed — Yorkton, SK or applicable registered address]. If you have a privacy question, concern, or complaint, contact us at tryhaul.ca@gmail.com. If we can't resolve your concern, you may also contact the Office of the Privacy Commissioner of Canada.
You Can Use Haul Without an Account
Haul works anonymously by default. The first time you visit, we generate a random device identifier stored in your browser — this is not your name, email, or any information that identifies you personally, and no account or sign-up is required to search prices, build a list, or scan receipts.
Information We Collect
If you don't create an account (anonymous use)
- Anonymous device ID: a randomly generated identifier stored in your browser (localStorage), used to remember your saved grocery list and star/rewards balance between visits.
- Location data: if you share your location or enter a postal code, we use it to find grocery stores near you and show relevant prices. We store your postal code and the centre of that postal-code area (rounded to about 1 km) to improve future searches in your area — never your exact position, and not linked to you. Your precise coordinates are used only while your search runs, to work out distances and directions.
- Saved grocery list: the items and quantities on your list are saved on our servers (keyed to your anonymous device ID) so your list is there when you come back — not just cached in your browser.
- Receipt scans: optional — see "Receipt Scanning" below for exactly what is processed, by whom, and what we keep.
- Push notification subscription: if you opt in to price-drop alerts, we store a browser or device push token tied to your anonymous ID, together with your postal code and the items on your list, so we can tell you when they drop in price.
- Usage data: the searches you run (postal code, items searched, time), the savings we showed you, whether you chose a shopping plan, and the campaign link you arrived from, if any — used to improve coverage and store discovery and to measure whether Haul saves people money.
- Coverage requests: if you ask to be told when Haul covers your city, we keep that email address and city, not linked to any account, only to send you that notice.
If you create an account (optional)
Creating an account with an email and password is optional and lets your stars, list, and rewards history follow you across devices instead of being tied to one browser. If you create an account, we additionally collect and store:
- Email address — used to identify your account and, if you opt in below, to send you occasional product updates. When you create an account, we send you a one-time email to confirm your address.
- Password — we never store your actual password. It's run through a one-way cryptographic hash (bcrypt) before it touches our database, so even we can't see or recover it.
- Marketing consent — whether you've opted in to receive emails about price drops or new features, and the date/time you gave that consent. This is unchecked by default; we only email you about product updates if you explicitly tick that box.
- Session identifier — a secure token (stored as an HTTP cookie, not readable by page scripts) that keeps you signed in. See "Cookies & Local Storage" below.
If you had an anonymous list/stars balance before creating an account, we transfer that history onto your new account rather than starting you over — the original anonymous record is kept (not deleted) purely as an internal audit trail linking the two, and is never shown to anyone else.
Receipt Scanning
Scanning a receipt is optional. When you scan one:
- The receipt image is sent to Google Cloud Vision, which reads the text printed on it.
- Text read from the image is sent to Anthropic, with payment, card, loyalty-number and cashier lines removed first. Anthropic processes it only to return the items to us and, under its standard terms, deletes it within 30 days.
- Haul does not store the receipt image or the full receipt text. Both are used only to process that one scan and are not saved to our database.
- What we keep: the store (its name, and the street address, store number and phone number printed at the top of the receipt, used to identify which location it was), the purchase date, the postal code, and for each item you confirm: its name, its price, quantity or weight, any sale, coupon or loyalty discount applied to it, loyalty points earned on it, and that item's own lines as printed on the receipt (for example "DL MILK 4L 5.99" and a "SALE 0.50-" line under it). We keep this permanently as price history. We don't keep any other part of the receipt text — not the cashier's name, card or loyalty numbers, or payment lines.
- Who it's linked to: a submitted receipt is linked to your account (if you're signed in) so we can check submissions and star awards. The prices themselves are used only as price data (see "Aggregated Market Data"). 90 days after you submit it, or sooner if you delete your account, that link is removed and the prices stay as anonymous price history. When you confirm which store location a receipt came from, we also note that your account (or device, if you're not signed in) confirmed it, so one person can't teach Haul a wrong location on their own; that note is deleted with your account. The same goes for confirming or correcting which product a receipt line is: your vote is recorded against your account (or device) so that no single person can change a product match for everyone. If you delete your account, your votes stay as anonymous votes and are no longer linked to you.
- To prevent the same receipt being submitted twice, we keep a one-way fingerprint (a cryptographic hash) of the image. It can't be turned back into the image. We also keep the list of items and prices read from the receipt, linked to your account or device ID, so we can check submissions and star awards. After 90 days we remove that item list, the account/device link, and all but the first 3 characters of your postal code, and the exact receipt total is replaced by a price range (for example $50–75). We keep the image fingerprint, and the store, date and prices as price history.
- We also combine receipts into statistics that don't identify anyone, such as how many shoppers use each store in an area, how many shop at more than one chain, and which items are often bought together. These help us improve Haul.
Star / rewards program
If you're signed in to an account and a receipt you scan includes products nobody has reported to Haul before, you earn stars on your account. If you redeem stars for a reward (like a gift card), we ask for an email address solely to deliver that reward — this is separate from any account email and separate from marketing consent, and is used only to fulfill that one redemption. Every redemption is reviewed by a person before the reward is sent.
Cookies & Local Storage
Haul only uses cookies and browser storage that are necessary to make the app work — we do not use advertising cookies, tracking pixels, or any third-party analytics that follow you across other sites.
| What | Type | Purpose |
| Session cookie | HTTP cookie (secure, not readable by scripts) | Keeps you signed in to your account |
| Device ID, list cache, consent record, star balance, onboarding state | Browser local storage | Remembers your list, preferences, and anonymous identity between visits on this device/browser |
| Postal code entered during onboarding | Browser local storage | Skips asking for your location again on your next visit |
None of this is used for advertising or cross-site tracking. You can clear it at any time by clearing your browser's site data for tryhaul.ca, though this will reset your anonymous device history (an account, if you have one, is unaffected since it lives on our servers).
How We Use Information
- To show you grocery prices and the cheapest shopping route near your location.
- To discover and verify grocery store locations (via OpenStreetMap and Google Places).
- To send optional push notifications or emails about price drops, if you've opted in.
- To improve our product database through community contributions (receipt scans, corrections).
- To operate the stars/rewards program.
What We Don't Do
- We don't sell your personal data to third parties.
- We don't track you across other apps or websites, and we don't use advertising trackers.
- We never send marketing email unless you've explicitly opted in, and you can withdraw that consent at any time.
Aggregated Market Data
Haul collects grocery price information (product names, prices, stores, regions, and dates) as part of its core function of comparing prices. This pricing data is not linked to you personally — we do not connect it to your identity, location history, or shopping habits. We may compile this price information into aggregated, de-identified market reports (for example, regional price trends over time) and may share or license these aggregated reports with third parties, such as researchers or industry partners. These reports never include personal information, individual shopping lists, receipts, or anything that could identify you.
Third-Party Services & International Data Transfers
Haul uses the following third-party services to function. Because some of these providers process data on servers located outside Canada, your information may be stored or processed in the United States or other countries, where it may be subject to the laws of that jurisdiction (including lawful access by that country's authorities).
- OpenStreetMap (Overpass API) — store location data (postal code/coordinates only)
- OpenStreetMap (Nominatim) — geocoding: turns your coordinates into a postal code, and your postal code or the optional street address you enter into coordinates (receives coordinates, postal code and, if you enter one, the street address)
- Google Places API — store location fallback (postal code/coordinates only)
- Google Cloud Vision — reads the text on receipt images you scan (receives the image; Haul doesn't store the image)
- Anthropic — identifies items and prices in the extracted receipt text (receives the text with payment, card, loyalty-number and cashier lines removed, not the image; processes it only to return the items to us and, under its standard terms, deletes it within 30 days; Haul doesn't store the full text)
- Flipp — weekly flyer prices (receives the postal codes of areas searched in Haul, not linked to you)
- Railway — application hosting and database
- Resend — sends password-reset emails (receives your account email address and the reset link; used only if you request a password reset)
- Browser push services (Google Firebase Cloud Messaging, Mozilla Push Service, Apple Web Push) — deliver price-drop alerts on the website and installed web app, through whichever service your browser uses (receives your browser's push address and the alert in encrypted form, which it can't read; used only if you turn on notifications)
- Apple Push Notification service (APNs) — delivers price-drop alerts in the iOS app (receives your device's push token and the alert text; used only if you turn on notifications)
- Google Fonts — serves the app's typefaces (your browser requests the font files from Google's servers, fonts.googleapis.com and fonts.gstatic.com, which exposes your IP address and browser details to Google; no other data is sent, and Google handles these requests under its own privacy policy)
These providers only receive the minimum data needed to perform their specific function for Haul (e.g. coordinates for store lookups, receipt images for text extraction) and are not permitted to use it for their own purposes.
Data Retention
- Search history: retained 90 days, then deleted.
- Receipt scan attempt logs (used for fraud/abuse prevention): retained 30 days, then deleted.
- Receipt scans (items read from a receipt, linked to your account or device): unsubmitted scans are deleted about a day after they expire. After 90 days, submitted scans lose their item list, the account/device link, and all but the first 3 characters of the postal code, and the exact total is replaced by a price range. We keep the image fingerprint used to block duplicate submissions, and the store, date and prices as price history.
- Receipt price history (store, location, date, items, prices, and each item's printed line): kept permanently, not linked to you after 90 days, or sooner if you delete your account.
- Price data: refreshed continuously; prices older than 7 days are not used in results, and raw price records are periodically archived into anonymized daily summaries.
- Account, saved list, and rewards data: kept for as long as your account is active, or until you delete it (see "Your Rights" below).
- Anonymous saved lists and price-drop alerts (no account): deleted after 12 months without using Haul.
- Coverage requests: deleted 12 months after you ask, or sooner if you email us to remove yours.
Your Rights
Under PIPEDA, you have the right to:
- Access the personal information we hold about you.
- Correct inaccurate information (e.g. update your email).
- Withdraw consent for marketing email at any time, with no effect on your ability to use the app.
- Request deletion of your account and associated personal data.
To exercise any of these rights, email tryhaul.ca@gmail.com from the email address associated with your account (or describe your anonymous device history if you don't have an account). We will respond within a reasonable timeframe, consistent with PIPEDA's requirements. Some information (such as aggregated, de-identified pricing data, or fraud-prevention logs already past their retention window) may not be deletable because it no longer identifies you or has already been removed automatically.
If you have an account, you can delete it yourself in the app: open Account, tap Delete my account, re-enter your password and tap Delete permanently. If you use Haul without an account, email us at tryhaul.ca@gmail.com to have your anonymous history removed; anonymous saved lists are also deleted automatically after 12 months without use.
You can also deny location access (and enter a postal code instead) and disable push notifications at any time from within the app, without contacting us.
How We Protect Your Information
Passwords are hashed with bcrypt and never stored in readable form. Session tokens are stored in secure, HTTP-only cookies that page scripts cannot read. Admin access to Haul's backend is itself protected by a separate login system, and we limit which staff/tools can see personal data to what's operationally necessary.
Children's Privacy
Haul isn't directed at children under 13, and you must be 13 or older to create an account. We do not knowingly collect personal information from children under 13.
Changes to This Policy
We may update this policy as Haul's features change. We'll update the "Last updated" date above when we do, and material changes affecting how we use your personal information will be communicated via the app or by email if you have an account.
Contact
Questions or concerns about this policy or your data? Email tryhaul.ca@gmail.com.
← Back to Haul