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

# Fulfillment Rate, Shopline

> Orders fully fulfilled / total orders. &lt;90% means the merchant is breaking shipping promises. 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)

> Orders fully fulfilled / total orders. \<90% means the merchant is breaking shipping promises.

## At a glance

> Share of paid orders fully fulfilled (every line item shipped) over the rolling 30 days. The single number that tells the founder whether shipping promises are being kept. Below 90% means the brand is publicly losing trust on delivery; APAC merchants typically run at 95 to 98% in steady state.

|                               |                                                                                                                                                                                                            |
| ----------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **What it counts**            | `COUNT(orders WHERE fulfillment_status = 'fulfilled') / COUNT(paid orders)` over rolling 30D. Partial-fulfillment counts as not fulfilled even if 9 of 10 lines have shipped.                              |
| **API endpoint**              | `GET /v1/orders` filtered by `fulfillment_status` and `financial_status`. Webhook updates on `fulfillment.created` and `fulfillment.cancelled`.                                                            |
| **Numerator**                 | Orders with all lines shipped (`fulfillment_status = 'fulfilled'`).                                                                                                                                        |
| **Denominator**               | Paid or partially-paid orders only. Cancelled and unpaid orders are excluded from both numerator and denominator.                                                                                          |
| **In-flight orders**          | Orders that have not reached their fulfilment deadline are still excluded from this calculation; they neither pass nor fail until the merchant or warehouse acts.                                          |
| **APAC same-day expectation** | HK / TW / SG fashion merchants typically promise same-day dispatch on weekday orders before 3pm. The fulfilment-rate floor for that promise is roughly 96%; 90% is the universal Shopline alert threshold. |
| **Pre-orders**                | Tag-excluded if the merchant uses a `pre-order` convention; otherwise pre-orders inflate the unfulfilled count and depress this rate until release date.                                                   |
| **Time window**               | `30D vsP`.                                                                                                                                                                                                 |
| **Alert trigger**             | `<90%`. Key Metrics tier; below this floor, ops needs to intervene immediately.                                                                                                                            |
| **Sentiment**                 | `fulfillment_rate`. Direct gauge; higher is better.                                                                                                                                                        |
| **Roles**                     | owner, operations.                                                                                                                                                                                         |

## Calculation

Calculated automatically from your Shopline data. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.

## Worked example

**An APAC fashion brand running a Hong Kong Shopline store, rolling 30D ending 27 Apr 26.**

| Metric                       | This 30D | Prior 30D | Change |
| ---------------------------- | -------- | --------- | ------ |
| Total paid orders            | 712      | 658       | +8.2%  |
| Fully fulfilled              | 656      | 638       | +2.8%  |
| Partial fulfilment           | 18       | 8         | +125%  |
| Unfulfilled                  | 38       | 12        | +217%  |
| Fulfillment Rate (this card) | 92.1%    | 96.9%     | -4.8pp |

```text theme={null}
Fulfillment Rate = 656 / 712 = 92.1%
Above the 90% alert floor but +4.8pp below the prior 30D
```

**What it means.** 92.1% is on the edge. The brand is roughly 15 unfulfilled-order-equivalents away from breaching the 90% floor. The trend (up +217% on unfulfilled count) is the signal: the warehouse is falling behind faster than order volume is rising.

The 18 partial-fulfilment orders are mostly cross-warehouse splits (HK warehouse 1 shipped, warehouse 2 stalled), pointing to a synchronisation issue between locations. The 38 unfulfilled cluster around the past 4 days, indicating the backlog is recent rather than stale.

**The action.** Two-week recovery plan: (1) reduce cross-warehouse splits by routing all eligible orders to warehouse 1 (faster dispatch) and only splitting when stock requires it, (2) bring on a Saturday half-day shift for the next 4 weekends to clear the recent backlog. Expected trajectory: back to 95%+ within 14 to 21 days, comfortably above the 90% alert floor and within the brand's own 96% target.

## Sibling cards merchants should reference together

| Card                                                                                      | Why it matters next to fulfilment rate | What the combination tells you                                                                                     |
| ----------------------------------------------------------------------------------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| [Unfulfilled Orders](/nerve-centre/kpi-cards/shopline/unfulfilled-orders)                 | Real-time backlog.                     | High unfulfilled count + dropping fulfilment rate = warehouse capacity ceiling reached.                            |
| [Avg Time to Fulfil (hrs)](/nerve-centre/kpi-cards/shopline/avg-time-to-fulfil)           | Continuous-time view.                  | Rising avg time before fulfilment rate drops = early warning; the rate lags the time.                              |
| [Fulfillment Rate Over Time](/nerve-centre/kpi-cards/shopline/fulfillment-rate-over-time) | The 90D shape.                         | Spot whether this is a recent break or a structural drift.                                                         |
| [Fulfillment Status Mix](/nerve-centre/kpi-cards/shopline/fulfillment-status-mix)         | The mix view.                          | If the gap is mostly `partial` rather than `unfulfilled`, the issue is cross-warehouse coordination, not capacity. |
| [Refund Rate](/nerve-centre/kpi-cards/shopline/refund-rate)                               | Downstream.                            | Late fulfilment correlates with refund rate 7 to 14 days later (delivery-time refunds).                            |
| [Total Revenue](/nerve-centre/kpi-cards/shopline/total-revenue)                           | The headline.                          | Fulfilment rate is the leading indicator for revenue continuity; below 90% revenue eventually follows down.        |
| [Inventory Alerts (OOS)](/nerve-centre/kpi-cards/shopline/zero-negative-stock-variants)   | Blocking input.                        | OOS variants on paid orders cannot fulfil; the gap may be inventory, not capacity.                                 |
| [Shopline Health Score](/nerve-centre/kpi-cards/shopline/shopline-health-score)           | Composite.                             | Fulfilment rate is one of 5 health-score inputs; weighted heavily because it is leading.                           |

