At a glance
Order distribution by displayFulfillmentStatus. The operational health view: how many orders are fulfilled, in progress, partially fulfilled, restocked, or unfulfilled?
Calculation
Worked example
A US apparel brand on Shopify Plus. Period: 12 Apr 26 to 11 May 26.
Five things to notice:
- 2.7% OPEN is the backlog alarm. 184 orders that have not started picking. Sort the OPEN list by age; anything aged >24h needs ops triage. The combined OPEN + IN_PROGRESS + PARTIALLY_FULFILLED is your real-time work-in-progress; here that is 11.9%, healthy for a busy DTC brand.
- Partials at 3.2% mean SKU stockouts. 218 orders where some items shipped but at least one is backordered. Each is a customer-promise issue. Pair with Line Item Fulfillment for the SKU-level diagnosis; a single OOS hero SKU often dominates.
- SCHEDULED at 1.5% is mostly B2B. Wholesale orders with future ship-dates sit here. If you’re a DTC-only brand and SCHEDULED is non-zero, you’re likely running pre-orders or back-orders; check inventory policy.
- RESTOCKED + VOIDED together = cancellation events. 1.5% combined; cross-reference with Cancellation Rate. RESTOCKED is the customer-friendly path (inventory recovered); VOIDED suggests test orders or fraud cancellations without inventory return.
- POS dominates the FULFILLED bucket disproportionately. A retail-brick brand with strong POS sees 90%+ FULFILLED because POS auto-fulfills at the till. To assess true e-commerce ops health, filter to online-store orders only.
Sibling cards merchants should reference together
The status breakdown is the diagnostic. Pair with these:Reconciling against the vendor’s own dashboard
Where to look in Shopify Admin: Orders → filter by Fulfillment status. Counts per filter should align with this card’s bucket counts. Other Shopify Admin views:- Reports → Sales by fulfillment status: a £-revenue split by status; complementary to this count split.
- Settings → Locations: relevant for multi-location stores; affects how partial fulfillment surfaces.
- Apps like ShipStation, ShipBob: 3PL-side fulfillment tracking; should align with the FULFILLED count per their lag.
Cross-connector reconciliation:
Known limitations / merchant FAQs
Why is my OPEN bucket high? Three usual causes:- Stockout on a high-velocity SKU. Orders pile up waiting for inventory.
- 3PL or warehouse capacity issue. Pick-and-pack cannot keep up.
- Order volume spike. Sale week or viral moment outpaces fulfillment throughput.
- Open Shopify Admin → Orders → filter Unfulfilled. Sort by age.
- Identify SKUs holding up the oldest orders. Cross-reference with Inventory Alerts.
- For aged-OPEN with no inventory issue, escalate to 3PL ops.
- For volume-spike, accept temporary degradation; protect customer comms with extended SLA messaging.
- Email customers proactively for orders aged >5 days; the brand-trust hit of silence is worse than the operational delay.