NUO AI logo NUO AI
Book a call Add app — Free
Offer funnel analytics

Know which offer made you money, not just which one got clicks.

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.

Add app on Shopify — Free See A/B testing

What the funnel measures

1

Viewed. The offer rendered and was in view. Without this denominator every other rate is guesswork.

2

Accepted. The shopper took the offer — added the upsell, kept the gift, completed the bundle.

3

Checkout started. The qualifying cart reached checkout. A gap here points at the cart, not at the offer.

4

Order placed. The order completed, with the influenced revenue and the discount or cost of goods attached to it.

What each drop-off actually tells you

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.

Revenue influenced versus revenue created

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.

Segment and offer-level splits

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.

How this differs from GA4 and Shopify reports

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.

Frequently asked questions

What does Shopify's own reporting miss about offers?

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.

What is revenue influenced?

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.

How do I measure the incremental lift of an offer?

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.

Why does my offer show high acceptance but no revenue lift?

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.

Where should I look if acceptance is high but orders are not?

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.

Do the numbers match GA4 and Shopify?

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.

Is it free?

Yes. Every NUO AI feature is included at $0 — no paid tier, no order cap, no revenue share.

Measure your offers properly.

Add app on Shopify — Free See the live demo store