Your dashboard says 99% of orders shipped on time. Nice. Then three customers ask why their tracking pages still show no movement. A fourth receives the wrong shade. The 3PL invoice climbs, too.

Maybe the dashboard is right about labels created. That is a different thing from parcels handed to a carrier, delivered as promised, and packed correctly. One cheerful percentage can cover quite a mess.
The point of ecommerce fulfillment KPIs is to find the mess early. A useful measure has an exact definition, a source record, and a decision attached to it. Below are 20 measures a DTC brand can use to review a warehouse, a 3PL, or its own operation. You do not need to stare at all 20 every morning. You do need to know what each one counts.
Set the rules before you build the dashboard
Define an eligible order first. For a warehouse dispatch promise, that might mean a paid order received before the local cutoff, with valid address data and approved sellable stock. Agree on time zone, working days, holidays, legitimate holds, and split shipments. A late order cannot simply disappear from the denominator because it missed the window.
Then connect the records. The storefront or order management system (OMS) knows when an order was accepted. The warehouse management system (WMS) knows release, pick, pack, and stock events. A carrier has acceptance and tracking scans. Returns systems and support tickets reveal trouble after delivery. Invoices show the money. Some brands will need an export or a manual reconciliation before these systems agree. That’s normal enough.
| Question | Population and clock | Evidence | Who investigates |
| Did we dispatch on time? | Qualified orders due under the warehouse cutoff; release to verified handoff | OMS release, WMS completion, carrier handoff | Brand operations and 3PL |
| Did the customer get it on time? | Orders whose promised delivery date has passed; order to delivery | Promise snapshot and carrier delivery event | Brand support and logistics |
| Was stock really available? | Counted SKU, location and status combinations | WMS snapshot, signed physical count | Inventory owner and warehouse |
Keep the promise as it stood when the customer ordered. Otherwise, quietly changing a delivery date can make a late order appear punctual. Slice results by carrier, destination, product, order type, and peak week. A tiny sample can swing wildly, so show the numerator and denominator beside every rate.
If you are setting these measures with an external provider, the China 3PL service and SLA scope gives a useful starting point for naming cutoffs, evidence, and exceptions.
Is the order moving when the customer expects it?
On-time dispatch rate
Formula: orders due in the period with verified carrier handoff by the agreed dispatch deadline ÷ all qualifying orders due in that period × 100.
Use the physical handoff or a reliable carrier acceptance event. Printing a label at 4:55 p.m. for a parcel collected tomorrow is not today’s dispatch. The WMS, pickup manifest, and first carrier event help reconcile a disputed handoff. If this rate falls, inspect the oldest open orders by SKU, route, cutoff, and hold reason before changing the SLA.
On-time delivery rate
Formula: orders delivered by the customer-facing promised date ÷ orders in a matured promise-date cohort × 100.
Include overdue, undelivered orders as failures once their promise date has passed and enough reporting time has elapsed. For split orders, decide whether every required parcel must arrive to count the order as on time. Usually that matches what the customer experiences. Store the original promise and check carrier tracking; the warehouse cannot own every last-mile delay, but the brand owns the promise and route choice.
Total order cycle time: median and P90
Formula: elapsed time from accepted customer order to confirmed delivery, calculated per order; report the median and the 90th percentile (P90).
The median describes the middle order. P90 shows how long the slower 10% took to reach the customer. If the median holds steady while P90 stretches, a particular zone, carrier, or product may be stuck. Do not use “order cycle time” in a contract without its endpoints. Some providers mean order-to-dispatch; here it means order-to-delivery.
Warehouse release-to-handoff time
Formula: carrier handoff timestamp minus valid warehouse-release timestamp, for each eligible order; report median and P90.
This is the warehouse’s processing clock. A fraud review or payment failure before release belongs in a separate queue. A paid order stuck after release is different: check missing stock, pick waves, labor, packaging, and carrier pickup times. For split shipments, report the first handoff and final required handoff if both matter to the promise.
First-scan lag
Formula: first carrier network scan minus verified physical handoff, for parcels with both events; show the distribution and the count still unscanned after an agreed interval.
A long gap can mean delayed carrier induction, a missed scan, or a parcel that never left. A manifest alone may not prove physical collection. Compare pickup evidence, carrier events, and unscanned labels before blaming either party. Cross-border routes may include a documented consolidation stage; name that stage in the timeline instead of pretending it is invisible.
Here is the everyday test: if your store says “fulfilled” but the first scan lands two days later, which of those two events did the customer actually expect? Keep both on the report.

