October 8, 2026

Why store and online stock never match, and how retailers fix it

Reservations, returns, transfers and delayed updates can all explain why stock figures differ, and the right checks help retailers resolve genuine mismatches.

Amrita Bhambhani

Why store and online stock never match, and how retailers fix it

A retailer can hold 12 jackets in its Manchester shop and show only seven as available to buy.

The shop has 12 jackets on hand. 3 are reserved for orders and 2 are damaged or awaiting inspection, which leaves 7 available for sale, and customers see that figure online. Both figures are correct.

A genuine discrepancy begins when a stock event is recorded wrongly or has yet to reach another system, such as a sale travelling to the central record, a reservation left after a cancelled order, a return in processing or a transfer missing from its destination.

Unified inventory management brings these stock events into one shared view and applies the same rules to the quantity available for sale, so a retailer can trace any discrepancy to the event that caused it and correct the record before another order is affected.

This article looks at five common causes of retail stock discrepancies and the controls retailers can use to address them.

Why does online stock differ from store stock?

Online stock usually represents sellable availability, and a store system may display total on-hand stock or a locally calculated balance. Committed orders, active reservations, unavailable units, channel buffers and update timing can therefore produce different figures. A genuine mismatch exists when the physical record or a connected system misses an event such as a sale, return or transfer.

Three situations produce different store and online figures, and they call for different responses.

Category

Example

Needs correction?

Explainable availability difference

A jacket is on the shelf but committed to a click-and-collect order

Only if the rule or label is unclear

Genuine stock discrepancy

The record shows a jacket that is missing from the shop

Yes

Update delay or failure

The point-of-sale (POS) system recorded a sale but the ecommerce view still shows the earlier balance

Yes, when freshness exceeds the agreed limit or the event failed

A 2026 peer-reviewed study in the Journal of Business Logistics shows that stock-record inaccuracy remains measurable in current UK retail. The researchers analysed about 24,000 SKUs (stock keeping units, the product codes a retailer tracks) across 11 stores of a major UK grocery retailer, drawing on 150,000 stock counts and roughly 22 million daily sales and stock-movement records. The sales benefit of a store-wide count concentrated among items where the system showed more stock than was physically present, which is the version of mismatch most likely to leave a unit visible online after the location has run out. The audit finding comes from a single matched pair of stores at one retailer, so it describes that setting.

What is the difference between stock on hand, reserved stock and available stock?

Stock on hand is the total quantity recorded at a location. Reserved or committed stock is part of that quantity already held for known demand. Available or sellable stock is the quantity eligible for a new purchase after commitments, unavailable units and applicable channel rules have been deducted.

Retailers and platforms label these states differently. This article treats committed and reserved units as one state, because both are held for known demand.

State

Meaning

Eligibility for an online scale

On hand or total quantity

Full quantity recorded at the location

Only after other states are considered

Reserved or committed 

Held for a basket, order or fulfilment task under the retailer's policy

No

Unavailable

Damaged, under inspection, quarantined or otherwise blocked

No

Incoming or in transit

Moving towards the destination and awaiting receipt

Usually no

Scalable or available

Eligible for a new promise under the channel's rules

Yes

A simplified calculation shows how the states combine. The channel buffer is a quantity a retailer holds back from a channel, often where store records are less reliable, to limit exposure to overselling.

Sellable availability = eligible on-hand stock - committed or reserved units - unavailable units - channel buffer

Applied to the Manchester jacket, the calculation runs as follows.

Jacket stock at the Manchester shop

Units

Recorded on hand

12

Committed to existing orders 

-3

Damaged or under inspection

-2

Sellable before any channel buffer

7

The store record shows 12 and the website offers seven, and both figures describe the same inventory.

Shopify's inventory states follow this structure: on-hand stock combines available, committed and unavailable units, and incoming stock is tracked separately.

What causes inventory mismatches in retail?

Retail inventory mismatches usually come down to five things: the stock record is wrong, a reservation has not been handled correctly, a return is in the wrong stock state, a transfer has not been fully recorded, or an update between systems has gone wrong.

The physical stock record has drifted

The quantity in the system can gradually move away from what is actually in the store. A receiving mistake might add the wrong number of units, a damaged item might never be written off, or a manual adjustment might be made against the wrong variant or location. Loss and missed scans add to the difference over time.

