Blog Shipping strategy

How to Compare Logistics Providers Using True Cost per Shipment

Three logistics provider cards comparing headline first-pick rates with true cost per shipment after normalization

The best way to compare logistics providers is to take the same historical shipment profile, apply each provider’s contract rates to that activity, calculate the total expected logistics cost, and divide the result by the number of shipments. Comparing the headline pick fee can produce the wrong answer.

Northline Home received three contract logistics proposals. Headline first-pick rates: Provider A $2.25, Provider B $2.60, Provider C $1.95. C looks cheapest. B looks most expensive. After every rate is applied to the same 10,000-shipment month, the ranking flips: A $12.17 per shipment, B $11.38, C $11.55. B wins at today’s volume despite the highest pick fee.

What you’ll get from this article

  • Stop comparing rate against rate. Convert each proposal into the cost of running the same operation.
  • Build the operating profile. The 6–12 months of activity that every rate card has to price.
  • Normalize every contract line. Pallet storage, picks, monthly fees, and freight all become dollars per shipment.
  • See why transportation can reverse a warehouse win. Location and carrier program belong in the same model.
  • Test volume before you sign. The cheapest provider at 10,000 shipments may not be cheapest at 20,000.
Do not compare rate against rate. Compare the cost of running the same operation with each provider. Cost per shipment is the output of that normalization—not a line you copy off the proposal.

Headline Rates Can Produce the Wrong Provider Ranking

Quoted first-pick fee versus true cost per shipment

Grouped bars: headline first-pick rate vs true cost per shipment for Providers A, B, and C Headline first-pick rate True cost / shipment $2.80 $1.40 $0 $2.25 A $2.60 B $1.95 C $12.50 $11.50 $10.50 $12.17 A $11.38 B $11.55 C True-cost axis starts at $10.50 so ranking is readable. Values are labeled.

Provider C has the lowest first-pick rate at $1.95. After normalization Provider B is cheapest at $11.38 per shipment, then C at $11.55 and A at $12.17.

Provider C looks cheapest from the rate card. Provider B becomes cheapest after the entire operation is normalized. If you stop at the pick fee, you award the contract to the wrong proposal.

All numbers in this article are an illustrative example—not industry benchmark data. The three providers handle the same shipments and the same operating profile. That isolates provider economics. It is not a claim about market averages.

Step 1 — Normalized monthly cost

Normalized Monthly Cost = Σ (Contract Rate × Actual Activity Driver) + Fixed Fees + Minimum Adjustments

Step 2 — True cost per shipment

True Cost per Shipment = Normalized Monthly Cost ÷ Total Shipments

When transportation is in scope

Fully Loaded Logistics Cost per Shipment = (Warehousing + Handling + Transportation + Accessorials + Other Relevant Logistics Costs) ÷ Total Shipments

$18 per pallet, $8 per inbound pallet, $2.25 per shipment, $0.50 per extra unit, a $1,200 technology fee, and $3 per return cannot be compared until each is multiplied by its driver.

Why Logistics Provider Rate Cards Are Difficult to Compare

This is not a generic how to choose a logistics partner checklist. Partner type—carrier, broker, 3PL—is a prior decision. Here the shipper already has two or more contract logistics proposals and needs to know which one is economically better for this operation.

Provider A, B, and C can perform the same physical work and still allocate cost across completely different contract lines.

Provider A may charge per pallet received, pallet storage, first pick, additional pick, and packaging as separate lines. Provider B may bundle packaging and account management into the transaction rates and quote a smaller technology fee. Provider C may post the lowest pick and storage rates, then recover margin through a large monthly management block and a different outbound transportation rate.

Two providers can pick the same order, store the same pallet, and process the same return while the invoice taxonomy looks unrelated. Different rate structures must first be converted into common economic units. Until that conversion is done, a side-by-side rate-card spreadsheet is a comparison of labels, not of cost.

How to Convert Different Contract Rates into Comparable Costs

Rate-card normalization process

Contract rate card

Identify the cost driver

Apply historical activity

Calculate monthly cost

Add fixed + variable costs

Divide by shipments

True cost per shipment

Storage: 600 pallets × $18 = $10,800 / month

Receiving: 180 pallets × $8 = $1,440 / month

Additional picks: 8,000 units × $0.50 = $4,000 / month