Did the right, intact products reach the door?
Order accuracy rate
Formula: shipped orders confirmed correct on SKU, variant, quantity, and approved packing rule ÷ eligible shipped orders × 100, measured after a fixed claim window.
Combine scan checks with verified customer claims and warehouse investigations. An absence of complaints is not proof of a perfect order. A wrong size in apparel, a missing sample in a beauty kit, and an incorrect batch in a controlled product all count under the brand’s defined rule. Show when the error was discovered and assign cause; a bad product master can cause the same result as a mis-pick.
Pick accuracy
Formula: audited pick lines with the correct SKU and quantity before packing ÷ all audited pick lines × 100.
This is a narrow process check, useful because it can catch mistakes before they reach customers. State whether every line is scanned or only a sample is audited. If a line is fixed before packing, record the first failed attempt as a pick error while the delivered order can still be accurate. Shopify’s order accuracy discussion also distinguishes pick-stage accuracy from the broader order outcome.
Direct perfect-order rate
Formula: delivered orders meeting all defined conditions ÷ eligible delivered orders × 100.
For a DTC brand, the conditions might be correct and complete contents, on-time delivery, no validated damage, and required documentation. Count each order once, even if it had two failures. This is a direct count of joint success, so it is stricter than any one component rate.
There is also a formal APQC perfect order performance measure that multiplies component rates. That composite is useful when applied consistently, but it is not necessarily the same number as a direct order-by-order count when failure types overlap. Label the method you use. Do not put two differently calculated “perfect order” figures on the same chart as if they matched.
Damage-free delivery rate
Formula: delivered orders without validated transit damage ÷ delivered orders in a claim-matured cohort × 100.
Record whether damage affected the item, the retail carton, or only the outer mailer. A leaky serum, cracked ceramic, and dented shipper call for different fixes. Keep pack photos and carrier claim evidence when available. If fragile orders fail mainly on one lane, retest the pack for that route before adding more fill to every parcel.
Fulfillment-related contact rate
Formula: unique shipped orders with a validated fulfillment-related support inquiry ÷ shipped orders in the same matured cohort × 100.
Include wrong, missing, damaged, and late-delivery inquiries, with separate reason codes. Deduplicate three emails from one unhappy customer about one parcel. Some tickets will turn out to be product questions; do not dump them into the warehouse-error bucket. This metric hears trouble faster than formal returns, although a new campaign may also cause a temporary rise in “where is my order?” messages.
Accuracy is a chain. A scanned pick tells you something useful at the shelf. A customer complaint tells you something else at the doorstep. Look at both before congratulating yourself.
Is the stock in the system actually ready to sell?
Inventory accuracy by SKU, location, and status
Formula: physically checked SKU × location × status lines that exactly match the frozen WMS count ÷ all verified count lines × 100.
Count sellable, held, damaged, and returned stock separately. Put the absolute-unit variance beside the match rate. Suppose the system shows 100 units and the building has 100. It might still be short 20 units of the bestselling blue variant and over 20 of green. A warehouse-wide total is a comforting lie in that case. If a count is wrong, preserve the movement log and approve the adjustment; do not silently overwrite the baseline.
The 3PL onboarding checklist goes deeper into the before-and-after inventory reconciliation needed when a brand changes providers. This KPI depends on that baseline being credible.
Dock-to-available time
Formula: timestamp when received units become approved sellable stock minus physical arrival timestamp; report median and P90 by receipt or SKU lot.
“Dock-to-stock” can mean merely shelved. A DTC store needs to know when stock can actually fulfill an order. If inspection, labeling, batch-data checks, or quarantine are required, the clock should end at approved availability. Report exception cases separately instead of excluding every slow receipt. Late supplier paperwork may be the cause; the brand can fix that upstream.
Stockout-caused order interruption rate
Formula: eligible demand orders held, backordered, or cancelled because the required stock was unavailable ÷ eligible demand orders × 100.
Give every interruption a cause code: true shortage, phantom WMS quantity, held lot, late replenishment, or inventory reserved for another channel. A rate alone cannot tell the team whether to order more, reconcile locations, or release inspected stock. Check available-to-promise by variant and allocation, especially before a paid campaign.
Inventory turnover
Formula: cost of goods sold for the period ÷ average inventory value at cost over that period. For a yearly comparison based on a shorter period, annualize the COGS flow; keep the average inventory balance as an average, rather than multiplying it by months.
This describes how fast capital moves through stock. It is a brand and planning measure, not proof that a warehouse picked accurately. A very high number may reflect healthy demand—or chronic understocking. A low number may reflect slow sellers, a seasonal build, or deliberate safety stock. Compare similar product groups rather than using one blended number for skincare minis and bulky homeware.
Unexplained shrinkage rate
Formula: verified unexplained shortage units ÷ units at risk under the agreed count basis × 100, over a stated period. For mixed-price stock, use shortage value at cost and a matching inventory-value denominator instead.
Do not net a missing high-value SKU against an unexplained overage of another SKU. Record approved damage, expiry disposals, samples, and returns in their own categories. A signed adjustment says the ledger changed; it does not explain why. Repeated shortages at one location call for a receiving, access, or cycle-count investigation.
Beauty, supplements, and other lot-controlled products need the stock status and original lot in the count. Apparel needs size and color. A subscription kit needs the components, not just a count of finished boxes. The metric only works at the level where a wrong promise can be made.
Is the fulfillment bill buying a better experience?
All-in fulfillment cost per shipped order
Formula: defined period’s allocated receiving, storage, pick/pack, packaging, kitting, shipping, software, and applicable adjustments ÷ shipped orders in that period.
State what is outside the scope, such as product purchase cost, duties, or refunds. Use settled invoices where possible and mark provisional figures when carrier adjustments are still pending. Keep returned-order processing and reship costs visible even if your headline measure excludes them. A $2 pick fee says very little about an $8.50 delivered operation.
Shipping cost per parcel and per order
Formulas: settled carrier charges ÷ shipped parcels; then settled carrier charges ÷ shipped orders, with the same cohort and period.
Two parcels for one order can make those figures different. Segment by zone, service, actual versus chargeable weight, and packed dimensions. A lighter product can still cost more when a big carton pushes dimensional weight up. Check whether the invoice includes fuel, remote-area, address correction, and later remeasurement charges. Do not credit a carrier change for savings if it quietly worsened delivery time.
Incremental cost per resolved exception or reship
Formula: incremental labor, materials, freight, and agreed credits attributable to resolved exception cases ÷ resolved cases, by cause.
Do not mix the original order’s ordinary fulfillment cost into the incremental numerator unless you explicitly want a full-loss measure. Wrong-pick reships, lost parcels, customer address errors, and product defects have different owners. Keep the case ID linked to charges and credits. A low headline handling rate is less attractive if mistakes repeatedly buy a second shipment.
Fulfillment-error return rate
Formula: orders from a delivered-order cohort with a verified fulfillment-caused return within a fixed observation window ÷ orders in that same delivered cohort × 100.
Separate wrong SKU, wrong variant, missing parts, and transit damage from size preference or buyer’s remorse. A return requested in November may belong to an October delivery; mixing those two calendar totals gives a misleading rate. If a customer received a free replacement instead of returning the item, track that as an exception too, or the formal return rate will look better than the experience.
Return processing time: median and P90
Formula: graded disposition posted minus physical return receipt, measured per RMA or parcel; report median and P90.
Disposition can mean approved restock, quarantine, repair, or disposal under the brand’s policy. A refund may have its own customer-service or payment clock, so do not tell a shopper the warehouse’s grading time is the refund time. If P90 is high, inspect unidentified parcels, missing RMA data, and products awaiting a brand decision.
Here is a small, hypothetical monthly cost check. A brand ships 1,000 orders. It pays $3,000 for pick/pack, $500 for receiving and storage allocation, $700 for packaging, $4,000 in settled carrier charges, and $300 in other agreed adjustments. The scoped total is $8,500, or $8.50 per shipped order. If the 1,000 orders used 1,040 parcels, carrier cost is about $3.85 per parcel, while it is $4.00 per order. These are invented inputs for arithmetic, not a market rate or a FriendDropshipping quote. For the fee units behind that calculation, see the 3PL pick-and-pack fee breakdown.

