Skip to main content
Metrics type: Supporting MetricsCategory: Ecommerce Platform

At a glance

Daily timeseries of cancelled orders across the last 90 days. The “where” of the cancellation problem: which day did the spike land, was it concentrated, and how does the pattern look week-on-week.

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 apparel brand on Shopify. Period: 12 Feb 26 to 12 May 26. Daily cancellation counts, summarised: Five things to notice:
  1. The 07 Mar spike is single-day. 54 cancellations on a Friday vs a 4 to 6 baseline. A pull of those orders shows 47 of 54 had cancelReason = INVENTORY. Cross-reference Products with Zero/Negative Stock on 06 Mar; the spring drop launched 04 Mar and oversold the linen-shirt SKU within 48 hours.
  2. The 14 to 15 Mar second wave is the lag effect. Customers who placed orders on 06 to 07 Mar against the oversold SKU were cancelled in batch on 14 to 15 Mar once the merchant’s ops team caught up. The “spike” is two related events 8 days apart, not two separate causes.
  3. Returning to baseline by 19 Mar means the fix worked. Continue Selling was turned off on the affected SKUs 16 Mar; cancellations fell back to 5 to 9 / day within 72 hours. The card’s fast return to baseline confirms the diagnosis and fix.
  4. Daily resolution beats 30D averages for diagnosis. The Cancellation Rate card showed a 30D rolling rate of 4.3% for most of March; the 30D figure does not tell you which day the problem started. This timeseries does.
  5. Day-of-week patterns matter. Cancellations skew toward Tuesday-Wednesday in the steady state, when ops teams process the previous weekend’s fraud-flagged or oversold orders. A spike on a Friday or Saturday is unusual and worth investigating; a spike on a Tuesday is often just batch processing.

Sibling cards merchants should reference together

The timeseries is the diagnostic tool. Pair with these to find the cause and the fix:

Reconciling against the vendor’s own dashboard

Where to look in Shopify Admin: Orders → filter Status: Cancelled, then group by date. Shopify does not have a dedicated cancelled-over-time chart; merchants either reconstruct it from the Orders list or use a custom Shopify Plus Analytics report (ShopifyQL Notebooks). Other Shopify Admin views that look similar but are not the same:
  • Reports → Sales over time: shows revenue, not cancellation count.
  • Home → Today panel: shows real-time orders but does not break out cancellations.
  • Apps like Better Reports, ReportToaster: build cancellation timeseries with richer dimensions (by reason, by channel). Useful complements; the timestamps should align with this card.
Why our number may legitimately differ from Shopify Admin: Cross-connector reconciliation:

Known limitations / merchant FAQs

Why does the timeseries spike on a specific day? Most spikes are single-cause:
  1. Stockout cascade. Top SKU sold past available count, ops cancelled the oversells in batch within a few days.
  2. Fraud-filter wave. Shopify Protect retroactively flagged a cohort of orders (rare but happens during model updates).
  3. Bank decline wave. A specific BIN range (e.g. a single bank’s debit cards) hit a fraud rule on the bank side; saved cards declined post-authorisation in batch.
  4. Operations day. A planned cancel-all on test orders, abandoned drafts, or duplicate orders. Look for Order.note content for “test” or “duplicate”.
Why is the latest day’s bar lower than the trend? Sync lag. Webhooks deliver cancellations within seconds, but the OpenSearch index can lag 5 to 15 minutes. The latest day’s count rises throughout the day; ignore the final bar’s height for day-of comparisons. Yesterday and earlier are fully caught up. Does this card include refund-only orders? No. A refund without an explicit cancellation does not appear here. Order.cancelledAt must be non-null. To see refund timing, use Refunds Over Time. Some orders appear on both timeseries (cancel-and-refund-together workflows). My weekly pattern shows a Monday peak. Is that a problem? Usually no. Most merchants process the previous weekend’s flagged orders in batch on Monday morning, producing a Monday spike. Only the change in the Monday peak is meaningful: a Monday that runs 3× the trailing 4-week Monday median is investigation-worthy. Multi-store / multi-region, how does this card work? Each Shopify store is a separate integration. The card runs per store. A merchant with 3 stores will see 3 separate timeseries. Cross-store rollups are on the roadmap but cancellation-cause diagnosis is store-specific anyway, the operational story is best viewed per store. Multi-currency, any impact? None on the timeseries shape (count, not money). The cancelReason mix may differ by region; EU stores often see more CUSTOMER-initiated cancels (14-day cooling-off rights), US stores see more INVENTORY (oversell-driven workflows). Shopify Plus vs basic, any difference? Plus stores can build Flow automations that auto-cancel on fraud-flag triggers, producing tighter cancellation timing. Basic plans rely on manual ops cancellations, producing more bursty patterns. The card behaves identically; the daily shape may look smoother on Plus, more bursty on basic. Refresh cadence? Webhooks fire within seconds; index lag 5 to 15 minutes. The 90-day rolling window updates each cycle. Suitable for daily standup, not real-time triage. B2B vs DTC? B2B cancellations are larger (one cancelled £5,000 order moves the count by 1 like any other) but rarer and often clustered around quote revisions. A B2B-heavy store may show isolated single-day spikes that correspond to specific account negotiations, not a systemic problem. The card spiked, what should I do?
  1. Open Shopify Admin → Orders → filter Status: Cancelled and the spike date.
  2. Group cancelled orders by cancelReason (or visually scan).
  3. If INVENTORY dominates: open Products with Zero/Negative Stock for that date.
  4. If FRAUD dominates: review Shopify Protect decisions; raise a support ticket for false-positives.
  5. If DECLINED dominates: check Stripe / PayPal logs for a bank-side decline pattern.
  6. If the spike is OTHER / unspecified, audit ops staff actions; large bulk cancellations often have a single human cause (someone hit cancel-all on a draft batch).

Tracked live in Vortex IQ Nerve Centre

Cancelled 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 or book a demo to see this metric running on your own data.