
3PL vs Self-Fulfillment for E-commerce
Key takeaway: Switch to a 3PL when you consistently ship 200+ orders per day or need multi-warehouse geographic coverage. Below 50 orders per day, self-fulfillment is usually cheaper. Between 50-200, run the per-order unit economics to decide.
The Weekend You Pack 800 Orders Is When the Question Starts
Picture a seller's second Black Friday: $38,000 in sales over four days. Sounds great. What the revenue number does not show is 26 hours across Saturday and Sunday at a folding table in a garage, printing labels, taping boxes, and driving loads to the UPS drop-off in the family minivan. The scenario is a hypothetical. The shape will be familiar to anyone who has packed their own peak.
The Monday after is when the 3PL research starts. The answer is rarely all or nothing. Moving half the fulfillment out and keeping half in-house is often the better split, for reasons a price sheet does not show.
The Real Cost of Self-Fulfillment
Most sellers who pack their own orders think their fulfillment cost is just the shipping label. It is not. Not even close.
Illustrative assumptions, not real data: what self-fulfillment costs a seller shipping 100 orders per day (3,000 a month).
| Cost Category | Monthly Cost | Per-Order Cost |
|---|---|---|
| Warehouse rent (1,500 sq ft) | $2,250 | $0.75 |
| One full-time packer ($18/hr) | $3,120 | $1.04 |
| Packing materials | $450 | $0.15 |
| Shipping labels (average) | $5.50/order | $5.50 |
| Insurance + liability | $250 | $0.08 |
| Equipment (amortized) | $150 | $0.05 |
| Your time (10 hrs/week managing) | $1,000 | $0.33 |
| Total | $23,720 | $7.90 |
That "$5.50 per order" everyone quotes is actually $7.90 when you count everything. And the warehouse rent is generous: $1.50/sq ft is cheap in most metros.
The line that gets ignored: your time. Ten hours a week managing packing stations, fixing shipping errors, handling carrier pickups, dealing with warehouse problems. At any reasonable value of your time, that is $25-$50/hour you are not spending on product development, marketing, or supplier negotiations. That is the real cost.
The Real Cost of a 3PL
3PL pricing is deliberately confusing. They break fees into a dozen line items so you cannot easily compare to your all-in self-fulfillment cost. Illustrative assumptions for the same 100 orders/day at a mid-tier 3PL, not a real quote:
| Fee Type | Rate | Monthly Cost (100 orders/day) |
|---|---|---|
| Pick and pack | $3.50/order | $10,500 |
| Storage (20 pallets) | $25/pallet/month | $500 |
| Receiving | $35/pallet | $175 (5 pallets/month) |
| Shipping (discounted) | $4.80/order | $14,400 |
| Returns processing | $3.50/return (10% rate) | $1,050 |
| Account management fee | $250/month | $250 |
| Total | $26,875 | |
| Per order | $8.96 |
At 100 orders per day, the 3PL costs $8.96 versus self-fulfillment at $7.90. The 3PL is $1.06 more per order. Across 3,000 monthly orders, that is $3,180 per month.
But here is what the pure cost comparison misses.
What the Spreadsheet Does Not Capture
The $3,180/month premium buys you three things no spreadsheet can quantify properly.
Your weekends back. That $1,000/month the table charged for "your time" at 10 hours per week? It is conservative. During peak season, it can be 20-30 hours. If you are the founder, every hour spent packing boxes is an hour not spent on marketing and product launches. That sounds like consultant-speak. It is also arithmetic.
Geographic coverage. Shipping from one garage in Ohio means 4-5 day ground delivery to California. A 3PL with an East Coast and a West Coast facility puts far more of the country inside 2-day ground. Customers care about delivery speed even when they say they do not.
Flex capacity. In the model above, one packer handles 100 orders/day. At 150 orders, you need a second person. At 200, you need a bigger space. Every growth threshold required a step-function increase in fixed costs. A 3PL absorbs those volume swings. You pay per order, so your cost scales linearly instead of in painful jumps.
When Self-Fulfillment Wins
We are not here to tell you that 3PLs are always the answer. They are not.
Low volume (under 50 orders/day). At 30 orders per day, you can pack everything yourself in 2-3 hours. The 3PL per-order fee structure hurts at low volumes because the fixed account management fees and storage minimums eat into thin margins. We would not consider a 3PL until hitting 50 orders per day consistently, and even then, only if the growth trajectory is clear.
Custom packaging or kitting. If your brand depends on the unboxing experience (hand-written notes, custom tissue paper, specific insert placement), a 3PL built for speed will struggle with it. Hand it a premium line anyway and expect the customer email that asks "Why does my package look like it came from a warehouse?" Because it did. Custom packaging stays in-house.
Fragile or complex products. Products that need special handling (glass, oversized items, anything that requires assembly or testing before shipment) are expensive at a 3PL. The "special handling" surcharges stack up, and breakage rates climb when someone who does not know your product is packing it.
High-margin, low-SKU count. If you sell 5 products and your margins are 60%+, the cost difference between self-fulfillment and a 3PL barely matters. You are not spending enough time on fulfillment for it to be a bottleneck. Keep it in-house, keep it simple.
The Hybrid Model
This is what we recommend for sellers doing 100-500 orders per day. Not full 3PL. Not full self-fulfillment. Both.
A common hybrid setup:
- Amazon orders go through FBA. Amazon's fulfillment is usually the cheapest option for Amazon orders once you factor in Prime eligibility and Buy Box impact.
- DTC orders go through a 3PL. Two-day shipping, professional packing, no warehouse lease.
- Wholesale and custom orders stay in-house. These are high-value, low-frequency orders where the customer relationship matters.
Say the split lands at roughly 45% FBA, 40% 3PL, 15% in-house. Whether your all-in fulfillment cost goes down depends on the per-order numbers above, so run them for each channel before you move anything. The weekends come back either way.
The catch with hybrid models is inventory visibility. You need to know what is at FBA, what is at the 3PL, and what is in your own warehouse, as it changes. Sell the last 10 units from your 3PL while your warehouse has 200 sitting on a shelf, and you have a fulfillment problem disguised as an inventory problem.
The Switching Decision
Here is our framework. Not a matrix. Not a decision tree. Just the question that matters:
Is fulfillment the bottleneck or the business?
If packing orders is what prevents you from doing the things that grow revenue (launching products, running ads, negotiating with suppliers, improving your forecast or recalibrating reorder points), then outsource it. The per-order premium is a rounding error compared to the revenue you are leaving on the table.
If you are at 30 orders/day and fulfillment takes two hours, it is not a bottleneck. Keep it in-house. Invest the 3PL cost difference into inventory.
Where the break-even lands depends on your step costs. In the model above, the second packer at 150 orders/day and the bigger space at 200 are what move it, which is why we put the line around 150-200 orders per day. Below that, self-fulfillment is usually cheaper in dollars. Above it, the 3PL usually wins on total cost of ownership once you count your time, space, and staffing.
Tracking Inventory Across Your Warehouse, 3PL, and FBA
The manual version of multi-location inventory tracking is a spreadsheet with three tabs (your warehouse, the 3PL, FBA) updated whenever you remember to check. It drifts from the first sale after each update, because it cannot keep up with sales and transfers across locations. Check the 3PL tab, see 200 units, list the product on your site, and then discover the 3PL shipped those units the day before. Oversold.
ReplenishRadar reads stock for every Shopify location, including a 3PL set up as one, plus your FBA inventory, on every sync. One view, updated automatically, with no tab to remember. Multi-location tracking covers how the locations roll up.
Try ReplenishRadar free for 14 days ->
What to Ask Before Signing with a 3PL
If you decide to outsource, picking the wrong 3PL is worse than staying self-fulfilled. Sign on the strength of a pricing sheet and a nice-looking warehouse tour, and three months in you can be the one finding lost inbound units, waiting five days for receiving, and paying hourly "special projects" invoices for fixing the 3PL's own mistakes.
Questions to ask before you sign:
| Question | Why It Matters |
|---|---|
| What is your average receiving turnaround? | More than 48 hours means your inventory sits unlisted. |
| What is your error rate on picks? | Above 0.5% is too high. Ask for data, not promises. |
| Do you integrate with my sales channels directly? | Manual inventory updates from a 3PL defeat the purpose. |
| What is the contract term and exit clause? | Month-to-month is ideal. Annual with 90-day exit is acceptable. Anything longer is a red flag. |
| Can I talk to 3 current clients in my product category? | If they say no, walk away. |
| What happens to my inventory if I leave? | Some 3PLs charge "disposal fees" or delay shipment of your own goods. Get this in writing. |
A good 3PL answers every one of those questions with specifics, not generalities. One that hedges on any of them is telling you how the relationship will go.
The 200-Order Threshold
Most e-commerce advice treats the 3PL decision as binary: you either outsource fulfillment or you do not. Real businesses are messier than that. The setups that hold up use a mix of channels, keep the high-touch work in-house, and outsource the commodity work to specialists.
If you are below 50 orders/day, pack your own boxes. If you are above 200, get a 3PL. If you are in between, run the numbers with the full cost model above. Do not just compare shipping labels. And regardless of where you are, track your actual fulfillment cost per order quarterly. The number changes faster than you think, especially during growth.
The common mistake: waiting until fulfillment is a crisis before investigating 3PLs. Vetting a 3PL typically takes 4-6 weeks. Onboarding takes another 2-4. Start the research when you are at 150 orders/day, not 300. By 300, you are packing boxes at midnight and making bad decisions.
Related Reading:
Frequently Asked Questions
Get notified when it matters
Amazon and Shopify change the rules constantly. We'll email you when something affects your business.
See what your inventory is really doing
Doing $5M+ in revenue? Talk to our team
Related Posts

ERP vs Inventory Software: Which Do You Need?
ERPs cost $50K-$200K to implement. Focused inventory tools cost $99-$499/mo. Here's how to know which one is right for your e-commerce business.

OpenClaw vs Inventory Software: Where AI Agents Fall Short
OpenClaw handles basic Shopify stock alerts but stops short on FBA lead times, multi-channel forecasting, and reorder math. The honest breakdown.

Your Inventory Data Is Wrong
How bad SKU data (duplicates, missing costs, unmatched listings, missing demand) breaks inventory forecasting and costs real money.