Turn the scorecard into weekly decisions
Twenty columns can be a lot. Put a small set on the daily board: orders overdue for warehouse handoff, unscanned handoffs, held stock, and open high-severity complaints. Review accuracy and cause codes weekly. Review matured delivery and return cohorts plus settled costs monthly. That cadence lets slower outcomes catch up without leaving today’s stuck order alone for three weeks.
| Metric and segment | This period / prior | Population | Evidence and owner | Trigger and next action |
| On-time dispatch, paid DTC | Rate and change | Qualified orders due | Release and handoff events; 3PL lead | Aging queue: inspect cutoff and pick capacity |
| Inventory accuracy, top sellers | Rate and unit variance | Counted SKU-location-status lines | Signed counts; inventory owner | Repeated mismatch: freeze affected SKU and trace movements |
| Shipping cost, distant zones | Cost per order and parcel | Settled shipments | Carrier invoice; logistics owner | Increase: compare parcel cube and service map |
Set a brand-specific target only after you have a credible baseline, customer promise, route mix, and contract. A vendor’s “99.9%” without a definition, sample size, and evidence is a sticker on the dashboard. Write down who investigates, when they respond, and how a corrective action is tested.
For example, if dispatch is fine but delivery P90 worsens on one carrier lane, changing the pick process will do little. If pick audits improve but customer-reported wrong variants do not, inspect packing verification and the product master. If a stockout follows an accurate warehouse count, forecast and replenishment may be the issue. The number points to the next question; it does not answer it for you.
Before increasing ad spend, test the operational gates with the site’s Shopify fulfillment checklist. A fast campaign can turn a small stock mismatch into a very loud one.
Conclusion
Start with five measures you can trust: on-time dispatch, on-time delivery, order accuracy, inventory accuracy, and all-in cost per shipped order. Then use the other 15 to find the cause when one of those moves.
Keep the definitions, timestamps, and source records beside the chart. A KPI becomes useful when a brand and its fulfillment partner can look at the same order, agree on what happened, and fix the next one.
Frequently Asked Questions
What are ecommerce fulfillment KPIs?
They are defined measures of order speed, accuracy, inventory, cost, and returns. A useful KPI states its numerator, denominator, time window, evidence, and action owner. “Fast shipping” by itself is a claim, not a measure.
Which five should a small DTC brand start with?
Start with on-time dispatch, on-time delivery, order accuracy, inventory accuracy, and scoped fulfillment cost per shipped order. Add diagnostic measures once the event data is reliable. A spreadsheet with five honest numbers beats a dashboard full of guesses.
How do you calculate on-time dispatch with different cutoffs?
Assign each qualifying order its deadline based on the contracted local cutoff, order type, calendar, and service. Count verified handoffs by those deadlines, then divide by all qualifying orders due in that period. Keep missed orders in the denominator.
Is creating a shipping label the same as shipping an order?
No. A label can exist while a parcel is still in the warehouse. For dispatch performance, use a verified physical handoff or agreed carrier acceptance evidence, and investigate where the first tracking scan falls later.
How is on-time shipping different from on-time delivery?
The first measures whether the parcel left the warehouse by the agreed dispatch deadline. The second measures whether the customer received the order by the promised date. A warehouse can hit its cutoff while a carrier misses delivery.
What is the difference between order cycle time and warehouse processing time?
In this scorecard, total cycle time runs from accepted order to delivery. Warehouse processing runs from valid release to carrier handoff. Different companies use different names, so always state the endpoints.
Should I report average delivery time or P90?
Show a median and P90, with a sample size. P90 exposes a slow tail that an average can soften. Add on-time delivery against the actual customer promise; a fast average can still hide many broken promises.
How do you calculate order accuracy if customers report mistakes later?
Use a fixed claim window and let the shipped cohort mature before calling it final. Join verified support claims to WMS scan and packing records. Mark recent periods provisional rather than treating unreported errors as confirmed success.
Is pick accuracy the same as perfect order rate?
No. Pick accuracy checks a warehouse step, often on audited lines before packing. Perfect order rate checks whether the finished order met every defined customer and documentation condition. A corrected mis-pick can still become a perfect delivered order.
What counts as a perfect order?
Define it in advance: correct and complete contents, on-time delivery, no validated damage, and required documents are a practical set. Count an order only when all conditions pass. State whether you use a direct order count or a published composite method.
What is a good inventory accuracy rate for a 3PL?
There is no universal target for every count method and product mix. Agree on exact-match count lines by SKU, location, and status; show unit variance and count coverage. A glossy percentage without a counting protocol is hard to use.
How do I measure dock-to-stock when items are quarantined?
For customer availability, stop the clock when units reach approved sellable status, and retain quarantined receipts as an exception segment. If the contract also measures physical putaway, report that separately. Name both clocks.
Why can inventory totals match while customers still see stockouts?
One variant may be short while another has an equal overage. Stock can also be held, reserved elsewhere, or listed before it is approved. Measure at SKU, location, and status level, then compare available-to-promise with actual orders.
Which fees belong in fulfillment cost per order?
Choose a fixed scope, commonly receiving and storage allocation, pick/pack, kitting, materials, shipping, software, and agreed adjustments. State whether returns, reships, duties, and product cost are included. Compare like with like each month.
How often should a DTC brand review its 3PL scorecard?
Check urgent overdue orders and holds daily. Review accuracy and exception patterns weekly. Compare matured delivery, returns, and settled costs monthly. Review the definitions whenever the product mix, route, or customer promise changes.
Table of Content
I’m Cassiel. I’ll help you scale your Shopify business with reliable fulfillment.
Join to newsletter.
Follow us and get more knowledge.




