At a glance
Average number of orders per customer in the period. The retention twin of Total Orders, where order_count answers “how many orders did the store take” this card answers “how often does the average customer buy”. Per-customer, not per-store.
| What it counts | COUNT(orders) ÷ COUNT(DISTINCT customer.id) over the window. Each Order.customer.id row contributes one to the denominator (deduped); each Order.id contributes one to the numerator. Guest checkouts (no customer.id) are excluded from both sides; they would otherwise distort the rate downward (every guest is a “new” customer with a single order). |
| API endpoint | Admin GraphQL. Order.customer.id + Order.id. The composite is computed in the Vortex IQ engine, not in Shopify’s report. |
| VAT / tax treatment | Not applicable (count ratio). |
| Shipping | Not applicable. |
| Discounts | Not applicable. The metric measures behaviour (how often), not spend (how much). Discount activity affects this card only indirectly, via its effect on repeat-purchase incentive. |
| Refunds | NOT excluded. A customer who placed 3 orders, refunded 2, still contributes 3 orders ÷ 1 customer = frequency 3.0. To see the kept-orders frequency, pair with Refund Rate and back out the refunded share. |
| Cancelled / voided orders | Included. Same rationale as Total Orders, cancellation is demand that materialised even if it didn’t ship. |
| Currency | Multi-currency safe (count ratio). |
| Channels / sources | Not filtered. POS orders to a Shop POS customer with a registered email contribute. The Buy Button is similar. Pure-guest channels (single-page checkout flows that bypass account creation) drop out by definition. |
| B2B vs DTC | B2B Edition orders attached to a PurchasingCompany are credited to the company, not the individual buyer. A wholesale customer who ordered 24 times in 90 days will pull this card sharply upward versus a DTC store of similar revenue. Stores running both should view the metric segmented by purchasing-entity type. |
| Time window | 90D (default). Frequency benefits from a longer window than ratios that move daily; 30 days under-samples repeat behaviour for most categories. |
| Alert trigger | None. Trend deltas surface in Repeat Customer Rate. |
| Roles | owner, marketing |
Calculation
Calculated automatically from your Shopify data. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.Worked example
A UK DTC coffee subscription brand on Shopify (basic plan), single GBP storefront. Period: 12 Feb 26 to 12 May 26 (90 days).| Customer cohort | Distinct customers | Orders placed | Orders ÷ customers |
|---|---|---|---|
| Subscription active (monthly cycle) | 1,840 | 5,210 | 2.83 |
| One-off coffee buyers | 4,260 | 4,820 | 1.13 |
| Mixed (subscription + add-on) | 510 | 1,840 | 3.61 |
| Guest checkouts | 1,210 | 1,210 | (excluded) |
| Total non-guest | 6,610 | 11,870 | 1.80 |
- Subscription customers carry the average. 1,840 subscription customers contributed 5,210 orders (44% of total volume from 28% of the customer base). Without the subscription cohort, the underlying DTC frequency drops to roughly 1.4. Always segment frequency by cohort, the headline number is a weighted blend that hides the interesting story.
- Guests are excluded by design. 1,210 guest checkouts placed exactly one order each (mechanically; you can’t be a “repeat” guest in Shopify’s
customer.idmodel). Including them would drag the number to 1.66 and create the illusion that retention dropped, when really only the guest-share rose. The card excludes them so the number stays interpretable. - The mixed cohort is the upsell target. 510 customers ordered both a subscription and a one-off add-on (a grinder, a mug, a gift card). Their frequency of 3.61 is the highest in the store. Marketing’s job is to move single-product subscribers into the mixed cohort; it’s the highest-LTV behaviour pattern the data exposes.
- One-off frequency of 1.13 is healthy for the category. Coffee is a consumable; sub-1.5 frequency on a 90-day window means most one-off buyers haven’t yet rebought. Email automation (a 30-day “running low?” sequence) would lift this directly. Pair with New vs Returning to see whether the population is structurally one-off or just slow to repeat.
- B2B Edition isn’t on this storefront, so the number isn’t distorted. If the brand had a B2B portal (cafés ordering wholesale beans), 50 cafés ordering twice a week would dwarf the DTC figure. A single B2B buyer at frequency 24 has the same statistical weight as 24 DTC buyers at frequency 1, and the headline gets meaningless without segmentation.
Sibling cards merchants should reference together
Order Frequency on its own is just an arithmetic mean. The interesting questions live next to it:| Card | Why pair it with Order Frequency |
|---|---|
| Repeat Customer Rate | The proportion of customers with frequency > 1. Frequency tells you the average; repeat rate tells you the share. Both can move independently (the Pareto-tail effect), so you need both. |
| Customer Count | The denominator. A frequency of 1.8 on 6,000 customers is a different business than 1.8 on 600 customers. Always read frequency next to the customer count to size the implication. |
| Total Orders | The numerator (excluding guests). Order count × distinct-customer share / total customers ≈ frequency, when guests are stripped. |
| AOV | LTV proxy. AOV × Frequency × Margin ≈ contribution per customer over the period. Frequency is the multiplier that turns a single-purchase metric into a value-per-customer metric. |
| New vs Returning | Cohort split. New customers have frequency 1 by definition (in their first period). Returning customer frequency is the meaningful number; the headline blends them. |
| Customer Lifetime Value | The compound metric. Frequency is the rate; LTV is the integral over the customer’s tenure. Stores moving frequency up by 0.2 points usually see LTV move proportionally. |
bigcommerce.order_frequency | Same definition. Documentation cross-link. |
adobe_commerce.order_frequency | Same definition. Documentation cross-link. |
Reconciling against the vendor’s own dashboard
Where to look in Shopify Admin: Shopify does not expose a single “Order Frequency” tile. The closest reconstruction is via the Customers report cluster.Analytics → Reports → “Returning customer rate” and Analytics → Reports → “Customers over time”These show the populations from which frequency is computed (distinct customers, repeat customers). To get the per-customer order count yourself, export Customers → All customers (with the Orders count column) and average the
orders_count field across rows. Filter by date if you want the windowed view.
Other Shopify Admin views that look similar but are not the same number:
- Home → Customer insights: shows aggregate metrics including average orders per customer, but uses lifetime customer history, not the windowed view here. Will read higher than this card.
- Customers → Segments → Repeat customers: a customer-list filter, not a frequency metric. Useful for export, not for direct comparison.
- Apps like Klaviyo / LoyaltyLion: these compute frequency from their own event store; mailable-customer subset and time-window definitions vary. Expect 10 to 25% drift.
| Reason | Direction | Why |
|---|---|---|
| Time zone | Boundary days | Shopify Admin uses store time zone; Vortex IQ uses UTC. Customers whose first order falls on a boundary day can be classified differently. |
| Guest exclusion | Ours higher | Vortex IQ excludes guest orders from both numerator and denominator. Some Shopify exports include guests in the denominator (every guest = 1 customer with 1 order), which lowers the headline. |
| Lifetime vs windowed | Theirs may be higher | Shopify’s Customer Insights tile is lifetime-cumulative; this card is 90-day-bounded. A customer who ordered 12 times historically but only twice in the last 90 days contributes 2 here, 12 there. |
| Multi-store accounts | Ours splits | A customer with the same email across two Shopify stores is two separate customer.id rows. Frequency is computed per-store. To consolidate, use Shopify Plus’s combined customer record. |
| B2B Edition company merging | Either | B2B orders attribute to the company, not the buyer. Stores transitioning to B2B Edition mid-period see a structural lift in this card as multiple buyers consolidate to one company-customer. |
| Sync lag | Ours lower for “today” | Webhook-driven, 5 to 15 minute index lag. Yesterday and earlier are fully caught up. |
| Card | Expected relationship | Notes |
|---|---|---|
google_analytics.ga_returning_users | Indirect. GA4 sees session-returning users, Shopify sees order-returning customers. | GA4 measures session repeat; Shopify measures purchase repeat. Trends should correlate but levels won’t match. |
klaviyo.kl_repeat_buyer_rate | Within ±10% on subscribed-customer subset | Klaviyo only sees the mailable cohort; Shopify sees everyone. |
Known limitations / merchant FAQs
What’s a “good” order frequency? Category-dependent, badly. Coffee, supplements, pet food, and other consumables routinely run 3 to 6 orders per customer over 90 days; furniture, mattresses, and durable goods can sit at 1.0 to 1.2 and that’s healthy for them. The right benchmark is your own history. A 10% lift quarter-over-quarter on the same customer base is meaningful regardless of absolute level. Why are guests excluded? Guests can’t be repeat in Shopify’s data model (nocustomer.id to link a second order to). Including them mechanically pulls the average toward 1.0, swamping any real retention signal. The card therefore measures the trackable customer base. If your guest-checkout share is rising (a UX or privacy trend), pair this card with Guest vs Registered Checkout to spot the dilution before it shows up here.
My subscription store, does each recurring billing count?
Yes, every subscription billing is a separate Order.id row attached to the same customer.id, which is exactly the behaviour the metric wants. A monthly subscriber over 12 months has frequency 12 in a 365-day window. This is the right answer; the customer is placing 12 orders.
Why is this card different from “Returning Customer Rate”?
Different shapes of the same idea. Returning Customer Rate is binary per customer (did they come back yes/no?), expressed as a percentage of the cohort. Order Frequency is the count per customer, expressed as a number. A store with 50% returning rate and average return-buyer placing 3 orders has frequency ((50% × 1) + (50% × 4)) = 2.5. The two move together in trend but answer different questions.
Multi-currency, does FX affect this card?
No. Frequency is a count ratio with no money in it. A merchant taking GBP, EUR, and USD orders aggregates all of them by customer.id and the count is currency-agnostic. The companion AOV and revenue cards have the multi-currency-without-FX caveat; this one does not.
Shopify Plus vs basic plan, any behavioural differences?
Largely no, the underlying customer.id model is identical across plans. Two edge cases for Plus stores: (1) Combined Customer Records (Plus only) merges customer profiles across multiple stores, which can change the denominator if you migrate; (2) B2B Edition (Plus only) attaches orders to companies, not individual buyers, which dramatically changes the metric for any store with active B2B traffic. Basic stores see neither effect.
Refresh cadence?
Daily aggregation runs overnight on the customer index. Within-day order activity is reflected after the next overnight roll-up; this is intentional to avoid the rate flickering as orders post intraday.
B2B vs DTC, how should I interpret the blended number?
Don’t blend them if both are material. A B2B-heavy store running through B2B Edition will show an artificially-high frequency because the denominator is companies (small N) and the numerator is orders (large N). Always view B2B and DTC separately; the segmented numbers tell two different operational stories. If you’re not yet on B2B Edition and just tagging wholesale orders, filter by tag in Ask Viq.
The number moved, what should I check first?
Open Customer Count. If it dropped, you didn’t lose buying frequency, you lost buyers (and the survivors look more loyal by maths). If customer count held but frequency rose, your retention work is paying off. If both rose, you’re acquiring well and retaining well, which is rare and worth understanding before it changes.
Action playbook when frequency declines:
- Open Repeat Customer Rate. If repeat rate held but frequency dropped, your existing repeat customers are buying less often (a fatigue problem). If repeat rate dropped, fewer customers are coming back at all (an experience problem).
- Pull the New Customers trend. A surge in new acquisition mechanically dilutes frequency in the short term; the cohort hasn’t had time to repeat yet.
- Check email-program health (open rate, click rate, deliverability). The fastest lever for frequency in any DTC store is consistent post-purchase email; a 2-week deliverability outage shows up as a frequency dip 30 to 45 days later.
- Review subscription churn separately. A subscription cohort losing 5% of subscribers a month removes the highest-frequency segment first.