Skip to main content

Outsourcing Fulfillment to a 3PL: The Inventory Accounting Playbook for E-Commerce Sellers

17 min readMike ThriftMike Thrift
Outsourcing Fulfillment to a 3PL: The Inventory Accounting Playbook for E-Commerce Sellers

Your Shopify store just did what every small e-commerce owner dreams about — 400 orders overnight after a TikTok took off. Now picture your living room stacked floor to ceiling with boxes, your dining table buried under packing slips, and your carrier pickup window closing in three hours. That exhilarating moment is exactly when the logistics you loved to ignore become the entire business.

Outsourcing to a third-party logistics provider (3PL) can turn that chaos into a single dashboard, but it also moves your inventory out of sight. When your products live in someone else's warehouse, your accounting has to get sharper, not looser. This guide shows you how to keep full financial control while a 3PL handles the boxes.

What a 3PL Actually Does — and What It Doesn't

A 3PL is an outside company that takes over the physical flow of your products: receiving inbound shipments, storing inventory, picking and packing orders, shipping to customers, and handling returns. You still own the inventory, set the prices, and own the customer relationship. The 3PL owns the forklifts, the warehouse management system (WMS), and the headache of getting the right item into the right box on time.

The five flavors of 3PL

Most e-commerce sellers use a distribution-based 3PL — it stores your goods, picks units when an order drops, packs them, and hands them to a carrier. The other types matter less for small brands but are worth recognizing:

  • Transportation-based: Moves goods between factories, warehouses, and customers.
  • Forwarder-based: Routes inventory from your facility to the carrier network.
  • Financial-based: Specializes in freight audit, payment, and inventory accounting.
  • Information-based: Platform-centric, orchestrating logistics through electronic marketplaces.

A fourth-party logistics provider (4PL) is different again — it doesn't touch your inventory at all. It finds and manages a 3PL for you. For most small sellers, a straight 3PL relationship is the right starting point.

What transfers and what stays with you

Moves to the 3PLStays with you
Physical storage and handlingLegal ownership of inventory
Pick, pack, and ship laborPricing, merchandising, and brand
Returns processing (physical)Returns policy and refund decisions
WMS and scan dataSystem of record for your books
Carrier rate negotiationSales tax collection and remittance

That first row is the most important accounting fact in this entire article: your 3PL never owns your inventory. Even in a massive multi-client warehouse where ten brands share the same building, your stock is tracked by client and SKU, with ownership clearly attributed to you. It stays on your balance sheet until a customer buys it.

Decoding Your 3PL Invoice: Where the Money Actually Goes

A 3PL quote that looks like “$1.50 per order + $20 per pallet” is never the whole story. Expect a bundle of line items, each with a different cost driver.

The standard fee stack

Receiving / inbound: Charged per carton, per pallet, or per hour to unload, count, and put away inbound inventory. Ask whether pallet breakdown, barcode labeling, and appointment scheduling are included.

Storage: The monthly rent for your footprint. Common models:

  • Per pallet per month (for example, $20–$45 per pallet)
  • Per bin or tote per week (small bin $0.50, standard $1.25, XL $3.75 in some rate cards)
  • Per cubic foot per month
  • A minimum monthly storage fee if your volume is low

If your catalog is seasonal, ask how dimensional storage is measured — a half-empty pallet billed as a full pallet adds up fast.

Pick and pack / fulfillment: The core per-order charge. Often split into:

  • Pick fee: per unit picked from a location (for example, $0.30–$0.60 per pick)
  • Pack fee: per order packed (for example, $0.80–$2.50), sometimes including standard dunnage and box
  • Materials fee: if your box, insert, or branded tape isn't standard, it's an add-on

Kitting and assembly — bundling several SKUs into one shippable set — is almost always billed separately.

Shipping: Usually a pass-through of carrier cost plus a small handling markup, or carrier cost at your 3PL's negotiated rate. Clarify whether you get the 3PL's discounted rates or pay retail parcel rates.

Returns processing: Per unit to receive, inspect, restock, or dispose of a return. Unprocessed returns are frozen cash — push for a service-level agreement (SLA) of disposition within five business days.

Special handling and account fees: Lot control, serial capture, hazmat surcharges, aged-inventory handling, technology or integration fees, and monthly account minimums.

A real-world cost snapshot

An e-commerce seller shipping 1,000 orders per month with an average of 2 units per order might see:

  • Pick: 2,000 picks × $0.50 = $1,000
  • Pack: 1,000 orders × $1.00 = $1,000
  • Storage: 10 pallets × $25 = $250
  • Receiving: 5 inbound pallets × $35 = $175
  • Returns: 80 returns × $3.50 = $280

