> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vortexiq.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Orders Over Time, Shopify

> Orders Over Time for Shopify stores. Tracked live in Vortex IQ Nerve Centre. How to read it, why it matters, and how to act on it.

**Metrics type:** [Supporting Metrics](/nerve-centre/overview#metrics-types-explained)  •  **Category:** [Ecommerce Platform](/nerve-centre/connectors#connectors-by-type)

## At a glance

> Daily order count over the last 90 days, plotted as an area chart. The time-series companion to [Total Orders](/nerve-centre/kpi-cards/shopify/total-orders), which collapses the same data to a single number. The shape of the curve is the value here, not the headline.

|                               |                                                                                                                                                                                                                                                       |
| ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **What it counts**            | `DATE_HISTOGRAM(createdAt, interval=1d) → COUNT(_id)`. Each `Order.id` contributes one to its `createdAt` calendar day (in UTC). Bars are inclusive on the left edge, exclusive on the right.                                                         |
| **API endpoint**              | `Admin GraphQL. Order.id` + `Order.createdAt`, aggregated by the engine.                                                                                                                                                                              |
| **VAT / tax treatment**       | Not applicable (count metric).                                                                                                                                                                                                                        |
| **Shipping**                  | Not applicable.                                                                                                                                                                                                                                       |
| **Discounts**                 | Not applicable. The card answers "when did orders happen", not "how much was spent".                                                                                                                                                                  |
| **Refunds**                   | NOT deducted from the bar of the original order day. A refund posted on day +14 does not retroactively reduce the day-0 bar. The series is the *placement* timeline, not the *kept* timeline.                                                         |
| **Cancelled / voided orders** | Included. Same convention as [Total Orders](/nerve-centre/kpi-cards/shopify/total-orders): cancelled orders represent demand that came in.                                                                                                            |
| **Currency**                  | Multi-currency safe (count, not money).                                                                                                                                                                                                               |
| **Channels / sources**        | Not filtered. Online + POS + Buy Button + marketplaces all roll up into the same daily bar. The shape of POS Saturdays vs Online-Store Mondays is invisible at this level; use Shopify Admin's *Sales by channel* if the channel-split shape matters. |
| **Bucket interval**           | Fixed at 1 day. A 90-day window produces 90 bars. The chart auto-fills zero-order days as zero (not as missing); a true gap in data appears as a flat-zero strip rather than a break in the line.                                                     |
| **Time window**               | `90D` (default). The 90-day window is long enough to expose seasonality (week-over-week + monthly cycles) without flattening recent noise.                                                                                                            |
| **Alert trigger**             | None on the time series itself. The companion sentiment `order_count_trend` watches the 30D vsP rolling change on the headline number.                                                                                                                |
| **Roles**                     | owner, marketing, operations                                                                                                                                                                                                                          |

## Calculation

```
DATE_HISTOGRAM COUNT(_id)
  WHERE date BETWEEN [period_start, period_end]
```

## Worked example

A US multi-channel home-goods brand on Shopify Plus. Window: 12 Feb 26 to 12 May 26 (90 days). The smoothed daily curve produces these reference points:

| Date / window                  | Daily order count | Notes                                                            |
| ------------------------------ | ----------------- | ---------------------------------------------------------------- |
| Mon 16 Feb 26                  | 412               | Presidents Day promo, +28% vs prior Monday                       |
| Tue 17 Feb 26                  | 198               | Post-promo dip                                                   |
| Sat 14 Mar 26                  | 305               | Weekend baseline                                                 |
| Mon 30 Mar 26                  | 96                | Cloudflare incident 09:00 to 11:00 ET, checkout briefly down     |
| Tue 31 Mar 26                  | 412               | Recovery + delayed-conversion catch-up                           |
| Wed 22 Apr 26 to Sun 26 Apr 26 | avg 285           | "Spring Sale" event, sustained 5-day lift                        |
| Mon 11 May 26                  | 224               | Mother's Day post-peak comedown (US Mother's Day was Sun 10 May) |

Five things to notice:

