Skip to main content
Card class: Non-HeroCategory: Ecommerce Platform
Orders ageing past SLA. 3PL outage / staff out / wrong picklist, surface before the customer emails support.

At a glance

Real-time alarm when more than 10 orders sit unfulfilled for more than 48 hours. Catches a 3PL outage, a staff absence, a misrouted picklist, or a Channel Manager sync gap before the customer emails support and posts a 1-star review. Where Shopify Fulfillment Network or Shop Promise creates implicit SLAs that are mostly auto-managed, BigCommerce merchants typically run their own 3PL or warehouse, so this alert is the primary signal that operational throughput has stalled.
What it countsCOUNT(orders WHERE status_id IN (7, 8, 9, 11) AND date_created < NOW() - 48h AND date_shipped IS NULL). Orders in Awaiting Fulfilment (status_id = 11), Awaiting Shipment (status_id = 9), Awaiting Pickup (status_id = 8), or Partially Shipped (status_id = 3) that have been pending more than 48 hours since order creation. Cancelled, refunded, or completed orders are excluded.
API endpointGET /stores/{store_hash}/v2/orders?status_id={9,11,8,3}&min_date_created={48h ago} (BC REST Management API) plus shipment data from GET /v2/orders/{order_id}/shipments. The OpenSearch index materialises status_id, date_created, and date_shipped per order.
VAT / tax treatmentn/a, this is an operational count metric.
Shippingn/a, but configured shipping methods affect the SLA, expedited orders should fire faster than standard. The default 48-hour threshold tunes for standard ground; configure tighter SLAs (24h, 12h) for expedited / next-day shipments.
Discountsn/a.
RefundsExcluded (status_id = 4 Refunded).
Cancelled ordersExcluded (status_id = 5 Cancelled).
Incomplete ordersExcluded (status_id = 0). Incompletes never reached fulfilment.
Currencyn/a, count metric.
ChannelsAll channels tracked, with per-channel breakdown in the alert payload. A 3PL outage typically shows as a multi-channel fire (web, Amazon, B2B all delayed simultaneously); a single-channel fire usually indicates a Channel Manager sync issue specific to that marketplace.
B2B Edition behaviourB2B orders typically have longer fulfilment SLAs (PO terms, scheduled delivery dates). The alert auto-detects B2B orders by customer_group and applies a longer threshold (default 72h) for B2B orders unless explicitly overridden. Don’t apply DTC SLAs to B2B fulfilment, you’ll get constant noise alerts on perfectly normal B2B operational cycles.
Multi-Location InventoryWhen MLI is enabled, the alert breaks down by inventory_location. A single location lagging while others ship normally is the classic “warehouse staff out sick” pattern; all locations lagging is a 3PL or system-wide issue.
Time windowRT (evaluated every 15 minutes; orders cross the 48h threshold continuously rather than at a hard cutoff).
Alert trigger>10 orders aged >48h unfulfilled
Sentiment keyunfulfilled_count
Rolesowner, operations

Calculation

Calculated automatically from your BigCommerce 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 US apparel brand on BigCommerce Pro with a single 3PL (ShipBob) and an in-house POS terminal at a flagship store. Snapshot at 10:00 UTC on Wednesday 15 Apr 26.
ChannelOrders aged >48h unfulfilledOldest pendingInventory location
1 (DTC web)184d 7hShipBob warehouse A
1019847 (Amazon Channel Manager)123d 12hShipBob warehouse A
1020111 (Walmart Marketplace)63d 1hShipBob warehouse A
B2B portal22d 4hDirect dropship
POS Terminal A0n/an/a
Total38
What’s interesting:
  1. All affected orders share warehouse A. Three different channels (web, Amazon, Walmart) but one underlying inventory location, that’s a single 3PL outage at ShipBob warehouse A, not three independent issues. Always group the alert by inventory location before by channel, the root cause is almost always operational, not channel-specific.
  2. The B2B portal is largely unaffected (2 orders). B2B portal uses direct dropship (manufacturer ships direct to customer) bypassing the 3PL entirely. This is a structural advantage of B2B Edition’s dropship workflow that DTC merchants rarely think about; in a 3PL outage your B2B revenue keeps flowing.
  3. POS shows zero by design. POS sales are walk-out fulfilled at the till; nothing to “ship”. The card correctly excludes them.
  4. Lost-revenue and lost-customer impact: 38 delayed orders at average 85=85 = 3,230 of revenue stuck. More importantly, ~25% of customers will refund or chargeback within 7 days if not communicated to, ~10% will leave a 1-star review. The dollar cost of inaction over 48 hours is ~800inrefundsand 800 in refunds and ~2,000 in lifetime-value damage from review impact.
  5. Amazon penalises this hardest. Amazon’s late-shipment rate (LSR) tracks shipments not dispatched within their committed handling time. Above 4% LSR Amazon throttles your seller account. Twelve late Amazon shipments in one day on a moderately-trafficked account can push LSR over the threshold. Set Channel Manager → Amazon to fail-fast cancel for orders that breach the 48h SLA, an Amazon cancellation hurts less than an LSR strike.
