Allocating Return And Reverse-Logistics 3PL Fees Per Order Sold

Metricuno
August 1, 2026
6 min read
Allocating Return And Reverse-Logistics 3PL Fees Per Order Sold — How to spread returns processing, restocking, and reverse-shipping 3PL fees across all orders sold — with worked apparel and footwear examples.
Quick answer

Charging reverse-logistics fees only to returned orders distorts contribution margin. Spread them across all units sold, scaled by category return rate — especially for apparel and footwear.

Quick answer

Don't book reverse-logistics 3PL fees only against the specific orders that came back. Take the total return-handling cost for the category, divide it by units sold in that category, and load that per-unit cost onto every order. For apparel at a 30% return rate and €6 all-in handling per return, that's €1.80 per order sold — not €0 on kept orders and €6 on returned ones.

Definition
Unit economics

Allocating return and reverse-logistics 3PL fees per order sold

Spreading returns processing, restocking, and reverse-shipping fees across every order sold in a category — not just the ones returned.

Reverse-logistics costs — inbound return shipping, warehouse receiving, inspection, restocking, refurbishment, and disposal — are billed by your 3PL only when an item comes back. But those costs are a predictable function of the category's return rate, not a random event on a specific order. Booking them against returned orders alone makes kept orders look artificially profitable and returned orders look catastrophic.

Honest contribution margin requires spreading the pool of reverse-logistics fees across all units sold in the category, weighted by that category's actual return rate. For apparel and footwear — where 20-40% of units come back — this allocation choice can swing per-order CM by €2-8.

Also known as
Return cost amortisation
Reverse-logistics cost pooling

This page sits under the broader question of allocating 3PL and fulfillment costs per order. Forward fulfillment is straightforward — one pick-pack fee per shipment out. Reverse logistics is where most Shopify finance models quietly break.

Why the naive allocation breaks contribution margin

The intuitive approach is to charge return handling to the order that was returned. It matches the 3PL invoice line-by-line and feels causally honest. It also gives you a per-order CM that swings wildly by outcome — which is useless for decisions.

A €95 apparel order with €6 of reverse-logistics cost booked to it shows a negative CM of roughly -€40 after refund. The same SKU sold and kept shows +€35. Averaging those tells you the truth, but every individual order line lies. Any dashboard that segments CM by channel, campaign, or discount code is now noisy.

The decision this breaks

You cannot honestly compare paid-social CAC to CM if CM is measured only on kept orders. A Meta campaign that drives 100 orders at a 35% return rate should be charged for the returns it caused — spread across all 100 orders, not hidden in the 35 that came back.

How to detect the problem in your P&L

Pull your last 90 days of 3PL invoices and split them into forward fees (pick, pack, outbound shipping) versus reverse fees (return shipping labels, inbound receiving, inspection, restocking, disposal). If reverse is more than 8% of total 3PL spend, you're in the danger zone for margin distortion.

Then check how your finance model handles those reverse fees. If they hit a single COGS line for the month with no per-order allocation, your per-order CM is wrong. If they're booked against returned order IDs specifically, your per-order CM is also wrong — just in a different direction.

Benchmark

Typical return rates and per-order reverse-logistics load by category

CategoryReturn rateReverse cost per returnPer-order load (allocated)
Apparel (fashion)25-40%€5-8€1.50-3.00
Footwear30-45%€7-10€2.10-4.50
Beauty & skincare3-8%€4-6€0.15-0.45
Consumer electronics8-15%€10-18€0.90-2.70
Home & kitchen5-12%€6-12€0.35-1.40
Jewellery & accessories10-18%€5-9€0.60-1.55

How to allocate reverse-logistics fees correctly

The rule is simple: pool reverse costs by category, then divide by units sold in that category over the same period. Category matters because a dress and a hair serum have wildly different return economics — averaging them across the whole store hides the real driver.

Worked example. Your denim category shipped 4,000 units last quarter. 1,200 came back — a 30% return rate. Your 3PL invoiced €7,200 in return-handling fees (labels, inbound, inspection, restocking) — €6 per return. Allocated per unit sold: €7,200 / 4,000 = €1.80. Every denim order carries €1.80 of reverse-logistics cost, whether it comes back or not.

Formula

reverse_cost_per_order = (return_rate * cost_per_return) + fixed_reverse_overhead_per_unit

Variables

return_rate

Category return rate