1. **The 30 Mar dip is a system event, not a demand event.** A Cloudflare CDN incident knocked checkout offline for 2 hours; orders compressed into the surrounding hours and the next-day bar shows the recovery spike. Pair with [`datadog.dd_incident_count`](/nerve-centre/datadog/dd_incident_count) to confirm the cause. **The card alone cannot distinguish "demand collapsed" from "infrastructure broke"**, the time series only tells you orders weren't placed; the cause lives elsewhere.
2. **Mondays run hot, Tuesdays run cold.** The 16 Feb / 17 Feb pattern repeats almost every week (Mondays are highest order day for this category, by 25 to 35%). Always compare like-for-like (Mon-vs-Mon, Sat-vs-Sat) when reading the chart, never raw day-over-day.
3. **The Spring Sale event is visible as a 5-day plateau, not a single spike.** The campaign drove sustained lift from 22 Apr to 26 Apr, with the largest day on Wed (the email-send day). Pair with [Total Revenue Over Time](/nerve-centre/kpi-cards/shopify/total-revenue) to check whether the lift was AOV-driven or volume-driven.
4. **The Mother's Day comedown is structural, not a problem.** US gift-driven categories see a 15 to 25% dip the week after a major holiday as forward-pulled demand settles. The 11 May figure of 224 looks low next to the prior week's average of 280, but it's a known cycle. The 30D vsP comparison would falsely flag it; the 90D series shows it for what it is.
5. **The smoothed-baseline shift is the interesting signal.** Comparing the first 30 days of the window (avg 245 orders/day) to the last 30 (avg 282 orders/day), the underlying baseline rose 15%. That trend, *not* any single bar, is what the series is most useful for.

## Sibling cards merchants should reference together

The time series is a diagnostic tool. Pair it with the cards that explain *why* the shape moved:

| Card                                                                                              | Why pair it with Orders Over Time                                                                                                                                  |
| ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [Total Orders](/nerve-centre/kpi-cards/shopify/total-orders)                                      | The single-number summary. The chart is the breakdown of this card. Read them together: the chart shows when, the number shows how much.                           |
| [Total Revenue Over Time](/nerve-centre/kpi-cards/shopify/total-revenue)                          | Revenue twin. If orders rose but revenue rose more, AOV climbed; if orders rose but revenue stayed flat, AOV dropped. The two charts diff to AOV.                  |
| [AOV](/nerve-centre/kpi-cards/shopify/average-order-value)                                        | The per-order value. A flat order chart with falling AOV usually means a discount cycle is biting.                                                                 |
| [Orders by Channel](/nerve-centre/shopify/orders_by_channel)                                      | The channel decomposition. Tells you whether a daily spike came from Online Store, POS, or marketplaces.                                                           |
| [Refunds Over Time](/nerve-centre/kpi-cards/shopify/refunds-over-time)                            | The companion negative series. A demand spike followed 14 to 21 days later by a refund spike is a quality-failure signature.                                       |
| [Conversion Rate](/nerve-centre/shopify/ecommerce_conversion_rate)                                | Sessions ÷ orders. A drop in this chart with stable conversion rate means traffic fell; a drop with stable traffic means conversion fell. The split is diagnostic. |
| [`datadog.dd_incident_count`](/nerve-centre/datadog/dd_incident_count)                            | Infrastructure incidents. Sharp single-day dips often map to a Datadog incident on the same day.                                                                   |
| [`google_analytics.ga_purchases_trend`](/nerve-centre/kpi-cards/google-analytics/purchases-trend) | The GA4-side time series. Shapes should track within 5 to 15% (ad-blocker / consent gap). Persistent divergence indicates tracking drift.                          |
| [`bigcommerce.orders_over_time`](/nerve-centre/kpi-cards/bigcommerce/orders-over-time)            | Same definition. Documentation cross-link.                                                                                                                         |
| [`adobe_commerce.orders_over_time`](/nerve-centre/kpi-cards/adobe-commerce/orders-over-time)      | Same definition. Documentation cross-link.                                                                                                                         |