That's $2,705 in fulfillment operations before parcel postage. Building the same capability in a garage with part-time help, inventory software, and retail shipping rates often costs more — and scales worse.

Action step: Ask any prospective 3PL for a full rate card with every billable activity defined, and a sample invoice for a brand at your volume. Map each line to a general ledger account before you sign (see next section). Surprises live in undefined lines.

Who Owns the Inventory? Why It Matters for Your Books

When you ship 500 units to a 3PL's facility in Ohio, you have not made a sale, transferred ownership, or created consignment. You have moved your own assets from one location to another.

In accounting terms, this is an inventory transfer, not a sale. The 3PL holds your goods as a bailee. Modern WMS platforms track this as customer-owned inventory — separate records per client, often by ownership location, so your 200 units of SKU-101 are never commingled with another client's identical SKU on the ledger even if they share a bin zone.

Practical implications:

  • Your balance sheet still carries the inventory at cost. No expense is recognized until the goods are sold to an end customer.
  • You still choose your cost flow assumption — FIFO, weighted average, or specific identification — exactly as if the inventory were in your own storeroom.
  • You insure your inventory, or confirm the 3PL's liability and insurance. Most contracts define a shrinkage allowance (often up to 0.5%) that you absorb before the 3PL is responsible. Anything above that should be documented, investigated, and credited.
  • Sales tax and title transfer still happen at the point your customer takes ownership, not when goods enter the 3PL.

If you ever use true consignment — for example, placing inventory in a retail store that pays you only when it sells — the accounting is similar (you retain ownership until sale), but the commercial terms and risk are very different. Don't let a warehouse's use of the word “consignment location” in its software confuse you into thinking you have sold the goods.

How to Book 3PL Transactions Without Losing Track

The goal is simple: your inventory value in your accounting system should always tie to the 3PL's on-hand report, and your fulfillment spend should be cleanly separated between product costs and period operating costs.

Set up your chart of accounts

Create distinct accounts so you can see what fulfillment actually costs:

  • Inventory – 3PL [Location] (asset)
  • Inventory – In Transit to 3PL (asset, for goods mid-shipment)
  • Cost of Goods Sold (COGS) (expense, recognized only at sale)
  • 3PL Storage Fees (operating expense)
  • 3PL Fulfillment Fees – Pick/Pack/Kitting (operating expense or, for some businesses, included in fulfillment COGS — pick one and be consistent)
  • Shipping and Delivery Expense (operating expense)
  • Returns Processing Fees (operating expense)
  • Inventory Shrinkage / Obsolescence Loss (expense)

Decide upfront whether pick/pack and outbound shipping are “cost to fulfill” inside gross margin or below-the-line operating expenses. GAAP doesn't prescribe one view for every small seller, but your lender and your own pricing decisions need consistency.

The journal entries you will actually use

1. Sending inventory to the 3PL (no profit impact):

  • Debit Inventory – 3PL $15,000; Credit Inventory – On Hand $15,000

You are just moving the asset between locations.

2. Receiving the monthly storage invoice:

  • Debit 3PL Storage Fees $250; Credit Accounts Payable – 3PL $250

Storage is a period cost, not added to inventory value (unless you are a manufacturer capitalizing warehousing as part of production, which most e-commerce sellers are not).

3. Fulfilling a customer order (two entries):

Sale: Debit Accounts Receivable or Cash $2,400; Credit Sales Revenue $2,400 (and handle sales tax, shipping charged to customer, and payment processor fees separately)

COGS: Debit COGS $900; Credit Inventory – 3PL $900 — for the product cost only. The $2.10 pick/pack fee and $8.50 parcel postage for that order are booked as fulfillment and shipping expenses when the 3PL invoice arrives, not blended into the unit cost — unless your stated policy is to include them in COGS.

4. Recording the fulfillment and shipping invoice:

  • Debit 3PL Fulfillment Fees $2,100; Debit Shipping Expense $8,200; Credit Accounts Payable – 3PL $10,300

Reconcile this line-by-line to the WMS export. Insist on CSV or API data at the order level — carrier cost, handling fee, and package type per shipment — so you can allocate costs accurately and spot surcharges.

5. Processing a return:

Physical return to stock (if resalable): Debit Inventory – 3PL $30; Credit COGS $30 (reversing the original COGS for that unit)

Refund to customer: Debit Sales Returns $80; Credit Cash $80

3PL return fee: Debit Returns Processing Fees $3.50; Credit Accounts Payable – 3PL $3.50

If the returned unit is damaged and unsalable, write it down instead of returning it to inventory (see LCNRV below).

Integration matters

