ClearStock is live on the Shopify App Store.Install free →

← All blogs

Guides8 min read

Stock reconciliation: making book stock and counted stock agree

Stock reconciliation explained — closing the gap between book stock and counted stock across Shopify, POS, 3PL, and spreadsheets, with a worked routine.

InventoryX is in development and not available today. ClearStock is the live Shopify app.

Short answer: stock reconciliation is the routine that closes the gap between what your books say you own and what a count says you have — and it's a routine, not an event. A count produces a variance; reconciliation explains it, corrects it, and closes it with a documented cause. Skip the "explain" step and every count becomes a fresh mystery, because the same errors simply reappear. Here's the state-by-state routine for reconciling across Shopify, POS, a 3PL, and a spreadsheet.

The states, in order: how reconciliation actually moves

Reconciliation is a small state machine. Every variance travels through it — or stalls:

  1. Book stock. What your system says: Shopify's on-hand for each SKU and location. This is the number the storefront sells against. (Shopify's count docs define the same anchor — counted quantities check against recorded on-hand — Shopify Help Center, "Stock counts," accessed October 2026.)
  2. Counted stock. What a count, receipt, or system export says is physically there. One source of truth per SKU per location — not three.
  3. Variance. Counted minus book. Exists, formally, the moment you have both numbers — whether or not anyone has looked at it.
  4. Investigated. The variance has a cause: receiving error, unrecorded damage, POS timing, sync lag, theft. The cause lives in writing, not memory.
  5. Adjusted. Book stock corrected to counted stock, with the reason attached to the adjustment. Now the books match the shelf.
  6. Closed (or re-opened). The variance either has a documented cause and a corrected number — closed — or it's still unexplained, in which case it stays open and reappears on the next count. A variance closed without a cause is not closed; it's scheduled to recur.

The most common failure in small operations is jumping from state 3 to state 5 — applying the correction and moving on. That fixes the number for today and guarantees the same variance next quarter, unexplained.

The rule that makes multi-source reconciliation possible

Most stores don't have one book stock — they have several: Shopify's admin number, the POS terminal's view, the 3PL's WMS export, and a buying spreadsheet updated by hand. The reconciliation rule:

Each source answers a different question; never average them, always trace them.

  • Shopify admin — the sellable truth per location. This is the number your storefront commits against, so it's the target of reconciliation: everything else reconciles toward it.
  • POS — same data, different timing. A till that sold two units offline and hasn't synced shows a temporarily different number. Timing differences aren't variances; they resolve on sync. (The POS-specific sync failures are their own topic — the POS inventory guide covers them — and they're the most common source of fake variances. Shopify's location docs treat each location as its own stock pool; Shopify Help Center, "Locations," accessed October 2026.)
  • 3PL WMS — physical truth at their warehouse, lagging your Shopify number by sync frequency and receiving SLA. Reconciling a 3PL's numbers against Shopify is a discipline of its own, laid out in the 3PL inventory management guide; the short version is that you reconcile deltas — receipts, shipments, adjustments since last-known-good — not raw totals.
  • Your spreadsheet — a snapshot of book stock at whatever moment you exported it. It reconciles toward Shopify the way a photograph reconciles toward a person: by timestamp. If your buying math lives in a sheet (the template guide shows the pattern), refresh its stock column on a schedule and note the timestamp — a sheet that silently holds last month's quantities manufactures variances that don't exist.