## Reconciling against the vendor's own dashboard

**Where to look in Shopify Admin:**

> [Analytics → Reports → "Orders over time"](https://admin.shopify.com/reports/orders_over_time)

This is the definitional twin of this card. Set the date range to match and the daily bars should align bar-for-bar within sync-lag tolerance.

Other Shopify Admin views that look similar but read different shapes:

* **Analytics → Dashboards → Overview**: shows a sparkline for the last 30 days only. Useful for the at-a-glance read; not the same axis density as the 90-day card.
* **Reports → Sessions over time**: traffic, not orders. The two charts together compose conversion rate.
* **Reports → Sales over time**: revenue, not orders. Differs in shape on heavy-discount days when AOV moves.
* **Home → "Live View"**: real-time per-minute order counter; useful for sale launches, not for trend comparison.

**Why our number may legitimately differ from Shopify Admin:**

| Reason                        | Direction                           | Why                                                                                                                                                                                                                                                                    |
| ----------------------------- | ----------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Time zone**                 | Boundary days                       | Shopify Admin uses store time zone for the daily-bucket boundary; Vortex IQ buckets in UTC. Orders placed near midnight on the boundary days fall on different sides of the line. The headline 90-day total reconciles; individual day bars can shift by a few orders. |
| **Test orders**               | Ours slightly higher                | `Order.test = true` is not yet filtered.                                                                                                                                                                                                                               |
| **Cancelled orders**          | Both include                        | Both include cancelled orders by default. Shopify Admin can apply a fulfillment-status filter to exclude; this card cannot yet.                                                                                                                                        |
| **Channel filter**            | Either                              | Shopify can filter the report to a single channel; this card aggregates all channels. To match, run the Shopify report with "All channels" selected.                                                                                                                   |
| **Sync lag**                  | Ours lower for "today"              | Webhook-driven, 5 to 15 minute index lag. Yesterday's bar is fully caught up; today's is not.                                                                                                                                                                          |
| **Sampling on large windows** | None on Shopify side, but watch GA4 | Shopify Admin reports are unsampled. GA4 cross-comparisons are subject to sampling above \~10M sessions per query.                                                                                                                                                     |

**Cross-connector reconciliation:**

| Card                                                                                              | Expected relationship                                                     | What causes legitimate divergence                                                                                                                                                              |
| ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`google_analytics.ga_purchases_trend`](/nerve-centre/kpi-cards/google-analytics/purchases-trend) | GA4 daily purchases ≈ Shopify daily orders × (1 - tracking gap)           | Ad blockers, cookie consent, tag-fire failures cause GA4 to undercount by 5 to 25%. The shape should track; the level will lag.                                                                |
| [`stripe.stripe_charges_count`](/nerve-centre/stripe/stripe_charges_count)                        | Stripe charges per day ≈ Shopify orders per day on the Stripe-paid subset | Differs because: (1) some orders pay via PayPal / Klarna / external gateways and don't appear in Stripe; (2) failed-then-retried charges can produce multiple Stripe events per Shopify order. |

***

<details>
  <summary><em>Documentation cross-reference (for agencies running multiple platforms)</em></summary>

  The Orders Over Time time-series exists on other commerce platforms with the same definition. Cross-platform navigation only.

  * [`bigcommerce.orders_over_time`](/nerve-centre/kpi-cards/bigcommerce/orders-over-time)
  * [`adobe_commerce.orders_over_time`](/nerve-centre/kpi-cards/adobe-commerce/orders-over-time)
</details>

## Known limitations / merchant FAQs

**How do I read seasonality on this chart?**
Compare same-weekday over multiple weeks rather than day-over-day. A 90-day window contains \~13 of each weekday; the average of, say, the last 13 Mondays gives you a clean weekday baseline. Holiday weeks distort the average; either exclude known holiday weeks or extend the window to 180 days for a smoother base. Do not use 30-day windows for seasonality work, you only get 4 of each weekday and one of them is almost certainly an outlier.

