Most pages about an ecommerce KPI hand you a list of twenty metrics and a table of “industry averages” with no author, no sample and no date. This page does something narrower. It says which numbers a brand at $3M+ revenue should watch, how each is computed from Shopify data, and which published benchmarks come from independent measurement, which are vendor claims, and which do not exist at all.
If your store turns over less than $3M a year, or you are still on a basic plan with a handful of orders a day, this is not written for you. Volume that low makes every rate here too noisy to steer by, and your time is better spent on the product and the first channel that works.
Which ecommerce KPI should a $3M+ brand track first?
Contribution margin after ad spend. It is the one ecommerce KPI that the rest of the list feeds into, and it is the one most Shopify dashboards do not show. Revenue and orders go up when you discount harder or buy more traffic. Contribution margin goes up only when the business gets better at making money from an order.
The formula is plain: order revenue, minus product cost, minus shipping and fulfilment cost, minus payment fees, minus refunds, minus attributed marketing spend, divided by the number of orders (or reported as a total per week). Shopify holds the revenue, refund and payment-fee lines. The product cost sits in the cost-per-item field if someone filled it in, and in a spreadsheet if not. Fulfilment cost comes from your 3PL invoices. Ad spend comes from each platform.
The number is rarely on the default dashboard: it needs four sources joined on one key. A brand at $3M+ with no contribution margin line is steering by revenue, and revenue is the easiest number to improve while the business gets worse.
The step teams get wrong
Teams calculate it on the order date and compare it with ad spend on the click date. A campaign that spends on Sunday and converts on Wednesday shows a loss on one day and a gain on another, and the weekly view hides it only because the week is long enough. Pick the date basis once (order date is the usual choice), write it down, and apply it to every cost line.
What are the top KPIs for ecommerce, by stage?
The top ecommerce KPIs group by the stage of the customer journey they describe. One KPI per stage is enough for a weekly review. The rest belong in a monthly page or a diagnostic view you open only when a headline number moves.
| Stage | KPI | How to compute it from Shopify data | Common trap |
|---|---|---|---|
| Acquire | Blended acquisition cost | Total marketing spend divided by new customers in the same period | Counting returning customers as new |
| Acquire | Marketing efficiency ratio (MER) | Total store revenue divided by total marketing spend | Excluding agency and tool fees from spend |
| Convert | Conversion rate | Orders divided by sessions, split by device and source | Comparing your rate with a benchmark measured differently |
| Convert | Checkout completion | Orders divided by checkouts started | Ignoring express-payment orders that skip a step |
| Grow | Average order value | Order revenue divided by orders, first versus repeat | Reading it without margin |
| Retain | Repeat purchase rate | Customers with a second order divided by the cohort, by first-order month | Using calendar-year rates that mix cohorts |
| Retain | Customer lifetime value | Cumulative gross margin per customer in a cohort, over windows already lived | Projecting a curve and calling it observed |
| Protect | Refund and chargeback rate | Refunded or disputed orders divided by orders in the period | Measuring by refund date instead of order date |
| Protect | Failed-payment rate (subscriptions) | Failed charges divided by attempted charges | Counting a recovered retry as a success on the first attempt |
Take from the table that every KPI has a named denominator and a known way to get it wrong. If a metric on your dashboard has no written definition, it is not yet a KPI. It is a number that sometimes changes.
For a fuller treatment of where the source data lives, see the guide to Shopify analytics, and for the customer-value pair specifically, LTV and CAC explained.
Which benchmarks are independent, which are vendor claims, and which do not exist?
Very few ecommerce benchmarks are both sourced and comparable to your store. This section’s table lists the figures we are willing to quote, who measured them, and what they do and do not tell you. Everything else in this article is marked metric to confirm, because a number we cannot source is a number we do not print.
| Figure | Source | Kind | What it tells you | What it does not |
|---|---|---|---|---|
| 41% of email revenue from automated flows | Klaviyo, 183,000+ brands | Vendor-reported | Flows carry a large share of email revenue on Klaviyo | Whether your share should match, or how it splits by vertical |
| ChatGPT referral traffic converts at 1.81% vs 1.39% for non-branded organic | Visibility Labs, 94 ecommerce brands | Independent | AI-referred sessions converted better in that sample | A target for your store-wide conversion rate |
| About 9% of MRR lost to failed payments | Baremetrics | Independent | Failed payments are a material leak in subscription revenue | Your failure rate, which depends on card mix and retry rules |
| 25% of lapsed subscriptions trace to payment failure | Stripe | Vendor-reported | A meaningful share of “churn” is not a decision to leave | The recovery rate you can achieve |
The proprietary element on this page is the third column. A vendor benchmark describes the vendor’s customers, who chose that vendor and are usually more engaged with its product than the average store. An independent one describes whoever the researcher could sample. Neither is “the market”. Putting the label next to the number stops a reader from treating a marketing statistic as a target.
Two things follow. First, do not set a team goal from a benchmark whose sample you cannot inspect. Second, when a report gives an “average” with no mean-versus-median, no window and no sample size, treat it as unpublished.
Benchmarks that are not published
Average conversion rate by industry is the clearest example. Figures circulate widely, but they are computed with different session definitions, different traffic filters and different date windows, so two “averages” for the same category can differ for reasons that have nothing to do with the stores. The value for your store is metric to confirm until you compute it from your own data. Our page on average ecommerce conversion rate by industry goes into why the published figures disagree.
Average order value, repeat purchase rate and refund rate follow the same pattern: they vary sharply with price point, category and how much subscription revenue is in the mix, and no single independent source covers them at the $3M to $30M band. Compare your own trend line instead.
How do you know if a number is good without a benchmark?
Compare the number with itself. A good ecommerce KPI is one that moves in the right direction over a stable window, on a definition that has not changed, and that you can explain when it does not.
Three comparisons do more work than any industry average:
- Same week, prior year, adjusted for promotions. Ecommerce is seasonal, so a week-on-week comparison across a sale period mostly measures the sale. Compare like calendar periods, and mark the weeks that had a major campaign or stock-out.
- Cohort against cohort. Customers who first bought in March against those who first bought in June. If the June cohort repeats less at the same age, something changed: acquisition source, first product, discounting or delivery.
- Segment against segment. New versus returning, mobile versus desktop, paid versus organic. An overall conversion rate that is flat can hide a mobile rate that fell and a desktop rate that rose.
Consider a hypothetical brand, for illustration only. Overall conversion looks flat across two months. Split by device, mobile has slipped and desktop has risen by a similar amount, because a theme update broke a mobile payment button while a desktop promotion ran. The blended number said nothing was wrong. The segmented one pointed to a bug.
A KPI earns its place when it raises a question quickly enough that someone can look. A benchmark is at best a way to decide which question to ask first.
Which KPIs does Shopify’s own reporting leave out?
Shopify’s built-in reports cover sales, orders, customers and traffic reasonably well. They do not natively give you the numbers that need a second data source. The gap is not a criticism of Shopify; it is a consequence of what Shopify knows and what it cannot.
- Contribution margin after ad spend. Shopify does not hold your ad spend, and only holds product cost if the cost-per-item field is populated for every variant.
- Blended acquisition cost. Requires spend from every ad platform and a definition of a new customer that survives guest checkout and duplicate emails.
- Cohort repeat rate by first product. Reports exist, but joining them to product margin and to acquisition source usually means an export.
- Failed-payment recovery. Only relevant for subscription brands, and it lives in the subscription platform and the payment processor, not the storefront.
- Refund reason and refund-to-margin impact. Refund values are in Shopify; the reason codes are often free text in a helpdesk.
If you are on a paid Shopify plan already, our overview of Shopify reporting apps compares what the add-ons cover, and Shopify dashboards covers layout.
Attribution: the KPI everyone disputes
Attribution deserves its own warning. Each ad platform reports conversions using its own window and its own view-through rules, so the sum of platform-reported revenue routinely exceeds the revenue Shopify recorded. That is expected behaviour, not a fault. Use platform ROAS to compare campaigns inside one platform, use MER to judge the whole marketing budget, and use a holdout or geo test when you need to know whether a channel caused a sale.
Attribution tools such as Triple Whale and Northbeam sell a reconciled view on top of these sources. Their pricing models differ, and the current number should come from each vendor’s own pricing page, not from a blog post. Whichever you choose, check what it does not measure: offline influence, dark social and long consideration cycles tend to fall outside every model.
How should you set up KPI tracking on Shopify?
Start with definitions, then sources, then a dashboard. Reversing the order is how brands end up with a beautiful page nobody trusts.
- Write one definition per KPI. Numerator, denominator, date basis, exclusions (test orders, wholesale, gift cards) and the source table. One paragraph each, kept somewhere the finance lead can read it.
- Fix the cost inputs. Populate cost per item for every variant, load shipping and fulfilment cost per order from your 3PL, and decide how payment fees are allocated. Contribution margin is only as good as its worst input.
- Choose a source of truth per metric. Orders, refunds and revenue from Shopify. Spend from the ad platforms. Sessions from one analytics tool, consistently. Never mix sources inside one ratio without saying so.
- Add a data-health check. Count orders in Shopify against orders in the reporting layer each day. If they differ, the dashboard is wrong, and the KPIs on it are not to be trusted until someone finds out why.
- Set alert thresholds against your own history. A drop beyond the normal week-to-week spread triggers a look. Define the spread from at least a year of your own data, and record it as
metric to confirmuntil you have done that. - Review monthly, prune quarterly. Any tile nobody acted on in a quarter is removed.
The verification is simple. Pick one week from the past, recompute each headline KPI by hand from raw exports, and compare with the dashboard. If they disagree, fix the pipeline before the week’s numbers reach a board pack.
Where this breaks at volume
Guest checkout creates duplicate customers, so new-customer counts inflate and repeat rates deflate. Subscriptions add orders that are renewals, not decisions, which distorts average order value and conversion. Multi-currency stores report revenue in the presentment currency unless someone converts it. Bundles and kits change what a “unit” is. Each of these is a definition problem, and each is invisible in a chart until you look for it.
What do subscription brands add to the list?
Subscription brands add recurring revenue, churn split into voluntary and involuntary, failed-payment rate, and cohort retention curves. A conventional ecommerce KPI set treats every order as a one-off decision, which is wrong for a renewal that happens without the customer doing anything.
Involuntary churn is the line to isolate. Baremetrics puts about 9% of MRR as lost to failed payments (independent), and Stripe reports that 25% of lapsed subscriptions trace to payment failure (vendor-reported). Neither number is your rate, but both say the leak is worth measuring separately. If you cannot say how many of last month’s cancellations were card declines rather than customer choices, that gap is the first KPI to build. Our pieces on involuntary churn and average churn rate for subscription services go deeper.
Which KPIs are traps?
Some numbers look useful and mislead. Each of these has a proper place, but not as a headline.
- Sessions and page views. Traffic is an input. A rise with falling conversion is a warning, not a win.
- Platform-reported ROAS in isolation. It reflects one platform’s attribution view, and the sum across platforms will overcount.
- Average order value without margin. Pushing it up with free-shipping thresholds can reduce contribution margin per order if shipping cost rises faster. Our guide to AOV growth covers the levers and what each costs.
- Email open rate. Privacy features on mail clients inflate opens, so treat it as a rough signal. Revenue per recipient is more honest. Klaviyo’s flow figure says flows are a big revenue share on that platform (vendor-reported), which is a reason to measure flow revenue directly, not to copy a percentage.
- Any lifetime value that includes revenue the cohort has not yet produced. Label projections as projections.
There is also a case where AI-driven reporting does not belong: anything that changes a number without a person able to explain the change. An assistant can draft a weekly summary from clean data, but if the underlying tables are unreliable, it will produce confident prose about the wrong figures. Fix the data first.
What does a sensible weekly KPI page look like?
A single screen, read in five minutes. One line per stage, each with this week, the comparison week, and a one-sentence note if it moved beyond its normal spread.
- Margin: contribution margin after ad spend, total and per order.
- Acquire: blended acquisition cost and MER.
- Convert: conversion rate by device, and checkout completion.
- Retain: repeat rate for the two most recent full cohorts.
- Protect: refund rate and, for subscriptions, failed-payment rate.
- Data health: the order-count reconciliation from the setup steps.
Anything else sits behind a link. The value of the page is that its absence of clutter makes a real movement obvious. Compare that with a wall of tiles, where a broken tag looks the same as a good week.
For Google Analytics specifically, Google Analytics on Shopify covers how the storefront events map to the reports you will pull sessions from.
Who is this approach not for?
This approach is not for brands below the $3M floor, where a single campaign or a stock-out swamps the signal and the cost of building a joined-up reporting layer is out of proportion to what it returns. It is also not for teams that want a benchmark to quote in a deck: the honest answer to “what is a good conversion rate” is “measured how, and against whom”, and that is a less comfortable slide.
The approach fits operators at $3M to $30M who already have more dashboards than decisions, whose finance number and marketing number disagree by more than anyone can explain, and who suspect the disagreement is a definitions problem. It usually is.
One trusted layer of definitions, sources and checks is a reporting and analytics problem, and it is the work behind our reporting and analytics service: one place where contribution margin, cohort retention and data-health checks are computed the same way every week.
Sources
- Klaviyo, 183,000+ brands: 41% of email revenue comes from automated flows (vendor-reported).
- Visibility Labs, 94 ecommerce brands: ChatGPT referral traffic converted at 1.81% against 1.39% for non-branded organic (independent).
- Baremetrics: about 9% of monthly recurring revenue lost to failed payments (independent).
- Stripe: 25% of lapsed subscriptions trace to payment failure (vendor-reported).
- No other external figures are quoted. Formulas and definitions are standard ecommerce reporting practice; vendor pricing for attribution tools is not quoted and should be read from each vendor’s own pricing page.