Once the source record is wrong, synchronising it more often will not help. Every channel will simply receive the wrong number faster. Regular stock counts are what bring the record back in line with the physical stock.

A 2026 UK grocery study found that the sales benefit from stock counts was concentrated among products where the system overstated the amount of stock available. That gives retailers a useful way to prioritise which products to count first.

The reservation lifecycle is incomplete

A reservation changes how much stock can be sold even though the item has not physically moved.

If a store has 12 units and three are reserved for click and collect, all 12 may still be in the building, but only nine are available for another order. The mismatch comes when the order changes and the reservation does not change with it. A cancelled order can leave stock tied up, for example, while an expired basket can continue reducing availability long after the customer has left.

Retailers need rules for when a reservation is created, how long it lasts and what releases it. When an order is completed, the reservation also needs to be removed as the physical stock is consumed so that the same order does not reduce availability twice.

Microsoft documents this behaviour with soft reservations, which reduce available-to-reserve stock without changing the physical quantity. It also notes that the process for removing a reservation can fail because of an incorrect ID, internet issue or broken connection.

A return is in the wrong stock state

Returned stock goes through more than one stage before it can be sold again. The customer can request a return, receive a refund, send the item back and have it physically received before the retailer has decided whether the item is fit for resale.

That distinction changes the stock figure. A refund does not put a unit back into inventory. Physical receipt confirms that the item has returned, and inspection determines whether it goes back into sellable stock or into damaged or non-sellable stock.

If the inspection result is never recorded, the item can remain in a holding state. If it is marked as sellable too soon, it can appear online before anyone has confirmed its condition.

A transfer has not been recorded the same way at both locations

Stock moving between stores has to leave one inventory before it becomes available in another.

The origin records the units as dispatched, they remain in transit while they are moving, and the destination records what arrives. The quantity received may be lower than the quantity sent if something is lost, rejected or cancelled along the way.

Shopify, for example, keeps accepted, rejected and cancelled quantities separate when a transfer is received. A partially received transfer stays open until the remaining units are accounted for. Keeping these stages distinct prevents stock in transit from being counted as sellable in two locations at once, which is central to multi-store stock management.

An update between systems has gone wrong

The stock can also be correct in one system and wrong somewhere else because the latest update has not made it across.

A sale completed at the till may take time to reach the central inventory system. During that gap, the POS has already removed the unit while another channel can still see the older quantity. Microsoft documents this situation in its POS guidance, where a headquarters stock lookup can return one unit more than the store actually holds because a recent sale has not reached the central system yet.

Updates can also be duplicated, received in the wrong order or lost altogether. AWS describes the risk of a stock change being saved to a database while the message carrying that change to another system fails. RabbitMQ documents how a message can be delivered again after a connection failure, which means the same stock movement could be processed twice unless duplicates are recognised.

There are simpler failures too. An older update can overwrite a newer one, or an update can be rejected because the product, variant or location does not match the record expected by the receiving system.

The table below maps these five causes to the stock discrepancy they create and the control used to address it.

Cause

Symptom

Primary control

Record drift

The website lists a unit that is missing from the location

Targeted stock count and auditable adjustment

Reservation failure

A store sells a unit already promised online, or cancelled stock stays unavailable

Rules for creating, converting, expiring and releasing holds

Return-state error

A received item stays invisible, or a damaged item becomes sellable

Distinct receipt and disposition states

Transfer-state error

Stock appears at both locations or at neither

Origin, in-transit, destination and variance states

Failed update

Each system shows a different balance

Durable events, safe retries, version control and reconciliation

How do POS, OMS and WMS systems keep inventory updated?

Point-of-sale (POS), order management (OMS) and warehouse management (WMS) systems keep inventory current by publishing the events they control. The POS records store transactions, the OMS records reservations and order demand, and the WMS records warehouse movements. A governed inventory or availability layer applies those changes and calculates the quantity each channel can safely offer.

A common pattern assigns each system the events it controls.

Systems

Events commonly contributed

POS

Store sale, return, refund and inventory adjustment

OMS

Order commitment, allocation, cancellation and release of held units

WMS

Receipt, hold, pick, despatch, count, damage and warehouse transfer