Each contract line needs a driver and a month of actual activity. Until those multiplications exist, you do not have a 3PL cost comparison—you have a list of unit prices.

Step 1: Build Your Actual Logistics Operating Profile

The rate card is only half of the analysis. The other half is demand. Use 6–12 months of actual historical operating data whenever possible. An annual average can hide the month that blows the storage minimum, the week that overflows pick labor, and the peak that changes parcel mix.

Northline Home’s illustrative month—the activity every provider must price:

Operating driver Monthly volume
Shipments10,000
Units shipped18,000
Average units per shipment1.8
Additional units after first pick8,000
Average pallet positions600
Inbound pallets180
Returns500
Return rate5%

Illustrative example — not industry benchmark data. All three providers are modeled on this same profile.

Outbound

Shipments, orders, units, order lines, units per shipment, cartons, pallets, shipment weight, dimensions, service level, and destination. If “shipment” means something different at each 3PL (order vs carton vs BOL), lock the definition before you divide.

Inventory

Average pallets, peak pallets, cubic space, SKU count, inventory turns, oversized products, and regulated products if they apply. Storage billed on average positions will not match a peak-slot or cubic bill. Capture both average and peak.

Inbound

Inbound shipments, pallets, cartons, floor-loaded containers, units received, and inspection requirements. Receiving is often the quiet swing factor when one provider quotes per pallet and another quotes per carton or per hour.

Returns

Number of returns, units returned, disposition, restocking, disposal, and refurbishment. A $2.50 “return” that includes inspect-and-restock is not the same product as a $4.00 receipt that still bills disposal separately.

Transportation

Origin, destination postal code, weight, dimensions, mode, zone, carrier, service, and accessorials. If historical shipment-level data is available, use it instead of broad averages. Repricing the exact shipment history against each provider’s warehouse location and rates is substantially more accurate than comparing a generic “average shipping cost.”

That extract is also what you should send with the RFP. Ask every bidder to price the same file. Invented “typical order” assumptions are how two quotes become incomparable before anyone opens Excel.

Step 2: Normalize Every Contract Rate

Build the model so each row is a contract charge, a pricing unit, a driver, a monthly multiplication, and a cost per shipment. That table is the Excel workbook.

Contract charge Pricing unit Operating driver Monthly cost calculation Cost / shipment
Receiving $ / pallet Inbound pallets Rate × pallets Monthly cost ÷ shipments
Storage $ / pallet / month Average pallets Rate × avg. pallets Monthly cost ÷ shipments
First pick $ / shipment Shipments Rate × shipments Direct (already per shipment)
Additional pick $ / unit Additional units Rate × units Monthly cost ÷ shipments
Packaging $ / shipment Shipments Rate × shipments Direct
Returns $ / return Returns Rate × returns Monthly cost ÷ shipments
Technology $ / month Months Fixed fee Fee ÷ shipments
Account management $ / month Months Fixed fee Fee ÷ shipments
Transportation $ / shipment or shipment-level Shipment profile Reprice shipments Total freight ÷ shipments

A per-pallet storage charge becomes monthly dollars when you multiply by average positions, then becomes a shipment cost when you divide by 10,000. A $1,200 technology fee is $0.12 per shipment at this volume and $0.24 at 5,000 shipments. Same fee, different economics. That is the entire method.

Fixed versus variable cost

Variable costs move with activity: pick fees, packaging, returns, freight, receiving. If shipments fall 40%, these lines should fall with them—unless a monthly minimum catches you.

Fixed or semi-fixed costs do not disappear when volume drops: technology fee, account management, warehouse minimum, dedicated labor, dedicated space, management fee. Provider C in this example carries about $6,000 per month of that block. At 10,000 shipments it is $0.60 per shipment. At 5,000 it is $1.20.

A provider can be cheaper at 20,000 shipments per month and expensive at 5,000. That is why the model is not finished when you have one “current month” answer. Volume scenarios come after the component build.

Step 3: Calculate Cost per Shipment by Cost Component

Break each provider into receiving, storage, fulfillment/handling, packaging, returns, technology/administration, and transportation.

Component cost per shipment

Component Cost per Shipment = Monthly Component Cost ÷ Monthly Shipments

Apply Northline Home’s drivers to the three rate cards. Fulfillment here is first pick plus additional units.

