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.