## Reconciling against the vendor's own dashboard

**Where to look in Shopline's own dashboard:**

> **Shopline Admin -> Reports -> Fulfillment performance**
> The "Fulfillment rate" tile gives the same figure; mobile app shows the same percentage in the dashboard summary.

**Why our number may legitimately differ from Shopline's Admin:**

| Reason                 | Direction               | Why                                                                                                   |
| ---------------------- | ----------------------- | ----------------------------------------------------------------------------------------------------- |
| **Time zone**          | Boundary days           | Shopline Admin uses store-local; we use UTC.                                                          |
| **In-flight handling** | Either                  | Shopline Admin sometimes counts in-flight orders as in-progress; we exclude until they pass or fail.  |
| **Partial counting**   | Marginal                | Partials count as not-fulfilled in our card; some Shopline reports count them as 0.5 of a fulfilment. |
| **Sync lag**           | Ours occasionally lower | Webhook-driven; under 60s typically.                                                                  |
| **Pre-orders**         | Either                  | Tag-based exclusion may not match Shopline's own filter.                                              |

**Internal identity:**

`shopline_fulfillment_rate = 1 - shopline_unfulfilled_count_excluding_in_flight / shopline_paid_order_count` over the same 30D window.

***

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

  * [`shopify.fulfillment_rate`](/nerve-centre/kpi-cards/shopify/fulfillment-rate)
  * [`bigcommerce.bigcommerce_fulfillment_rate`](/nerve-centre/bigcommerce/bigcommerce_fulfillment_rate)
  * [`adobe_commerce.fulfillment_rate`](/nerve-centre/kpi-cards/adobe-commerce/fulfillment-rate)
</details>

## Known limitations / merchant FAQs

**What is a healthy fulfillment rate for an APAC Shopline merchant?**
95 to 98% in steady state for fashion and homeware. Above 98% is rare without dedicated cut-off-aligned warehouse staffing. Below 90% is structural and triggers the alert.

**My fulfilment rate dropped to 88%; what should I check first?**
(1) [`shopline_unfulfilled`](/nerve-centre/kpi-cards/shopline/unfulfilled-orders) for the real-time backlog, (2) [`shopline_avg_fulfilment_hours`](/nerve-centre/kpi-cards/shopline/avg-time-to-fulfil) for the upstream lag, (3) [`shopline_inventory_alerts`](/nerve-centre/kpi-cards/shopline/zero-negative-stock-variants) for OOS-blocked orders, (4) [`shopline_fulfillment_breakdown`](/nerve-centre/kpi-cards/shopline/fulfillment-status-mix) to see whether the issue is unfulfilled or partial.

**Why does this exclude in-flight orders?**
Because they have not yet had a chance to pass or fail. Including them as failures would mechanically penalise the rate every time an order is paid; including them as passes would inflate it. The standard ecommerce convention is "exclude until resolution", which we follow.

**Does this include orders that were eventually fulfilled but late?**
Yes; this card measures whether the order was fulfilled at all, not whether it was on-time. For on-time fulfilment look at [`shopline_avg_fulfilment_hours`](/nerve-centre/kpi-cards/shopline/avg-time-to-fulfil).

**My fulfilment rate is 100% but my refund rate spiked. What is happening?**
The orders shipped, but the buyers were unhappy on arrival. Common causes: damaged in transit, sizing wrong, photo / reality mismatch. See [`shopline_refund_rate`](/nerve-centre/kpi-cards/shopline/refund-rate) for the reason-code breakdown.

**Does this account for split shipments across multiple warehouses?**
Yes. Partial fulfilments count as not-fulfilled until every line ships. APAC merchants with multiple warehouses (HK + Shenzhen, or TW + JP cross-border) often see lower headline rates than single-warehouse stores until the cross-warehouse split is rationalised.

**Why is the alert at 90% not 95%?**
Because the alert is a "below this is bad" floor, not a "this is the goal" target. 90% is the line at which buyer trust starts to erode publicly (reviews, social media); 95% is what well-run operations target. Setting the alert at 95% would generate too many notifications during normal operational variance.

**My subscription orders count toward this rate. Is that right?**
Yes. Each subscription billing cycle is a separate order in Shopline; if it ships on time it counts as fulfilled. If the merchant runs heavy subscription volume, fulfilment rate is dominated by the subscription fulfilment cadence, which is usually more reliable than one-time orders.

**Does B2B / wholesale order count?**
Yes. The card does not segment B2B from B2C unless the merchant configures a tag-based exclusion. Most APAC Shopline merchants run B2C only.

***

### Tracked live in Vortex IQ Nerve Centre

*Fulfillment Rate* is one of hundreds of KPI pulses Vortex IQ tracks across Shopline 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.
