> ## 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.

# Unfulfilled Orders, Shopify

> Paid orders with fulfillment_status != fulfilled. The number ops should clear by EOD. How to read it, why it matters, and how to act on it.

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

> Paid orders with fulfillment\_status != fulfilled. The number ops should clear by EOD.

## At a glance

> A live count of paid orders whose `displayFulfillmentStatus` is anything other than `FULFILLED`. The work-queue number, what ops needs to clear before going home.

|                                    |                                                                                                                                                                                                                                                                   |
| ---------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **What it counts**                 | `COUNT(orders WHERE displayFinancialStatus IN ('PAID', 'PARTIALLY_PAID', 'AUTHORIZED') AND displayFulfillmentStatus != 'FULFILLED')`. Each unfulfilled paid order is 1, regardless of order value.                                                                |
| **Statuses included in the count** | `OPEN`, `UNFULFILLED`, `IN_PROGRESS`, `PARTIALLY_FULFILLED`, `PENDING_FULFILLMENT`, `SCHEDULED`. Each represents a different operational stage but all are "not yet shipped".                                                                                     |
| **`RESTOCKED` orders**             | Excluded. Restocked = customer cancelled and stock returned, no longer needs fulfilling.                                                                                                                                                                          |
| **`VOIDED` orders**                | Excluded. Voided = payment never captured, no goods owed.                                                                                                                                                                                                         |
| **Pending-payment orders**         | Excluded. Orders in `PENDING` or `EXPIRED` financial status are not paid, so there's no fulfilment commitment yet.                                                                                                                                                |
| **VAT / tax treatment**            | Not applicable (count metric, no money).                                                                                                                                                                                                                          |
| **Shipping**                       | Not applicable (count metric).                                                                                                                                                                                                                                    |
| **Discounts**                      | Not applicable (count metric).                                                                                                                                                                                                                                    |
| **Refunds**                        | A refunded order can still be unfulfilled (paid → refunded → still in pick-list because nobody pulled it). The card includes these. Use [Refund Rate](/nerve-centre/kpi-cards/shopify/refund-rate) for the post-refund view.                                      |
| **Currency**                       | Multi-currency safe (count metric).                                                                                                                                                                                                                               |
| **Channels / sources**             | **Not filtered.** Online Store, POS (which usually flips to fulfilled instantly at the till and so rarely lands here), Buy Button, B2B, marketplace channels all contribute. B2B orders skewed by `SCHEDULED` status often dominate this count for hybrid brands. |
| **Time window**                    | `RT` (real-time, computed from the latest indexed order snapshot, not bounded to a date window)                                                                                                                                                                   |
| **Alert trigger**                  | `>10`, when more than 10 paid orders sit unfulfilled at any moment, the `unfulfilled_count` sentiment key trips. The threshold is configurable per workspace.                                                                                                     |
| **Roles**                          | owner, operations                                                                                                                                                                                                                                                 |

## 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 subscription-box brand (monthly snack box) on Shopify Plus. Reading taken at 09:15 GMT on 12 Apr 26 (Monday morning).

| Status                                                          | Order count | Note                                                           |
| --------------------------------------------------------------- | ----------- | -------------------------------------------------------------- |
| `OPEN` (paid, not yet picked)                                   | 14          | Friday-evening + weekend orders, no warehouse activity Sat/Sun |
| `IN_PROGRESS` (pick-and-pack started)                           | 38          | Monday morning team has started early on Friday's batch        |
| `PARTIALLY_FULFILLED` (some items shipped, others backordered)  | 6           | Customers waiting for the missing snack SKU                    |
| `SCHEDULED` (subscription billings due to ship later this week) | 92          | The bulk-fulfilment batch for Wed-Thu shipping                 |
| `PENDING_FULFILLMENT` (3PL queue, awaiting label print)         | 4           | Yesterday evening's straggler orders                           |
| **Total Unfulfilled (this card)**                               | **154**     |                                                                |

