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

← All blogs

Guides9 min read

Shopify POS inventory management: drift, causes, and a reconciliation routine

Shopify POS and your online store share one quantity per location. Why the numbers drift apart, how to detect it, and a weekly reconciliation routine that holds.

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

Shopify POS does not have its own inventory. A product holds one quantity per location, and the POS app, the online store, and the admin all read and write that same number. Which means most "POS isn't updating" reports are not sync failures at all — they are one of six specific causes, and each has a specific fix. The genuinely hard part is not troubleshooting the software; it is building a routine that catches drift before a customer does.

This guide covers how the shared quantity actually behaves, the six causes that account for most drift, and a reconciliation routine built around a principle most stores miss: reconcile by value, not by unit count. Three units of a $3 card and three units of a $90 fountain pen are the same number in a variance report and very different numbers in your accounts.

One quantity, one location, three surfaces

The rules that follow from the shared-quantity design:

  • The location is the unit of truth. Every quantity dispute starts with "which location is each surface reading?" A POS session runs against one location; your online store draws from the locations you assign it.
  • A sale in either surface updates the same number, and the other surface shows it on its next refresh.
  • Offline sales queue on the device and sync when the connection returns. Until then, every other surface works from a stale number — the classic market-day overselling window.
  • Every change is auditable. Adjustment history records the quantity change, the reason, and the staff member: your first diagnostic tool, not your last resort.

The six causes of drift

Cause What you see How to detect it Fix
Session on the wrong location One location's counts go stale while another shows odd quantities Check the location in the POS session; cross-read adjustment history Set the location at session open; train staff to check it before any edit
Queued offline sales POS and online disagree for hours, then agree on their own Compare the POS order list against the admin; look for unsynced orders Verify connectivity before events; reconcile queued orders before manual edits
A third-party app also writing quantities Counts flip back, or change on a schedule nobody set List apps with inventory permissions; disable one at a time Prefer apps that read admin data over ones that rewrite quantities
Stock received at a different location Floor shows zero while the warehouse shows everything Check where the PO or transfer was received Receive into the correct location; use transfers, never manual adjustments, to move stock
Stale session or uncommitted work POS shows old numbers; a count never finished Reopen the app; look for open counts and drafts Close drafts, complete counts, treat the admin as the reference
Real shrinkage or mispick A variance that survives all of the above, repeatedly on one SKU A repeating discrepancy on the same item across two counts Count, adjust with a reason, and look for the process failure — not a sync bug

Once the first five are eliminated, the remaining differences are not software problems, and treating them as such is how stores spend a quarter chasing a "sync bug" that is really a receiving error.

Reconcile by value, not by unit count

Here is the routine's core discipline. A variance report that lists discrepancies in units will always send you to the loudest number rather than the costliest one.

Work an example. A home-goods store closes a weekly count on its drinkware section: mug A shows 31 counted against 34 expected, tumbler B shows 12 against 9. In units that is ±3 and ±3 — a wash. In value, three mugs at $28.99 is $87 of missing stock; three tumblers at $22 over-counted is $66 of phantom availability. The net is not zero: you are short $87 and long $66, and only one of those can be sold.

Rank your variances by value, then by repetition. A repeating $87 shortfall on the same SKU across three consecutive counts is a receiving problem, not a theft problem, and it is invisible in a unit-based report.

The weekly routine

Twenty minutes at close of business, four steps. Run it on the same day every week and it stops being a project.

1. Close the queue. Confirm no offline sales are pending — compare the day's POS orders against the admin's order list. Editing quantities while sales are still queued is how phantom discrepancies get invented.

2. Count one section. Not the whole store. Rotate through sections, prioritizing high-velocity and high-shrink categories. Quick count in POS handles spot checks of up to 1,000 items in a session at the time of writing; for counts that need manager review before quantities change, plan a stock count in the admin and approve it. The cadence options — cycle versus full count, and what each costs in labour — are set out in the stock take routine.

3. Rank variances by value. Export or read the count results, multiply each variance by unit cost, and sort descending. Fix the top three; ignore the rest until next week.

