Skip to content
Knowledge / Costs
COSTS

The hidden costs in a 3PL contract

Warehouse-space tricks, surcharge inflation, returns add-ons: where shops overpay by five figures a year.

BY FABIAN RICHTER22 Jun 202611 MIN

The “negotiated pick price” isn't the price you pay. It's the anchor. Comparison offers, investor decks and the first three slides of every 3PL sales presentation orbit around it. The rest of your invoice is made up of ancillary costs that appear in your contract either as “standard market practice”, “per effort”, or not at all.

From six years on the 3PL side and hundreds of audits on the brand side, I know the order of magnitude: a typical mid-sized DACH shop loses 12 to 25 per cent of its logistics costs to line items that were never mentioned in the sales pitch. On a logistics budget of €600,000 a year, that's €72,000 to €150,000 — money you don't put into inventory, performance marketing or your own team.

What follows are the ten mechanics I meet in almost every audit. Each with: what's in the contract, how the 3PL earns from it, what it concretely costs, how you defuse it.

1. Warehouse-space tricks (volumetric)

What's in the contract: “Storage is billed by occupied slot. The slot size follows the warehouse's standard grid.”

Where the money goes: Slot means bin. Not product. A 30×20×15 cm product sits in the standard carton bin of 60×40×30 cm — you pay for 72 litres but use only 9. Factor of 8. In AKL and shuttle warehouses, totes are billed, often 600×400×200 mm — whether the tote is 100% or 18% full.