Inventory or availability layer

Normalised balances, calculated sellable availability and channel publication

An ERP, commerce platform or dedicated inventory service can own the consolidated balance, and the committed quantity can combine contributions from an inventory management system and an OMS. The control objective stays constant: one accountable owner for each event, stable identifiers and one governed availability calculation.

Updates reach channels by three routes.

  • Real-time query: the channel requests the current central calculation, as in Microsoft's Inventory Visibility service, which lets Commerce channels query, reserve and adjust inventory in near real time.

  • Event-driven update: the source sends each change and consumers update their own views.

  • Scheduled batch: updates move at set intervals and carry an expected delay, as in Commerce headquarters, which exchanges data with channel components through scheduled jobs.

A retailer can use all three, and each route needs a measurable freshness target, such as a maximum delay from source event to channel update, and an owner for exceptions.

Fynd OMS article diagram

The diagram follows each source event through the availability layer to every channel, with failed updates routed to an exception queue that has a named owner.

See how Fynd can help your business

Talk to our team to modernise your retail and ecommerce operations.

What is unified inventory management?

Unified inventory management combines stock events from stores, warehouses, orders, returns and transfers into a governed inventory view. Shared SKU, location and state definitions allow every channel to calculate current sellable availability from consistent data while operational systems keep their specialised roles.

The definition rests on three layers.

  1. Shared definitions: the same meanings for SKU, variant, location and inventory state in every system.

  2. Reliable events: every sale, reservation, receipt, return, transfer and adjustment has an accountable source and a traceable ID.

  3. Governed availability: channels calculate from the same base balance using agreed rules for the requested fulfilment method.

This arrangement gives omnichannel inventory management a single view of inventory: a trusted operational picture with traceable inputs. Several source systems can contribute to it, and channel buffers or fulfilment eligibility can still produce different published quantities from the same base record. Retail inventory visibility therefore means that every figure has a known calculation and a traceable cause. Physical verification remains part of the arrangement: software records the events it receives, so a loss or damage that nobody has logged surfaces through a count or a later transaction.

Microsoft's Inventory Visibility documentation frames the aim as an accurate, holistic view of inventory across all channels and locations that retailers can query, reserve against and adjust in near real time.

How can retailers synchronise stock across channels?

Retailers synchronise stock by standardising item and location identifiers, assigning one owner to each inventory event, sending changes through durable integrations, making retries safe, modelling reservations, returns and transfers explicitly, and reconciling source transactions with the quantities published to every channel.

Online and offline inventory sync depends on six controls, each mapped to a cause above. Together these controls put unified inventory management into practice and keep inventory synchronisation measurable.

  1. Standardise identifiers and event ownership

Use stable SKU, variant, location, order and transfer identifiers, and assign one system as the authoritative source for each event type. An unknown mapping goes to a quarantine queue for correction, so that channels apply validated mappings.

  1. Make inventory events durable and traceable

Give every event a unique ID, source transaction, quantity, location, reason and timestamp. Store the business change and a recoverable notification record together, which is the transactional outbox pattern, so that every saved change has a message waiting to be delivered.

  1. Make retries safe and protect sequence

Consumers record the events they have applied, which makes duplicate delivery harmless; RabbitMQ and AWS both recommend this idempotent design. Version or sequence checks keep an older event from replacing a newer state. Temporary failures retry automatically and persistent failures move to an exception queue with a named owner.

  1. Govern the reservation lifecycle

Define when availability is held, give each temporary hold an expiry rule, convert or offset the hold when the order advances, and release it after cancellation, payment failure or expiry. In Microsoft's design, the offset triggers when an order line reaches a hard reservation status or beyond.

  1. Model returns and transfers as state transitions

Returns move through requested, received, inspected and final disposition states. Transfers move through origin commitment, despatch, in transit, receipt and variance resolution. Each transition records who acted, when and for how many units.

  1. Reconcile systems and physical stock

Compare POS sales, OMS commitments, WMS movements and published availability by SKU and location. Use targeted counts where records show repeated errors or system-overstated stock, and correct each discrepancy through an auditable adjustment with a reason code.

  1. Measure each control

