Skip to content

Guide 44 · Ecommerce · GA4 + Tag Manager

Tax and shipping inside value: keep them out, and reconcile the charged total separately

Checked 11 November 2026 · Verification: reference file checked in Python (figures recomputed from the worked example) · Steps traced to Google's developer docs and Analytics Help, opened 11 November 2026 · 5-minute read

Value is the items total. Tax and shipping are their own parameters. Put them inside value and item revenue is overstated by exactly the tax and shipping on every order.

Expected signal

After step 3, DebugView shows the purchase event with value 72.05, tax 3.60, and shipping 5.99 as three separate parameters. After about 24 hours, the reports show item revenue 72.05, and the charged total reconciles separately at 81.64.

Download the reference: the tax-and-shipping-value reference (JSON) (1598 bytes, MD5 58a3062af358f3d502aa67bb1d9f0729). It holds the event parameters, the worked example, and the recomputed figures.

What you need

  • The Google tag on the site. The event is sent through the Google tag; the install guide covers it.
  • Access to the website source code, or a Tag Manager container. The tax and shipping parameters are set where the purchase event is sent.
  • The order's tax and shipping from the store system. The worked order is Google's two-item order: value 72.05, tax 3.60, shipping 5.99, currency USD.

The trace

  1. Keep value to the items total. The value is the sum of price times quantity: 10.01 × 3 = 30.03 for the tees, plus 21.01 × 2 = 42.02 for the grey tees, which is 30.03 + 42.02 = 72.05. Google's recommended events reference states the rule for every ecommerce event: set value to the sum of price times quantity for all items in items, and do not include shipping or tax.
  2. Send tax and shipping as their own parameters. The purchase call is gtag("event", "purchase", { transaction_id: "T_12345", value: 72.05, tax: 3.60, shipping: 5.99, currency: "USD", items: [...] }). Tax and shipping populate their own dimensions — Tax amount and Shipping amount — so the reports can show them beside revenue instead of inside it.
  3. Reconcile the charged total outside Analytics. The customer was charged 72.05 + 3.60 + 5.99 = 81.64. Tax plus shipping is 3.60 + 5.99 = 9.59, and 72.05 + 9.59 = 81.64. That total lives in the store system; Analytics reports item revenue 72.05, and the two agree when the three parameters are compared side by side.
  4. Check it in DebugView. Turn on debug mode, trigger the purchase, and open DebugView (Admin, then Data display, then DebugView). Select the event and check three numbers: value 72.05, tax 3.60, shipping 5.99. If tax or shipping is missing, the dimensions stay empty even though the order is counted.
  5. Confirm the reports after about 24 hours. The Ecommerce purchases report shows the Tax amount and Shipping amount dimensions from the purchase event. Compare the report's tax and shipping totals against the store system for the same days; a gap means one of the parameters is not being sent.

Dead ends

DEAD END — THE CHARGED TOTAL AS THE VALUE. Sending value 81.64 for this order — the charged total — overstates item revenue by 9.59, which is the tax plus the shipping. Every order is then overstated by its own tax and shipping, and the revenue in Analytics never matches the store. Value is 72.05; the total is 81.64.

DEAD END — TAX AND SHIPPING LEFT OUT ENTIRELY. An order that sends value but no tax and no shipping is counted in revenue, but the Tax amount and Shipping amount dimensions stay empty. The fix is not to fold the amounts into value; it is to send the two parameters.

DEAD END — SHIPPING COST IN VALUE ON SOME EVENTS ONLY. If begin_checkout sends value 72.05 and purchase sends value 81.64, the funnel compares two different definitions of the same cart. The value rule is the same on every ecommerce event: price times quantity, no shipping, no tax.

End state

Every purchase event sends value as the items total (72.05), tax (3.60) and shipping (5.99) as their own parameters, and currency USD. The charged total is 72.05 + 3.60 + 5.99 = 81.64, reconciled against the store system. DebugView shows the three numbers the same minute, and after about 24 hours item revenue reads 72.05 and the Tax amount and Shipping amount dimensions read 3.60 and 5.99.

Sources

Checked 11 November 2026. The rule above is the one in Google's recommended events reference and the ecommerce developer guide, both opened 11 November 2026. No step was run inside a live Analytics property, because that needs a Google sign-in and this site does not sign in as anyone. The figures were recomputed in Python: 10.01 × 3 = 30.03, 21.01 × 2 = 42.02, 30.03 + 42.02 = 72.05, 3.60 + 5.99 = 9.59, and 72.05 + 3.60 + 5.99 = 81.64. The reference file was checked the same way.