Blog/Operations
OperationsJune 14, 2026·9 min read

The inventory reconciliation SOP: keeping Shopify and your 3PL in sync

Your stock count drifts the same way your SOPs do. The difference is this one oversells products you don't have.

AY
Anand Yadav · Founder, ReccordSOP
·Last reviewed June 14, 2026

A customer orders the last unit of your bestseller. Your storefront said it was in stock. Your warehouse says that unit shipped yesterday. Now you're sending an apology and a refund, and that customer is gone. The oversell is the symptom. The disease is that your numbers stopped agreeing.

Inventory drift is the same problem as SOP drift, moved into your stock count. Your documentation drifts from how the team actually works. Your inventory drifts from what's actually on the shelf. Both lie quietly, and both cost you at the worst moment. The difference is that inventory drift lies to your storefront in real time, and your customers find out before you do.

Reconciliation is the discipline that keeps the numbers honest. This is the SOP we use with DTC brands running Shopify and a 3PL: the three numbers that have to agree, why they drift apart, the source of truth that ends the argument, the sync cadence that catches drift early, and the variance workflow that finds the cause before it compounds.

The three numbers that have to agree

Reconciliation sounds like one number matching another. It's actually three, and most oversells come from treating them as one.

  • Physical on-hand: the units actually sitting in the warehouse, the only number that's literally true. Your 3PL's WMS owns it.
  • Available-to-sell: what your storefront will let a customer buy. This is on-hand minus what's already promised to open orders, and it's the number that oversells you when it's wrong.
  • Committed: units allocated to orders that are paid but not yet shipped. Ignore this pool and you'll sell the same unit twice, once to the customer waiting on it and once to the customer who just checked out.

When these three agree, you can promise stock honestly. When they drift apart, you either oversell, because available-to-sell reads higher than reality, or you sit on dead capital and stock out blind, because it reads lower. Reconciliation is the routine of pulling all three back into agreement.

The core idea

Reconciliation isn't matching one number to another. It's keeping three in agreement: what's on the shelf, what's promised to orders, and what your storefront will sell. Oversells happen the moment those three disagree.

Inventory reconciliation SOP template

The step-by-step procedure for matching on-hand, available-to-sell, and committed stock.

Why the numbers drift apart

Drift isn't one big failure. It's a dozen small leaks, and naming them is what lets you plug them. Five cause most of it:

  • Sync gaps. Every integration between Shopify and a 3PL misses a small share of updates, commonly 1 to 2 percent, when a webhook fails or an API rate limit drops a message. Each miss leaves the two systems disagreeing by a unit or two until something forces a correction.
  • Multi-channel overselling. The moment you sell on more than one channel, Shopify plus a marketplace, wholesale, or retail, each channel can claim the same unit unless one system holds the master count. Two channels, one unit, two customers.
  • Manual adjustments. Someone fixes a count by hand in Shopify, the warehouse never hears about it, and now the manual fix is the new discrepancy.
  • Returns that never get restocked. A refund goes through, the unit comes back, and nobody adds it to on-hand. Your real stock is higher than the system thinks, and you stock out a product you actually have.
  • SKU mismatches. Your 3PL assigns its own internal codes instead of honoring your Shopify SKUs, so you maintain two numbering systems and cross-reference them by hand. Every manual cross-reference is a place to drift.

Bundles and kits deserve their own warning. A bundle isn't a unit on a shelf; it's an assembly of components whose stock has to decrement across several SKUs at once. Get the component mapping wrong and a single bundle sale drifts three counts instead of one.

Bundle and kit inventory sync SOP

How to keep component stock accurate when you sell assemblies and kits.

Pick one source of truth

The first decision in any reconciliation SOP is the one most teams skip: which system is right when two of them disagree. Without a designated source of truth, every discrepancy becomes a debate, and the loudest system wins instead of the correct one.

For most DTC brands running a 3PL, the warehouse's WMS owns physical on-hand, because it's the system closest to the actual shelf. Shopify then listens to the WMS for on-hand and owns available-to-sell for the storefront. Everything else, marketplaces, your planning spreadsheet, retail POS, reads from that chain instead of writing its own counts.

The failure mode here is two apps both pushing inventory into Shopify. When a 3PL connector and a legacy inventory app both think they own the count, they overwrite each other on a loop and your stock flickers. Audit your Shopify apps and make sure exactly one writes inventory. The rest read.

ShipBob SOPs

Configure your 3PL's WMS as the system of record for physical on-hand.

The reconciliation cadence

Reconciliation isn't a quarterly project. It's a layered cadence, with faster loops catching small drift and slower loops catching what the fast ones miss. Four layers cover it:

  • Real-time: deduct on order. The moment an order is placed, available-to-sell drops. This is the minimum, and Shopify does it natively, but verify it's actually firing across every channel.
  • Near-real-time: delta sync from the 3PL. As the warehouse receives, picks, and ships, it pushes those changes to Shopify within minutes. This is the layer the 1 to 2 percent sync gap lives in, so it's the one to monitor.
  • Nightly: full snapshot reconcile. Once a day, compare the 3PL's complete on-hand against Shopify's and correct any SKU that drifted during the day. The deltas caught here are the ones the real-time layer dropped.
  • Weekly: cycle-count audit. The warehouse physically counts a rotating subset of SKUs and corrects the system against the shelf. This is the only layer that checks the system against reality instead of checking one system against another.

Cycle counting is where the discipline pays off, and you don't count everything every week. Count by value. Your A-items, the roughly 20 percent of SKUs that drive about 80 percent of sales, get counted most often, monthly or more. B and C items get counted less. The fast movers carry your revenue and your oversell risk, so they earn the attention.

Investigate the variances