The fastest way to keep these entries accurate is to automate the data flow: Shopify or your sales channel → 3PL WMS → accounting system. If your 3PL can push daily inventory snapshots and order-level fulfillment costs via API, you can post a daily or weekly summary entry and keep month-end close to a few hours of confirmation rather than days of reconstruction.

Reconciliation: The Monthly Ritual That Saves Your Margin

Your books and the 3PL's WMS will drift apart. Receiving miscounts, scan errors, system integration lags, damaged inbound cartons, and returns that were inspected but not yet restocked all create variance. Without a formal reconciliation, that drift becomes phantom inventory — and phantom profit.

Build a 30-minute monthly close for 3PL

Step 1: Pull three reports for the same cutoff date. Your accounting system's inventory valuation, the 3PL's on-hand by SKU, and your sales channel's units sold for the period.

Step 2: Compare units and value, not just one. Reconcile quantity on hand by SKU, then extend by unit cost to value. A unit variance of 3 on a $4 accessory matters less than a unit variance of 3 on a $120 bundle.

Step 3: Classify the variance.

  • Receiving discrepancy (supplier short-shipped, 3PL miscounted inbound)
  • Pick/pack error (wrong SKU shipped, caught by customer)
  • Shrinkage (unexplained loss — theft, damage, misplacement)
  • System lag (return received at 3PL but not yet in your Shopify inventory)
  • Damaged or expired disposition (correctly removed, but was it written off?)

Step 4: Account for shrinkage allowance. Many contracts state you absorb the first 0.5% of inventory value in shrinkage and the 3PL covers the excess with proof. Track cumulative shrinkage as a percentage of throughput, not just a dollar amount, and trend it. A rise from 0.2% to 0.8% is an operations problem long before it is an accounting problem.

Step 5: Post adjustments with documentation. Don't just force your books to match the WMS. Create an adjustment entry with a reason code and backup: Debit Inventory Shrinkage Loss, Credit Inventory – 3PL. Retain the WMS adjustment trail. At year-end, your CPA should be able to follow every write-down from the warehouse report to the ledger.

Step 6: Verify returns. Any return not dispositioned within five business days is a follow-up item. Aged unprocessed returns often hide restockable inventory you have already refunded.

Pro tip: Run a cycle count on your top 20% of SKUs by value every month (ABC analysis), not an annual wall-to-wall count that shuts down operations. Accuracy on high-value items protects far more margin than perfect counts on slow-moving accessories.

Lower of Cost or Net Realizable Value: When Inventory on the 3PL Shelf Loses Value

Under U.S. GAAP (ASC 330), inventory carried at FIFO or average cost must be measured at the lower of cost and net realizable value (LCNRV). If the value of goods sitting in your 3PL drops below what you paid for them, you must write them down and recognize the loss now — not when you eventually sell at a discount or toss the units.

What NRV actually means

Net realizable value is:

NRV = Estimated selling price in the ordinary course of business − reasonably predictable costs of completion, disposal, and transportation

For a small e-commerce seller, that is usually: expected discounted selling price minus remaining pick/pack fees, outbound shipping, marketplace commissions, and payment processing to move the unit.

When to test

You don't need to revalue your entire catalog every day, but trigger a review when:

  • An item is damaged in the 3PL (water, crush, temperature)
  • A collection becomes last-season or trend-expired
  • Sell-through drops sharply and aged inventory exceeds 120–180 days on hand
  • Your 3PL notifies you of obsolete or slow-moving stock during a quarterly business review
  • You commit to a clearance price meaningfully below cost

How to apply it

LCNRV is applied at the SKU level, category level, or total inventory level depending on your policy — item-level is most conservative and most common for small businesses with distinct products. Once written down, that new lower value becomes the item's cost basis. Under U.S. GAAP you do not write it back up if market recovers; you carry the lower basis until sale.

Example:

You hold 200 units of a summer bundle in the 3PL at $28 cost each ($5,600 total). By October, the realistic clearance price is $32 per bundle, but after $6 parcel shipping, $4 marketplace commission, and $2 pick/pack, NRV is $20 per unit.

  • Unit NRV ($20) < Unit cost ($28) → write down $8 per unit
  • Total write-down: 200 × $8 = $1,600

Entry: Debit Loss on Inventory Write-Down (or COGS, per your policy) $1,600; Credit Inventory – 3PL $1,600

You will still sell the bundle for $32 and record that revenue normally; your margin on the subsequent sale will reflect the corrected cost of $20, not the original $28.

Practical guardrail: Create an “Aged Inventory + NRV Review” tab in your monthly close. Flag any SKU with more than 90 days of cover or with a 3PL handling code for “damaged” or “aged,” pull its current listing price and disposal costs, and document your NRV conclusion — even when the conclusion is “no write-down needed.” That paper trail is what a reviewer or lender wants to see.

