Skip to main content
Metrics type: Supporting MetricsCategory: Ecommerce Platform
Backlog of paid orders aged past the 48h fulfilment SLA. Surfaces 3PL/warehouse breakage in real time.

At a glance

A live count of paid orders that have been sitting in displayFulfillmentStatus IN ('OPEN','UNFULFILLED','IN_PROGRESS') for more than 48 hours since createdAt. The brand-promise alarm: at >20 such orders, customers are about to start emailing.

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 skincare DTC brand on Shopify Plus, 3PL in Northampton, normal SLA 24-36h. On Tuesday 14 Apr 26 morning, the alert fires: 47 paid orders unfulfilled >48h. Drill-down shows: Trigger reasons:
  1. Weekend backlog overflow. Mon mornings always show some carry-over from weekend. 18 Fri orders unpicked is double the normal 8-10. This means picking didn’t catch up Friday afternoon either, the fire started before the weekend.
  2. 3PL staffing shortfall. Tuesday 14 Apr is post-Easter. Many 3PLs run skeleton crew over UK Easter Monday. The Saturday and Sunday counts (which would be zero on a normal weekend) confirm this. Staffing returns Tue.
  3. Email customers proactively. Customer-service queries about “where is my order?” peak at 72-96h. The brand has 24-48h to email shipping-update apologies before the inbox floods.
  4. Stockout overlay. Cross-reference Products with Zero/Negative Stock. If 5+ of the 47 backlog orders contain a stockout SKU, that subset cannot be fulfilled at all and needs partial-ship or refund-and-replace decisions.
  5. The clock matters. Each hour these orders sit unfulfilled, customer-trust degrades. Shopify’s fulfilment status doesn’t fire customer-facing notifications about delay; the brand has to. Pair with email automation to catch >48h orders proactively.
Recovery shape: typical 3PL-staffing backlog clears in 3-5 working days. The alert count usually falls 30-40% per working day once staff are back, returning to baseline by Thu/Fri.

Sibling cards merchants should reference together

The fulfilment-delay alert is the trigger. The diagnostic cards:

Reconciling against the vendor’s own dashboard

Where to look in Shopify Admin:
Shopify Admin → Orders → Filter by Fulfillment status: Unfulfilled AND Date: more than 2 days ago
This filter combination matches the alert population. Save it as a custom view for quick access during incidents. Other Shopify Admin views:
  • Home → “Orders to fulfill” widget: real-time backlog count (all-time, not age-filtered). Shows everything, including <48h fresh orders.
  • Settings → Shipping & delivery → Performance (Shopify Plus only): on-time-delivery analytics; uses promised delivery date, stricter than this alert.
  • Apps like ShipStation / ShipBob / Shippo: their dashboards show pick-and-pack queues, slightly downstream of this alert.
Why our number may legitimately differ from Shopify Admin: Cross-connector reconciliation:

Known limitations / merchant FAQs

Why is the threshold 48h? 48h is the implicit Shopify ecommerce SLA: customers expect their order to ship within two business days. Beyond 48h, customer-service queries spike sharply. The 48h cutoff is configurable per workspace; brands with explicit longer SLAs (made-to-order furniture, monogrammed gifts) should raise this to 5-7 days. Why is the count threshold 20? A heuristic floor for “actionable backlog”. Below 20, normal day-to-day ops absorbs the queue; above 20, manual intervention is needed. The threshold should scale with order volume:
  • <200 orders/day: alert at 10-15.
  • 200-1,000 orders/day: alert at 20-50.
  • >1,000 orders/day: alert at 100+.
Configurable in Nerve Centre → Alerts → Thresholds. My category has structurally long lead times (made-to-order). Is this card useful? Less directly. For made-to-order, the SLA is your manufacturing lead time, not 48h. Reconfigure to “orders unfulfilled past your SLA”. The alert population is then your true backlog above promised dates. Why does this alert fire on Mondays even when ops are fine? Weekend carry-over. Most 3PLs and in-house warehouses don’t pick Sat-Sun. Friday afternoon orders sit until Monday morning, naturally crossing 48h on Monday. To avoid Mon false-positives, configure the alert to use business hours rather than calendar hours. Does this include B2B / wholesale orders? Yes by default. B2B orders typically have longer fulfilment SLAs (often weeks). Filter B2B orders out of the alert if their long fulfilment is contractually agreed; otherwise they pollute the headline count. What does the action playbook look like?
  1. Open the order list filtered to >48h unfulfilled. Sort by age desc.
  2. Identify the cause subsets: stockouts, 3PL backlog, manual-hold orders, large-volume B2B, etc.
  3. For stockout subset: decide ship-partial, hold-and-wait, or refund-and-relist. Each affects the customer differently.
  4. For 3PL backlog subset: escalate to 3PL ops manager. Request dedicated picker for top-priority orders (often paid express or VIP customers).
  5. For all >48h orders: trigger proactive customer email apologising for delay with realistic shipping ETA. This single action prevents 30-50% of the customer-service tickets that would otherwise come.
  6. Monitor the count hourly during the incident. The count should fall once corrective action is in place.
Why would this alert NOT fire when fulfilment is broken? Three traps:
  1. All weekend orders aged exactly to 47h when alert was checked: not yet over threshold. Vortex IQ runs the check every 5 min, so this gap is rare.
  2. Threshold misconfigured high (e.g. 100): low-volume brands never trip it.
  3. Status-mapping edge cases: orders stuck in SCHEDULED (B2B) or ON_HOLD may not register as unfulfilled depending on the indexer config.
Does cancelling an order clear it from the count? Yes. Cancellation transitions the order out of unfulfilled to VOIDED or RESTOCKED. The count drops in real-time as you cancel. Action playbook for repeated alerts (chronic backlog):
  1. Audit your SLA promise vs your actual capacity. If you promise 48h but consistently deliver 72h, change the promise.
  2. Investigate fulfilment workflow steps for bottleneck (label-print, pick, pack, manifest, dispatch). One stage is usually the bottleneck.
  3. Consider 3PL alternative or expand to multi-3PL routing.
  4. Negotiate weekend coverage if weekend orders are >20% of total.
  5. Build an ops dashboard combining this card, Fulfillment Rate, and warehouse capacity metrics for proactive management.

Tracked live in Vortex IQ Nerve Centre

Fulfilment Delay Alert 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.