At a glance
Daily fulfilment rate ((orders with status =ShippedorCompleted) ÷ total orders) plotted as an area chart over 90 days. The trend version of Fulfillment Rate. The shape tells you whether your warehouse is keeping pace, falling behind, or recovering from an incident.
| What it counts | DATE_HISTOGRAM rate(status IN [Shipped, Completed]) per day. The numerator is orders in terminal-positive fulfilment states; the denominator is total orders placed that day. Output is a percentage. |
| VAT / tax treatment | n/a, count-rate metric. |
| Shipping | n/a. |
| Discounts | n/a. |
| Refunds | Refunded orders sit in Refunded status, NOT in Shipped/Completed. They reduce the rate as a denominator-side effect. To understand whether refunds are dragging the rate, pair with Refund Rate. |
| Cancelled / voided orders | In the denominator, not the numerator. Each cancellation reduces the rate by 1/(orders-that-day). |
| Currency | n/a. |
| Channels / sources | All BC channels contribute. Channel-specific patterns: web orders settle to Shipped typically within 1-3 days; marketplace orders follow marketplace SLA (often faster, 1-2 days); POS orders typically Completed same-day. The rate naturally varies day-to-day with channel mix. |
| What “today’s rate” means | The rate for orders placed today, evaluated immediately. Most orders placed today haven’t shipped yet, so today’s rate naturally reads low (~10-30%) and rises over the next 1-3 days as the warehouse catches up. The trailing-bar shape is the right way to read this card; today’s bar always reads lower than terminal. |
| Maturity convention | We mark a day as “fully matured” 5 days after the order date; before maturity, the rate is preliminary. The chart should be read with the most recent 3-5 days as preliminary. |
| Why this differs from “delivery rate” | Shipped/Completed is BC’s status when goods leave the warehouse, not when they arrive at the customer. Delivery confirmation requires carrier tracking integration; the BC Completed state is sometimes auto-set on carrier delivery, sometimes auto-set on label print. Read this card as “warehouse fulfilment rate”, not “delivery rate”. |
| Time window | 90D (rolling 90 days, daily granularity) |
| Alert trigger | None at this card. Use BC Alert Fulfilment Delay for threshold alerts on rate decline. |
| Roles | owner, operations |
Calculation
Worked example
A US homewares brand on BigCommerce Pro shipping from a single 3PL, 90 days from 13 Jan 26 to 12 Apr 26.| Period | Mature fulfilment rate | Notes |
|---|---|---|
| 13 Jan 26 to 26 Jan 26 | 94.2% | Healthy baseline |
| 27 Jan 26 to 9 Feb 26 | 95.1% | Slight bump, 3PL added shifts |
| 10 Feb 26 to 23 Feb 26 | 87.4% | Drop, Valentine’s volume spike outpaced capacity |
| 24 Feb 26 to 9 Mar 26 | 91.8% | Recovery after extra shifts |
| 10 Mar 26 to 23 Mar 26 | 93.6% | Back to normal |
| 24 Mar 26 to 6 Apr 26 | 86.7% | Drop, Spring launch promo overran 3PL |
| 7 Apr 26 to 12 Apr 26 | 79.3% | Worse, sustained warehouse backlog |
- Two drops in 90 days, both campaign-driven. Valentine’s and Spring launch both pushed daily order volumes 40-60% above baseline; the 3PL didn’t have surge capacity. The pattern is “campaign hits → fulfilment rate drops → backlog clears in 5-10 days → rate recovers”. Predictable and avoidable.
- The Spring launch drop is worse than Valentine’s because volumes were higher and the 3PL didn’t pre-stage extra shifts. Conclusion: marketing and ops aren’t talking before campaigns. Build a campaign-calendar-to-3PL-capacity check into the launch process.
- Below 90% triggers customer complaints. Most stores see CSAT scores drop visibly when this rate falls below 88% for more than 5 days. Below 80% is “the warehouse is on fire”, expect refund-rate spike, support-ticket spike, and bad reviews to follow within 7-10 days.
- The 79.3% reading on the most recent week is preliminary but the trend direction is clearly negative. Don’t wait for it to mature; act on the early signal.
- The recovery pattern is consistent, ~5-10 days after the drop, rate returns to baseline. That suggests the 3PL has overflow capacity but not always-on capacity. Worth a conversation about staffing model.
- Pair with Unfulfilled Orders, the absolute count of orders awaiting shipment. Knowing the rate dropped from 94% to 87% is informational; knowing it’s 240 orders sitting in
Awaiting Shipmentis actionable. - Check the campaign calendar. Most rate dips correlate with a campaign or promotion that drove volume above 3PL capacity. Pre-staging is the fix; reactive scaling rarely catches up in time.
- Contact the warehouse / 3PL operations lead directly. A direct phone call to the warehouse manager is faster than escalating through customer-success channels.
- Monitor the recovery trend. Most warehouses recover within 5-10 days; if a dip persists longer, the cause is not capacity (it’s workflow, technology, or training).
- Audit shipping cutoff times. Many BC stores have a same-day-shipping promise that becomes impossible during volume spikes; lower the bar temporarily (“ships within 3 business days”) to set expectations.
Sibling cards merchants should reference together
| Card | Why pair it with Fulfillment Rate Over Time |
|---|---|
| Fulfillment Rate | The single-period summary. This card shows the daily shape; that one summarises. |
| Fulfillment Status | The status decomposition. Drops here usually correlate with rising Awaiting Shipment share there. |
| Unfulfilled Orders | The absolute backlog count. Rate is the percentage; this is the dollars-and-cents number. |
| Refund Rate | The downstream effect. Sustained low fulfilment rates lead to refund-rate spikes within 7-14 days as customers cancel waiting orders. |
| Cancellation Rate | Same downstream effect, faster. Customers cancel before they wait for refund. |
| Order Count | The volume context. Rate dips during volume spikes are different from rate dips during volume troughs. |
| BC Alert Fulfilment Delay | The alert version. Fires when this trend crosses a threshold. |
shipstation.ss_avg_ship_time | Warehouse-side dwell time. Cross-reference for warehouse-vs-system diagnostics. |
Reconciling against the vendor’s own dashboard
Where to look in BigCommerce Control Panel: Analytics → Orders on Plus / Pro / Enterprise has a “Fulfillment rate over time” view. Standard plan stores need to compute manually from the Orders list. For 3PL-side reconciliation, the integration’s dashboard (ShipStation’s “Order Velocity”, ShipBob’s “On-Time Shipping”) shows the warehouse-side picture. Why our number may legitimately differ from BC Analytics:| Reason | Direction |
|---|---|
| Maturity convention. BC Analytics may report unmatured days as “still in progress”; we report a preliminary rate that grows as orders ship. | Different framing |
| Time zone. UTC vs store TZ. | Boundary effects |
| 3PL sync lag. Orders shipped at the warehouse but not yet synced to BC look unfulfilled in our index. Lag is typically 30-90 minutes. | Vortex IQ slightly LAGS reality |
Marketplace-managed shipments. Amazon FBA orders may report as Shipped faster than BC’s catalog channel reflects. | Vortex IQ LAGS marketplace |
| Cancelled orders. We include them in the denominator; BC Analytics may exclude. | Vortex IQ LOWER rate (cancellations drag denominator) |
| Card | Expected relationship | What causes legitimate divergence |
|---|---|---|
shipstation.ss_on_time_pct | ShipStation on-time shipping rate should track this card | ShipStation measures against carrier SLA, not order placement; the two are correlated but not identical. |
google_analytics.ga_order_completion_funnel | GA4 doesn’t track post-purchase fulfilment; only the order-creation funnel is reflected | Different layer of the funnel. |
shopify.fulfillment_over_time(planned)adobe_commerce.fulfillment_over_time(planned)
Known limitations / merchant FAQs
Today’s bar reads 12%, is the warehouse on fire? Probably not. Today’s orders mostly haven’t shipped yet, the warehouse is processing them. Today’s bar will rise to the typical baseline (90%+) over the next 1-3 days. Trust the trend up to 5 days back; everything more recent is preliminary. My fulfilment rate dropped 8 pp in 5 days, what’s the right action? First, validate it’s real (check the most recent days have matured at least 24-48 hours). If real, run the intervention playbook in the Worked Example section: validate the campaign-vs-capacity story, contact the 3PL operations lead, monitor the recovery. Most 8-pp drops recover within 7-10 days; longer dips signal a systemic issue, not a capacity issue. Should refunded orders count against my fulfilment rate? They don’t count in the numerator (which isShipped + Completed only). Whether they should drag the denominator depends on what story you want to tell. The default behaviour (drag the denominator) tells you “what fraction of orders successfully shipped”; an alternative formulation excludes refunds from both sides and tells you “what fraction of shippable orders shipped on time”. We use the default.
Why does my B2B store show a lower fulfilment rate than retail?
B2B orders sit longer in Awaiting Payment (waiting for invoice clearance) before they ship. The denominator includes those waiting-payment orders, which haven’t shipped yet, so the apparent rate is lower. Filter to retail-only (or exclude Awaiting Payment from the denominator) for the apples-to-apples ops view.
Black Friday week, what should I expect?
Most BC stores see fulfilment rate drop 10-25 percentage points during peak holiday weeks. Pre-stage extra warehouse staff and accept the dip if you can’t fully match capacity. Communication is the lever: a clear “ships within 5 business days” promise during peak avoids the customer-experience damage of unmet expectations.
Does the chart account for weekends?
Day-of-week effects are visible: Saturday and Sunday orders show low same-day rates because most warehouses don’t ship on weekends. By Tuesday-Wednesday those orders mature to the normal rate. The chart shows this naturally; don’t read a Sunday low as a problem.
My theme auto-marks orders Completed at label print, will this card overstate my rate?
Yes, slightly. If your theme/app marks Completed at label print rather than at delivery confirmation, the rate reads ~5-15 pp higher than “actually delivered” rate. That’s a definitional consideration; the warehouse-side rate is still measured correctly.
Why is my rate higher than BC’s own report?
Most likely because BC’s report uses a different maturity convention (waits for full delivery confirmation), or excludes non-shipped channels (POS) which we include. Differences of 2-5 pp are normal; differences of 10+ pp suggest a definition or filter mismatch.
My most recent day shows 0%, did the integration break?
Probably not. If the integration is healthy, today’s bar starts at 0% (no orders shipped yet) and rises through the day. Check whether the bar moves over the next 6-12 hours; if it stays at 0%, check Settings → Sources → BigCommerce status.
Can I configure an alert when this rate drops?
Yes, see BC Alert Fulfilment Delay for the threshold-alert version. Most stores configure it to fire when the rate drops below 85% for two consecutive days; that filters single-day noise.