See the real, sales-tax-included price on Canadian shopping pages. Estimates only, and you choose your province.
Last updated: 22 August 2026.
TaxTag Canada calculates sales tax on prices it finds on pages you visit. That calculation happens entirely inside your browser.
Two stores, split deliberately.
chrome.storage.syncPreferences only. These roam to your other signed-in Chrome installations through Google’s sync, which is governed by Google’s privacy policy, not ours.
| Data | Why |
|---|---|
| Your province or territory | Required to calculate tax. You choose it. |
| Interface language, theme | Display preferences |
| Extension on/off, ads on/off | Feature toggles |
| “Run on all sites” vs. your allowlist, plus that allowlist | Where the panel runs |
| Panel expanded/collapsed state | Remembering how you left it |
chrome.storage.local| Data | Why it never syncs |
|---|---|
| Sites where you chose “hide on this site” | This is a list of sites you visit — browsing data. It stays here. |
| The current sponsored slot | Ephemeral; pointless to roam. |
A price you type in yourself (using “Enter the price yourself” on a page we can’t read) is not stored at all — not even locally. It lives in memory until you leave the page. Storing it would mean keeping a list of which pages you looked at and what they cost, which is precisely the kind of record this extension exists not to create.
Neither store is encrypted. chrome.storage is readable by anyone with
filesystem access to your Chrome profile. Nothing secret is kept there — there
are no credentials of any kind in this extension — but we say it plainly rather
than implying a protection that doesn’t exist.
To find a price, the content script reads the content of pages you visit in this order: JSON-LD structured data, Open Graph and other meta tags, microdata, and finally a scored scan of visible page elements.
This reading happens locally and the results are held in memory. Page content is not stored, not logged, and not transmitted — except in the one case described below, and only for the specific fields listed there.
The extension does not read form fields, passwords, cookies, payment
information, or your browsing history. It does not run in iframes
(all_frames: false), which keeps it out of embedded ads and third-party
widgets.
As shipped: never.
Sales tax rates are compiled into the extension. The calculation is arithmetic performed on your own machine. There is no server to call, and the extension makes no network requests of any kind.
The sponsored slot is filled from sponsors bundled inside the download, so even the ad does not cause a request.
The extension supports fetching sponsors from a server we run. If that is ever enabled, this section will say so and the request will be limited to:
| Field | Example |
|---|---|
| Your interface language | "en" |
| Your chosen province | "ON" |
credentials: 'omit', so there is no cross-site
identity.This is enforced structurally rather than by policy: the function that builds an ad request takes no parameter carrying page, product, or price, so no future change can quietly begin including them without that being visible in the code.
There is also no impression pixel. Counting ad views with a per-page request would turn the slot into a log of how often you shop, so we don’t. A sponsor gets a conservative count derived from fetches instead, and the result is cached for four hours so the request happens at most a few times a day rather than once per product page.
The panel contains an ad slot, permanently labelled “Sponsored”, with a line underneath explaining that ads fund the extension and offering a one-click way to turn them off.
Ads are text only — an advertiser name, a headline, one line of copy, and a link. There are no images, no video, no third-party scripts, and no ad SDK of any kind. Manifest V3 forbids extensions from loading remote code, and we would not want to regardless: an ad script is a tracker.
Ads are never targeted using your browsing. With the default built-in sponsors there is no request at all. If a network source is ever used, that request contains exactly two things:
en or fr), andIt does not contain the page you are on, its domain, the product, the price, your search terms, or any identifier. The slot has no idea what you are shopping for. We could not tell an advertiser what you were looking at even if one asked.
How ads are served depends on the source configured in the build:
| Source | Network activity |
|---|---|
| Built-in sponsors (default) | None. Sponsorships are compiled into the extension and served from your own device. The ad slot causes zero network traffic. |
| Ad server (not currently used) | One request every few hours to an HTTPS endpoint we run. The response is cached, so browsing more pages does not cause more requests. |
| None | No ads, no requests. |
With the default source, the ad slot makes no network requests at all.
There are no impression or click trackers. We do not fire a pixel when an ad is displayed — doing so would mean one request per product page you view, which would turn the ad slot into a log of your browsing rhythm. We do not fire one when an ad is clicked either; clicking simply navigates to the advertiser’s own site, where their own analytics apply, as with any link.
No cookies are sent with ad requests (credentials: 'omit'), so there is no
cross-site identity involved. An ad server necessarily sees your IP address, as
any web server does for any request.
You can turn ads off entirely in Settings → Ads, or from the “Hide ads” link in the panel itself. It takes effect immediately, costs nothing, and nothing else stops working. Hiding ads is not a paid feature and never will be.
If a support page is configured, the panel shows a “Support TaxTag” link next to the ad, and in the footer once ads are off.
It is an ordinary link and nothing more. Clicking it opens that page in a new
tab; not clicking it does nothing. No request is made unless you click, and
the extension sends nothing to that page — no identifier, no usage data, and no
referrer (the link is rel="noopener noreferrer"). If you do click, the
destination is a third party with its own privacy policy, exactly as with any
link you follow.
We are not told whether you clicked, and no feature depends on whether you did.
The extension does not and will not inject advertising into retailers’ pages. Everything it displays is inside its own panel.
A sponsor in the ad slot may be an affiliate placement, meaning we earn a commission if you buy after clicking. Where that is the case, the panel shows a visible “Affiliate link” badge and a plain-language disclosure directly beneath the link — always on screen, never hidden behind a hover or a tooltip.
A commission never affects the tax figures you are shown. The calculation is arithmetic on the price the retailer published; it has no relationship to who is advertising.
We do not receive information about what you buy. Clicking an affiliate link takes you to the advertiser; any tracking from that point is theirs and their affiliate network’s, under their policies.
| Permission | Why |
|---|---|
storage |
To save your province and preferences. |
activeTab |
Temporary access to the current tab, granted only when you click the toolbar icon and expiring when you navigate away. Lets the popup read the site’s hostname for “hide on this site” and talk to the panel. |
Access to websites (content_scripts) |
To read product prices on pages you visit. Shopping happens on tens of thousands of domains, so the match pattern is broad — but the extension renders nothing unless it finds a price, and transmits nothing by default. |
| Optional host access | None requested. The extension declares no optional host permissions at all. |
The extension requests no other permissions. It cannot read your history, bookmarks, downloads, or other tabs.
TaxTag Canada is not directed at children and does not knowingly collect information from anyone. As described above, we collect nothing from anyone.
Because everything is stored on your own device, you control all of it directly:
We hold no copy of any of it, so there is nothing for you to request from us and nothing for us to delete on your behalf.
TaxTag Canada is published from Quebec, so Quebec’s Act respecting the protection of personal information in the private sector (as amended by Law 25) applies to us, alongside Canada’s Personal Information Protection and Electronic Documents Act (PIPEDA).
We do not collect personal information, so most obligations under either statute do not attach to us in practice. The person responsible for the protection of personal information is the publisher, reachable at the address in the Contact section below.
Should that change — if a future version introduces any server-side component, analytics, or sponsorship that collects data — this policy will be updated and your consent obtained before any such collection begins.
You retain your statutory rights of access, correction, and withdrawal of consent under applicable Canadian privacy law. Because all data is on your device and under your control, you can exercise them yourself using the controls above.
Not a privacy matter, but stated here because it affects whether you should rely on this extension:
All figures are estimates. The extension applies a general provincial rate and does not model zero-rated or exempt goods (basic groceries, most prescription drugs), point-of-sale rebates (Ontario rebates the provincial portion on books, children’s clothing, diapers, and car seats), or special rate classes (British Columbia taxes vehicles and liquor differently). Your total at checkout may differ. TaxTag Canada is not tax advice.
Material changes will be reflected in the “Last updated” date above and, where they involve any new collection or transmission of data, will require your explicit consent before taking effect.
This policy is governed by the laws of the Province of Quebec and the applicable federal laws of Canada.
Quebec residents: you may also contact the Commission d’accès à l’information du Québec (CAI) if you believe your privacy rights have not been respected.