Component A calculation A $ / mo B calculation B $ / mo C calculation C $ / mo
Receiving 180 × $81,440 180 × $111,980 180 × $61,080
Storage 600 × $1810,800 600 × $2213,200 600 × $159,000
First pick 10,000 × $2.2522,500 10,000 × $2.6026,000 10,000 × $1.9519,500
Additional pick 8,000 × $0.504,000 8,000 × $0.302,400 8,000 × $0.705,600
Packaging 10,000 × $0.353,500 Included0 10,000 × $0.505,000
Returns 500 × $3.001,500 500 × $2.501,250 500 × $4.002,000
Tech / account $1,200 + $8002,000 $500; account included500 Fixed block6,000
Transportation 10,000 × $7.6076,000 10,000 × $6.8568,500 10,000 × $6.7367,300
Total 121,740 113,830 115,480
True cost / shipment $12.17 $11.38 $11.55

Illustrative example — not industry benchmark data. Totals divide by 10,000 shipments.

The same totals as dollars per shipment show why B wins, not only who wins. B’s first pick is the highest. Packaging is included, additional units are cheap, admin is small, and freight is $0.75 below A.

Component Provider A Provider B Provider C
Receiving$0.14$0.20$0.11
Storage$1.08$1.32$0.90
Fulfillment$2.65$2.84$2.51
Packaging$0.35$0.00$0.50
Returns$0.15$0.13$0.20
Technology / admin$0.20$0.05$0.60
Transportation$7.60$6.85$6.73
True cost / shipment$12.17$11.38$11.55

Illustrative example — not industry benchmark data. Rounded to the cent; monthly totals are the source of truth.

What Actually Makes Up the $11–$12 Cost per Shipment?

Stacked cost per shipment by provider

Stacked bars of true cost per shipment for Providers A, B, and C $12.50 $8.00 $4.00 $0 A $12.17 B $11.38 C $11.55
  • Receiving
  • Storage
  • Fulfillment
  • Packaging
  • Returns
  • Tech / admin
  • Transportation

Transportation is the largest slice for every provider. Provider B’s warehouse stack is close to A, but lower freight and included packaging produce the lowest total bar.

The quoted handling fee is only one slice. B can charge more for the first pick and still post the lowest bar because packaging is included, extra units are cheaper, admin is small, and freight is lower than A.

Transportation Can Reverse the Decision

Saving $0.40 in warehouse handling does not help if the warehouse location adds $1.50 to outbound transportation.

In this example the warehouse-plus-handling spread across providers is pennies. Freight is most of the dollar. That is normal for parcel-heavy and many LTL networks. It is why a 3PL cost comparison that stops at pick and storage is unfinished work.

Model transportation from shipment-level history whenever you can. For each historical shipment:

  1. Take destination.
  2. Take weight.
  3. Take dimensions.
  4. Apply the appropriate origin (each provider’s building, not a theoretical centroid).
  5. Apply carrier and service rate.
  6. Add fuel.
  7. Add relevant accessorials—residential, liftgate, limited access, appointment—using the same flags you actually incur.
  8. Calculate expected freight cost, then aggregate.

Dimensional weight belongs in that loop when the carrier bills cube. If the new building is farther from the customer cluster, DIM and zone can move together. For the mechanics of billable versus scale weight, see actual weight versus dimensional weight. This section is not a DIM primer; it is a reminder that origin + cube + service is part of provider economics.

The same discipline applies to carrier contract rate analysis inside the 3PL’s transportation program. If the 3PL marks up carrier rates, include the markup. If they pass through and you keep the contract, still reprice from the new origin. Freight cost on the invoice is where this shows up after go-live; the RFP is where you catch it.

Accessorials are not a rounding error. A building that looks cheap on picks can sit in a geography that triggers more accessorial charges, and those lines show up as freight cost creep after the contract is signed. Audit the flags the same way you would on a carrier invoice: match the charge to the tender and the tariff.

Warehouse Cost and Total Logistics Cost Are Not the Same Thing

Warehouse / handling versus fully loaded logistics cost

Grouped bars of warehouse-plus-handling cost versus total logistics cost per shipment $13 $6.50 $0 A $4.57 $12.17 B $4.53 $11.38 C $4.82 $11.55
  • Warehouse + handling (incl. fixed)
  • Fully loaded (adds transportation)

