Customers reports

Who buys, who returns, who is new and who is loyal — customer behaviour measured across your whole business, so a customer who shops in two of your stores is one customer, not two.

11 built-in reports — every one opens in the report editor, runs across all connected stores in one currency, and can be saved, exported or scheduled. The query under each report is the whole report — readable, and yours to change.

New customers over time

Customers placing their first order each day, with those orders and what they spent.

FROM sales
  SHOW customers, orders, total_sales
  WHERE new_or_returning_customer = 'First-time'
  SINCE startOfDay(-30d) UNTIL today
  TIMESERIES day WITH TOTALS, PERCENT_CHANGE
  COMPARE TO previous_period
  ORDER BY timeseries ASC
  LIMIT 1000
  VISUALIZE customers TYPE line

Returning customer rate over time

Share of each day's customers who had bought from you before.

FROM sales
  SHOW returning_customers, customers, returning_customer_rate
  SINCE startOfDay(-30d) UNTIL today
  TIMESERIES day WITH TOTALS, PERCENT_CHANGE
  COMPARE TO previous_period
  ORDER BY timeseries ASC
  LIMIT 1000
  VISUALIZE returning_customer_rate TYPE line

New customer sales over time

What first-time customers spent each month over the last year, with their orders.

FROM sales
  SHOW customers, orders, total_sales
  WHERE new_or_returning_customer = 'First-time'
  SINCE startOfDay(-365d) UNTIL today
  GROUP BY new_or_returning_customer, month WITH TOTALS, GROUP_TOTALS, PERCENT_CHANGE
  TIMESERIES month
  COMPARE TO previous_period
  ORDER BY month ASC, new_or_returning_customer ASC
  LIMIT 1000
  VISUALIZE total_sales TYPE stacked_area

New vs returning customers

How this month's customers split between first-timers and repeat buyers.

FROM sales
  SHOW customers
  WHERE new_or_returning_customer IS NOT NULL
  SINCE startOfDay(-30d) UNTIL today
  GROUP BY new_or_returning_customer WITH TOTALS, PERCENT_CHANGE
  COMPARE TO previous_period
  ORDER BY new_or_returning_customer ASC
  LIMIT 2
  VISUALIZE customers TYPE donut

One-time customers

Customers who have ordered exactly once, with what they spent — the list to win a second order from.

FROM customers
  SHOW total_number_of_orders, total_amount_spent
  WHERE customer_number_of_orders = 1
  SINCE startOfDay(-365d) UNTIL -1d
  GROUP BY customer_name, customer_email, customer_email_subscription_status, customer_first_order_date WITH TOTALS
  ORDER BY total_amount_spent DESC
  LIMIT 1000
  VISUALIZE total_amount_spent TYPE horizontal_bar

Returning customers

Customers who have ordered more than once, with their lifetime spend and what they spend per order.

FROM customers
  SHOW total_number_of_orders, total_amount_spent_per_order, total_amount_spent
  WHERE customer_number_of_orders > 1
  SINCE startOfDay(-365d) UNTIL -1d
  GROUP BY customer_name, customer_email, customer_email_subscription_status, customer_first_order_date, customer_last_order_date WITH TOTALS
  ORDER BY total_amount_spent DESC
  LIMIT 1000
  VISUALIZE total_amount_spent TYPE horizontal_bar

Customers by location

Where your new customers came from — country, region and city, over the last 30 days.

FROM customers
  SHOW new_customer_records
  WHERE customer_number_of_orders > 0
  SINCE startOfDay(-30d) UNTIL today
  GROUP BY customer_country, customer_region, customer_city WITH TOTALS, GROUP_TOTALS
  ORDER BY new_customer_records DESC, customer_country ASC, customer_region ASC, customer_city ASC
  LIMIT 1000
  VISUALIZE new_customer_records TYPE stacked_bar

Predicted spend tiers

Customers grouped by Shopify's prediction of how much they'll spend — who to nurture, who to win back.

FROM customers
  SHOW new_customer_records, total_number_of_orders, total_amount_spent
  WHERE customer_number_of_orders > 0
  SINCE startOfDay(-365d) UNTIL today
  GROUP BY predicted_spend_tier, customer_name WITH TOTALS, GROUP_TOTALS
  ORDER BY total_amount_spent DESC, predicted_spend_tier DESC, customer_name ASC
  LIMIT 1000
  VISUALIZE total_amount_spent TYPE donut

RFM customer analysis

Your customer base by Shopify's RFM grouping — Champions to Dormant, with orders and lifetime spend per group.

FROM customers
  SHOW percent_of_customers, new_customer_records, days_since_last_order,
    total_number_of_orders, total_amount_spent
  WHERE rfm_group IN ('ACTIVE', 'ALMOST_LOST', 'AT_RISK', 'CHAMPIONS', 'DORMANT', 'LOYAL', 'NEEDS_ATTENTION', 'NEW', 'PREVIOUSLY_LOYAL', 'PROMISING')
  GROUP BY rfm_group WITH TOTALS
  ORDER BY new_customer_records DESC
  LIMIT 1000
  VISUALIZE new_customer_records TYPE rfm_grid

RFM customer list

The customers inside one RFM group, ranked by lifetime spend — Champions by default; edit the filter for any group.

FROM customers
  SHOW days_since_last_order, total_number_of_orders, total_amount_spent
  WHERE rfm_group = 'CHAMPIONS'
  GROUP BY customer_id, customer_name, rfm_group WITH TOTALS
  ORDER BY total_amount_spent DESC
  LIMIT 1000
  VISUALIZE total_amount_spent TYPE horizontal_bar

Customer cohort analysis

Customers grouped by the month of their first order, tracked month by month afterwards — the retention grid.

FROM customer_cohorts_monthly
  SHOW customer_cohorts_monthly_customers,
    customer_cohorts_monthly_customers_customer_cohort_period_totals,
    customer_cohorts_monthly_customers_periods_since_first_purchase_totals,
    customer_cohorts_monthly_customers_totals,
    customer_cohorts_monthly_customer_retention_rate,
    customer_cohorts_monthly_customer_retention_rate_periods_since_first_purchase_totals,
    customer_cohorts_monthly_customer_retention_rate_totals,
    customer_cohorts_monthly_customers_in_cohort,
    customer_cohorts_monthly_customers_in_cohort_periods_since_first_purchase_totals,
    customer_cohorts_monthly_customer_retention_rate_customer_cohort_period_totals
  WHERE customer_cohorts_monthly_periods_since_first_purchase BETWEEN -1 AND 11
  GROUP BY month, customer_cohorts_monthly_periods_since_first_purchase
  HAVING customer_cohorts_monthly_periods_since_first_purchase >= 0
  SINCE startOfMonth(-12m) UNTIL endOfMonth(-1m)
  ORDER BY month ASC, customer_cohorts_monthly_periods_since_first_purchase ASC
  VISUALIZE customer_cohorts_monthly_customer_retention_rate TYPE cohort_grid

FAQ

Do these customers reports cover all my Shopify stores? Yes — every report on this page aggregates across all connected stores and converts to one currency. Group by store inside any of them for the per-store split.

Can I change what a report shows? Yes — every report opens in the report editor, where metrics, groupings, filters, date ranges and the chart are all editable, and your version saves to your own library.

Can I get these reports automatically? Yes — any report can be downloaded as CSV or Excel, or scheduled to arrive by email or FTP on the cadence you choose.