**Why does my chart have flat-zero days?**
Three causes, in order of likelihood:

1. **You actually had no orders.** Small DTC stores in slow weeks legitimately have zero-order days. Common for B2B-only merchants where orders cluster in business-hours pockets.
2. **A checkout outage.** A Shopify-side incident, a payment-gateway outage, or a custom checkout app failure all show as a zero day surrounded by normal volume. Cross-reference [`datadog.dd_incident_count`](/nerve-centre/datadog/dd_incident_count) and the Shopify Status page for the day in question.
3. **A timezone artefact at the chart edge.** The first and last bars on the chart can read low if your local day starts mid-UTC-day. The 1st-of-month bar showing 30% of normal is usually this, not a real demand drop.

**How do I do comparable-period (year-over-year) analysis?**
The card itself shows 90 days only. For year-over-year, ask Ask Viq directly ("show me orders this April vs last April"), or pull both windows in [Total Orders](/nerve-centre/kpi-cards/shopify/total-orders) using the period picker. The 90-day chart is for trend within the period, not across years.

**Should I trust the day before yesterday?**
Yes, fully. Sync lag is 5 to 15 minutes. Anything older than 1 hour is in steady state. The bar for "today" is the only one still moving, and it visibly fills in throughout the day as orders post.

**Why is the last bar always shorter?**
Because the day isn't over. If it's 3pm in your timezone and you're looking at "today", you're seeing roughly 9 hours of a 24-hour day. The bar will keep growing until midnight. Some merchants find this confusing on the chart; you can hide the partial day in the chart legend toggle.

**Multi-currency stores, how does this chart handle currency?**
It doesn't have to. The chart is order *count*, not revenue. Multi-currency arithmetic doesn't apply. The companion [Total Revenue Over Time](/nerve-centre/kpi-cards/shopify/total-revenue) chart has the multi-currency caveat; this one is currency-agnostic.

**Subscription billings, do they show on the day they bill or the day they were originally signed up?**
The day they bill. Each Shopify Subscriptions billing creates a new `Order.id` with a fresh `createdAt` timestamp matching the billing date. So a customer who subscribed in January generates a fresh order on the 15th of every subsequent month, plotted on each of those days. This means subscription-heavy stores see a recognisable monthly billing-cycle bump.

**Shopify Plus vs basic plan, behavioural differences?**
None for this card. The underlying `Order` object is identical across plans; the date histogram works on every Shopify tier. Plus stores with multiple stores in a Shopify Plus organisation see one chart per store; Combined Customer Records does not affect order plotting.

**B2B vs DTC, do they distort the daily shape?**
Yes, on stores where B2B is material. B2B order timing is structurally different (Mon-Fri business hours, weekly cycle, monthly close) versus DTC (evening peaks, weekend skew). A blended store shows a hybrid shape; segmenting reveals the two distinct patterns. If you can't filter, watch for B2B-style ordering windows (10am to 4pm spike, near-zero weekends) as a tell.

**Action playbook when the chart shows an unexpected drop:**

1. Identify the day. Was it a known holiday in any major customer region?
2. Check [`datadog.dd_incident_count`](/nerve-centre/datadog/dd_incident_count) and Shopify Status for that day. If anything was down, that's the cause.
3. Cross-reference paid-channel spend (Meta, Google) for the prior 3 to 5 days. Spend cuts show in orders 3 to 7 days later for most stores.
4. Pull [Sessions Over Time](/nerve-centre/shopify/sessions_over_time). If sessions held but orders fell, it's a conversion problem, not a traffic problem; bias toward checkout / cart investigation.
5. If nothing explains the drop, look for a discount-cycle change. A coupon that expired the night before will visibly cut next-day orders even if traffic and infra are healthy.

***

### Tracked live in Vortex IQ Nerve Centre

*Orders Over Time* is one of hundreds of KPI pulses Vortex IQ tracks across Shopify 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](https://app.vortexiq.ai/login) or [book a demo](https://www.vortexiq.ai/contact-us) to see this metric running on your own data.
