How tax and shipping are reported
An order total is made of parts: the products themselves, delivery charges, and any tax added at checkout. Ecommerce tracking lets you send the delivery and tax amounts as their own parameters on the purchase event, sitting beside the order value rather than hidden inside it.
Sending them separately does not automatically remove them from revenue. The value you attach to the purchase is whatever your code says it is; the tax and shipping parameters are extra detail, useful for reporting but not a deduction. If you want revenue to exclude delivery and tax, you have to subtract them when building the value, and then report them separately so the information is not lost.
The same words appear elsewhere with a different job. In a Merchant Center product feed, the shipping and tax attributes tell Google what to display next to a shopping listing. That is presentation for shoppers, not measurement, and the two should not be confused.
Why the split matters
Delivery and tax are money the business collects but largely does not keep. Tax is passed to the government, and shipping usually pays a courier. Counting both as revenue makes marketing look more profitable than it is, and the distortion is worst exactly where margins are thinnest: low-value orders where delivery is a large slice of the total.
It matters for bidding as well. When purchase values are imported into Google Ads or Meta, the platforms learn which products and audiences are worth pursuing from the values you supply. Inflate every order by its delivery charge and remote customers, who cost more to ship to, start looking like your best ones.
Where it goes wrong
The usual fault is inconsistency. Analytics counts one thing, the ad platform counts another, and the finance team counts a third, so no two reports on return on ad spend agree and everyone assumes the tracking is broken. Often it is not broken — it was simply never defined.
Tax rules cause the second problem. A store selling across borders may show prices inclusive of tax in one market and exclusive in another, so the same product records a different value depending on the buyer’s country. A shop that also offers free delivery above a threshold will see its shipping parameter fall away on larger orders, which is correct but surprises anyone comparing averages.
How to get it right
Decide once whether reported revenue is the amount the customer paid or the amount the business keeps, and write it into the tracking specification before a developer touches anything. Then send tax and shipping as their own parameters regardless of that choice, so the split can be analysed later without rebuilding the tracking.
Test it with a real order that includes delivery, tax and a discount together, and check the numbers add up the way your definition says they should. Finally, make sure the ad platforms receive the same figure as analytics. If Google Ads is fed order totals while GA4 holds product-only values, the two systems will disagree permanently and someone will waste a week trying to reconcile them.