Blog · Finance metrics and formulas · Supply chain
Cost per order divides defined fulfillment spending by the orders it served. Work through a warehouse and channel example, reconcile the totals, and separate fulfillment expense from customer acquisition.
Cost per order is fulfillment spending divided by the number of orders that spending served. Define both sides before comparing warehouses: an order, a shipment and a purchased unit are different denominators. The useful result tells operations where processing and delivery consume more dollars for a comparable order.
Cost per order = Defined order-processing and fulfillment costs / Matching fulfilled orders
For this article, costs include fulfillment labor, packing materials, outbound carrier charges and assigned warehouse overhead. They exclude merchandise acquisition, advertising, sales commissions and customer service unrelated to fulfillment. These are management reporting choices; document your own boundary alongside the number.
This is different from cost per purchase order, which concerns the purchasing process. It also differs from cost per unit: one customer order may contain several units, each with different handling requirements. Changing the label without changing the denominator produces a misleading comparison.
Choose a completion rule. Here, an order enters the denominator when its last shipment leaves the warehouse. Include labor and carrier accruals for those completed orders, and carry unfinished orders and their associated work consistently between periods. An invoice received later should not make one month look cheap and the next expensive.
Use an order register containing parent order ID, completion date, warehouse and channel. Keep shipment detail in a separate register with parent order ID, shipment ID and carrier cost. A register with one row per item cannot directly provide an order count.
The cost export needs accounting period, warehouse, channel, cost category, amount and source reference. Direct assignment is preferable when an order or warehouse reference exists. For shared overhead, retain the approved allocation basis and its source totals. Do not assign the same rent through both a central overhead pool and a warehouse expense line.
Customer-level cost to serve answers a broader question involving the customer's activities and contribution. An order measure should feed that analysis without being mistaken for its complete cost allocation.
A fictional US distributor compares September 2026 completed orders. Its signed cost mapping and allocation schedule produce the following rows. All amounts are USD; costs per order are rounded to two decimals after calculation.
| Warehouse and channel | Orders | Labor (USD) | Packaging (USD) | Carrier (USD) | Overhead (USD) | Total cost (USD) | Cost/order (USD) |
|---|---|---|---|---|---|---|---|
| East, direct to consumer | 2,400 | 14,400 | 3,600 | 21,600 | 4,800 | 44,400 | 18.50 |
| East, wholesale | 600 | 5,400 | 1,200 | 9,000 | 2,400 | 18,000 | 30.00 |
| West, direct to consumer | 2,000 | 14,000 | 4,000 | 22,000 | 6,000 | 46,000 | 23.00 |
| Total | 5,000 | 33,800 | 8,800 | 52,600 | 13,200 | 108,400 | 21.68 |
The East consumer row is 14,400 + 3,600 + 21,600 + 4,800 = $44,400; dividing by 2,400 orders gives $18.50. East wholesale is $18,000 / 600 = $30.00. West consumer is $46,000 / 2,000 = $23.00.
With the table headers in row 1, order count in B and component costs in C:F, enter total cost in G2:
=SUM(C2:F2)
Enter cost per order in H2:
=IF(B2=0,"Check order count",G2/B2)
Fill down through row 4. The total rate is:
=SUM(G2:G4)/SUM(B2:B4)
That gives $108,400 / 5,000 = $21.68. Averaging the three displayed rates instead gives $23.83, because the small wholesale segment receives the same weight as a much larger consumer segment.
In an Excel table named Costs, these columns are Amount, Warehouse, Channel and Period. The formula below sums only the matching cost rows. Microsoft documents SUMIFS as adding values that meet multiple criteria.
=SUMIFS(Costs[Amount],Costs[Warehouse],"East",Costs[Channel],"DTC",Costs[Period],DATE(2026,9,1))
For a deduplicated CompletedOrders table with one row per completed parent order, count the same warehouse, channel and completion period:
=COUNTIFS(CompletedOrders[Warehouse],"East",CompletedOrders[Channel],"DTC",CompletedOrders[Period],DATE(2026,9,1))
Microsoft's COUNTIFS documentation explains that a row is counted when all specified criteria are met. It does not remove duplicate order IDs for you. Covirage is not affiliated with Microsoft.
The proof has two parts. The four expense columns total $108,400 and must match the included ledger accounts after documented exclusions. The 5,000 orders must match the completed-order register after duplicates, cancellations and unfinished orders are resolved. Finally, the sum of each segment's unrounded cost per order multiplied by its orders must return $108,400.
Compare consumer orders first. West costs $4.50 more per order than East: $1.00 more labor, $0.50 more packaging, $2.00 more carrier expense and $1.00 more overhead. Those differences follow by dividing each component by its row's orders.
Investigate parcel weights, zones, items per order and handling requirements before calling the difference waste. Wholesale's higher rate may reflect a larger shipment rather than poor performance. Order size and drop frequency helps frame the delivery pattern question without changing this metric's definition.
Bring a sample of your own order register and fulfillment cost export; Covirage maps the columns, and its tools compute and check the defined totals and order rates. The external AI model explains the result with every figure traced to its rows. Create a free Covirage account and bring a sample of your own data.
See Covirage for supply-chain teams for the broader operating context.
It can, provided the definition says so. Include outbound carrier charges when measuring total fulfillment cost, or show them separately for a warehouse operations view. Compare the same boundary across channels and periods, and reconcile carrier accruals to the orders they served.
No. Fulfillment cost per order measures processing and delivery expense. Customer acquisition cost concerns the spending used to acquire customers. Keep marketing expense out of a fulfillment comparison unless you deliberately build and label a broader measure with a separate acquisition component.
Count the parent order once when the denominator is fulfilled orders, and include all associated shipment costs. If you also need cost per shipment, calculate it separately with shipment identifiers. Mixing shipment counts with order costs can conceal the expense of split deliveries.