The rapid-response playbook (when this alert fires):
  1. Identify the choke point. Group by inventory_location first; if all orders are at one location, the warehouse / 3PL is the cause. Group by shipping_method second; if all are expedited, your express courier is the cause.
  2. Call the 3PL. Most ShipBob, ShipMonk, ShipHero outages are operational (forklift broken, staff out, system down) and resolve within 4-6 hours once the 3PL knows you’re watching.
  3. Communicate proactively. Email affected customers a delay notification before they email you. Customers tolerate delay 5x better when notified vs. discovered. BC’s order notes API supports bulk-tagging affected orders for batch email; use it.
  4. For Amazon orders specifically, consider cancelling and re-creating any pending orders from a different warehouse if MLI is enabled. Amazon’s LSR penalty is harsher than the cancellation penalty.
  5. Audit the picklist generator. Some 3PLs miss BC orders if the order falls outside the picklist API call’s date window; verify recent picklist exports include all the affected orders.

Sibling cards merchants should reference together

CardWhy pair it with Fulfilment Delay Alert
BC Channel Fulfilment RateThe trend view of which channels are systematically slow. After this alert fires, this card shows whether the issue is acute or chronic.
BC Alert Channel Revenue DropOften co-fires when a 3PL outage cascades into channel-listing throttles (Amazon, eBay penalise late sellers).
BC Inventory DistributionDecomposes by warehouse / location, the real grouping for fulfilment issues.
BC Channel Inventory SplitSurfaces whether the affected channel has stock at the right location.
BC Alert Refund Rate SpikeThe downstream effect, unfulfilled orders convert to refund requests within 5-10 days.
Order CountVolume context, 38 delayed orders on a 1,000-order day is 3.8% impact; on a 100-order day it’s 38%.
BC Top Products by ChannelIdentifies which SKUs are stuck, often a single hero SKU with picking complexity drives most of the backlog.
Total RevenueThe dollar exposure of the backlog, multiply unfulfilled count by AOV.

Reconciling against the vendor’s own dashboard

Where to look in BigCommerce Control Panel: Orders → All orders, filter by status Awaiting Fulfilment, Awaiting Shipment, Awaiting Pickup, sort by date ascending. Orders at the top of the list are the oldest unfulfilled. Compare the count to this card’s number; they should match within 1-2 (boundary timing). For per-channel breakdown: Channel Manager → per-channel order list shows fulfilment state per marketplace. For shipment tracking specifically: Orders → Shipments (Pro / Enterprise) shows shipment timestamps. For B2B Edition: B2B-specific orders surface under Channel Manager → B2B Edition → Orders with their customer-group context preserved. Why our number may legitimately differ from BC’s order list count:
ReasonDirection
Status interpretation. BC’s “All orders” list shows all unfulfilled regardless of age; we count only >48h aged. Our count is necessarily lower.Vortex IQ LOWER than naive BC filter
Partially Shipped (status_id = 3) treatment. We count partially-shipped orders if any line is still pending. BC’s count varies by view: some BC views treat partially-shipped as “fulfilled”.Vortex IQ HIGHER than BC fulfillment-rate dashboard
B2B custom SLA. We auto-extend the threshold to 72h for B2B orders; BC has no concept of customer-group-specific SLA in the native UI.Vortex IQ LOWER on B2B-heavy stores
Backorder / Preorder. Items configured as preorder may show as Awaiting Fulfilment indefinitely; we exclude them by default if is_preorder = true. BC’s filter does not.Vortex IQ LOWER on preorder-heavy stores
Channel Manager sync lag. Marketplace fulfilment events sometimes lag 30-60 minutes from actual shipment; recent shipments may still show as pending in BC and our index until the next sync.Both LAG simultaneously
Multi-Location Inventory boundary. With MLI active, an order with line items split across locations counts as one order in our card but as multiple shipments in BC’s shipments view.Different denominators
Cross-connector reconciliation (when carrier and 3PL integrations are connected):
CardExpected relationshipWhat causes legitimate divergence
shippo.shippo_late_shipmentsShould match within ±10%Shippo tracks the carrier-promised delivery date; we track BC’s order-creation timestamp. Different reference points produce slightly different numbers.
amazon_sp.amazon_late_shipment_rateAmazon LSR co-spikes with this alert when warehouse delays affect Amazon ordersAmazon’s LSR uses a 30-day rolling window; this card is real-time. Divergence is normal in the first few hours of an outage.
shipbob.sb_pending_ordersShipBob’s pending count should match the warehouse-A sliceShipBob’s UI shows orders pending picking, not orders pending shipment; the picking-to-shipment gap can hide a few hours.
datadog.dd_3pl_api_errorsAPI-level errors at the 3PL co-fire with this card on systemic outagesDatadog catches the technical signal; this card catches the merchant-facing impact. Pair them.
The fulfilment-delay alert shape is BC-aligned with similar alerts on Shopify (per unfulfilled_quantity) and Adobe Commerce (per shipment_status); merchant-facing semantics are equivalent across platforms.

