Analytics and Tracking

Purchase Revenue

The GA4 metric that totals the value of every purchase event sent by your site or app, minus refunds you record.

Quick facts: Purchase Revenue

Category
Analytics and Tracking
Level
Intermediate
Affects
Revenue by channel and campaign, conversion value imported to Google Ads, return on ad spend, budget decisions
Where to see it
GA4 ecommerce purchases and monetisation reports, DebugView, Shopify or WooCommerce order reports, Google Ads conversion value columns
In this article4
  1. How purchase revenue works
  2. Why it matters for a UK shop
  3. Common mistakes
  4. How to act on it

Purchase revenue is the GA4 metric that adds up the value of every purchase event your site or app sends, minus the value of any refunds you record. It is only as accurate as the value, currency and refund data your ecommerce tracking passes in, so it rarely matches your shop’s sales figure exactly.

How purchase revenue works

GA4 does not read your order system. When a customer completes checkout, the confirmation page or your server sends a purchase event carrying a value, a currency code, a transaction ID and the items bought. GA4 totals those values and reports them as purchase revenue, broken down by channel, campaign, landing page, product or any other dimension you choose.

Refunds come off the total only if you send a refund event with the matching transaction ID. GA4 also offers gross purchase revenue, which ignores refunds, and total revenue, which adds subscription and advertising revenue on top. Which of these you report should be a deliberate choice, written down, rather than whichever one a dashboard happens to show.

The currency parameter matters more than most people expect. GA4 converts every purchase into the property’s currency using daily exchange rates, and if the currency code is missing the value may not be counted as revenue at all. A UK shop should send “GBP” with every purchase and set the property currency to pounds sterling.

Why it matters for a UK shop

Purchase revenue feeds the figures budget decisions rest on: revenue per channel, the conversion value Google Ads and Meta bid against, and return on ad spend. If it is inflated by duplicated orders or reduced by missing ones, bidding and budgets follow the error.

VAT is the UK-specific trap. Prices to consumers are shown including VAT, and many shop platforms send that VAT-inclusive total by default, sometimes with delivery added. Your accounts usually look at sales net of VAT. Neither approach is wrong, but they must not be mixed. At the standard 20% rate, VAT-inclusive revenue reads 20% higher than the net figure, so a break-even ROAS worked out on net margin will make every channel look healthier than it is.

Common mistakes

  • Never deciding whether the value includes VAT and delivery, so different developers, plugins or platforms send different things.
  • Firing the purchase event every time the confirmation page reloads without a unique transaction ID, which counts orders twice.
  • Missing or wrong currency codes, such as a pound sign instead of “GBP”, or prices sent as text.
  • Never sending refunds, so purchase revenue drifts above real takings in categories with high returns, such as clothing and footwear.
  • Comparing GA4 purchase revenue directly with Shopify or WooCommerce sales without allowing for visitors who declined cookies, ad blockers and time zone differences.
  • Leaving staff test orders in the data.

How to act on it

Write one sentence that defines your purchase value, for example “basket total after discounts, including VAT, excluding delivery”, and make every tag and platform follow it. Then compare a handful of real orders in GA4 against the order system, line by line, to confirm the values, currency and transaction IDs arrive as intended.

After that, compare a month of purchase revenue with your shop platform’s sales. A gap that stays steady from month to month is normal and mostly reflects consent and blocking. A gap that suddenly widens points to a tracking change. I set this up and check it when running Facebook and Instagram ads for online shops, because both Meta and Google bid against the values you send them.

Do and do not

Do

  • Decide and document whether the value includes VAT and delivery
  • Send the GBP currency code and a unique transaction ID with every purchase
  • Send refund events so returns come off the total

Do not

  • Mix VAT-inclusive revenue with ROAS targets worked out on net margin
  • Let the purchase event fire again when the confirmation page reloads
  • Expect GA4 to match your shop's sales to the penny

Questions people ask about this

Should GA4 purchase revenue include VAT?

Either can work, as long as every system uses the same definition and your targets are set on the same basis. Many UK shops send VAT-inclusive values because that is what the platform sends by default, then struggle to compare GA4 with accounts that use net sales. If you choose VAT-inclusive, make sure ROAS targets and break-even calculations allow for the 20% difference.

Why is GA4 purchase revenue lower than my Shopify sales?

Visitors who decline analytics cookies, use ad blockers or buy through channels your tag does not cover never send a purchase event to GA4. Time zone settings and the treatment of refunds, delivery and VAT can widen the difference. A steady gap is expected; a sudden change is a sign that something in the tracking broke.

Does purchase revenue include delivery charges?

Only if the value you send includes them. GA4 has separate parameters for shipping and tax, and it simply adds up whatever value the purchase event carries. Decide whether delivery belongs in your revenue figure, then check a few real orders to see what your platform actually sends.

Related terms

Found this useful?

Share it, or ask an AI to summarise it

Back to the glossary

Knowing the term is the easy part

Applying it to your own site and budget is the work. Book a call and I will tell you what actually applies to you.