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:
- 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. - 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.
- 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.
- 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.
- 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.
Cross-connector reconciliation:
Known limitations / merchant FAQs
Why does the timeseries spike on a specific day? Most spikes are single-cause:- Stockout cascade. Top SKU sold past available count, ops cancelled the oversells in batch within a few days.
- Fraud-filter wave. Shopify Protect retroactively flagged a cohort of orders (rare but happens during model updates).
- 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.
- Operations day. A planned cancel-all on test orders, abandoned drafts, or duplicate orders. Look for
Order.notecontent for “test” or “duplicate”.
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?
- Open Shopify Admin → Orders → filter Status: Cancelled and the spike date.
- Group cancelled orders by
cancelReason(or visually scan). - If
INVENTORYdominates: open Products with Zero/Negative Stock for that date. - If
FRAUDdominates: review Shopify Protect decisions; raise a support ticket for false-positives. - If
DECLINEDdominates: check Stripe / PayPal logs for a bank-side decline pattern. - 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).