Warehouse plus handling is $4.57 for A, $4.53 for B, and $4.82 for C. Fully loaded cost is $12.17, $11.38, and $11.55. Freight, not warehouse handling, separates A from the others.

A’s warehouse stack ($4.57) is close to B ($4.53) and cheaper than C ($4.82). Freight of $7.60 versus $6.85 versus $6.73 is what puts A last. Lowest warehouse cost is not lowest logistics cost.

Do Not Blindly Blend Different Shipment Types

Cost per shipment works when every provider receives the same demand, the shipment definition is consistent, the cost scope is the same, and the mix is comparable. It is not universally sufficient.

Parcel DTC, case, LTL, full pallet, retail replenishment, and international are not the same economic object. Blending them into one number can hide a provider that is cheap on parcel and expensive on LTL—or the reverse. If the mix is material, calculate:

  • Cost per parcel shipment
  • Cost per LTL shipment
  • Cost per pallet shipment

Then, if leadership needs one headline:

Weighted blend for executive comparison

Blended Cost per Shipment = Σ (Shipment-Type Cost × Shipment-Type Share)

The blend is for the steering committee. Channel-specific economics are for diagnosis and for the statement of work. A contract logistics operation that ships both e-commerce parcels and wholesale pallets should never pretend those units are interchangeable just because both are called “shipments.”

Step 4: Test Different Volume Scenarios

Do not stop at the current month. Variable activity in this model scales with shipments; fixed fees do not. Storage, receiving, and returns are assumed to move with demand in the same ratio as the 10,000-shipment month. That is a planning assumption, not a warehouse law—peak slotting and minimums can break it, which is why you also test a low month and a peak month separately.

Under that linear structure:

  • Provider A ≈ $11.974 per shipment + $2,000 ÷ shipments
  • Provider B ≈ $11.333 per shipment + $500 ÷ shipments
  • Provider C ≈ $10.948 per shipment + $6,000 ÷ shipments

C’s lower variable cost crosses B at about 14,300 shipments per month.

Shipments / month Provider A Provider B Provider C
5,000$12.37$11.43$12.15
10,000$12.17$11.38$11.55
15,000$12.11$11.37$11.35
20,000$12.07$11.36$11.25
30,000$12.04$11.35$11.15

Illustrative scenario results from the same rate cards. Not a forecast and not benchmark data.

The Cheapest Provider Can Change as Volume Grows

True cost per shipment versus monthly volume

Line chart of true cost per shipment from 5,000 to 30,000 monthly shipments $12.50 $12.00 $11.50 $11.00 5k 10k 15k 20k 30k B / C crossover ≈ 14.3k
  • Provider A
  • Provider B
  • Provider C (dashed)

Provider B is cheapest at 5,000 and 10,000 shipments. Provider C becomes slightly cheaper by 15,000 and the gap widens at 20,000 and 30,000. Provider A stays highest at every volume shown.

A procurement decision based only on today’s volume can lock the company into a provider whose economics become less attractive as the business grows. B wins now; C’s lower variable stack takes over after the crossover.

Take that chart into negotiation. Ask for volume tiers, minimums, rate changes at stated thresholds, escalation clauses, and capacity commitments that match the path you actually expect—not the month in the RFP workbook.

Seasonality is not the same as growth

Volume sensitivity is not only a five-year plan. Model a low month (fixed fees and warehouse minimums), a normal month (current economics), and a peak month (capacity, additional labor, overflow storage, peak carrier surcharges, overtime, temporary space). One average month is how peak charges and off-season minimums both disappear from the story.

Hidden Costs and Contract Terms That Need to Enter the Model

Not every contract line belongs in ongoing cost per shipment. Split run-rate from one-time and from risk.

Put in the monthly run-rate if it will hit every month you operate: monthly minimums (true-up when activity is light), management and technology fees, packaging and labels if billed extra, pallet inbound/outbound charges, recurring inventory counts, overtime that operations actually runs, peak-season surcharges you historically trigger, long-term storage on slow SKUs, carrier markups, fuel, repeating accessorials, returns, and disposal. Annual rate increases and CPI-linked escalation belong in year-2 and year-3 versions of the same model, not as a footnote you ignore.

