Why it happens
GA4 learns about refunds from an event. A refund happens in Shopify, not in the shopper's browser. GA4 has a refund event that carries the original transaction ID, and it can include the refunded items. If no tool sends that event, GA4 never changes the sale. Most browser tags fire on the thank-you page and cannot report a refund made weeks later from your admin.
The refund needs to match the sale. The refund event must carry the same transaction ID as the purchase. A refund without a matching purchase, with a different ID, or in another currency than the purchase, will not net out as you expect. A refund without items can be read as a refund of the whole order, so partial refunds should list the refunded items.
Reports and dates. A refund is dated by the time the event carries, which for most tags is when it was sent. A refund made in March for a February sale reduces March, not February. Some reports also show refunds only when item data is present. This makes a quiet gap between Shopify, where the refund is netted from the original day, and GA4.
Check it yourself
- 1In Shopify admin > Orders, open the order you refunded. Note its number, the date of the refund and the refunded amount. Check whether it was a full or a partial refund.
- 2In Shopify admin > Analytics > Reports, open a sales report and read the returns for the period, to see what Shopify counts.
- 3In GA4 > Explore, make a Free form exploration. Use the dimension Transaction ID and the metrics purchase revenue and refund amount. Filter for the order number and read both.
- 4If the refund amount is zero for a refunded order, GA4 has not received a refund event for it. If the amount is there but on a later date than you expect, GA4 dated it when it arrived.
- 5In GA4 > Reports > Monetization > Ecommerce purchases, compare the period's item revenue with your Shopify net sales. If GA4 sits above Shopify by about your refunds, they are missing.
- 6In GA4 > Admin > Property details, check the time zone and the reporting currency. A mismatch moves refunds across day boundaries.
- 7Find which tool sends refunds to GA4: the Google and YouTube sales channel, a tag manager tag, an app, or none. Look in each one's settings for a refund option.
The paths a purchase and its refund can take are in Shopify conversion tracking.
FAQ
Does Shopify send refunds to GA4 on its own?
Check your setup. Refunds need an event sent to GA4. If your sales channel, tag or app does not send it, GA4 will not show it.
Can I add a refund to GA4 later?
A refund event can be sent for an earlier transaction, with the same transaction ID. Platforms accept events only within a limited time, so older refunds may not be accepted. Check Google's documentation for the current limit.
Why is a partial refund shown as a full one?
A refund event with no items can be read as a refund of the whole order. List the refunded items to avoid that.
Does Meta handle refunds the same way?
Meta receives purchases, and its Purchase count is not reduced by refunds. Compare Meta with gross paid orders, and GA4 with net.