Skip to main content
Card class: Non-HeroCategory: Ecommerce Platform

At a glance

Distinct customer count over the trailing 30 days, computed via CARDINALITY(customer_email) on the orders index. Adobe Commerce uses email as the practical customer identifier (the customer_id field is null for guest orders). The count therefore conflates registered customers with guests-using-the-same-email. On Adobe Commerce specifically, the card distinguishes B2B Companies (single Company can have many billing emails) from consumer accounts.
What it countsCARDINALITY(customer_email) over orders in the 30-day window. Distinct emails. Compared to prior 30-day for delta.
API fieldcustomer_email from GET /rest/V1/orders. Optionally customer_id for registered-only counts.
VAT / tax treatmentn/a, this is a count metric.
Shipping inclusionn/a.
Discountsn/a.
Credit Memo refund treatmentA customer who ordered then was fully refunded still counts. They placed an order, the count reflects intent.
state machine inclusionAll states except canceled (a customer whose only order was cancelled is not really an active customer).
pending_payment quirkIncluded. B2B net-30 customers whose orders sit in pending_payment are real customers in pipeline.
Multi-currency grand_total vs base_grand_totaln/a.
Store View scope (store_id)All Store Views by default. The same email across multiple Store Views counts as one customer.
B2B Company aggregationEach Company is counted as one customer when filtered to the B2B segment, even if multiple buyer emails sit under the Company. This is configurable; the default groups by Company.
Time window30D vsP.
Alert triggerNone by default.
Rolesowner, marketing

Calculation

CARDINALITY(customer_email.keyword)
  WHERE date BETWEEN [period_start, period_end]

Worked example

A homewares brand on Adobe Commerce 2.4.6 with US, UK, and B2B Store Views. Snapshot Monday 4 May 26. Customer count by Store View:
Store ViewDistinct emails (30D)Distinct registered customersDistinct B2B Companies
US consumer2,4201,840n/a
UK consumer1,9101,520n/a
B2B portal188 distinct emails156 customers (linked to Companies)142 distinct Companies
Blended (deduped)4,396 emails3,360 registeredn/a
Vs prior 30-day:
MetricCurrentPriorDelta
Total distinct emails4,3964,180+5.2%
Registered customers3,3603,210+4.7%
Guest emails1,036970+6.8%
B2B Companies142138+2.9%
What this is telling marketing:
  1. Customer base grew 5.2% MoM. Healthy.
  2. Guest growth (6.8%) is outpacing registered (4.7%). New traffic is converting but not creating accounts. This may reflect a deliberate “guest checkout first” UX, or it may be a missed opportunity for retention (registered customers are worth 2 to 3x lifetime value of guests in most categories).
  3. B2B Company count grew slightly (+2.9%, 4 net new Companies). Each Company is potentially worth tens of thousands per year, so 4 new Companies is a measurable acquisition win.
  4. The 188 B2B emails belong to 142 Companies: average 1.3 buyer-emails per Company. Most Companies have one buyer; some have 2 to 5. This matters for B2B email marketing: each Company should receive one strategic-Sales-touch communication, not 1.3.
  5. Cross-checking Customer Trend: of the 3,360 registered customers, 1,420 are first-time orderers in this period (new customers). This means 1,940 are returning, a 57.7% repeat-share among registered customers. Cross with Repeat Customer Rate for the lifetime view.
  6. Strategic question: should marketing push guest-to-registered conversion (post-purchase email cadence with account-creation incentive)? On a 1,036-guest base growing at 6.8%, converting 30% to registered would add ~310 registered customers/month, materially improving retention metrics.
The point: customer count is the simplest acquisition metric, but on Adobe Commerce the registered-vs-guest split and the B2B-Company-vs-emails split add necessary nuance.

Sibling cards merchants should reference together

CardWhy pair it with Customer Count
New CustomersFirst-time orderers, the leading-edge subset of customer count growth.
Customer TrendTrend chart visualising count over time.
Repeat Customer RateLoyalty companion. High customer count + low repeat = leaky bucket.
Guest vs Account CheckoutDecomposes count into registered vs guest.
Customer SegmentsLTV-cohort decomposition.
B2B Revenue ShareThe dollar-weighted view. Customer count is people-weighted; both matter.
Total OrdersOrder count divided by customer count = order frequency.
shopify.customer_countCross-platform peer.

Reconciling against the vendor’s own dashboard