Hold outside the run-rate denominator if they are one-time or contingent: implementation, EDI/API setup, special projects, termination fees, and transition cost to leave the incumbent. Those still matter. Spread implementation over the expected life of the contract as a separate “first-year fully loaded” view, and keep termination/transition as a risk column so a cheap year-1 quote with a punitive exit is visible.

Minimums are the term that quietly reverses a “variable-looking” rate card. If Provider C’s $6,000 block is also a minimum throughput charge, a 5,000-shipment month does not get a proportional discount. Model the minimum as max(calculated variable, minimum), not as a polite note in legal.

How a $2.60 Contract Rate Becomes an $11.38 Shipment Cost

Provider B: quoted first pick → true cost per shipment

Quoted first pick $2.60
+ Additional picks (+$0.24) $2.84
+ Storage (+$1.32) $4.16
+ Receiving (+$0.20) $4.36
+ Returns (+$0.13) $4.48
+ Technology (+$0.05) $4.53
+ Freight (+$6.85) $11.38

The $2.60 is real. It is also incomplete. Right-hand figures are running totals after each add-on (cents rounded). That $11.38 is what finance should see—not the pick line.

Cost Should Not Be the Only Decision Criterion

Only after the cost methodology is done should qualitative evaluation get a vote that can override it. A provider that costs $0.20 less per shipment but creates worse inventory accuracy, late orders, lost customers, stockouts, or a failed implementation is not cheaper. It has moved cost into service failure, where it is harder to see and more expensive to unwind.

A concise logistics provider scorecard—weights are illustrative, not a universal standard. Set them for the shipper:

Category Possible weight
True logistics cost35%
Service / SLA performance20%
Technology / data15%
Network fit10%
Scalability10%
Commercial / contractual risk5%
Implementation / support5%

Illustrative weights. A high-service retail shipper may put more on SLA; a cost-down industrial shipper may put more on true logistics cost. Do not treat this table as a fact about the industry.

Technology weighting should include whether the 3PL can deliver usable activity and invoice data—not a portal screenshot. That is the same problem as specifying 3PL reporting by field and frequency and centralizing logistics data so next year’s comparison is not another PDF archaeology project. The logistics data hub is the longer path if the RFP is also a data problem.

Cost Analysis Is Not the Same as Final Provider Selection

Cost normalization answers: which provider has the better economics for our operation?

Provider evaluation answers: which provider gives the best combination of cost, capability, service, and risk?

You still need both. Skipping normalization makes the scorecard a personality contest. Skipping evaluation makes the spreadsheet a promise that operations may not be able to keep. If you are still choosing partner type, go back to the partner-selection article. If you are choosing among 3PL proposals, stay here until the dollars are honest, then score the rest.

Practical 3PL / Contract Logistics Comparison Workflow

  1. Export 6–12 months of logistics activity.
  2. Define common cost drivers.
  3. Map every contract line to a driver.
  4. Apply every provider’s rate to the same activity.
  5. Calculate expected monthly cost.
  6. Normalize cost to shipment.
  7. Separate materially different shipment types.
  8. Reprice transportation using historical shipments.
  9. Test low, current, peak, and growth volumes.
  10. Identify the drivers behind the cost difference.
  11. Evaluate service, technology, and operational fit.
  12. Negotiate contract terms using the model.

That sequence is enough to rebuild in Excel. Tabs below are the workbook you would save as a Logistics Provider True Cost Comparison Template when one exists on this site. There is no download yet—do not wait for a file. Copy the tables.

  • Tab 1 — Operating profile. Historical volume and activity, including peak and low months.
  • Tab 2 — Provider rate cards. Raw rates, unbundled, as written in the proposal.
  • Tab 3 — Rate normalization. Rate × operating driver.
  • Tab 4 — Cost per shipment. Comparison by provider and cost category.
  • Tab 5 — Volume scenarios. 5k / 10k / 15k / 20k / 30k, plus min/peak.
  • Tab 6 — Provider scorecard. Cost plus operational factors.
  • Tab 7 — Assumptions. Shipment definition, what is in scope, what was held out as one-time.

A future 3PL True Cost per Shipment Calculator would take monthly shipments, units, inbound pallets, average pallets stored, returns, the rate fields above, monthly minimum, and freight, then output monthly provider cost, warehouse cost per shipment, transportation cost per shipment, true cost per shipment, and annual logistics cost, with A/B/C side by side. It will be linked from this article if it is built. Until then the arithmetic in Step 3 is the calculator.