The card reads **154** at 09:15. The `>10` alert has been tripped since Friday afternoon. Six things to notice:

1. **The headline (154) overstates the operational fire.** 92 of those are scheduled subscription orders, intentionally batched for Wed/Thu dispatch. Filtering them out: real urgent backlog is 62 orders (`OPEN` + `IN_PROGRESS` + `PARTIALLY_FULFILLED` + `PENDING_FULFILLMENT`).
2. **The 14 `OPEN` is the bottleneck.** These orders haven't been touched since Friday, that's the number the warehouse manager needs to break before lunch. Each hour they sit unfulfilled, customer-service tickets accumulate.
3. **The 6 `PARTIALLY_FULFILLED` is a different problem.** Pick is done, the rest is waiting on stock. Cross-reference [Products with Zero/Negative Stock](/nerve-centre/kpi-cards/shopify/products-with-zero-negative-stock), the missing SKU is almost certainly there.
4. **`IN_PROGRESS` (38) is healthy.** It means the team is actively working. A high `IN_PROGRESS` against a low `OPEN` is the operational state to be in. Worry when `IN_PROGRESS` is low and `OPEN` is climbing.
5. **The Monday-morning effect is structural.** Most subscription brands and DTC merchants will see this card spike on Monday at 09:00 simply because nobody picked Sat/Sun. The card's shape across the week is more informative than the absolute count, look for the `OPEN` bucket clearing by Tuesday EOD.
6. **B2B `SCHEDULED` orders skew the headline.** If the merchant ran B2B alongside the subscription box, scheduled wholesale shipments would dominate. The card doesn't auto-segment by tag today; the operationally useful filter is "scheduled = false" which Shopify Admin offers in *Orders → More filters → Fulfillment status*.

## Sibling cards merchants should reference together

Unfulfilled Orders is the immediate work queue. Pair these to triage and prevent:

| Card                                                                                                   | Why pair it with Unfulfilled Orders                                                                                                                                                  |
| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [Fulfillment Rate](/nerve-centre/kpi-cards/shopify/fulfillment-rate)                                   | This card is the live count, fulfillment rate is the trend. A climbing unfulfilled count predicts a fulfillment-rate dip in 3 to 7 days.                                             |
| [Fulfillment Breakdown](/nerve-centre/kpi-cards/shopify/fulfillment-status)                            | Splits the 154 across `OPEN` / `IN_PROGRESS` / `PARTIALLY` / `SCHEDULED`. Tells you which bucket needs attention; a high `OPEN` is more urgent than a high `SCHEDULED`.              |
| [Products with Zero/Negative Stock](/nerve-centre/kpi-cards/shopify/products-with-zero-negative-stock) | If `PARTIALLY_FULFILLED` orders are climbing, the missing line is usually OOS. Pair to surface the bottleneck SKU.                                                                   |
| [Cancellation Rate](/nerve-centre/kpi-cards/shopify/cancellation-rate)                                 | Unfulfilled orders sitting >5 days breed cancellations. A persistent unfulfilled spike + rising cancellations is a backlog-induced churn signal.                                     |
| [Refund Rate](/nerve-centre/kpi-cards/shopify/refund-rate)                                             | When orders get unfulfilled past customer-tolerance, refund-and-cancel becomes the customer-service fix. Watch refund rate climb 3 to 7 days after an unfulfilled-orders spike.      |
| [Shipping Methods](/nerve-centre/kpi-cards/shopify/shipping-methods)                                   | Express-shipping orders sitting in OPEN are the highest-priority customer-trust risk. Filter the unfulfilled list by `shippingLines.title` containing "Express" or "Next Day" first. |
| [Revenue at Risk (live incident)](/nerve-centre/kpi-cards/shopify/revenue-at-risk)                     | When ops outage drives this number above 50 with an open Datadog/NewRelic incident, the cross-platform card surfaces £/min impact.                                                   |