On top of that, three clauses almost every contract hides:

  • Minimum-slot clause: “Minimum 200 pallet slots per month.” If you only need 140, you still pay for 200.
  • Slow-mover surcharge: SKUs without turnover in 60 or 90 days are flagged as “inactive” and get 30–80% more expensive.
  • Dimension escalation: Products in the wrong bin (e.g. because you declared them “small” but they're > 25 cm) automatically move up a size class. Retroactively for 6 months, because the 3PL “only noticed the discrepancy now”.

Example calculation

Shop with 1,200 SKUs, of which 280 slow movers (< 1 turn/quarter). Contractual €1.20 per carton bin. Slow-mover surcharge: +60%.

  • Standard cost: 1,200 × €1.20 = €1,440/month
  • With slow-mover surcharge: 920 × €1.20 + 280 × €1.92 = 1,104 + 538 = €1,642/month
  • Difference: €202/month = €2,424 per year, mentioned nowhere in the offer phase.

Lever: Before signing, get a full slot-class list, including the slow-mover definition (what is “slow”? 30, 60, 90, 180 days?) and a tolerance for dimension deviations. Negotiate the slow-mover surcharge away or cap it at +20%. Anchor a stock audit every 6 months in the contract so the 3PL can't reclassify retroactively.

2. Surcharge inflation

What's in the contract: “Carrier surcharges are passed on 1:1. Adjustments are made according to market conditions.”

Where the money goes: “Market conditions” is the open door. Classic: bulky-goods surcharge €25 at signing. A quarter later, an adjustment to €32. “Market adjustment.” It's in the small print. DHL currently charges €28.99 for the bulky surcharge — what you pay above that is 3PL margin, not carrier cost.

The second mechanic: energy and fuel surcharges are passed on but rarely taken back. DHL's energy surcharge is 1.25% in May 2026. From June 2026 it rises to 3.25% plus a flexible “crisis component” of up to 3%, re-adjusted to the oil price every 10 days. If the oil price falls again in September — will the 3PL automatically pass the 3% back? In my experience: no. It stays at the higher tier and pads its margin.

Third tier: service surcharges for Sunday delivery, bulky goods, islands. DPD currently charges €15 island surcharge for German islands (European islands €30), DHL similar. The 3PL typically adds 15–25% — “handling of the special delivery”.

Example calculation

Shop with a 5% bulky rate on 30,000 parcels/year = 1,500 bulky shipments.

  • Carrier surcharge DHL: 1,500 × €28.99 = €43,485
  • 3PL add-on “handling”: 1,500 × €5 = €7,500 annually, pure 3PL margin on the carrier surcharge

Plus a bulky “market adjustment” from €32 to €38 per item: 1,500 × €6 = €9,000 per year with no factual reason, simply because the contract allows it.

Lever: Tie all passed-on surcharges to the official carrier price list. Clause: “When a carrier surcharge is reduced, this is passed on within 30 days.” Negotiate the 3PL's own surcharge add-ons (for handling effort) as a fixed euro amount, not a percentage.

3. Returns add-ons

What's in the contract: “Returns are processed at a flat €2.50. Special effort per effort.”

Where the money goes: “Special effort” is an open field. In the EHI 2024 study (shipping and returns management, 146 surveyed DACH retailers), returns costs break down like this: 18% under €5, 30% between €5 and €10, 26% between €10 and €20 per return, 7% above. In fashion, large platforms communicate values of €8–12 per item as internal full costs. Your 3PL pays in a share of that — and the delta to the €2.50 “flat rate” lands as a special fee on the monthly invoice.

Typical special items:

  • Re-stocking flat fee on top of acceptance: €0.80–1.80
  • Complexity surcharge for sets, beauty, jewellery: +€1.50–4.00
  • Visual inspection as a line item, although sold as “included” in the pitch: €1.20–2.80
  • Disposal of B/C goods: €0.80–2.50 per item, often with an extra disposal levy
  • Return-to-vendor: separate handling per shipment, easily €3–6

For cross-border returns it gets complex: if your goods come from a third country (IOSS-relevant), the return runs through customs procedures. In mid-2025 the EU Council adopted mandatory IOSS marketplace liability (in force from 1 July 2028); on 1 July 2026 the €150 customs-free threshold also falls (transition: €3 flat customs per shipment). That means: on every third-country return, the 3PL has to create or have created customs documents. “Customs handling return”: typically €8–15 per shipment.

Example calculation

Fashion shop with a 40% returns rate, 30,000 outbound = 12,000 returns.

  • Contract flat rate: 12,000 × €2.50 = €30,000
  • Actual (inspection, re-stocking, complexity): 12,000 × €6.80 = €81,600
  • Difference: €51,600 per year, not stated that way in the contract.

Lever: A binding definition of all returns paths as an annex to the contract. “What does an A-goods return cost incl. inspection and re-stocking — full price?” Demand a flat rate, no building-block logic. For fashion, agree a B-goods process (collect and bulk sell-off) instead of individual disposal.

4. Carrier invoicing surcharge

What's in the contract: “Carrier costs are passed on plus a handling fee of 5 to 10%.”

Where the money goes: The 3PL bundles volume and gets terms you'd never have as a single shop. But instead of passing those terms on 1:1, it adds a carrier handling factor. 5 to 10 per cent is industry-standard. “We handle the dispatch, the billing, the claims.”

That's negotiable to 0–2 per cent — if you open the contract. Many brands don't even know this item exists, because it disappears as “included” in the all-in price.

Example calculation

Shop with 50,000 parcels/year, average €4.80 carrier cost net = €240,000 carrier spend.

  • 7% handling add-on: €16,800/year
  • Negotiated to 1.5%: €3,600/year
  • Saving: €13,200 per year, just because you know the right lever.

Lever: Check carrier direct integration. Some 3PLs allow you to operate with your own DHL/DPD/GLS contract; then you only pay a “carrier routing” fee (often €0.15–0.25 per parcel). From 30,000 parcels per year, that's almost always the better deal.

5. IT and EDI fees

What's in the contract: “Shop integration is billed per effort. Standard interfaces Shopify, Shopware, WooCommerce available.”

Where the money goes: “Standard interfaces available” doesn't mean “free”. Typical items:

  • One-off setup of shop integration: €500–2,000, sometimes more for custom Magento or headless setups
  • Monthly interface fee: €50–200 per marketplace (Amazon, Otto, Zalando, Idealo, eBay)
  • API-call fees: either flat monthly (often €80–150) or per call (€0.01–0.03 per transaction at high volume)
  • WMS login fees: €30–80 per user per month — often 5 or 6 logins as a “minimum package”
  • Customising fees on every change: €95–160 per hour, often with a 2-hour minimum

A 3PL EDI interface in the standard variant is available from some providers (e.g. eddyson, Crstl) from €50/month per partner. That shows the order of magnitude — if your 3PL charges €200/month for it, there's margin in there.

Example calculation

Shop with Shopify + Amazon + Otto + Zalando + 3 WMS logins:

  • One-off setup: €1,500
  • Monthly: 4 × €120 (interfaces) + 3 × €50 (logins) + €100 (API fee) = €730
  • Annually (ongoing): €8,760 plus the one-off setup

About half of that is negotiable with the right approach.

Lever: Demand an interface list, with a one-off and monthly price per channel. Choose the number of logins freely, no packages. Negotiate customising hours at the normal hourly rate (€75–120), not the “project hourly rate” of €180+.

6. Onboarding and implementation

What's in the contract: “Initial setup flat €3,500, includes data migration and training.”

Where the money goes: The initial setup price is just the beginning. Alongside it come:

  • Stock take-on at handover: €25–45 per pallet, sometimes €0.30–0.80 per SKU
  • Data migration from the old WMS: “Tailored”, €2,000–8,000 one-off
  • Training fees for your staff: a 4-hour block €600–1,200
  • “Stabilisation” fees in the first 90 days: elevated rates because “processes aren't yet bedded in”, often +15–25% on all variable costs
  • Stock-discrepancy corrections during onboarding: each discrepancy item costs €35–80 in clarification effort

Industry reality: onboarding fees in the US are typically $100–1,000; for complex DACH setups quickly €5,000–15,000 — and that's only what's in the contract.

Example calculation

Brand switches from old to new 3PL. 800 SKUs, 200 pallets, 4 staff need training.

  • Flat setup: €3,500
  • Stock take-on: 200 × €35 + 800 × €0.50 = €7,400
  • Data migration: €4,500
  • Training (2 blocks): €1,800
  • Stabilisation surcharge 90 days (on €80,000 variable cost in Q1): +20% = €16,000
  • Total onboarding: ~€33,200, of which often only the €3,500 is transparent in the initial offer.

Lever: Negotiate onboarding as a total budget, not a buffet. Exclude stabilisation surcharges or cap them at 4 weeks. Stock take-on in the presence of your logistics lead, with a protocol and count record demanded.

7. Packaging material

What's in the contract: “Packaging material is passed on at cost plus 10% handling.”

Where the money goes: “Cost” is opaque. You see neither the carton supplier's invoice nor the volume discounts. 10 per cent handling is only the visible part — there's often an additional margin in procurement.

Three typical tricks:

  • Carton mark-up: A standard shipping carton 30×20×15 cm at €0.38 in the market, at €0.72 in the 3PL contract. Difference: 90 per cent.
  • Branding surcharge for custom boxes: if you supply your own printed cartons, the 3PL wants a “handling fee” for storing your materials — €80–250/month.
  • Minimum orders for custom print: 5,000 units is technically the minimum for flexo printing — the 3PL buffers with higher stock and puts the inventory risk into your storage bill.
  • Filling material: paper padding (cost-efficient) vs. air cushions (3PL-preferred, higher margin): up to €0.15 difference per shipment.

Example calculation

Shop with 30,000 parcels/year, on average 1 carton + filling:

  • Direct market purchase: €0.38 carton + €0.08 filling = €0.46/parcel = €13,800/year
  • 3PL billing: €0.72 + €0.15 + 10% handling = €0.96/parcel = €28,700/year
  • Difference: ~€14,900 per year

Lever: Source material yourself and deliver just in time. At this volume, many 3PLs go along with it. Demand carton purchase receipts as an annex to the monthly invoice. For custom boxes, negotiate print volume directly with the supplier, not via the 3PL.

8. Insurance

What's in the contract: “The German Freight Forwarders' Standard Terms and Conditions (ADSp) apply in their current version.”

Where the money goes: The ADSp 2017 are a comfortable convenience for the 3PL. Clause 24 limits liability for ordered storage to 8.33 SDR per kilogram, but at most €35,000 per claim. For stock discrepancies (target/actual), annual liability is capped at €70,000. Source: clause 24 ADSp 2017.

8.33 SDR is currently (as of May 2026, IMF rate around €1.17 per SDR) about €9.80 per kilogram. That means: if 2,000 cartons of beauty products with a total goods value of €180,000 disappear — and the total weight is 600 kg — the statutory liability cap is 600 × €9.80 = €5,880. Plus the €35,000 claim ceiling, so a maximum of €35,000. On a €180,000 loss, the rest stays on your desk.

What it costs to insure that: a stored-goods/contents insurance at full value typically runs 0.8 to 2.5 per mille per year on the stock value (i.e. 0.08–0.25% p.a.) — for non-high-risk consumer goods. For higher fire or theft exposure (beauty, electronics, wine) up to 4 per mille.

Example calculation

Shop with an average stock value of €800,000.

  • Without additional insurance: liability ceiling €35,000. Difference €765,000 at your risk.
  • Additional insurance 1.5 per mille p.a.: €1,200 per year
  • ROI: at a single fire or theft loss from ~€50,000, the policy pays off in the first year.

Lever: Have the value declaration raised contractually — the ADSp allows special agreements, but against a surcharge and only with the 3PL accepting the fire/theft risk. More realistic: take out your own stored-goods insurance via your property insurer. Know the cost before you need the policy.

9. Minimum orders / stop-loss clauses

What's in the contract: “A minimum of X,XXX shipments per quarter applies. On a shortfall, the difference is recharged at the flat rate.”

Where the money goes: A take-or-pay logic. The 3PL has calculated its capacity on your volume. If you don't deliver it, the flat rate is meant to protect it. Industry-wide this has tightened: in 2025, the frequency of minimum-monthly-revenue clauses in 3PL contracts rose significantly. Penalties on a shortfall typically run between €500 and €2,000 per month.

Second variant: seasonal slot bookings. For Q4 you reserve fixed pick hours and storage slots in May/June. If your Black Friday volume comes in smaller — you pay anyway.

Example calculation

Shop announced 80,000 parcels/year, the contract states 18,000 parcels/quarter minimum at €1.80 all-in. Q1 runs weak, you only do 13,500.

  • Difference: 4,500 parcels × €1.80 = €8,100 recharge, without the 3PL providing any service.

Lever: Negotiate minimums on an annual rather than quarterly basis — that gives you a seasonal buffer. Or drop minimums entirely and accept a slightly higher pick price instead (the classic trade-off). For seasonal slots: a clause that unused volume can roll into the following year.

10. Final settlement on a switch

What's in the contract: Usually nothing. Or: “On contract end, outbound and handover are billed per effort.”

Where the money goes: When you switch, the 3PL no longer has any incentive to be friendly. Classic items in the last 60 contract days:

  • Outbound flat fees: €25–50 per pallet, €0.30–0.80 per carton, similar for AKL retrieval
  • Clean-up fees: “warehouse-space cleaning” €200–800
  • Final stocktake: at your cost, often €3,500–8,000 as a flat fee plus shrinkage valuation at the highest possible rate
  • Surcharge inflation in the last 60 days: suddenly appearing “special items” — and you have little appetite to settle it in court, because you want out
  • Exit fees: common in US contracts at $5,000+, rarer explicitly in DACH, but de facto present via outbound

Example calculation

Shop switches 3PL after 4 years. 300 pallets, 60,000 picks in the last quarter.

  • Pallet outbound: 300 × €38 = €11,400
  • Warehouse-space cleaning: €500
  • Final stocktake flat fee: €4,800
  • Shrinkage valuation at 1.2% instead of the agreed 0.5% (on €600,000 stock value): €4,200 difference
  • Total exit cost: ~€20,900

Lever: Negotiate the exit clause in the initial contract. Define outbound flat fees fixed. Lock down the stocktake mode (e.g. sampling instead of full count). Anchor a shrinkage tolerance in writing. Engage external consulting for the switch — the investment pays off when the outbound process runs cleanly.

How to make these costs transparent

The audit approach I use in engagements:

  1. Analyse 24 months of past invoices. All items into an Excel table, grouped by “main service” and “surcharge”. Sum the surcharges — you'll be surprised how big the share is.
  2. Map the contract against the invoice. Every item on the invoice must be justified by a concrete contract clause. Items without a clause: claim them back.
  3. Visualise the surcharge development over time. Has the bulky surcharge seen two adjustments in 18 months without DHL adjusting? On the table.
  4. Direct carrier comparison. What do you pay in gross carrier cost via the 3PL? Compare with a direct carrier offer at your volume.
  5. Market benchmark against DACH ranges. If your pick price is in the top third, will the surcharge bundle be cheaper? Rarely.

On average, a systematic audit finds between 8 and 18 per cent of superfluous costs. On a logistics budget of €500,000, that's €40,000 to €90,000 per year.


Concretely:

  • Contract check — You send me your 3PL contract and the last 6 invoices. I find the hidden costs and tell you concretely what's negotiable. Free, 48 hours.
  • Fulfillment audit — A complete operational and commercial review of your fulfillment. Surcharge analysis, carrier benchmark, contract assessment, an action plan with euros per measure.

The “negotiated pick price” isn't the price you pay. But it can become it, if you know where to look.

ALL TOGETHER · 50+ PAGES

What the industry won't say out loud — as a PDF.

The article here is a snapshot. The guide brings 23 clauses together in one document, each with wording, plain English and a counter-proposal. (Guide currently in German.)

Double opt-in: you'll first receive a confirmation email. The guide is only sent after you click the link. Your email is used solely to send the guide and occasional updates. You can unsubscribe at any time.

You're overpaying
for your fulfilment.

I can tell you exactly where. 15 minutes, free. No sales pitch. Just an honest assessment.

Book a call →