4. Close every open transfer. This is the step stores skip, and it is the one that prevents the largest errors. An in-transit transfer that never gets received leaves stock that exists nowhere and vanishes from availability. The full discipline — sending, receiving, partial receipts, and what to do when the count does not match on arrival — is in the inventory transfers guide.

The event and pop-up routine

Markets, fairs, and pop-ups are where drift concentrates, because they combine a temporary location with unreliable connectivity. One rule prevents most of it: never sell event stock from your main location.

  1. Before: create a location for the event, transfer stock to it, and confirm the main location's available-for-sale count dropped. Now the online store cannot sell what is in your van.
  2. During: run POS sessions against the event location. If connectivity drops, queued sales stay inside that location's pool — the main store is protected either way.
  3. After: recount at the stall before packing, adjust with reasons, and transfer the remainder back the same day. The transfer record becomes your event ledger: units out, units sold, units damaged, units returned.

Stores that skip the transfer get both failure modes at once: overselling online during the event, and a mystery gap afterwards that nobody can attribute.

Floor counting that people actually do

The reason counts slip is rarely the software. It is that counting is unpleasant, so it gets deferred. Three changes make it survivable:

  • Count at close. A count taken mid-day measures a moving target.
  • Count by physical section, not by category. Staff walk a shelf and scan what is on it; they do not navigate a taxonomy.
  • Record the reason on every adjustment. Damage, mispick, return-not-restocked, theft, correction. Without reasons, you cannot tell a process failure from a person.

Native tools cover this better than they used to — Quick count on POS, planned stock counts with approval, and an adjustment history that records staff and reason. What native still does not do, at the time of writing, is plan stock across locations: nothing tells you which store should receive the next carton, or that one location is overstocked while another keeps selling out. Those remain manual decisions.

Where a second app helps, and where it hurts

An inventory app is a second writer on the same quantities, and that is the risk. Every app installed after your counts were clean can introduce drift on a schedule you cannot see, which is why the diagnostic order above puts app audit third.

Two cases where a second app is worth it anyway: counting at scale (barcode-first tools turn a weekend into an afternoon) and dead stock on the floor. Physical retail accumulates slow stock differently: it sits on a shelf customers can see, occupying prime space. ClearStock is the app we make and it addresses exactly that: velocity and days of cover per variant, five statuses from moving to dead, an aging report, and rule-based discounts with a cap that restore prices when something sells again. It reads your data and changes prices and tags; it does not write quantities, which is the property you want in an app sitting beside POS.

ClearStock is live with a free plan covering 100 products; InventoryX, the planning layer we are building, is in development and not for sale, and no multi-location planning from us is available today.

Common questions

Why is my Shopify POS not updating inventory? In most cases it is not a sync failure. POS, the online store, and the admin read the same quantity per location, so a disagreement usually means a session on the wrong location, offline sales still queued, another app writing quantities, stock received at a different location, or a stale session with uncommitted work.

Does Shopify POS sync inventory with the online store in real time? Per location, yes, at the time of writing — a sale on either surface updates the same quantity, and the other surface shows it on refresh. The exceptions are offline mode and apps that write on their own schedule.

How often should I count? Count one section weekly on rotation, prioritizing velocity and shrink, and run a full count around year-end or an audit. The rotation catches drift while it is cheap; the full count catches what the rotation's structure misses.

How do I keep market sales from wrecking my counts? Transfer stock to a dedicated event location before you go, run the session against it, and recount and transfer back the same day. Never sell event stock from the main location.

Can I plan inventory across multiple stores in Shopify POS? Each location holds its own quantities and transfers move stock between them, which is native and auditable. Per-location demand planning and automatic rebalancing are not native, and nothing in this guide replaces them.

Next step

Open the adjustment history for your three worst-counting SKUs and read who changed what. That ten-minute exercise usually identifies the cause before any tool does. Then put the weekly routine on the calendar — one section, one variance ranking, every open transfer closed — and if the floor is carrying stock that has not moved in a hundred days, ClearStock's free plan will rank it by what it is costing you.