The practical sequence, then: pick one authority per SKU per location (for most stores, Shopify), and reconcile every other source to it, in a fixed order — POS syncs first (they're cheap), then 3PL deltas, then the spreadsheet refresh.

The worked routine: one SKU, start to finish

A bike-parts retailer counts its helmet shelf at close of day. Here's one SKU through the full machine:

  • Book stock (Shopify): 41 units.
  • Counted stock: 36 units. Variance: −5 (state 3).
  • Investigate before adjusting (state 4). The trail: a PO of 24 units was received four days ago — check the receipt. It was logged as 24 in Shopify, but the receiving log shows the carton held 19 and the supplier's packing slip said 19. Root cause: the receipt was keyed as 24 instead of 19. Nothing was lost; the book was born wrong.
  • Adjust (state 5): correct the receipt — 19, not 24 — and the variance resolves itself: book becomes 36, matching the shelf. The adjustment reason reads "receipt error, PO INV-2027-206, keyed 24 vs. packing slip 19."
  • Close (state 6): documented cause, corrected number, and a process fix — receive against the packing slip, not against the PO expectation.

Now the counterfactual that happens every day in real stores: the retailer applies "−5" with no reason, the supplier's actual shortfall goes undiscovered, and next month's reorder is planned against a phantom 5 units — a gap nobody will be able to explain because the paper trail said "adjusted." The correction and the investigation are not optional companions; the investigation is the point.

Note what this example shows about magnitude: a 5-unit variance on one SKU is small, but a receipt error corrupts by wholesale amounts — the same mistake on a 240-unit receipt is invisible in a spot count and enormous in your coverage math. Which is why the investigation order below starts with the biggest dollar variances, not the biggest unit ones.

The weekly reconciliation routine (45 minutes)

For stores without a 3PL, this is a Friday-afternoon slot; with a 3PL, it absorbs into the weekly 3PL reconciliation in the guide linked above:

  1. Clear POS sync lag. Confirm all tills are synced; timing gaps resolve here before they become fake variances.
  2. List open variances. From your last counts and any spot checks: SKU, counted vs. book, date. Unresolved items from last week go to the top.
  3. Investigate top-dollar first. Sort open variances by dollar impact (units × cost), not unit count. Chase the top three to a documented cause.
  4. Adjust with reasons. Apply corrections in Shopify with the cause in the adjustment note — the adjustment history is your audit trail, so reasons today are evidence later in the native inventory reports (Shopify Help Center, adjustment history, accessed October 2026).
  5. Refresh the spreadsheet. Re-export stock into any buying sheet, timestamped. No stale snapshots carried into next week's reorder math.
  6. Log patterns. Once a quarter, read the log for repeats: same SKU, same location, same cause. Three receipts short in a row is a supplier conversation; one location always off is a process problem there.

The log is a simple table — date, SKU, variance, cause, fix — and it's the difference between a store that has discrepancies and a store that understands them. The deeper investigation workflow (root-cause taxonomy, variance math, when shrinkage is the answer) is the discrepancy guide's territory; this routine is the containment loop that feeds it.

What reconciliation can and can't fix

Honest limits. Reconciliation fixes records — it makes books match shelves and, done well, finds the process that broke them. It does not:

  • Prevent the drift. Receiving discipline, count cadence, and access controls do that. Reconciliation is the detector, not the immune system.
  • Recover unknown losses. A variance with no explainable cause after investigation is a real loss — shrinkage, damage nobody logged — and reconciliation's job is to surface and size it, not to make it unhappened.
  • Replace the count. Reconciliation runs on counted inputs. If you don't count — on a cadence set by the counts guide — there's nothing to reconcile against, and your books are unverified by definition.

Common questions

What is stock reconciliation? It's the routine of comparing book stock (what your system says) against counted stock (what a physical count or another system says), explaining any variance to a documented cause, and adjusting the books to match reality. The explanation step is the core of it — a correction without a cause is a variance scheduled to recur.

How often should I reconcile stock? Run a short reconciliation weekly — clear POS syncs, work the top open variances by dollar value, adjust with reasons, refresh any spreadsheet snapshots — and a deeper pass after every full or cycle count. Count cadence (what gets counted, how often) is its own decision; reconciliation should follow every count, whatever that cadence is.

What's the difference between a count and a reconciliation? A count produces counted quantities; reconciliation is everything after — comparing count to book, investigating the variance, adjusting with a documented reason, and closing the loop. Counting is measurement; reconciliation is making the records agree with the measurement and learning why they didn't.

How do I reconcile inventory across Shopify, POS, and a 3PL? Designate one authority per SKU per location (usually Shopify), then reconcile each other source toward it in a fixed order: confirm POS syncs first (timing gaps aren't real variances), then reconcile 3PL numbers by tracing deltas — receipts, shipments, adjustments since last-known-good — rather than comparing raw totals, which lag by design.

Should I adjust inventory to match the count even if I don't know why it's off? Adjust eventually — the storefront needs the real number — but never stop there. An unexplained adjustment fixes today's number while leaving the cause active, so the variance returns next count unexplained. Chase the top-dollar variances to a cause first; adjust the small unexplained tail with a note marking them unresolved.

Where to go next

This week: build the reconciliation log — one table, date / SKU / variance / cause / fix — and populate it with your last count's unresolved variances. Then work the top three by dollar value to a documented cause before next Friday. Once the loop is running, the two practices it plugs into are the count cadence in the inventory counts guide and the root-cause investigation in the inventory discrepancy guide — reconciliation is the connective tissue between them.