Where to look in Adobe Commerce Admin:
Customers > All Customers lists registered customers; the grid total at the bottom shows the count. This excludes guests by definition (guests don’t have customer entities).
Reports > Customers > Customers by Number of Orders is the closest aggregated view, ranks customers by order count.
Sales > Orders filtered to a date range has a “Customer Email” column; the distinct-email count is your “this card” equivalent. Group by Customer Email in CSV export to compute manually.
For B2B (Adobe Commerce paid edition):
Customers > Companies counts Company entities. Customers > Companies > [Company] > Users shows users per Company.
Why our number may legitimately differ from Admin:
ReasonDirection of divergence
Guest inclusion. Card includes guest emails; Admin’s customer list shows registered only.Card count higher
Multi-Store-View deduplication. Card dedupes the same email across Store Views. Admin’s customer list often shows duplicate customer entities for the same email if the customer registered separately on each Store View.Card count lower than admin all-Store-Views sum
B2B Company aggregation. Card can group by Company; Admin counts buyer-emails.Material if many Companies have multiple buyers
Time window. Card uses 30-day-ordering activity; Admin’s customer list is all-time-registered.Card count smaller
Sync lag. Card uses OpenSearch sync (5-15 min); Admin live.Negligible at 30D
Cross-connector reconciliation (when these connectors are connected for this merchant):
PairExpected relationshipWhat divergence tells you
google_analytics.ga_purchasersGA4 purchasers ≈ Adobe customer count × (1 - tracking gap)GA4 typically misses 10-25%. Material lower divergence (>25%) suggests GA4 tag-fire issues at checkout.
ESP active-list sizeESP list usually exceeds customer count (subscribers who haven’t bought)Inverse relationship would be alarming (customers buying without subscribing); sometimes legitimate (B2B where buyers don’t sign up to consumer ESP).

Known limitations / merchant FAQs

My customer count seems lower than my CRM, why? The card counts customers who placed an order in the trailing 30 days. Your CRM probably contains all-time-registered customers, including dormant or churned. For a like-for-like, filter your CRM to “ordered in last 30 days”. Why use email rather than customer_id for distinct counting? Adobe Commerce stores customer_email on every order regardless of guest vs registered status. customer_id is null for guest orders. Using customer_email captures both. The trade-off: a guest who later registered with the same email is counted once across both order types (correct behaviour); a guest who used different emails on different orders counts as multiple customers (overcount). Adobe Commerce vs Magento Open Source: difference? None at the calculation. The B2B Companies module on the paid edition lets the card group by Company; Open Source merchants without the module count by buyer-email. For Open Source merchants who want B2B Company aggregation, custom attributes can be configured but it’s manual work. My multi-store Adobe Commerce, can the same customer count differently per Store View? Yes if they registered separately on each Store View (Adobe Commerce historically created per-Store-View customer entities; modern installations use customer_share_account_information to share across websites). The card dedupes by email regardless. If your historical data has duplicate registrations, the card’s count is more accurate than the Admin customer-grid count. B2B Company has 5 buyer emails, do I count it as 1 or 5? Depends on the question. For “how many decision-making units do we serve”, group by Company (count = 1). For “how many people log in and order”, count by email (count = 5). The card defaults to grouping by Company on the B2B segment; configurable per the use case. Why doesn’t this card include cancelled orders? A customer whose only order was cancelled is functionally equivalent to a customer who never ordered. Counting them inflates customer count without reflecting purchasing behaviour. The exception: Adobe Commerce auto-cancellations from pending_payment timeout where the customer would have been a real customer if the gateway worked. Those are excluded too, which understates “intent to be a customer” slightly. For a count-of-intent metric, see Quote-Create count via Cart-Abandonment Spike Alert. My customer count grew but revenue is flat, what’s happening? Likely AOV contraction. New customers are smaller-basket than existing customers; if customer count grew faster than revenue, the new customers are buying less per visit. Cross-check AOV and New Customers. This is the “successful acquisition, weak retention” pattern that needs an early-customer cadence intervention.

Tracked live in Vortex IQ Nerve Centre

Unique Customers is one of hundreds of KPI pulses Vortex IQ tracks across Adobe Commerce and 70+ other ecommerce connectors. Nerve Centre runs the detection layer; Vortex Mind investigates the cause when something moves; Ask Viq lets you interrogate any number in plain English. Start for free or book a demo to see this metric running on your own data.