> ## 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, Adobe Commerce

> Fulfillment Rate for Adobe Commerce stores. Tracked live in Vortex IQ Nerve Centre. How to read it, why it matters, and how to act on it.

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

## At a glance

> Percentage of orders that progressed to `state = complete` within the merchant's defined SLA. Adobe Commerce's `complete` state means "shipped and invoiced"; the rate is the operational quality KPI for fulfillment. Below 92% is the industry-baseline alert; below 88% indicates structural issues (3PL queue depth, integration failures, persistent staffing gaps).

|                                                        |                                                                                                                                                                                                                                                                                                                             |
| ------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **What it counts**                                     | `COUNT(orders where state = complete AND fulfilled_within_SLA) / COUNT(orders eligible for fulfillment)`. The denominator excludes `pending_payment` (SLA hasn't started) and `canceled` (no fulfillment expected). The numerator counts orders that reached `complete` within the configured SLA hours of payment capture. |
| **API field**                                          | `state`, `created_at`, `updated_at` from `GET /rest/V1/orders`.                                                                                                                                                                                                                                                             |
| **VAT / tax treatment**                                | n/a, count-and-time metric.                                                                                                                                                                                                                                                                                                 |
| **Shipping inclusion**                                 | n/a.                                                                                                                                                                                                                                                                                                                        |
| **Discounts**                                          | n/a.                                                                                                                                                                                                                                                                                                                        |
| **Credit Memo refund treatment**                       | An order shipped on time then later refunded still counts as "fulfilled within SLA".                                                                                                                                                                                                                                        |
| **`state` machine inclusion**                          | Numerator: `complete` within SLA. Denominator: orders eligible for fulfillment (paid, not cancelled, not deliberately held).                                                                                                                                                                                                |
| **`pending_payment` quirk**                            | Excluded from denominator (SLA clock hasn't started).                                                                                                                                                                                                                                                                       |
| **`holded` quirk**                                     | Excluded from denominator (operations deliberately paused; SLA pauses with it).                                                                                                                                                                                                                                             |
| **Multi-currency `grand_total` vs `base_grand_total`** | n/a.                                                                                                                                                                                                                                                                                                                        |
| **Store View scope (`store_id`)**                      | All Store Views; per-Store-View variants useful when warehouses serve different regions.                                                                                                                                                                                                                                    |
| **Time window**                                        | `30D vsP`.                                                                                                                                                                                                                                                                                                                  |
| **Alert trigger**                                      | `<92% (industry baseline)`.                                                                                                                                                                                                                                                                                                 |
| **Sentiment key**                                      | `fulfillment_rate`                                                                                                                                                                                                                                                                                                          |
| **Roles**                                              | owner, operations                                                                                                                                                                                                                                                                                                           |

## Calculation

```
COUNT(state=complete) / COUNT(_id)
  WHERE date BETWEEN [period_start, period_end]
```

## Worked example

A nutritional supplements brand on Adobe Commerce 2.4.6 with US, UK, and B2B Store Views. SLA: 48h consumer, 72h B2B. 30-day window ending Monday 4 May 26.

**Fulfillment rate by Store View:**

| Stream      | Eligible orders | Fulfilled within SLA | Rate      |
| ----------- | --------------- | -------------------- | --------- |
| US consumer | 2,610           | 2,486                | 95.2%     |
| UK consumer | 2,040           | 1,849                | 90.6%     |
| B2B portal  | 1,420           | 1,398                | 98.5%     |
| **Blended** | **6,070**       | **5,733**            | **94.4%** |

**Vs prior 30-day:** 94.4% current vs 95.7% prior = -1.3 pts.

What this is telling operations:

1. **Blended 94.4%** is just above the 92% baseline, mid-pack performance. Best-in-class is 96%+.
2. **UK at 90.6%** is below the alert threshold. Worth investigating: cross-check [Fulfilment Over Time](/nerve-centre/kpi-cards/adobe-commerce/fulfillment-rate-over-time) for the UK series specifically. The UK staffing dip mentioned in that worked example (5 days in late April) explains the drop.
3. **B2B at 98.5%** is best-in-class because the in-house HQ team prioritises B2B and their SLA is more generous (72h vs 48h consumer).
4. **The 1.3 pt blended decline** is driven entirely by the UK Store View; US and B2B are stable. Targeted action on the UK warehouse, not blanket changes.
5. **Operational implications**: roughly 3.4% of orders breached SLA (337 of 6,070). Customer service can expect \~340 enquiries-per-month from these customers (industry typical: 70 to 100% of late-shipment customers contact support).
6. **Action**: address UK warehouse staffing-flex; weekly review with Huboo to ensure forecast-vs-actual reconciliation; set per-Store-View alerting to catch UK-specific dips before blended rate drags.

The point: a single number (94.4%) across multiple Store Views obscures region-specific issues. Per-Store-View alerting and decomposition is essential for multi-warehouse Adobe Commerce stores.

## Sibling cards merchants should reference together

| Card                                                                                      | Why pair it with Fulfilment Rate    |
| ----------------------------------------------------------------------------------------- | ----------------------------------- |
| [Fulfilment Over Time](/nerve-centre/kpi-cards/adobe-commerce/fulfillment-rate-over-time) | Trend chart.                        |
| [Fulfilment Delay Alert](/nerve-centre/kpi-cards/adobe-commerce/fulfilment-delay-alert)   | Real-time breach alerting.          |
| [Unfulfilled Orders](/nerve-centre/kpi-cards/adobe-commerce/unfulfilled-orders)           | Current pipeline.                   |
| [Fulfillment Breakdown](/nerve-centre/kpi-cards/adobe-commerce/fulfillment-status)        | State distribution.                 |
| [Total Orders](/nerve-centre/kpi-cards/adobe-commerce/total-orders)                       | Volume context.                     |
| [Refund Rate](/nerve-centre/kpi-cards/adobe-commerce/refund-rate)                         | Lagging effect of breaches.         |
| [Cancellation Rate](/nerve-centre/kpi-cards/adobe-commerce/cancellation-rate)             | Customer-cancel response to delays. |
| [`shopify.fulfillment_rate`](/nerve-centre/kpi-cards/shopify/fulfillment-rate)            | Cross-platform peer.                |

## Reconciling against the vendor's own dashboard

**Where to look in Adobe Commerce Admin:**

> **Reports > Sales > Shipping** for shipment counts; manual SLA-breach computation requires per-order time-since-payment.

> **Sales > Orders** with state filter; manual export and analysis for SLA breach detection.

> **Sales > Shipments** lists every shipment created in the period.

**Why our number may legitimately differ from a manual count:**

| Reason                                                                                                             | Direction of divergence                 |
| ------------------------------------------------------------------------------------------------------------------ | --------------------------------------- |
| **SLA threshold**. Card uses configurable threshold (default 48h/72h). Different thresholds yield different rates. | Material if thresholds differ           |
| **Time-zone**. Admin in Store View timezone; card UTC.                                                             | Negligible at 30D                       |
| **`pending_payment` exclusion**. Card excludes from denominator.                                                   | Card rate higher                        |
| **`holded` exclusion**. Card excludes from denominator.                                                            | Card rate higher                        |
| **Partial shipments**. Card treats any shipment as fulfillment-started.                                            | Card rate higher than strict definition |
| **Sync lag**. Card uses OpenSearch sync; Admin live.                                                               | Negligible                              |

**Cross-connector reconciliation (when these connectors are connected for this merchant):**

| Pair                         | Expected relationship                    | What divergence tells you                                                    |
| ---------------------------- | ---------------------------------------- | ---------------------------------------------------------------------------- |
| 3PL on-time-shipment reports | Should align within SLA-definition match | Material divergence indicates definition mismatch or off-platform shipments. |
| Carrier API tracking         | First scan ≈ Adobe shipment-create       | Lag indicates carrier handover delay.                                        |

***

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

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

## Known limitations / merchant FAQs

**My fulfillment rate is 88%, is that bad?**
Below the 92% industry baseline, yes. Most likely cause: the SLA is too tight for current operational capacity, or there's a structural issue (3PL queue depth, integration). Cross-check with [Fulfilment Over Time](/nerve-centre/kpi-cards/adobe-commerce/fulfillment-rate-over-time) for the trend (declining or stable?) and [Fulfilment Delay Alert](/nerve-centre/kpi-cards/adobe-commerce/fulfilment-delay-alert) for current breaches.

**Adobe Commerce vs Magento Open Source: difference?**
None at the calculation. Both editions have identical state machine.

**My multi-store, can I see per-Store-View rates?**
Yes, configure per-Store-View variants. Strongly recommended for multi-warehouse operations.

**B2B is on a 72h SLA but consumer on 48h, can I configure both?**
Yes, per-Store-View thresholds. Most B2B portal Store Views configure 72h or 5-day SLA; consumer Store Views 48h or 24h. The card respects whatever you configure.

**Why exclude `holded` from the denominator?**
Adobe's `holded` state is "operations paused this order" (fraud review, B2B credit check, custom-make awaiting design). The SLA should pause while held; counting them as breach would penalise legitimate ops actions.

**Why exclude `pending_payment`?**
SLA only starts when payment captures. A `pending_payment` order is still in the customer's hands (or AP's hands). Including would distort the rate.

**My 3PL says they ship 99% within 48h but the card shows 91%, why?**
Likely SLA-definition difference. The 3PL measures from "order received in 3PL queue" to "shipment despatched"; the card measures from "Adobe payment capture" to "shipment created". The Adobe-to-3PL handover (typically 1-4 hours) is included in the card but not in the 3PL metric.

**Why does the card consider partial shipments as fulfilled?**
Default behaviour: any shipment for an order moves it to fulfillment-started. The customer received goods; the SLA is functionally met. For strict "all items shipped" measurement, configure tighter. The default is operationally pragmatic.

**Why is fulfillment rate falling but customer service tickets are flat?**
Customers don't complain on day 3; they complain on day 5 to 7. Tickets lag rate by \~5 days. If rate is falling now, ticket volume rises in a week or two unless you intervene proactively.

***

### Tracked live in Vortex IQ Nerve Centre

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