Shopify reports discounts given. It does not report whether an offer changed anybody's mind. Offer funnel analytics close that gap: each offer is measured as a sequence from impression to order, with the revenue it influenced set against the margin it cost.
Viewed. The offer rendered and was in view. Without this denominator every other rate is guesswork.
Accepted. The shopper took the offer — added the upsell, kept the gift, completed the bundle.
Checkout started. The qualifying cart reached checkout. A gap here points at the cart, not at the offer.
Order placed. The order completed, with the influenced revenue and the discount or cost of goods attached to it.
The value of a four-step funnel is that each gap has a different cause and a different fix.
Aggregate reporting collapses all three into one conversion number, which is why so many offers get cancelled for the wrong reason: a strong offer with a broken cart message looks identical to a weak offer.
Every offer dashboard in ecommerce has the same honesty problem. If a cart that saw an offer converts, the offer gets credited — including for the carts that would have converted anyway. Treat influenced revenue as an upper bound, never as incremental revenue.
Two checks keep you grounded. First, the share of qualifying carts that already cleared the threshold before the offer appeared: if that is most of them, you are paying for orders you had. Second, discount cost or cost of goods shown next to influenced revenue, so the comparison is margin against margin. An offer that influenced $40,000 and cost $11,000 in free product is a different decision from one that influenced $40,000 and cost $1,100.
For the actual incremental number there is only one instrument, which is a holdout. A/B testing against no offer is the only way to measure what the offer added rather than what it touched.
A sitewide average hides the result you need. An offer that lifts first-time shoppers by 9% and does nothing for returning shoppers reports as a 2% lift — a number that gets the offer killed when the correct action was to keep it and scope it. Splitting the funnel by customer segment turns "should we run this" into "who should we run this for", which is the question with money in it.
The other essential split is suppression. When offer priority stops an offer from showing, that cart must be recorded as suppressed rather than as not qualified — otherwise a perfectly good offer that is always outranked looks like an offer nobody wants.
Shopify's reports are order-centric: they know what was sold and what discount applied, and nothing about the offer impression that preceded it. GA4 can be instrumented to track offer events, but you have to define, implement, and maintain that yourself, and the result still lives apart from your product and margin data.
Offer analytics are built from the offer's own lifecycle, so the impression, the rule that fired, the acceptance, and the resulting order are one record. The three sources will not match exactly — attribution windows and session definitions differ — and that is expected. Use the offer funnel for decisions about offers, and Shopify's reports for the books.
The impression. Shopify records the discount applied to an order but not that an offer was shown, to whom, or whether it was declined — so there is no denominator and no way to compute an acceptance rate.
The revenue from orders where the offer was shown and accepted. It is an upper bound, not incremental revenue, because some of those carts would have converted anyway. Always read it alongside the offer's cost.
Hold it out. Run the offer for a share of traffic and nothing for the rest, then compare revenue per session. That is the only method that separates what the offer added from what it merely touched.
Usually because the carts accepting it already qualified without changing behaviour. Check what share of qualifying carts cleared the threshold before the offer appeared — if it is most of them, the offer is a cost rather than a lever.
The accepted-to-checkout gap. That pattern almost always means cart-side confusion — an unexplained line item, unclear conditions, or an offer that does not survive to checkout.
Not exactly, and they are not meant to. Attribution windows and session definitions differ between the three. Use offer analytics to decide about offers and Shopify's reports for financial reporting.
Yes. Every NUO AI feature is included at $0 — no paid tier, no order cap, no revenue share.