Known limitations / merchant FAQs

Why is the threshold 48 hours and not 24 or 72? 48 hours is the industry-standard SLA gap for ground shipping where most reasonable buyers expect movement. 24 hours fires constantly on weekends and holidays (your 3PL doesn’t pick on Sunday); 72 hours misses Amazon LSR violations (Amazon’s threshold is 48-72 hours depending on the offer type). 48 hours is the sweet spot for DTC. Configure tighter thresholds (24h, 12h) for expedited orders specifically, the alert engine supports per-shipping-method SLAs. My alert keeps firing every Monday morning. Why? Weekend pile-up. Most 3PLs don’t pick on Saturday-Sunday; orders placed Friday afternoon cross the 48h threshold by Monday morning. Two options: (a) silence the alert during your known weekend window (Settings → Alerts → Silence Friday 17:00 to Monday 09:00), (b) tighten the SLA explicitly to 72h to absorb weekends. Most stores prefer option (a), the alert remains useful for genuine weekend operational outages. My B2B portal alert is firing on orders with PO terms net-30. Are those even “delayed”? Probably not, but the alert can’t tell PO-terms-pending from “stuck in warehouse” without explicit configuration. Configure customer-group-specific thresholds: B2B with PO terms gets 7-30 day SLA based on the negotiated terms. B2B Edition’s customer-group setup should include an expected_fulfilment_days field; if it does, our alert auto-honours it. If it doesn’t, configure manually per customer group. My MLI store shows orders split across locations. How does the alert handle them? An order with line items at multiple locations is counted as one order. The alert payload includes per-location detail so you can see which location is the bottleneck. In a multi-location store the per-location view is more actionable than the per-channel view, the bottleneck is almost always one location, not one channel. My Channel Manager → Amazon shows orders shipped but BC still shows unfulfilled. Is one wrong? Sync lag, both are right at their respective points. Channel Manager’s Amazon ack of shipment can lag BC’s order status by 5-30 minutes during high-volume periods. If the gap persists more than 1 hour, force a Channel Manager refresh: Channel Manager → Amazon → Sync (button in top-right). Persistent gaps over 4 hours are usually a Channel Manager bug; file a ticket with BC support. Should I auto-cancel orders that breach 7 days? Generally yes, but with care. A 7-day-unfulfilled order is almost certainly a deeper systemic issue (wrong address, item not actually in stock, account flagged for fraud review). Auto-cancelling cleanly returns inventory to Channel Manager and refunds the customer. For B2B, NEVER auto-cancel without manual review, the customer relationship damage of an unprompted B2B cancellation is huge. My alert says 38 orders pending but my 3PL says 12. Who’s right? Both might be right at different points in the workflow. The 3PL is showing orders in their pick queue; we’re showing orders BC marked as Awaiting Shipment. The gap (26 orders) likely sits in the BC-to-3PL transmission step (orders BC has marked ready but the 3PL hasn’t ingested yet). Audit the integration’s recent transmission log to find the gap. Can I exclude POS orders from the alert entirely? Yes, by default POS is excluded since walk-out fulfilment doesn’t use the order-shipment lifecycle. If your POS workflow does use shipment (BOPIS, ship-from-store), un-exclude POS in Settings → Alerts → Channel filter. Why does the alert fire so often during the 4 weeks of November-December? Holiday peak. Order volume 3-5x normal, 3PL throughput linear at best. Expect 30-50% more pending orders than normal pre-holiday season. For Q4 specifically, raise the threshold count from 10 to a percentile of order volume (e.g. “fire when >5% of orders aged >48h”). The alert engine supports percentile thresholds. My alert fires but the affected orders all have addresses in remote-area zones. Is this real? Partially. Remote-area shipments genuinely take longer to dispatch (special carriers, longer pick paths). Configure SLA-by-zone if your 3PL provides zone tags; remote-area orders should get 96h SLA, mainland 48h. The alert engine supports zone-based thresholds with shipping-rate-API zone tagging. The Channel Manager → Amazon LSR is over 4% but this card shows healthy. What’s wrong? Usually a date-window mismatch. Amazon LSR uses a 30-day rolling window; this card is real-time. If you had a bad week 3 weeks ago that pushed LSR up, today’s healthy operations won’t immediately show on Amazon. Look at the trend over the past 30 days using BC Channel Fulfilment Rate to spot the lag.

Tracked live in Vortex IQ Nerve Centre

Fulfilment Delay Alert is one of hundreds of KPI pulses Vortex IQ tracks across BigCommerce 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.