Same Activity, Same Scope, Same Denominator

The goal is not to make every provider’s rate card look the same. The goal is to make the economics comparable.

Same activity. Same scope. Same cost categories. Same shipment denominator. Only then can you meaningfully compare Provider A with Provider B.

Northline Home’s lesson is the one that repeats in live RFPs: the lowest first-pick rate was not the lowest true cost per shipment at current volume, and the winner at 10,000 shipments was not automatically the winner at 20,000. Build the model on your own 6–12 months of shipment data, including freight from each origin, before anyone in the room argues from a highlighted cell on a rate card.

Do not compare rate against rate. Compare the cost of running the same operation with each provider.

Cost Is Only One Part of the Provider Decision

True cost per shipment answers which proposal is cheaper to operate. It does not answer whether the provider will still be the right partner three years in. Vendor relationship is not a rate-card line: who owns the account, how exceptions are handled, whether you hear about a miss before the customer does, and whether the 3PL treats the contract as a shared operation or as a volume to fill. Carrier performance inside that network belongs in the same review—on-time delivery, billing accuracy, tender acceptance, and how peak weeks actually run—not the SLA slide from the pitch.

Treat the choice as a multi-year operating alliance, not a one-month price contest. Implementation risk, exit cost, committed capacity as you grow, cultural fit with your warehouses and customers, and whether they will invest in the lanes and data you need are all part of the decision. A provider that is twenty cents cheaper and fragile on service, or cheap today and unwilling to commit capacity, is not the lower-risk choice. Keep the cost model so the economics stay honest, then decide with relationship, performance, risk, and long-term strategic fit in the same conversation.

FAQ

How do you compare logistics providers?

Apply every provider’s rates to the same historical operating data, add fixed fees and minimums, then divide total expected monthly cost by shipments. Rank on true cost per shipment for that profile—not on isolated rate-card lines. Separate parcel, LTL, and pallet economics before blending.

How do I compare two 3PL quotes?

Map each contract line to a cost driver, multiply by your activity, add technology and account fees, then reprice transportation on the same shipment history. The cheaper quote is the lower normalized monthly cost, not the lower first-pick fee.

What is true cost per shipment?

The output of normalization: expected warehousing, handling, packaging, returns, administration, transportation, and other in-scope logistics cost for a period, divided by the shipments in that period. It is not a rate you copy off the proposal.

How do you calculate 3PL cost per shipment?

Normalized monthly cost equals the sum of each contract rate times its actual activity driver, plus fixed fees and any minimum true-up. True cost per shipment equals that monthly total divided by shipment count. Keep the shipment definition consistent across providers.

What costs should be included in logistics cost per shipment?

Receiving, storage, picks, packaging, returns, technology, account management, transportation, fuel, and repeating accessorials if they are in scope. Hold implementation, termination, and one-time projects in a separate transition layer so they do not distort the run-rate comparison.

Should transportation be included when comparing 3PL providers?

Yes, whenever warehouse location or the provider’s carrier program changes outbound freight. A cheaper handling fee is a poor trade if the building adds more to parcel or LTL cost than it saves in the warehouse. Reprice shipment-level history from each origin.

What data should I give a 3PL when requesting a quote?

Give 6–12 months of shipments, units, order lines, inbound pallets, average and peak storage, SKU profile, returns and dispositions, and shipment-level origin, destination, weight, dimensions, and service. Ask every bidder to price the same extract.

What are the most important criteria when evaluating a logistics provider?

Start with true logistics cost on your activity, then service and SLA performance, technology and data, network fit, scalability, contractual risk, and implementation support. Weights should match the shipper. Cost is necessary, not sufficient, if fill rate or inventory accuracy would deteriorate.

Is the lowest 3PL rate usually the cheapest option?

No. The lowest first-pick or storage rate often sits next to unbundled packaging, higher freight, or large monthly fees. In the worked example, the lowest pick fee is not the lowest true cost per shipment at current volume.

How much historical data should I use when comparing logistics providers?

Use 6–12 months whenever you can. A single average month hides seasonality, peak storage, and carrier surcharge months. For transportation, shipment-level history beats a generic average shipping cost.