3PL cost per order: the formula, with a worked example
How to calculate fulfillment cost per order with a 3PL: the formula, what to include and leave out, a worked example and how an average hides billing errors.
Fulfillment cost per order is the total you paid your 3PL in a period divided by the number of orders shipped in that period. Calculate it twice: once for fulfillment only (without shipping) and once all-in (with shipping). It is the best single number for comparing 3PLs and tracking costs over time, but an average can hide billing errors, so it should never be the only check.
The cost per order formula
Cost per order = total 3PL charges for the period ÷ orders shipped in the period
Use the same period for both numbers, usually a calendar month. Use orders shipped, not orders placed, because canceled and unfulfilled orders should not carry a fulfillment cost. If your 3PL bills fulfillment weekly and storage monthly, add up every invoice that covers the month before you divide.
You can also calculate cost per unit: the same total divided by units shipped. Watch both, because a change in your average order size moves cost per order even when every rate is billed correctly.
What to include and what to leave out
| Include | Leave out or track separately |
|---|---|
| Pick and pack, first item and additional items | Inbound freight from your supplier (it is a product cost, not a 3PL charge) |
| Packaging and inserts | Your product cost |
| Storage, including long-term storage surcharges | One-off special projects, such as a relabel (show them as their own line) |
| Receiving | Wholesale or B2B orders (give them their own cost per order) |
| Returns processing | Credits for past errors (record them in the month they relate to, or separately) |
| Account and technology fees | |
| Monthly minimum top-ups | |
| Setup fees, spread over 12 months | |
| Shipping, for the all-in figure |
Fulfill.com's 2026 pricing guide uses the same structure: pick and pack, storage, account and technology fees and spread-out one-time fees, divided by orders shipped, with shipping added on top as a pass-through.
Worked example: Juniper & Pine in August
Juniper & Pine is a made-up brand. Ridgeline Fulfillment is a made-up warehouse. Ridgeline's rate card charges $3.25 for the first item, $0.65 per additional item (lowered from $0.85 on July 1), $0.40 per poly mailer, $5.00 per carton received and $18.00 per pallet per month on the monthly average, with carrier charges at cost plus 8% and a $1,500 monthly minimum.
In this made-up August, Juniper & Pine shipped 2,000 orders containing 2,700 units, so 700 were additional items. Ridgeline received 40 cartons, the average stock was 30 pallets, and the carriers' charges came to $14,000.00.
| Line | Calculation | Amount |
|---|---|---|
| Pick and pack, first item | 2,000 × $3.25 | $6,500.00 |
| Additional items | 700 × $0.65 | $455.00 |
| Poly mailers | 2,000 × $0.40 | $800.00 |
| Storage | 30 pallets × $18.00 | $540.00 |
| Receiving | 40 cartons × $5.00 | $200.00 |
| Fulfillment subtotal | $8,495.00 | |
| Shipping | $14,000.00 × 1.08 | $15,120.00 |
| All-in total | $23,615.00 |
The fulfillment subtotal is above the $1,500 minimum, so there is no top-up.
- Fulfillment cost per order: $8,495.00 ÷ 2,000 = $4.25 (exactly $4.2475)
- All-in cost per order: $23,615.00 ÷ 2,000 = $11.81 (exactly $11.8075)
- Fulfillment cost per unit: $8,495.00 ÷ 2,700 = $3.15 (exactly $3.1463)
When the monthly minimum sets your cost per order
Now take a made-up slow month: 250 orders, 50 additional items, 20 pallets on average and no inbound stock. This assumes all fulfillment fees count toward the minimum, which you should confirm in your own contract.
- Pick and pack: 250 × $3.25 = $812.50
- Additional items: 50 × $0.65 = $32.50
- Poly mailers: 250 × $0.40 = $100.00
- Storage: 20 × $18.00 = $360.00
- Activity total: $812.50 + $32.50 + $100.00 + $360.00 = $1,305.00
- Minimum top-up: $1,500.00 − $1,305.00 = $195.00
Cost per order before the minimum is $1,305.00 ÷ 250 = $5.22. After the minimum it is $1,500.00 ÷ 250 = $6.00. Nothing was billed wrongly, but cost per order rose by $0.78. Fulfill.com's guide makes the same point: at low volume, the monthly minimum, not the pick fee, often decides what you pay per order.
How cost per order hides billing errors
Suppose August's invoice had two mistakes. Shipping was marked up 12% instead of the contracted 8%, and the additional items were billed at the old $0.85 rate instead of $0.65.
- Shipping: $14,000.00 × 1.12 = $15,680.00, which is $560.00 too much
- Additional items: 700 × $0.85 = $595.00 instead of $455.00, which is $140.00 too much
- Total overcharge: $560.00 + $140.00 = $700.00
- New all-in total: $23,615.00 + $700.00 = $24,315.00
- New all-in cost per order: $24,315.00 ÷ 2,000 = $12.16 (exactly $12.1575)
Cost per order went from $11.81 to $12.16, a rise of $0.35 ($700.00 ÷ 2,000), or about 3%. That is easy to explain away as carrier rate increases or bigger orders. If the same errors repeat every month, they cost $700.00 × 12 = $8,400.00 a year.
Both mistakes are real patterns. The sample audit found shipping markup billed at 12% instead of 8% and the old additional-item rate still in use after the July 1 change. Cost per order can tell you something moved. Only a line-by-line check against the rate card tells you whether it was billed correctly. Our guide on how to audit a 3PL invoice walks through that check.
How to track it properly
- Calculate it monthly, with and without shipping.
- Split it by component: pick and pack, packaging, storage, receiving, returns, other fees and shipping, each divided by orders. A jump in one component is easier to explain than a jump in the total.
- Track cost per unit next to it, so a change in order size does not look like a price change.
- Compare it with an expected figure: your activity counts times your contracted rates. The gap between expected and billed is what to investigate.
- Keep B2B and wholesale orders separate, because one pallet order can distort a month of parcel orders.
Use the calculator below to work out your own figures from an invoice.
What is a typical cost per order?
There is no single average, because volume, product size and pricing model all change it. Fulfill.com modeled four brand profiles at survey-average rates and got $3.61 to $10.34 per order before shipping, with the highest figure for a 50-order brand paying the average monthly minimum. For the pick and pack part alone, The Fulfillment Advisor's 2026 survey reports an average direct-to-consumer fulfillment fee of $3.21 per order including one item. Your own figure will depend on your region, products and contract. Our guide to 3PL pricing breaks down each fee.
Check the lines behind the number
A stable cost per order does not prove your invoices are right. 3PL Checker's free audit compares each line of your 3PL invoices with your signed rate card and your Shopify orders, and a person reviews every finding. You get the evidence and a ready-to-send credit request.
Questions
What is fulfillment cost per order?
It is everything you paid your 3PL in a period divided by the number of orders shipped in that period. Work it out with and without shipping, because shipping is usually the largest and most variable part.
What is the cost per order formula?
Cost per order = total 3PL charges for the period ÷ orders shipped in the period. Include pick and pack, additional items, packaging, storage, receiving, returns, account fees and any minimum top-up, then add shipping for the all-in figure.
What is the average fulfillment cost per order?
There is no single average because it depends on volume and product. Fulfill.com modeled $3.61 to
0.34 per order before shipping at survey-average rates, with the highest figure for a small brand paying a monthly minimum.
What is fulfillment cost per unit?
The same total divided by units shipped instead of orders. It is useful when your order size changes, because a bigger average order raises cost per order without anything going wrong.