Skip to main content
Card class: Non-HeroCategory: Ecommerce Platform

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 endpointGET /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 treatmentn/a, operational metric.
Shippingn/a, but the SLA threshold differs by configured shipping method (expedited 24h, standard 48h).
Discountsn/a.
RefundsRefunded orders are excluded from the denominator (they don’t need fulfilling).
Cancelled ordersExcluded from both numerator and denominator.
Incomplete ordersExcluded.
Currencyn/a.
Channel coverageAll 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 behaviourB2B 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 InventoryWhen 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 handlingA 3PL outage produces correlated drops across all channels using that 3PL. Cross-reference with BC Alert Fulfilment Delay for real-time outage signal.
Time window30D vsP (rolling 30 days vs prior 30 days).
Alert triggerany 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 keyfulfillment_rate
Rolesowner, 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_idChannelOrdersWithin SLARatevs P30DStatus
1DTC web4,8204,58095.0%-1.2ppHealthy
1019847Amazon (24h SLA)1,1401,06093.0%flatHealthy (Amazon LSR safe)
1019850Facebook Shop38037297.9%flatHealthy
12000004B2B portal (96h SLA)61260598.9%+0.4ppHealthy
1020111Walmart22018684.5%-9ppALERT FIRES
1020114POS380380100%flatStructural
What’s interesting:
  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
Action priority order:
  1. Filter to channel cohorts before alerting. POS structural-100% should never trigger; B2B with longer SLAs needs threshold extension.
  2. For marketplace fires (Amazon, Walmart), check the marketplace’s seller-rating dashboard for early penalty signals before the BC card catches up.
  3. 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.).
  4. Pair with BC Alert Fulfilment Delay for the real-time alarm complement to this trend view.
  5. 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

CardWhy pair it with Fulfilment Rate by Channel
BC Alert Fulfilment DelayThe real-time alarm; this card is the trend view.
BC Channel Inventory SplitSurfaces whether stock at the right location is the issue.
BC Inventory DistributionThe healthy-stock baseline; pair to identify warehouse bottlenecks.
BC Alert OOS SpikeOOS-on-channel directly impacts fulfilment rate.
BC Channel Refund RateLate-fulfilled customers refund more; the two often co-move.
BC Alert Channel Revenue DropMarketplace fulfilment penalties cascade into ranking and revenue.
BC Channel Conversion RateA poor fulfilment-rate channel sees customers reduce purchase frequency.
Order CountVolume 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:
ReasonDirection
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
Cross-connector reconciliation (when 3PL and marketplace integrations are connected):
CardExpected relationshipWhat causes legitimate divergence
shipbob.sb_otd_rateShipBob 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_lsrAmazon 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_rateWalmart’s seller-side OTD should match Walmart channelWalmart’s calculation includes both ship-on-time and delivered-on-time; we measure ship-on-time only.
shippo.shippo_otd_rateShippo’s per-carrier OTD aligns by carrier-and-channelShippo measures carrier OTD post-handoff; we measure merchant-handoff to carrier.
The per-channel fulfilment rate is BC-aligned with similar cards on Shopify (per fulfillment_status and source_name) and Adobe Commerce (per shipment_status and store_id); merchant-facing semantics are equivalent.

Known limitations / merchant FAQs

Why is my B2B portal at 99% but DTC web at 92%? Different SLAs and different operational models. B2B has longer SLAs (96h+ typical) and scheduled / managed orders; DTC has tight SLAs (48h) and unpredictable order patterns. The two aren’t comparable; both can be healthy at their own benchmarks. Configure cohort-specific thresholds. My Walmart channel reads 84% but Walmart Seller Center shows 91% OTD. Are they synced? Different metrics. Walmart’s OTD measures delivered-on-time at the customer end; this card measures shipped-on-time at your warehouse end. The gap (84% vs 91%) is unusual; usually merchant-side ship-on-time is higher than customer-side delivery-on-time. Check whether your Channel Manager Walmart sync has an issue mapping ship timestamps; sometimes BC records a stale ship date. My fulfilment rate dropped 2pp this week. Bad? Within normal weekly variance for most stores. Two consecutive weeks of -2pp is a trend; one week is noise. Cross-reference with BC Alert Fulfilment Delay, if the alarm didn’t fire, the trend is gradual rather than acute. My multi-3PL store fulfils web through ShipBob and B2B through dropship. Does the rate combine? Yes, by default. Configure per-channel-per-3PL view if you want separate rates. The pair “DTC-via-ShipBob” and “B2B-via-dropship” lets you see whether each operational stream is healthy independently. Should I set marketplace SLAs tighter than DTC? Yes. Amazon’s LSR threshold is 4% (96% on-time); to comfortably stay above LSR, target 95-97%. Walmart’s threshold is 95% OTD. eBay’s varies. Configure marketplace SLAs at 24-48h (vs DTC 48h) to maintain seller-rating safety margin. My POS shows 100%. Why include it on the card if it’s always healthy? Mostly for completeness, but POS does occasionally drop below 100% in BOPIS / ship-from-store configurations where POS terminal triggers a fulfilment workflow. If your POS is purely walk-out, configure it excluded under Settings → Channel filter. Why does the alert fire on a single channel but not on the headline? Because aggregate fulfilment is dominated by your highest-volume channel. A 9pp drop on a 5%-volume channel barely moves the headline 0.5pp; the per-channel alert catches the concentrated drop. Always run both store-wide and per-channel alerts; one catches systemic issues, the other catches concentrated ones. My MLI store shows different rates per warehouse. Which one matters? Both. Per-warehouse rate identifies the operational bottleneck. Per-channel rate identifies the customer-facing impact. For root-cause analysis use per-warehouse; for marketplace-penalty risk use per-channel. My fulfilment rate looks good but my customer-service complaints about late shipments are up. Why the disconnect? Probably “shipped-on-time” doesn’t match “delivered-on-time” at the customer end. Carrier delays after merchant handoff don’t impact this card. Cross-reference with shipping-carrier OTD data (Shippo, EasyPost, etc.) to see whether the issue is carrier-side, not merchant-side. Can I configure SLA per shipping method? Yes, under Settings → SLA → Per shipping method. Common config: standard 48h, expedited 24h, two-day-air 12h, next-day-air 8h. The card auto-applies the right SLA per order based on the chosen shipping method.

Tracked live in Vortex IQ Nerve Centre

Fulfilment Rate by Channel is one of hundreds of KPI pulses Vortex IQ tracks across BigCommerce 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 or book a demo to see this metric running on your own data.