Units returned divided by units sold, over a trailing 90-day window per category.

cost_per_return

All-in 3PL cost per return

Return shipping label + inbound receiving + inspection + restock or disposal, per unit returned.

fixed_reverse_overhead_per_unit

Fixed reverse overhead

Any flat monthly reverse-logistics fees (returns portal, RMA software) divided by units sold. Often €0.05-0.15.

Worked example

Footwear brand, sneakers category, last quarter

Return rate: 38%

Cost per return: €8.50

Fixed reverse overhead per unit: €0.10

€3.33 per order sold

Every sneaker order — kept or returned — should carry €3.33 of reverse-logistics cost in the CM calculation. On a €120 AOV that's 2.8% of revenue eaten by returns handling before you count the refunded goods themselves.

Refresh the allocation quarterly. Return rates drift with weather, sizing changes, new product launches, and campaign mix. A denim category running at 30% in Q1 can jump to 42% in Q3 if you launch a new fit that sizes small.

What NOT to include in this pool

Refunded merchandise value is not a reverse-logistics fee — it's negative revenue, handled by net sales. Discounts on damaged returns sold as B-stock recover part of COGS, not reverse-logistics cost. Keep the pool tight: 3PL invoice lines only.

Experiments and levers this unlocks

Once reverse-logistics cost is honestly allocated per order, you can run experiments that were previously invisible. Size-guide overhauls, fit-recommendation widgets, better PDP photography, and free-returns messaging changes all have measurable CM impact — but only if the metric they move is showing up in your dashboard.

Three high-leverage tests for apparel and footwear: paid vs free returns on checkout CVR and category return rate together; an AI fit finder on PDPs with return-rate as the primary success metric; and a bundle-with-similar-size upsell that historically lowers return rate by 3-5 percentage points. Each of these needs allocated reverse-cost per order to score honestly.

Frequently asked

Frequently asked questions

Because it makes per-order CM meaningless for decisions. Kept orders look too profitable, returned orders look catastrophic, and any segment view (by campaign, channel, discount code) becomes dominated by which orders happened to be returned rather than the underlying economics. Allocation smooths that.

Category is usually the right grain. SKU-level allocation is noisy at low volume and over-fits to short-term return spikes. Categories like 'denim', 'dresses', 'sneakers', 'skincare' typically have stable enough return rates over 90 days to allocate reliably. Go finer only if a SKU is >5% of revenue and has an outlier return rate.

Forward fulfilment is a per-shipment fee that maps 1:1 to orders sent out — no allocation math needed. Reverse-logistics fees are triggered probabilistically by return behaviour, so they need to be pooled and spread across all orders sold in the category to reflect the true expected cost per order.

90 days is the standard for apparel and footwear because return windows are 30-60 days and reporting lag adds another 2-4 weeks. For beauty or electronics with shorter return windows, 60 days works. Anything shorter and you'll misestimate the tail of late returns.

Yes — payment processor refund fees (Stripe, Shopify Payments, Klarna) are part of the true reverse cost per return and should join the pool. They're typically €0.20-0.40 per refund. Some processors refund the original transaction fee; most don't.

It lowers CM per order, which lowers the CAC you can profitably pay. If reverse-logistics adds €2.50 per order on apparel, your target CAC drops by €2.50 to hold the same payback period. Campaigns skewed toward high-return-rate categories should carry proportionally lower CAC targets.

Handling cost is similar — the physical reverse-logistics workflow is the same — so include exchanges in the pool. But separately, exchanges preserve revenue, so their revenue impact is very different. Track return rate and exchange rate as separate KPIs even if they share a cost pool.

Divide the flat rate by units sold in the period to get a per-order load, then optionally split it across categories weighted by each category's return rate. It's less precise than line-item invoicing but still much better than ignoring it or dumping it into general overhead.

Much less — the per-order load is usually under €0.30, which is inside the noise of your CM model. It's still worth allocating for consistency, but the decision-level impact is small. It's apparel, footwear, and mid-return-rate categories where this changes CAC targets and campaign scoring.

Quarterly for stable categories, monthly if you're launching new SKUs frequently or running fit/sizing tests. Return rates drift with product mix, seasonality, and campaign audience — a static allocation set once a year will be materially wrong by month nine.

See Metricuno on your data

Bring your stack — Google Analytics, Stripe, a CRM, anything — and we'll walk through the metric tree that turns your funnel into one number.