Conversion Rate Benchmarks: Read Them Right

How to read ecommerce conversion rate benchmarks without misleading yourself: what Shopify counts as a session and a conversion, and why two numbers differ.

Search for the average ecommerce conversion rate and you get a single number from a page that often does not tell you what it divided by what. This page does not give you that number. It gives you the definition Shopify uses for your own store's rate, five reasons two rates that look comparable are not, a checklist for judging any published benchmark, and a method for the comparison that actually helps you: your store against its own earlier weeks. We do not quote a benchmark figure here. A number whose definition you cannot check is worse than no number, because it feels like an answer.

What Shopify counts

Shopify publishes the definitions in the developer documentation for ShopifyQL, the query language behind its reports. In the sessions schema, a session is an online store visit, and the table has one row per session. The metrics that matter here are defined there as follows:

  • Conversion rate is the percentage of online store visits (sessions) that resulted in a sale, calculated as sessions that completed checkout divided by sessions.
  • Added to cart rate is sessions with cart additions divided by sessions, and reached checkout rate is sessions that reached checkout divided by sessions.
  • Checkout conversion rate is sessions that completed checkout divided by sessions that reached checkout.
  • Online store visitors counts unique visitors, and the schema notes a visitor might have multiple sessions.

Read the conversion rate definition twice. The numerator is sessions that completed checkout, not orders, so a shopper who places two orders in one session counts once. The denominator is all sessions, so a visit that never left the home page counts as much as one that reached the cart. And because there is a separate funnel (cart, checkout, completed), a drop in the overall rate can be traced to the step where it happened.

Five reasons two rates are not comparable

  1. The denominator. One rate divides by sessions, another by visitors or users, another counts transactions rather than converted sessions. Shopify's own schema separates sessions and visitors, which is a reminder that the choice exists. A rate on visitors can come out different from the same store's rate on sessions, because repeat visits add sessions and not visitors.
  2. The traffic mix. The sessions table can be split by referral channel and by the type of traffic, such as direct, paid or organic. A store with mostly email subscribers and a store with mostly paid social are measuring different shoppers, and an average across both would describe neither.
  3. The device mix. Sessions can be grouped by device type. If one panel is mostly mobile and your store is mostly desktop, or the reverse, their rate is not yours.
  4. Bot filtering. The schema carries a field that records whether a visit came from a human or an automated bot, and its example queries filter to human sessions. A rate that includes bot visits has a bigger denominator and a lower result. If a benchmark does not say which it used, you cannot know.
  5. The period. A rate for a week that includes a sale, a month that includes a launch and a quarter are three different measurements. Seasonality alone moves a rate, which is why the useful comparison is always the same weeks of a prior period.

Here is how much the bot question alone can move a number. Assume a store with 10,000 sessions in a week, of which 1,500 are bots, and 170 sessions that completed checkout. On all sessions the rate is 170 / 10,000 = 1.70 percent. On human sessions it is 170 / 8,500 = 2.00 percent. That is a 0.3 point difference from one filter, with nothing changing in the store. The numbers are invented to show the arithmetic; yours come from the report.

Compare yourself with yourself

The comparison that holds up is your store against its own matched weeks. Match the weeks by what is in them: the same days of the week, the same promotions running or not running, and the same traffic sources where you can. The schema's own example query does the work of putting two periods side by side; it uses a time series by day with a comparison to the previous period and a filter to human sessions. You can adapt that query wherever you use ShopifyQL, and compare the same funnel in Shopify's reports.

Two rules keep this honest. First, write the definition next to the number: sessions or visitors, bots in or out, which dates. Second, size the noise. With 8,500 human sessions and a rate of 2.00 percent, the usual normal approximation gives a standard error of about 0.15 points, so the 95 percent range is about plus or minus 0.3 points, and a move from 2.00 to 2.20 is within what chance alone produces in a week. Do not celebrate a 0.2 point change from one week. Measure promotion results shows how to pick a comparison window you can defend, and average order value covers the other half of a revenue per session picture.

When a published benchmark is usable

Treat a benchmark as usable only if it passes every item on this list. Most do not, and that is fine, because you do not need one.

  1. It is named. A study with an author and an organization, not "industry data."
  2. It states its sample. How many stores or sessions, what kinds of stores, which platform.
  3. It is dated, and the period it covers is stated.
  4. It states its definition. Sessions or visitors, bots in or out, converted sessions or orders.
  5. It splits by what you sell and how people reach you, not only a single average.
  6. You can find the original, not a summary of a summary.

If a number fails one item, use it as a prompt to measure something, not as a target. A benchmark that says your rate is below the average does not tell you which of the five reasons above is responsible.

Raise the rate you measured

Once you have your own baseline, work on the step that loses the most shoppers. If the gap between added to cart and reached checkout is large, the cart is the problem, and a reward that appears in the cart is one of the cheaper things to test. A progress bar that shows how close the cart is to a free shipping threshold or a gift can change what shoppers add. Change one thing at a time, keep the matched-weeks method, and look at profit per order as well as the rate: profit per order shows why a higher conversion rate can still be a worse week. To judge whether a change that small is real, A/B Testing Offers: Sample Size and Stopping gives the visitors each arm needs.

Building a progress bar

Open the Progress bar template, which the app describes as "Show how close the cart is to a reward." Before you turn it on, write down your baseline: the last four matched weeks of sessions, the rate on human sessions, and the add to cart and reach checkout rates. After two weeks, compare the same measures against the same weeks and decide from the funnel step that moved, not from a benchmark.

Sources

Build this offer from the “Progress bar” template.

Requires: Growth plan or higher.