A reconciliation that only corrects numbers without finding why they drifted is a treadmill. You'll fix the same SKU next week. Every variance above a threshold gets investigated, not just adjusted.

Shopify's inventory adjustment history is the first place to look. It shows what changed a SKU's count, when, and whether a person, an order, an app, an API call, a transfer, or an import caused it. That log usually names the leak: a returns app that double-counts, a manual edit nobody mentioned, a sync that fired twice.

  • Set a variance threshold. Small single-unit drifts get corrected quietly; anything above a set unit count or dollar value gets a root-cause look.
  • Set an approval gate on large adjustments. A write-off above a threshold needs a second person to approve and post it, so a mistyped count or a shrink problem doesn't disappear into the ledger unnoticed.
  • Log the cause, not just the correction. 'Adjusted plus 12' tells you nothing next month. 'Plus 12, returns not restocked since Tuesday' tells you what to fix.

Out-of-stock communication SOP

When a count correction reveals a real stockout, this is how you tell customers without losing them.

Who owns reconciliation

Reconciliation without an owner is a report nobody reads. Three roles, even if one person wears all three at a small brand:

  • The 3PL or warehouse runs the physical counts and keeps the WMS honest. They own the only number that's literally true.
  • An ops or inventory analyst owns the reconcile itself: reviewing the nightly snapshot, investigating variances, and chasing the root cause. This is the role that turns a discrepancy into a fix.
  • Whoever can post adjustments above the approval threshold, usually the ops lead or finance, owns the sign-off, so large write-offs get a second set of eyes.

The handoff that breaks most often is between the warehouse and the analyst. The 3PL knows a count was off; the brand never hears why. Make that report a standing deliverable, not a question someone has to remember to ask.

The 3PL onboarding SOP

Set inventory-accuracy reporting as an SLA when you onboard the 3PL, not after the first oversell.

Know your accuracy number

You can't manage drift you don't measure. Inventory accuracy is the share of SKUs where the system count matches the physical count within tolerance. Most operations target 97 percent or better, and omnichannel brands need it a point or two higher because the same stock is promised across several storefronts at once.

Hold your A-items to a tighter standard, 99 percent or better, because that's where an oversell costs you a sale you were most likely to make. A C-item that's off by one rarely hurts. Your hero SKU that's off by one oversells your best-converting product during your best campaign.

  • Track accuracy by SKU class, not as a single blended number. A 97 percent blended rate can still hide a hero SKU that's consistently wrong.
  • Track oversell rate directly: orders you had to cancel or refund because the stock wasn't there. It's the customer-facing cost of drift, and it's the number leadership will care about.

Those two numbers, accuracy and oversell rate, tell you whether the cadence is working. If accuracy looks high but oversells still happen, the drift is concentrated in your fast movers, and your cycle-count frequency on A-items is too low.

Keep the reconciliation SOP current

A reconciliation SOP drifts the same way the inventory does. You add a sales channel, switch 3PLs, launch a bundle line, or swap the app that owns the count. Each change quietly invalidates a step: a sync that no longer fires, a source of truth that moved, a SKU mapping that's now wrong.

Review the SOP whenever you change a channel, a fulfillment partner, or an inventory app, and at least once a quarter regardless. This is ordinary documentation drift, and on a reconciliation SOP it shows up as the exact oversell the SOP was written to prevent.

SOP drift: why your documentation is lying to you

Why every operational doc, including this one, degrades within 90 days unless you catch it.

Where to start this week

Don't build all four cadence layers at once. Start with the one that exposes the most drift: run a full snapshot reconcile between your 3PL and Shopify, and sort the variances by size. The biggest discrepancies point straight at your worst leak, usually one app, one channel, or one SKU class.

Then designate your source of truth in writing and audit which apps write inventory to Shopify. Those two steps, the snapshot and the single writer, prevent more oversells than any amount of cycle counting on top of a broken sync.

ReccordSOP turns a process like this into a documented SOP with timestamped screenshots, and flags drift when your channels, tools, or partners change underneath it. Generate your first SOP free at reccordsop.com.

Frequently asked questions

How often should I reconcile Shopify and my 3PL?

In layers. Available-to-sell should drop in real time on every order, the 3PL should push receipts and picks within minutes, a full snapshot should reconcile nightly, and a physical cycle count should run weekly on your fastest-moving SKUs. The fast layers catch small drift; the weekly count checks the system against the actual shelf.

What inventory accuracy should I aim for?

97 percent or better as a blended target, and 99 percent or better on your A-items, the roughly 20 percent of SKUs that drive most of your sales. Track it by SKU class, because a healthy blended number can still hide a hero product that's consistently wrong.

Why does Shopify show stock I don't actually have?

Usually a sync gap, a return that was refunded but never restocked, or two apps both writing inventory and overwriting each other. Shopify's inventory adjustment history will tell you what changed the count and when, which is the fastest way to find the leak.

Should Shopify or my 3PL be the source of truth for inventory?

For physical on-hand, the 3PL's WMS, because it's closest to the actual shelf. Shopify listens to it for on-hand and owns available-to-sell for the storefront. The rule that matters most: exactly one system writes the count, and everything else reads from it.

What's the difference between on-hand, available-to-sell, and committed stock?

On-hand is the units physically in the warehouse. Committed is the units already promised to paid, unshipped orders. Available-to-sell is on-hand minus committed, the number your storefront uses to decide what a customer can buy. Oversells happen when available-to-sell is wrong.

AY
Anand YadavFounder, ReccordSOP

I built ReccordSOP after watching too many DTC ops teams lose months to undocumented workflows. These SOPs are battle-tested with Shopify operators running $1M to $50M brands.

Last reviewed June 14, 2026

Related reading