• Theft
• Spoiled/broken products
• Customers taking a product then browsing for another hour before checking out
• Customers buying multiple flavours of a product with the same price but different UPCs, which the cashier rings up by scanning the first product then hitting "times 10"
• There is stock on the shelf, but it's hidden behind something else or out of reach
• There is stock in the store, but not on the shelf (many retailers don't track backroom → shelf stocking)
• Product is stocked in multiple locations in the store, one of which is empty
• Plus all the usual data issues caused by wrong barcode scanned, data entry error, out-of-date information about units per box, etc
Those issues are all small, but still significant:
• For slow-moving products, being a few units off can mean the difference between out of stock and 1 month stock remaining.
• Even for fast-moving products these errors add up over time, you never really get a ground-truth event to reset the error drift. Stocktake and out-of-stock help but are infrequent and not a perfect reflection of reality.
There's a big unsexy industry working on this problem with data and human checks. The economics of robots, drones, smart shelves, and smart carts don't seem competitive right now. When you have 10k stores in the US, the expense is massive.