Your 3PL's on-hand count is the number Shopify sells against. When it drifts, you oversell and cancel orders, or you reorder stock that's already on a shelf, and you can check it yourself each month with records you already have: your purchase orders, the 3PL's receiving and adjustment reports, and Shopify.
To audit a 3PL's inventory accuracy, reconcile three records every month: what you sent (purchase orders and packing lists), what the 3PL says it received, and what it holds by SKU, then compare the result with Shopify's on-hand quantity. Request blind cycle count results measured on absolute unit variance. Benchmarks sit above 99%, and unexplained variance above 0.5% needs a written root cause.
Inventory accuracy and order accuracy are different metrics, and proposals mix them up. Inventory accuracy compares counted stock with the system record. Order accuracy measures orders shipped without errors. A 3PL can score well on one and poorly on the other, so request both, reported separately.
What does inventory accuracy actually measure?
Inventory accuracy is the share of counted stock that matches the warehouse system. The result depends on what's counted and how differences are added up, so the same warehouse can report three different numbers.
| Measure | How it's calculated | What it can hide |
|---|---|---|
| Location accuracy | Locations where the count matches the system, divided by locations counted | A location with 1 unit off counts the same as one with 100 off |
| Unit accuracy (absolute) | 1 minus the sum of absolute unit differences, divided by system units | Little: overs and shorts both count against the score |
| Net accuracy | 1 minus the net unit or dollar difference, divided by system total | Offsetting errors: 50 units over on one SKU and 50 short on another reads as 100% |
| Order accuracy | Orders shipped without errors, divided by orders shipped | Nothing about stock sitting in the wrong bin that hasn't been picked yet |
The number to request is absolute unit accuracy by SKU. Net accuracy is useful to finance, but it hides the mixed-up sizes, colors and bins that cause short picks and oversells.
What inventory accuracy rate should you expect from a 3PL?
Expect more than 99%, measured on cycle counts, with any unexplained variance above 0.5% investigated and written up. DCL Logistics' June 2026 KPI guide puts the industry benchmark for inventory accuracy above 99% and treats unexplained inventory discrepancies above 0.5% as a red flag. Barrett Distribution Centers reported in October 2026 that some of its facilities have reached 99.9% location-level accuracy.
A headline rate means little until you know how it was produced. Before you compare two providers, settle these:
- Which counts are included: full physical counts, scheduled cycle counts, or only event-triggered recounts?
- Was the rate calculated before or after adjustments? A rate taken after the 3PL corrects the system to match the shelf will always look perfect.
- Are the counts blind? A counter who can see the expected quantity tends to find it.
- Is it your SKUs or the whole building? You want your account's numbers, not a facility average.
How often should a 3PL cycle count your inventory?
Count fast-moving and high-value SKUs at least monthly, the rest quarterly or twice a year, and recount any SKU right after an exception. This is the common ABC approach: the 20% of SKUs that drive most of your units get the most counts.
- A SKUs (top sellers, high landed cost): monthly or more often.
- B SKUs: quarterly.
- C SKUs (slow movers, end of season): twice a year, plus before any liquidation.
- Event counts: after a short pick, a zero balance with open orders, a negative balance, a receiving discrepancy or a return that doesn't match the RMA.
Put the schedule in the agreement and request the cycle count log each month: SKU, location, system quantity, counted quantity, recount result and the adjustment posted. A log with adjustments and no recounts means the 3PL is correcting the system to the shelf without finding the cause.
How do you check receiving variance?
Compare every inbound shipment three ways: the purchase order quantity, the supplier's packing list and the units the 3PL received. Receiving is where drift starts, because a miscounted carton stays wrong until someone recounts that SKU.
For each receipt, the 3PL should send a variance report with expected units, received units, damaged units and the difference by SKU, plus photos of cartons and labels on arrival. Settle a variance within days of the receipt. A supplier short is a claim against the supplier, and a 3PL miscount is a correction the 3PL owes you. After a few weeks the two are hard to tell apart.
Product setup matters as much as the count. A Shopify oral care brand moving to us had about 5,000 units inbound for Q4 across brushes, tongue scrapers and travel cases, and we received it against an advance shipping notice so every carton had an expected quantity before it was opened. The brand sold a Complete set and a Duo set, but only the brush had a SKU. Before receiving, we asked for a SKU or barcode and a weight on every product and the exact contents of each set, so both could be built as bundles in Orderfy WMS. Units that arrived before setup were held until the products were in the system, since a unit put away without a SKU can't be counted against anything.
Speed matters too. Stock waiting on a dock is invisible to Shopify, and a long gap between delivery and putaway makes a receiving count harder to verify later.
How do you reconcile 3PL inventory against Shopify and your POs?
Run a monthly roll-forward by SKU: opening on-hand, plus units received, minus units shipped, plus returns restocked, plus or minus adjustments, equals closing on-hand. Build it once from your records and once from the 3PL's reports, then explain every gap. Compare closing figures with Shopify's on-hand quantity, not available. Shopify defines on hand as the sum of committed, unavailable and available units, and unfulfilled orders sit in committed.
The example below shows a month for a brand shipping 10,000 orders and about 14,000 units. The figures are illustrative.
| Line | Your records | 3PL report | Gap | What to request |
|---|---|---|---|---|
| Opening on-hand | 42,000 | 42,000 | 0 | Nothing, if last month closed clean |
| Received against POs | 15,200 (PO quantity) | 15,000 | -200 | Receiving variance report with photos: supplier short or 3PL miscount? |
| Shipped on Shopify orders | 14,000 | 14,030 | -30 | Order-level list of the extra 30: reships, replacements or manual orders |
| Returns restocked | 600 | 560 | -40 | Returns log: graded unsellable, or not yet processed? |
| Adjustments | 0 | -150 | -150 | Adjustment log with reason code, date, location and approver |
| Closing on-hand | 43,800 | 43,380 | -420 | The total to explain, 0.96% of your expected stock |
The raw gap of 420 units is almost 1% of stock, above the 0.5% red line. Much of it can be explained: the 200-unit short becomes a supplier claim, the 30 extra shipments are approved reships, and the 40 returns were graded as damaged. That leaves 150 units of unexplained adjustments, about 0.34% of stock. Those 150 units are the accuracy figure to discuss with the 3PL for the month and to track month over month.
Stock in two places makes the shipped line harder to trust. A Shopify brand kept some stock in its own building and some with us, and Orderfy WMS imported every open order, so an order could have shipped from both places. We added an order scope setting: take all orders, or only the orders Shopify routes to the Orderfy location. Orders Shopify moves to another location now drop out of our queue. If you split stock, confirm which orders your 3PL pulls before you trust its shipped count.
Which inventory reports should you request from your 3PL?
Request five reports on a fixed schedule, in a format you can export. A 3PL that can't produce them can't prove its count.
| Report | How often | What it should show | Red flag |
|---|---|---|---|
| On-hand by SKU and location | Daily or on demand | Units by SKU, by bin, with status (sellable, damaged, on hold) | Totals only, no locations |
| Receiving variance | Every inbound | Expected vs received vs damaged, by SKU, with photos | Variances closed without a note |
| Adjustment log | Monthly | Every manual change with reason code, user and date | Large adjustments with reason "count correction" only |
| Cycle count results | Monthly | SKUs counted, blind count, recount, accuracy rate for your account | Accuracy reported only as a facility average |
| Shipment and returns detail | Monthly | Units shipped and restocked by order or RMA | Units shipped that don't match Shopify orders |
Put the list in the agreement, with how quickly each report must arrive. The 3PL contract negotiation guide covers how to write reporting duties and service credits into the contract.
What is a shrink allowance, and should you accept one?
A shrink allowance is the share of inventory loss a 3PL contract tolerates before the 3PL owes you anything. It can be reasonable, but its definition decides how much loss you absorb.
Take an illustrative brand with an average of 45,000 units in stock at a $12 landed cost. A 0.5% annual allowance means up to 225 units, or $2,700 a year, is your loss before any claim. The same 0.5% applied to each quarterly count instead of the year quadruples that to 900 units, or $10,800.
- Basis: units or dollars, and at landed cost or something lower.
- Period: per year, per count or per SKU.
- Netting: whether overages on one SKU offset losses on another.
- Process: how you give notice, and how the credit is paid.
Accept an allowance measured annually, on absolute losses at landed cost, with a clear credit above it. Have a lawyer review the final terms. This article is practical guidance, not legal advice.
How do you run your own audit of a 3PL?
Once or twice a year, check the count yourself instead of relying on reports. A sample audit takes a day.
- Agree on a count date and a cutoff time, so receipts and shipments are paused or logged for the counted SKUs.
- Pick 25 to 40 SKUs: your top sellers, your highest landed cost, a few slow movers and a few chosen at random.
- Count sheet-to-floor: take SKUs from the 3PL report and confirm each one in its bin.
- Count floor-to-sheet: pick bins on the shelf and confirm each one appears in the report with the right SKU and quantity.
- Count blind, either on site or by live video with the warehouse team, and compare with the system only after the count.
- Write up each variance with its cause, the correction and who owns it.
If the count keeps slipping between audits, signs you need a new 3PL lists the warning signs that justify an audit sooner.
How we keep counts in step with Shopify
We receive each inbound delivery within 24 hours, count it against its packing list and photograph it on arrival. It's typically in your sellable inventory in less than 1 business day, and our native Shopify app syncs stock to Shopify in real time. Orderfy WMS, the proprietary inventory software we built in-house for Shopify and Amazon sellers, shows your inventory and products in one place and tracks every order at every stage. The 99.9% rate we track in Orderfy WMS is order accuracy, not inventory accuracy, so run the reconciliation above with any 3PL you consider, us included.
Frequently asked questions
Above 99%, measured on cycle counts for your own SKUs. DCL Logistics' June 2026 guide puts the industry benchmark above 99%, and some warehouses report 99.9% at the location level. Find out how each rate is measured before you compare two providers.
For unit accuracy, add up the absolute differences between counted and system units across the SKUs counted, divide by the system units and subtract from 1. For location accuracy, divide the number of locations that match by the number of locations counted. Use absolute differences so overages and shortages don't cancel out.
A common schedule is monthly for fast-moving and high-value SKUs, quarterly for mid-range SKUs and twice a year for slow movers. Event counts after a short pick or receiving discrepancy matter as much as the schedule, and the monthly count log shows whether both happen.
Compare the 3PL's on-hand by SKU with Shopify's on-hand quantity, which includes committed units on unfulfilled orders. Then roll the month forward: received, shipped, returns restocked and adjustments. Investigate any SKU where the two sides don't match.
The contract decides. Agreements set some mix of a shrink allowance, a liability cap, a valuation basis and a notice window, so read those four terms before you sign.
Get a quote from Orderfy
If you're comparing 3PLs and want inventory you can verify, request a quote and we'll walk you through how Orderfy WMS shows stock and orders for your SKUs.