KPIs That Tell You Whether the 3PL Is Earning Its Keep

Don't judge a 3PL solely on per-order cost. These metrics together tell the real story:

  • Order accuracy rate: Orders shipped without error ÷ total orders. Target >99.5%.
  • On-time ship rate: Orders shipped by SLA cutoff (for example, same-day for orders by 2 p.m.) ÷ total orders. Target >98%.
  • Inventory accuracy: WMS on-hand vs. cycle count. Target >99% for A-items.
  • Return rate and reason breakdown: Returns ÷ orders shipped, split by defective, wrong item, changed mind, and sizing. Wrong-item returns point at picking accuracy; defective points at supplier quality.
  • Cost per order (fully loaded): (Pick + pack + materials + outbound shipping + returns allocation) ÷ orders shipped. Track trend, not just level — a rising cost per order even as volume grows deserves a conversation.
  • Storage utilization and aged inventory: Pallet or bin utilization vs. minimums, plus units over 120 days old. Aged units drive both storage fees and obsolescence risk.
  • Time to disposition for returns: Hours from customer return receipt to restock or disposal decision. Every day of delay is working capital you can't use.

Ask for a live dashboard and a monthly business review where the 3PL walks you through exceptions — carrier delays, receiving discrepancies, inventory anomalies — before you have to ask.

Before You Sign: Contracts, Liability, and Leverage

The cheapest per-order quote can become the most expensive partnership if the commercial terms are loose.

  • Define service levels in writing: Order cutoff, pick accuracy, same-day ship commitment, inventory count accuracy, and credits or fee waivers when they miss. Vague promises like “best efforts” are not SLAs.
  • Nail down liability for loss and damage: Confirm the shrinkage allowance, per-unit value caps, and claims process. Carry your own inland marine or stock-throughput insurance and ensure the contract requires the 3PL to carry warehouse legal liability coverage — then get the certificate.
  • Protect your data and your exit: Own your inventory master. Guarantee daily inventory and order exports in CSV via API, not just a portal screenshot. Define termination notice (60–90 days is common), wind-down handling for in-flight orders, and how your stock is segregated and staged for outbound transfer if you leave.
  • Audit rights and count cadence: Reserve the right to audit counts and request a cycle count on disputed SKUs within a defined window. Many disputes are resolved by a simple recount with a photo.
  • Volume and term flexibility: Avoid long-term volume guarantees until you have three to six months of actual throughput with that provider. Tie any annual rate increase to a published index with a cap.
  • Technology integration: Confirm native integration with your sales channels and accounting system, or a clear middleware path. A “we can build it” answer is not an integration.

If a provider balks at putting these points in an exhibit — or can't produce a sample monthly statement that ties inventory movements to invoice lines — treat that hesitation as information.

Is a 3PL Right for You Right Now?

Outsourcing is not a moral victory; it is a math problem.

A 3PL tends to pay off when:

  • You ship more than about 100–150 orders per month or face sharp seasonal spikes that make hiring temporary warehouse help unreliable.
  • You sell nationwide and a single home-base location drives costly zone-skipped parcel rates.
  • Inventory storage at home or a small office is constraining growth or creating receiving errors.
  • Founders spend more hours packing boxes than talking to customers or building product.

Stay in-house (or hybrid) a bit longer when:

  • Your product needs hands-on quality inspection or customization that a standard pick/pack line handles poorly.
  • Margins are razor-thin and your fully loaded cost per order with a 3PL — including receiving, storage minimums, and returns — exceeds your contribution margin on single-unit orders.
  • You have fewer than 20 SKUs with very low velocity and can manage from a single location with simple tooling.

Even if you outsource, keep a “museum SKU” discipline: know your top sellers' landed cost, storage cost per unit per month, fully loaded fulfillment cost per order, and NRV. That small set of numbers answers most pricing, promotion, and reorder questions without a spreadsheet the size of a warehouse itself.

Simplify Your Financial Management

Handing fulfillment to a 3PL gives you back hours every week, but only if your financial records stay just as reliable as your shipments. Clear inventory accounting — ownership in the right place, fees in the right period, and a monthly reconciliation that catches drift early — is what turns outsourcing from a cost center into leverage.

Beancount.io gives you plain-text accounting that is transparent, version-controlled, and ready for the queries a growing e-commerce operation actually needs — from tying your WMS on-hand value to your ledger to tracing a single SKU's cost from inbound receipt to customer delivery. Get started for free and keep your books as accurate as the inventory on your 3PL's shelves.

Share this article