Canadian sales tax depends on where the customer is, from 5% to 15%. When a store sends GA4 the order total with tax included, revenue is overstated by a different amount in each province, and regional reports stop making sense.

How Canadian sales tax works.

  • GST, the federal goods and services tax, is 5% across Canada.
  • HST, a single harmonised tax, replaces GST in Ontario, at 13%, and in the Atlantic provinces, at up to 15%.
  • PST, QST or RST, a separate provincial tax, is added to GST in British Columbia, Saskatchewan, Manitoba and Quebec.
  • GST only applies in Alberta and the three territories.

The tax usually follows where the order is delivered, and prices in Canada are normally shown before tax, with tax added at checkout. So the same basket carries a different tax in Toronto, Calgary and Halifax.

What GA4 expects.

Google's reference for the purchase event says value should be the items' total and shouldn't include tax or shipping. Those have their own parameters, tax and shipping.

Because Canadian product prices are shown before tax, item prices are usually right already. The problem comes at the end, when the store sends the order total, with tax and shipping, as value.

Why it matters.

  • Revenue is overstated, by 5% in Alberta and up to 15% in Atlantic Canada.
  • Regional comparisons are skewed. Provinces with higher tax look more valuable than they are, which misleads budget decisions by region.
  • Return on ad spend is overstated, and Google Ads bids on inflated values.
  • GA4 won't match finance, which reports sales before tax.

Doing it properly.

  1. Send item prices before tax in the items array.
  2. Set value to the items' total before tax and shipping, after discounts.
  3. Send the combined sales tax in tax, and delivery in shipping.
  4. Use currency: "CAD" on every ecommerce event. If you also sell in US dollars, send the currency of each order.
  5. Take the figures from the order, not a formula. Your platform knows the tax on each order, including exempt products.
  6. Send Google Ads the same value, so both systems agree.

Some businesses choose to report revenue including tax. That can work if it's written down and applied everywhere, but with tax varying by province, revenue before tax is easier to compare.

What to check.

  1. Place test orders delivered to two provinces with different tax, such as Alberta and Ontario.
  2. In GA4's DebugView, compare value on each purchase event. If the figures differ for the same basket, tax is inside revenue.
  3. Check that tax, shipping and currency are sent.
  4. Compare a week of GA4 revenue with sales before tax from your platform.

The same problem in the US is covered in US sales tax and shipping in GA4, and the guide to GA4 revenue not matching Shopify or Stripe has the reconciliation steps. Marc Alexander, a Google Analytics 4 consultant, sets up ecommerce tracking for Canadian stores, and the GA4 mini audit checks your revenue against your platform.