At a glance
Per-channel fulfilment rate: orders shipped within the channel’s SLA divided by orders that should have been shipped within the period, decomposed by channel_id. The operational health view of multi-channel BC stores. Web fulfilment rates rarely match Amazon LSR rates; B2B fulfilment cycles are different from DTC; POS is structurally 100%. Aggregate fulfilment rate hides the channel that’s actually broken.
| What it counts | (orders_shipped_within_SLA_30d / orders_due_30d) * 100 GROUP BY channel_id. SLA defaults to 48 hours per channel but is overridable per-channel (Amazon: 24-48h, B2B portal: 72-168h, etc.). The rolling 30 days vs prior 30 days for trend. |
| API endpoint | GET /stores/{store_hash}/v2/orders filtered by status_id IN (2, 10) (Shipped, Completed) and date_shipped timestamp. Channel mapping via GET /v3/channels. |
| VAT / tax treatment | n/a, operational metric. |
| Shipping | n/a, but the SLA threshold differs by configured shipping method (expedited 24h, standard 48h). |
| Discounts | n/a. |
| Refunds | Refunded orders are excluded from the denominator (they don’t need fulfilling). |
| Cancelled orders | Excluded from both numerator and denominator. |
Incomplete orders | Excluded. |
| Currency | n/a. |
| Channel coverage | All BC channels. POS reads near-100% (walk-out fulfilment). Marketplaces show their own SLA-specific rates. B2B portal typically 92-98% (longer cycle but tighter quality). Web 88-95% is the typical healthy range. |
| B2B Edition behaviour | B2B orders have different SLAs (negotiated PO terms, scheduled delivery). The card auto-detects customer-group and applies the configured B2B SLA. Don’t apply DTC fulfilment thresholds to B2B, you’ll mis-flag the channel as unhealthy. |
| Multi-Location Inventory | When MLI is enabled, fulfilment rate decomposes by location within each channel. A web channel fulfilled by a healthy warehouse A and a slow warehouse B shows mixed rates; the per-location view is the actionable read. |
| 3PL outage handling | A 3PL outage produces correlated drops across all channels using that 3PL. Cross-reference with BC Alert Fulfilment Delay for real-time outage signal. |
| Time window | 30D vsP (rolling 30 days vs prior 30 days). |
| Alert trigger | any channel <90%. Fires when any channel’s 30-day rate falls below 90%. POS is auto-excluded from this threshold since 100% is structural. |
| Sentiment key | fulfillment_rate |
| Roles | owner, 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 ShipBob 3PL, Amazon Channel Manager, B2B Edition, and POS at flagship store. Snapshot for 1 Apr to 30 Apr 26 vs prior 30 days.channel_id | Channel | Orders | Within SLA | Rate | vs P30D | Status |
|---|---|---|---|---|---|---|
1 | DTC web | 4,820 | 4,580 | 95.0% | -1.2pp | Healthy |
1019847 | Amazon (24h SLA) | 1,140 | 1,060 | 93.0% | flat | Healthy (Amazon LSR safe) |
1019850 | Facebook Shop | 380 | 372 | 97.9% | flat | Healthy |
12000004 | B2B portal (96h SLA) | 612 | 605 | 98.9% | +0.4pp | Healthy |
1020111 | Walmart | 220 | 186 | 84.5% | -9pp | ALERT FIRES |
1020114 | POS | 380 | 380 | 100% | flat | Structural |
- Walmart fulfilment dropped 9 percentage points to 84.5%, well below the 90% threshold. This is the actionable signal. Walmart’s seller-rating algorithm penalises late shipments harder than Amazon’s; sustained sub-90% fulfilment can trigger seller-account suspension within 4-8 weeks. Investigate immediately.
- Diagnostic sequence in 5 minutes: (a) BC Channel Manager → Walmart → Recent activity for sync failures, (b) ShipBob’s Walmart-specific picklist log, (c) Walmart Seller Center for any policy notifications, (d) check whether Walmart-specific SKUs require special packaging that’s been delayed.
- The cause turned out to be SKU-specific: Walmart-only SKUs (custom bundles created for Walmart’s listing format) were being routed to a manual-pack queue at ShipBob that backed up. Resolution: standardise the Walmart bundles into auto-pack-eligible SKUs; expected fulfilment rate recovery to 95% within 14 days.
- The DTC web -1.2pp is worth noting but not actionable yet. A 1.2pp slip from 96.2% to 95.0% is within normal variance. Watch for two consecutive periods of decline before treating as a trend.
- B2B portal at 98.9% (+0.4pp) is healthy. B2B orders typically have longer SLAs and fewer surprises (scheduled deliveries, customer-managed addresses), so high fulfilment rates are normal. A B2B portal below 90% is a red flag, the customer relationship is at risk far more than DTC, since B2B churn LTV losses are 10-50x DTC losses.
- Filter to channel cohorts before alerting. POS structural-100% should never trigger; B2B with longer SLAs needs threshold extension.
- For marketplace fires (Amazon, Walmart), check the marketplace’s seller-rating dashboard for early penalty signals before the BC card catches up.
- For 3PL outages, expect correlated drops across multiple channels. A single-channel drop usually points to channel-specific operational issue (Walmart-only SKUs, Amazon LTL pickup, etc.).
- Pair with BC Alert Fulfilment Delay for the real-time alarm complement to this trend view.
- Configure SLA-by-shipping-method. Expedited orders should hit 95%+ within 24h; standard 90%+ within 48h. Aggregating produces misleading rates.
Sibling cards merchants should reference together
| Card | Why pair it with Fulfilment Rate by Channel |
|---|---|
| BC Alert Fulfilment Delay | The real-time alarm; this card is the trend view. |
| BC Channel Inventory Split | Surfaces whether stock at the right location is the issue. |
| BC Inventory Distribution | The healthy-stock baseline; pair to identify warehouse bottlenecks. |
| BC Alert OOS Spike | OOS-on-channel directly impacts fulfilment rate. |
| BC Channel Refund Rate | Late-fulfilled customers refund more; the two often co-move. |
| BC Alert Channel Revenue Drop | Marketplace fulfilment penalties cascade into ranking and revenue. |
| BC Channel Conversion Rate | A poor fulfilment-rate channel sees customers reduce purchase frequency. |
| Order Count | Volume context; 9pp drop on 220 orders is 20 late shipments, on 2,000 it’s 180. |
Reconciling against the vendor’s own dashboard
Where to look in BigCommerce Control Panel: Orders → Shipments (Pro / Enterprise) shows shipment timestamps; Channel Manager → individual marketplace shows marketplace-side fulfilment ack. BC does not natively compute per-channel fulfilment rate; the closest manual computation is via Reports → Custom building a fulfilled / due cross-tab. For B2B Edition: Channel Manager → B2B Edition → Orders shows B2B-specific fulfilment status with PO context. Why our fulfilment rate may differ from BC / 3PL view:| Reason | Direction |
|---|---|
| SLA definition. We use 48h default; BC has no per-channel SLA concept natively. | Different baselines |
| Partial shipment treatment. We count partial shipments as fulfilled if any line shipped within SLA; BC’s metrics differ. | Vortex IQ HIGHER on partial-shipment-heavy stores |
Channel Manager sync lag. Marketplace fulfilment ack can lag actual shipment by 30-120 minutes; we count BC’s date_shipped. | Vortex IQ slightly LEADS |
| Refund handling. We exclude refunded orders; BC includes them in some shipment views. | Vortex IQ HIGHER rate |
| MLI per-location vs aggregated. We can show per-location; BC aggregates. | Different granularity |
| POS auto-100% treatment. We exclude POS from the alert threshold; BC includes. | Cosmetic on alerts |
| Card | Expected relationship | What causes legitimate divergence |
|---|---|---|
shipbob.sb_otd_rate | ShipBob OTD rate matches the channels using ShipBob within 1-3% | ShipBob counts pick-to-ship; we count order-to-ship including BC-side queue. Gap is the BC handoff time. |
amazon_sp.amazon_lsr | Amazon LSR co-tracks the Amazon channel slice within 5% | Amazon LSR uses 30-day rolling but with their own carrier-handoff timestamp; we use BC. |
walmart_marketplace.wm_otd_rate | Walmart’s seller-side OTD should match Walmart channel | Walmart’s calculation includes both ship-on-time and delivered-on-time; we measure ship-on-time only. |
shippo.shippo_otd_rate | Shippo’s per-carrier OTD aligns by carrier-and-channel | Shippo measures carrier OTD post-handoff; we measure merchant-handoff to carrier. |
fulfillment_status and source_name) and Adobe Commerce (per shipment_status and store_id); merchant-facing semantics are equivalent.