A peer-reviewed study by Glock, Syntetos and Rekik combined a literature review, interviews with 25 retail executives and a workshop of 46 retail professionals. It found that practices for measuring and reporting inventory-record accuracy vary considerably across the sector, and it proposes attributes for good error measures. Each retailer therefore benefits from stating its own definitions, tolerances and direction of error, and the table suggests a starting set.

Control area

Suggested measure

Physical record

Exact or tolerance-based SKU and location accuracy, with shortage and overage units reported separately

Event freshness

Median and 95th-percentile delay from source event to channel

Reservation health

Holds past expiry and failed releases or offsets

Return and transfer integrity

Items waiting too long in inspection, in transit or in variance states

Customer impact

Stock-related short picks and cancellations

Integration health

Failed, retried, duplicated and quarantined events by source

How can retailers prevent overselling?

Retailers prevent overselling by calculating reservation-aware sellable availability and reducing that quantity when a hold succeeds. The order should proceed only after the requested units are reserved, and every cancellation, payment failure or expiry should release the same commitment so that availability returns to its earlier level.

The control sequence runs in seven steps.

  1. Query sellable availability for the SKU, location and fulfilment method.

  2. Attempt a reservation for the requested quantity, validated against available-to-reserve stock.

  3. Confirm the order when the reservation succeeds, unless the retailer has an explicit backorder policy.

  4. Convert or offset the temporary reservation when the order creates confirmed demand.

  5. Release the commitment after cancellation, failed payment or expiry.

  6. Recalculate and publish the new quantity to every channel.

  7. Send failed releases and offsets to an exception queue for reconciliation.

A product-page stock message reflects a calculation made at one moment, and a reservation secures the unit when the shopper commits to buy. Two order-taking systems reading the same availability figure can each promise the last unit; a reservation service prevents the double booking by validating availability and deducting the reserved quantity in one step. A location or channel buffer can limit exposure where store inventory accuracy is weaker, and retailers can track unavailable but uncommitted units alongside stock-related cancellations to keep the buffer proportionate.

Real-time inventory availability therefore combines a measurable freshness target, such as a maximum delay from source event to channel update, with a reservation check at the point of commitment.

Store and online stock should be explainable

The Manchester jacket shows how both figures can be correct: 12 units are on hand, three are committed, two are unavailable and seven are sellable. Consistent state definitions and a traceable availability calculation make each figure explainable, whether or not every screen shows the same number. Unified inventory management rests on four foundations: accurate source records, disciplined reservation and movement states, reliable event delivery and regular reconciliation. With those in place, each channel's quantity has a known cause and can be explained to a customer or a colleague.

If separate stock feeds are creating overselling or manual reconciliation, explore how Fynd's retail order management software connects inventory, orders and returns across online and store operations.

Book a demo

Frequently asked questions

Inventory visibility is the ability to see stock figures for stores, warehouses and channels in one place. Inventory accuracy describes whether those figures match what is physically there. A retailer can have full visibility of figures that are wrong, so the physical record, the reservation rules and the delivery of updates each need attention.

The right frequency depends on how quickly records drift, and the 2026 UK grocery study shows where drift concentrates: items with higher stock levels, frequent replenishment and perishable products had more inaccurate records. Counts can start with those lines and with items where the system shows stock that is missing from the shelf.

In most cases the existing systems stay in place. Each keeps the events it controls, and a shared availability layer applies common definitions and calculates what each channel can sell. The checks to make are whether each system can publish events with stable identifiers and accept the shared definitions.

Overselling is the customer-facing result: the retailer accepts more orders than it can fulfil. A stock discrepancy is one possible cause, alongside reservation failures and update delays that leave a sold unit visible. A retailer can also oversell from accurate records when two order-taking systems promise the last unit at the same moment.

Start with the products and locations that mismatch most often. Trace each case to one of the five causes (record drift, a reservation, a return, a transfer or a failed update), then apply the matching control from the table in this article. Stock-related short picks and cancellations show whether the fix is working.

Empower your business, every step of the way

Discover the right partners to support your business needs

More Blogs

Discover the right partners to support your business needs

Built for businesses like yours. Let’s connect

  1. 1

    Fill out the form

    Share your contact information to get started

  2. 2

    Speak to an expert

    A member of our sales team will get in touch with you

Get in touch

By submitting, you agree to our Terms of Service and Privacy Policy.