You check your WMS: the count looks right. You check your ERP: it agreed five minutes ago. You check your storefront: it shows a different number. You check your second location: everything disagrees. You ran no reports, changed nothing — but something inside your system handoffs has drifted. Here is how to find it and fix it.
Key Takeaways
- Inventory pool count mismatches across locations are almost always a location-level sync or pool boundary problem — not a data entry problem.
- The fastest diagnostic sequence: WMS location count → WMS-to-ERP sync handoff → ERP-to-storefront allocation rules → storefront pool mapping.
- Most teams start at the storefront and work backward. The failure is almost always upstream.
- If the mismatch affects more than one location or recurs after sync cycles, treat it as integration debt — schedule an Integration Foundation Sprint.
What "Inventory Pools Showing Different Counts Per Location" Actually Means in the Field
The mismatch is almost always a location-level sync failure or a pool boundary definition mismatch — not a data entry error. In multi-location retail stacks, each system tracks inventory for the same physical location using different pool definitions, sync schedules, and allocation rules. When those definitions diverge, the counts drift apart without triggering an obvious alert.
In our experience working across fragmented WMS/ERP/storefront stacks, this is the pattern teams encounter most often: the WMS, ERP, and storefront are each working from a slightly different definition of which inventory counts as available for the same SKU at the same location. No single-system audit catches it because every system is internally consistent.
A quick definition: an inventory pool is the set of inventory that a system counts as available for a given location and SKU. A shared pool means multiple systems count the same physical inventory. A location-specific pool means each system or channel is counting a subset of that physical inventory for a specific purpose — ecommerce availability, BOPIS allocation, in-store transfer reserve.
The harder version of this problem is when two locations each show a different pattern of disagreement. Location A: WMS and ERP agree but storefront is off. Location B: all three disagree. That multi-location variation is qualitatively harder to troubleshoot than a single-location discrepancy — and it almost always points to a structural sync problem rather than an isolated data entry event. For a broader view of how these mismatches propagate across the full stack, see the multi-location inventory cascade.
Step 1 — Check the WMS Location Count First
The WMS is the most granular and most frequently updated record of physical inventory at each location. If the WMS count is correct, the discrepancy originates in the WMS-to-ERP handoff — not in the data itself. Audit the WMS count before touching anything else.
How to run this check:
Pull a real-time location-level count from the WMS for the SKU in question at the specific location. Then check when that count was last updated — has a receiving event, an adjustment, or an allocation changed the WMS since the last sync cycle? Finally, check the WMS sync or export log for the last outbound transmission timestamp.
Key diagnostic rule: If the WMS count differs from the ERP count for the same location and SKU, the WMS-to-ERP sync handoff is the suspect. If the WMS and ERP agree but the storefront does not, the ERP-to-storefront handoff is the suspect. Never assume the system showing a different number is the one with bad data.
Where this fails in practice: Location-level filter rules in the middleware or integration layer are a common root cause of WMS ERP storefront inventory mismatch in multi-location environments. A warehouse reclassification, a new sub-location added during a system migration, or a middleware config change can exclude a specific location's inventory from the outbound sync without disabling the sync job itself — the WMS updates normally, the ERP never receives the event, and the storefront displays whatever the ERP last synced. Nobody finds it until the inventory drift becomes visible to operations or customers.
The common pattern in multi-location inventory sync failure: teams discover the mismatch at the storefront level (an oversell, a stockout complaint) and work backward. The WMS-to-ERP handoff is rarely the first place teams look — but it is the most common place the problem actually lives.
Step 2 — Audit the WMS-to-ERP Sync Handoff
If the WMS count is correct but the ERP shows a different number, the sync handoff between WMS and ERP is the failure point. This is the most common location of inventory pool drift in multi-location stacks.
How to run this check:
Pull the WMS outbound sync log and the ERP inbound receive log for the same SKU and location. Compare timestamps. If the timestamps show a gap of more than one sync cycle, the sync window is the problem. If the timestamps align but the quantities differ, a filter rule or manual override is the suspect.
Common sync failure modes in multi-location inventory management:
- Batch window too wide for order velocity: The sync runs every four hours but order velocity at one location means the WMS has updated multiple times between cycles. The ERP is always working from a stale count.
- Location-level filter excluding certain SKUs: A filter rule in the middleware or integration layer excludes certain location and SKU combinations from the sync. The WMS updates; the ERP never receives the event.
- API throttling causing skipped sync cycles: A high-volume sync API is throttled during peak order periods, silently skipping cycles. The ERP falls behind with no error flagged unless someone checks the missed-cycle log.
- Manual overrides in ERP that the WMS does not know about: A user adjusts inventory directly in the ERP, bypassing the WMS. The WMS count and ERP count are now counting different inventory events, and nothing will reconcile them until the override is identified.
Sync log comparison tip: The most useful comparison is simultaneous — pull the last outbound timestamp from the WMS and the last inbound timestamp from the ERP for the same SKU and location on the same screen at the same time. Any gap in that comparison is a lead on the root cause. The inventory and fulfillment operations troubleshooting guide covers the broader inventory counts drifting across systems pattern, including the sync log comparison method.
Step 3 — Verify ERP-to-Storefront Allocation Rules
If WMS and ERP agree but the storefront shows a different availability, the ERP-to-storefront allocation rule is the suspect. ERP may be pushing the correct total count to the storefront, but the storefront may be applying a channel or fulfillment-method filter that changes what the customer sees.
How to run this check:
Ask the storefront which location pool it is mapped to pull from for the SKU in question — not just the total available quantity. If the storefront is mapped to a different location pool than the one ERP is updating, the inventory pool drift has simply shifted one layer downstream.
Common ERP-to-storefront mismatches causing store inventory count discrepancy:
- In-transit inventory is included in the ERP available count but excluded from the storefront display. The customer sees fewer units than are actually available for sale.
- Store-level pickup pools are mapped to the wrong location in the storefront. A customer at Location B's store is pulling from Location A's available count — until Location A's stock runs out.
- A channel allocation rule in the ERP reserves a percentage of inventory for a specific sales channel (ecom vs. in-store), and the storefront is showing the post-reservation number rather than the gross available count.
Decision checkpoint: Determine whether this is a configuration fix your team can make in the storefront admin — updating the location pool mapping — or whether it requires ERP admin access and a middleware configuration review.
Step 4 — Check Pool Boundary Definitions Across All Systems
If WMS, ERP, and storefront all show different counts and the sync handoffs check out clean, the problem is a pool boundary mismatch: each system is tracking a slightly different inventory pool for the same SKU and location. This is the hardest failure to diagnose because every system is internally correct.
How to run this check:
For the SKU and location in question, document exactly what each system includes in its available count:
| Inventory State | WMS | ERP | Storefront | |---|---|---|---| | In-transit | Included | Excluded | Excluded | | Allocated | Included | Included | Excluded | | Received, not yet counted | Included | Excluded | Excluded | | Reserved for BOPIS | Included | Included | Included |
Fill in each cell with whether that system includes that inventory state in its available count. If any boundary definition differs between systems, the counts will diverge on every inventory event — and the next sync will not fix it because the systems are not counting the same pool.
This is the failure mode that no single-system audit will ever surface. You have to look at all three systems simultaneously and compare definitions. The diagnostic guide on inventory drift covers how to distinguish between a boundary mismatch and a simpler sync timing issue in more detail.
How to Tell If You Need an Integration Fix Versus a Process Fix
Teams often try to solve an integration problem with process changes and vice versa. Here is how to know which one you have and what to do about it.
Integration problem indicators — this is an inventory pool drift problem requiring integration work:
- Same location and SKU showing the same discrepancy pattern after every sync cycle.
- Middleware or API logs showing skipped or throttled sync events.
- Pool boundary definitions drifting after a system update or new channel addition.
- Two or more locations showing different discrepancy patterns simultaneously.
Process problem indicators — this is a store inventory count discrepancy requiring operational changes:
- Discrepancy tied to a specific receiving event or manual override.
- Human-initiated transfers that bypass the WMS entirely.
- Location counts updated manually in ERP without corresponding WMS events.
| Indicator | Integration Fix | Process Fix | |---|---|---| | Scope | Affects 2+ locations | Single location, single event | | Recurrence | Recurs after every sync cycle | Resolves after one manual reconcile | | Root cause | Pool boundary mismatch or skipped sync cycles | Human bypass or manual override | | Fix path | Integration audit and source-of-truth rule redefinition | Close the bypass; update SOPs | | Recommended engagement | Integration Foundation Sprint | Internal ops review |
The most costly version of the wrong approach: using process fixes to paper over an integration problem. Manual reconciliation of numbers that drift every sync cycle is a standing cost with no endpoint. Conversely, escalating a human bypass of the WMS to an integration sprint will not fix a process gap — and the integration architect will simply rebuild the broken handoff that someone already decided to skip.
The Pool Drift Sequence: Your First-Fix Checklist
Use this checklist in order. Do not skip steps — each one eliminates a layer of the diagnostic problem.
- [ ] Pull the WMS real-time location count for the SKU at the affected location. Is the WMS count what you expect? If yes, move to Step 2.
- [ ] Compare the WMS outbound sync log timestamp to the ERP inbound receive log timestamp for the same SKU at the same location. Is there a gap of more than one sync cycle? If yes, the sync window or a filter rule is the suspect.
- [ ] Ask the storefront which location pool it is mapped to for this SKU. Does that pool match what the ERP is actually updating? If the mapped pool differs from the active pool, you have found the storefront layer mismatch.
- [ ] Document the pool boundary definitions across all three systems for this SKU and location. For each of in-transit, allocated, received-not-counted, and BOPIS-reserved: does each system include or exclude this state from its available count? Any difference in boundary definition means the systems are counting different pools.
If you complete this checklist and find a persistent mismatch across two or more locations, or a confirmed pool boundary mismatch, the structural fix is an Integration Foundation Sprint. It is designed exactly for these failure modes — the ones that no single-system audit can surface and no manual reconciliation can permanently resolve.
If the discrepancy is isolated to a single location, tied to a specific event, and does not recur after you reconcile the count, treat it as a process gap. Close the bypass that caused it and update your SOPs for that location.
FAQ
Why are inventory pools showing different counts per location across WMS, ERP, and storefront?
The most common cause is a location-level sync failure or pool boundary mismatch in multi-location inventory management setups. Each system tracks inventory using slightly different definitions of the same pool — what counts as available, what counts as allocated, and what counts as in-transit. When a count event occurs at one location, the three systems update on different schedules and sometimes include different inventory states in their available count, making the numbers diverge without any single system knowing there is a problem.
Which system should I check first when I discover a location-level count discrepancy?
Start with the WMS at the specific location. It is the most granular record and the most frequently updated. Pull the WMS count for the SKU and location, then check when that count was last synced to the ERP. If the WMS count is correct but the ERP disagrees, the sync handoff is the failure point — not the data itself.
How do I trace a multi-location inventory discrepancy without escalating to IT?
Pull the same SKU at the same location from all three systems simultaneously and note the exact timestamp and timezone for each. Then check the last sync timestamp in WMS and ERP for that SKU. If the timestamps show a sync gap, the discrepancy is a timing issue. If the timestamps align but the numbers differ, check whether each system is using the same pool boundary definition — in-transit, allocated, received-not-counted — for that SKU at that location.
When does an inventory count discrepancy become an integration problem?
If the same location and SKU shows a count discrepancy after every sync cycle — or if two or more locations are showing different discrepancy patterns simultaneously — the root cause is structural. A pool boundary mismatch or persistent sync lag will not resolve with manual reconciliation; it requires an integration audit and likely an Integration Foundation Sprint to redefine source-of-truth rules and sync architecture.
Can a pool boundary mismatch exist even when all three systems are technically correct?
Yes. This is the most insidious form of the problem. WMS counts in-transit inventory as available; ERP excludes in-transit; storefront includes only store-pickup inventory for that location. All three statements are correct within each system's definition of the pool — and all three produce a different available count for the same physical inventory. No system audit will surface this because it lives in the gap between system definitions, not inside any single system.
Turn the note into a working system.
The Integration Foundation Sprint is built for omnichannel operators dealing with storefront, ERP, payments, and reporting gaps that keep creating manual drag.
Review the Integration Foundation SprintTkTurners Team
Implementation partner
Relevant service
Review the Integration Foundation Sprint
Explore the service lane