## Reconciling against the vendor's own dashboard

**Where to look in Shopify Admin:**

[Orders](https://admin.shopify.com/orders) → filter *Fulfillment status: Unfulfilled, Partial, Scheduled, On hold*. The count of matching rows should match this card to within sync-lag tolerance. The Shopify Admin home screen also shows an *Orders to fulfill* widget which is the closest one-tile view.

Other Shopify Admin views that *look* like the same number but aren't:

* **Home → "Orders to fulfill" widget**: this is the same definition (paid + unfulfilled) but Shopify excludes `SCHEDULED` from the widget by default. The widget will read lower than this card on subscription / B2B-heavy stores.
* **Orders → Filter "Fulfillment status: Unfulfilled" only**: misses partials and scheduled. Lower count.
* **Apps like ShipStation backlog**: shows orders that have arrived in the 3PL queue but not yet shipped. Often lags Shopify by 5 to 30 minutes due to ShipStation pull cadence.
* **Settings → Locations → Inventory at this location**: shows reserved inventory not unfulfilled orders. Different concept.

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

| Reason                        | Direction            | Why                                                                                                                                                                                                                    |
| ----------------------------- | -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Sync lag**                  | Either, transient    | Order webhooks fire within seconds; the OpenSearch index can lag 5 to 15 minutes during heavy writes (sale launches, viral moments). The card is a 5-min-lagged view of Admin.                                         |
| **Status inclusion**          | Theirs lower         | Shopify's *Orders to fulfill* widget defaults to excluding `SCHEDULED`. This card includes scheduled by default. Configurable per workspace in *Nerve Centre → Settings*.                                              |
| **Time zone**                 | Negligible           | This is a real-time count, not a windowed metric, so time zone doesn't affect it the way it does for date-bucketed cards.                                                                                              |
| **Multi-location**            | Either               | A single order with line items fulfilled from multiple locations is `PARTIALLY_FULFILLED` until the LAST location ships. The card counts it as 1 unfulfilled order; Shopify Admin per-location views may double-count. |
| **Test orders**               | Ours slightly higher | Shopify Admin can hide test orders. Vortex IQ does not yet filter `Order.test`.                                                                                                                                        |
| **Pre-orders / draft orders** | Excluded from both   | Draft orders aren't in the Order index until completed. Pre-orders are usually `SCHEDULED` and counted; if a merchant uses an app that creates a custom status, behaviour varies.                                      |

**Cross-connector reconciliation:**

Unfulfilled-orders state is Shopify-internal. The closest cross-connector signal is fulfilment-partner monitoring:

| Card                                                                                          | Expected relationship                                                                                             | What causes legitimate divergence                                               |
| --------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
| [`datadog.dd_incident_count`](/nerve-centre/datadog/dd_incident_count)                        | Indirect leading indicator, when 3PL or warehouse systems alert in Datadog, unfulfilled count climbs within hours | Only useful if the merchant has connected fulfilment infrastructure to Datadog. |
| [`newrelic.nr_incident_count`](/nerve-centre/newrelic/nr_incident_count)                      | Same as Datadog, different vendor                                                                                 | Same caveat.                                                                    |
| [`shopify_xc_revenue_at_risk_from_incident`](/nerve-centre/kpi-cards/shopify/revenue-at-risk) | Composite, surfaces £/min of orders sitting unfulfilled during an incident                                        | Use during ops outages.                                                         |

***

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

  The same definition of unfulfilled paid orders lives on other commerce platforms. This is **not a reconciliation**, your Shopify store doesn't have a parallel store on BigCommerce or Adobe Commerce to compare numbers against. These cross-links exist so agencies running multi-platform client books can navigate between identical metrics across the docs.

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

## Known limitations / merchant FAQs

**Why does this card include scheduled orders?**
Because they're paid and not yet fulfilled, that's the literal definition. But operationally, scheduled orders (subscription billings, B2B batch shipments, pre-orders) are intentional: the merchant doesn't want to ship them today. To exclude scheduled, change the workspace setting in *Nerve Centre → Settings → Unfulfilled Orders* to set `include_scheduled: false`. The default is `true` to match Shopify's order-list raw count.

**My count climbs every Friday and clears every Tuesday. Is that a problem?**
**No, that's healthy.** Most merchants don't pick / pack on weekends, so Friday-Sunday orders accumulate in `OPEN` until Monday morning when the warehouse team starts. The Tuesday EOD clear is the operational SLA. If the count fails to clear by Tuesday EOD, that IS the alarm signal, the standard Mon-Tue accumulation isn't.

**Why is this card different from my Shopify "Orders to fulfill" widget?**
Two reasons. (1) Sync lag: the card is 5 to 15 minutes behind real-time because it reads a periodically-indexed snapshot, not Shopify's live Admin DB. (2) Scheduled-orders inclusion: the Shopify widget excludes `SCHEDULED` by default; this card includes them. The Shopify Admin order-list with full filters applied is the closest like-for-like.

**Does this include orders pending payment?**
**No.** Only orders with `displayFinancialStatus IN ('PAID', 'PARTIALLY_PAID', 'AUTHORIZED')` count. Pending and expired orders are excluded because the goods aren't owed until payment is captured. This means the card represents "orders we have a fulfilment commitment on", not "all open orders".

**My subscription store, are recurring billings counted?**
Yes, each recurring billing creates a new order with its own fulfilment lifecycle. Subscription brands typically see this card balloon on the bulk-billing day (1st of month, 15th of month, etc) then drain over 5 to 7 days as the warehouse ships the batch. The Mon-Tue weekly pattern overlays the monthly bulk-billing pattern; both are healthy.

**B2B / wholesale orders, why do they dominate the count?**
B2B orders are usually marked `SCHEDULED` because wholesale buyers schedule shipments weeks in advance. A handful of large B2B orders can swamp the count even when the DTC operation is running cleanly. Filter by tag `Wholesale` in Shopify Admin to see the DTC-only view, or set `include_scheduled: false` in Vortex IQ workspace settings.

**The count alerts at >10. Is that the right threshold?**
For DTC brands doing 100 to 500 orders / day, yes, an unfulfilled count consistently above 10 means orders are sitting >24 hours which is poor SLA. For higher-volume merchants (5,000+ orders / day), the threshold should be 50 to 100. For subscription stores on bulk-shipping days, the threshold should temporarily lift to several hundred. Configurable in *Nerve Centre → Alerts*.

**Can I see how long each order has been sitting unfulfilled?**
Not from this card today, but Shopify Admin → *Orders → Filter Unfulfilled → Sort by date* gives the same view. The "age in queue" view is on the Vortex IQ roadmap; the planned card surfaces orders > 48h old separately.

**Action playbook when this card alerts:**

1. Open the order list. Sort by `createdAt` ascending (oldest first).
2. Triage by shipping speed: filter for `shippingLines.title` = "Express" / "Next Day" / "Overnight". These breach customer-trust fastest if delayed.
3. Triage by value: filter for `totalPrice > £200`. High-value orders cancelling becomes a refund event.
4. Open [Products with Zero/Negative Stock](/nerve-centre/kpi-cards/shopify/products-with-zero-negative-stock). If `PARTIALLY_FULFILLED` is climbing, the bottleneck is inventory not labour.
5. If volume-driven (sale week, viral moment): proactively email customer-service to extend SLA messaging.
6. If labour-driven (3PL outage, sick day): escalate to fulfilment partner; consider express-courier paid surcharge to recover the SLA.
7. After triage: clear `OPEN` first, then `IN_PROGRESS`, leave `SCHEDULED` to its planned date.

***

### Tracked live in Vortex IQ Nerve Centre

*Unfulfilled Orders* 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.
