A 3PL warehouse transition nearly killed our bestseller last year.

The old 3PL jacked up storage fees 15% right before Q4 and their support went radio silent. We pulled the trigger on a switch: 800 SKUs, moved in 3 batches. The first batch arrived and our top seller was short 120 units. Old warehouse said they shipped them all. New warehouse said they never arrived. The driver shrugged: "I only loaded what was on the dock."

Three parties arguing in a group chat for 4 days. Bestseller out of stock for 6 days. Cost us about $4,000 in lost sales. Since then, I learned the real skill of a warehouse transition is the inventory handover—not the freight quote.

The Pre-Transition Count: More Detail Is Not Better

Your instinct is to count everything. Here is my blunt take: counting every single unit is not better. For a transition count, prioritize—spot-check the C-items, or you'll spend three days counting and still miss the cutoff.

I use ABC tiers:

A-items (the 15% of SKUs driving 80% of sales): full physical count, every unit against the system. Last year we had 120 A-SKUs. Two people, one and a half full days.

B-items (mid-movers): count by pallet and carton, open and spot-check 20% of cartons.

C-items (the long tail, hundreds of them): random sample of 10%. We had 500+ C-SKUs last year and sampled 50. Discrepancy was 0.3%. Done, signed off.

Your baseline is one thing only: the on-hand inventory exported from the old 3PL's system on day zero of the move, plus in-transit inventory.

In-transit is the easiest thing to lose track of. The rule is one sentence: anything shipped from the old warehouse before the cutoff that the new warehouse hasn't received yet is in transit. Every load number and carton count goes on a separate sheet—the in-transit list. Last year, out of 800 SKUs, we had 3 in-transit batches totaling 210 cartons, all listed.

And screenshot the old warehouse's system export the day you pull it. Keep the original Excel, the export timestamp, the person who ran it. All three. Don't trust "the system says"—only the snapshot taken that moment counts as evidence.

How to Sign the Inventory Handover Sheet

What does a handover sheet look like? Here's the format. One sheet per pallet:

SKU list / cartons per SKU / unit count / carton condition (sealed, damaged, loose) / pallet number / shipper signature / receiver signature / date and time.

Three non-negotiable rules:

One: count when the driver picks up. If the pallet count is wrong, fix the sheet and get both signatures on the spot. Last year a driver "accidentally" loaded an extra pallet of loose stock. The old warehouse's floor lead caught it and amended the sheet right there. Otherwise those 40 extra units would have arrived at the new warehouse and spawned a two-week argument.

Two: the new warehouse signs only after counting—never "whole truck received." Some new 3PLs love signing "received 50 pallets" without writing carton counts. Two weeks later something's missing and nobody can say where. Our contract states it in black and white: the receiving sheet must go down to carton level, or we don't recognize the signature.

Three: photos. Every pallet gets photographed before loading and again before unloading at the new warehouse, pallet number visible in the frame. In our dispute, the driver's loading photos proved the old warehouse had shorted 2 pallets—the photo timestamps were the entire case.

Workers counting cartons on pallets during a 3PL warehouse handover

Discrepancies: What's Normal, and Who Pays

Here is the practical verdict: a discrepancy rate under 0.5% is normal, 0.5%–1% needs a recount, and over 1% means you fight it.

Our move across 800 SKUs came in at 0.8% overall. A-items: 0.2% (mostly packing damage). B-items: 0.9% (turns out the old warehouse mis-shipped 2 SKUs by the carton). C-items: 1.5% on the sample—but it's a sample with tiny absolute numbers, and our contract covered that.

Who pays? Read three clauses before you sign anything:

1. Normal shrinkage allowance. Most 3PL contracts bury a 0.3%–0.5% "acceptable loss" clause. Within that range, you eat it. Beyond it, they pay at goods value. Ask before signing, or you will never even know you're owed.

2. Compensation basis. Cost price or retail price? That is a 3x difference. Our contract pays at purchase cost plus the labor to reship. Nobody will sign retail-price compensation. Don't dream.

3. Burden of proof. The contract must say: the handover sheet and photos are the final authority. For any discrepancy with no signed record, whoever claims it has to prove it.

4. The discrepancy reporting window. How many days after receiving can the new warehouse report a shortage? Our contract says 7 days. After that, any missing units count as the new warehouse's operating loss, not the old one's problem. Without this, the old warehouse can pin months-old shortages on your move.

Actual rates (inbound fees, transfer freight) vary by provider—check each 3PL's current published rates. I will only show you the totals.

Do the Math: Transition Cost vs. Stockout Loss

Our move cost us: inbound fees at the new warehouse + 3 batches of transfer freight + the old warehouse's exit fees + 15 days of overlapping rent. Total: about $6,000. Plus the $4,000 in lost sales from the 6-day stockout. All in: roughly $10,000.

Ouch. But compare: staying meant paying $7,000+ more per year under the new rate card, plus peak-season shipping delays—one late shipment tanks your account metrics, and those take months to recover.

The math: a one-time $10,000 move buys you $7,000 a year in savings plus on-time shipping going from 92% to 99%. Payback in under three months. I signed the new contract the same night I ran the numbers.

One hidden cost: keep at least 10 days of safety stock running at both ends during the transition. Our first batch arrived 3 days late. We survived only because 800 units of safety stock were still sitting at the old warehouse. Otherwise the stockout goes from 6 days to 9 and the loss grows another 50%.

Three Warnings

One: read the shrinkage and compensation clauses first, the price second. 5% cheaper with no one paying for discrepancies is a wasted move.

Two: track in-transit every single day. We ran a shared sheet, all three parties updating daily. Any batch stuck at a transfer hub got chased the same day.

Three: don't settle the old warehouse's account until you're gone. We held 30 days of the final payment and settled after the new warehouse confirmed discrepancies. We held back about $2,800; the old warehouse ended up owing us $1,600 in missing-unit value, deducted straight from the holdback. Clean.

Tested it myself—it works. Earlier this year we moved a smaller warehouse as a satellite site using this exact playbook: 0.4% discrepancy, zero disputes, done in 7 days.

By Ah K, E-commerce Seller (5 yrs)