At a glance
Daily distinct-customer count over trailing 90 days. The trend chart for Customer Count, with optional new-vs-returning split. Adobe Commerce merchants often see a 7-day weekly pattern (B2B procurement-heavy weekday peaks, consumer weekend dips) plus monthly cycles (B2B end-of-month PO clustering).
| What it counts | Daily CARDINALITY(customer_email) over 90 days. Each day is one bucket showing distinct customers who placed at least one order that day. Optional decomposition: new (first-ever order) vs returning. |
| API field | customer_email, created_at, optional customer_id from GET /rest/V1/orders. New-vs-returning detection via per-customer created_at history. |
| VAT / tax treatment | n/a, count metric. |
| Shipping inclusion | n/a. |
| Discounts | n/a. |
| Credit Memo refund treatment | A customer who later got a full refund still counts on the original-order day. |
state machine inclusion | All states except canceled. |
pending_payment quirk | Included. |
Multi-currency grand_total vs base_grand_total | n/a for the count. |
Store View scope (store_id) | All Store Views; same email across Store Views deduped per day. |
| Time window | 90D daily granularity. 7-day moving average overlay typical. |
| Alert trigger | None by default. |
| Roles | owner, marketing |
Calculation
Worked example
A homewares brand on Adobe Commerce 2.4.6, US/UK/B2B Store Views. 90-day window ending Monday 4 May 26. 90-day overview:| Metric | Value |
|---|---|
| Total distinct customers (90D) | 11,420 |
| Average daily distinct customers | 320 |
| Standard deviation | 65 |
| Highest single-day count | 542 (after Mother’s Day push) |
| Lowest single-day count | 184 (Christmas Day) |
| Day | Median customers |
|---|---|
| Mon | 380 |
| Tue | 410 |
| Wed | 405 |
| Thu | 395 |
| Fri | 350 |
| Sat | 240 |
| Sun | 220 |
| Cohort | Customers | % of total |
|---|---|---|
| New (first-ever order) | 4,640 | 40.6% |
| Returning | 6,780 | 59.4% |
- Weekday-heavy customer pattern. Tuesday and Wednesday are peak; weekend dips reflect B2B-mix dominance (B2B is overwhelmingly weekday).
- 40.6% new customer rate over 90 days is a healthy acquisition cadence. Consumer-side; on B2B it’s typically <5%.
- The Mother’s Day spike (542 on the peak day, ~70% above 7-day moving average) is a campaign-driven event. Useful to see how the cohort acquired performs over the next 90 days for ROAS attribution.
- The Christmas Day trough (184) is the lowest single day. Expected: most B2B and consumer activity pauses Christmas Day. Use this baseline rather than the moving average for “is the business operating normally” detection on holidays.
- Cross-checking New Customers trend: new-customer rate has been stable at ~40% for 6 of the 12 weeks; rose to ~50% in weeks 8 and 9 (Mother’s Day campaign push) then receded. The campaign created a transient lift in new-customer share.
- Cross-checking Repeat Customer Rate: 59.4% returning over 90 days is in the healthy range; well-retained brands run 55-70%, struggling ones below 50%.
- Strategic question: should the merchant invest in a Saturday-Sunday weekend campaign to lift weekend customer count? The 40% weekday-vs-weekend gap is a B2B effect; converting consumer weekend traffic better could close the gap. Cross-check with paid-traffic conversion rates by day-of-week.
Sibling cards merchants should reference together
| Card | Why pair it with Customer Trend |
|---|---|
| Customer Count | Single-period summary; this card is its trend chart. |
| New Customers | The first-time-orderer subset. |
| Repeat Customer Rate | The returning subset. |
| Daily Order Trends | Sibling chart at the order level (not deduped to customer). |
| Revenue Over Time | The dollar-weighted view of the same period. |
| Customer Segments | Per-cohort rollup. |
google_analytics.ga_users_over_time | Top-of-funnel comparison. |
shopify.customer_trend | Cross-platform peer. |
Reconciling against the vendor’s own dashboard
Where to look in Adobe Commerce Admin:Reports > Customers > Customers by Number of Orders with a date range gives the per-customer activity, not a daily trend. Manual aggregation needed for the daily series.
Sales > Orders with date filter, group by date manually via export.
Dashboard > Last Orders is real-time but only shows the last 5 orders.For B2B (Adobe Commerce paid edition):
Customers > Companies with order history, manual per-Company timeline.Why our number may legitimately differ from a manual Admin computation:
| Reason | Direction of divergence |
|---|---|
| Time-zone. Admin in Store View timezone; card UTC. Day boundaries shift. | ±1 day per bucket |
Email vs customer_id. Card uses email which captures both registered and guests; Admin’s customer-grid is registered only. | Card count higher |
| Multi-Store-View dedup. Card dedupes the same email across Store Views. | Card slightly lower than Store-View-summed manual |
canceled exclusion. Card excludes; Admin includes unless filtered. | Card count slightly lower |
| Pair | Expected relationship | What divergence tells you |
|---|---|---|
google_analytics.ga_users_over_time | GA4 users with purchase event ≈ Adobe customer trend × (1 - tracking gap) | Material divergence indicates GA4 tag-fire issues at checkout. |
| ESP active-recipient daily count | ESP “active” definition varies; usually broader | Trend correlation more useful than absolute alignment. |