Every supermarket owner knows the two faces of the inventory problem. On one side, a customer asks for their usual brand of oil and the shelf is empty, so they buy it somewhere else, and maybe buy everything else there too. On the other, the storeroom holds cartons of a product that sold well last year and hasn't moved since, slowly approaching its expiry date with your money inside it.

Both problems have the same root cause: you can't see your stock clearly enough, early enough, to act. This guide explains how to fix that in a practical way for a single supermarket or grocery store, without a warehouse team or complicated forecasting.

Why supermarket inventory is hard

Grocery inventory has a combination of challenges that few other retail businesses face at once:

  • Thousands of products, many with low prices and thin margins.
  • Fast and uneven movement. Some items sell dozens of times a day, others once a month.
  • Perishability. Dairy, bakery, snacks and many packaged foods have short shelf lives.
  • Many suppliers, each with their own delivery days, minimum orders and credit terms.
  • Shrinkage from damage, expiry, theft and billing mistakes.
  • Loose goods sold by weight, where small errors add up quickly.

Trying to manage this from memory, a notebook or a stock register that's updated once a week doesn't work beyond a very small shop.

The foundation: stock that updates itself

Everything else in this guide depends on one thing: your system must know what you have right now. That only happens when every movement of stock is recorded as part of normal work, not as a separate task.

  • Sales reduce stock the moment the bill is completed.
  • Purchases increase stock when the supplier bill is entered.
  • Sales returns put goods back into stock.
  • Purchase returns take them out.
  • Adjustments record damaged, expired or lost goods and correct counts after a shelf check.

When billing, purchasing and stock are one system, your stock figure is always current. When they are separate, stock is always wrong, and every decision based on it is a guess. This is one of the main reasons stores move from basic billing to a full supermarket ERP.

Set up your product data properly

Inventory reports are only as good as the product list behind them. Before you rely on any stock figure, spend time on the basics:

  • One product, one record. Duplicate entries for the same item split its sales and stock across two lines, so neither is right.
  • Correct units. Decide whether loose rice is sold per kilogram or per 500 grams and stick to it, so purchases and sales are counted in the same unit.
  • Categories and brands. Grouping products lets you see stock value and sales by department, which is where most buying decisions are made.
  • Purchase and selling prices. Without a purchase price, the system can't value stock or show profit per item.
  • Barcodes on every packed product, so scanning at the counter always finds the right item.

A few days of careful setup saves months of confusing reports.

Stopping stockouts

Know what's running low before the shelf is empty

The simplest and most effective tool is a low stock alert: a list, visible every morning, of items that have fallen below a level you've set. You don't need an algorithm. For each fast-moving product, ask: how many do we sell in the time it takes the supplier to deliver, plus a small safety margin? That's your reorder level.

For example, if you sell about 10 packets of a biscuit a day and the distributor delivers every 3 days, you need at least 30 packets when you place the order, plus a buffer of perhaps 10 for busy days. Reorder at 40.

Focus on the items that matter most

You don't need reorder levels for all 3,000 products on day one. Start with your top sellers. In most grocery stores, a small share of products produces most of the sales. Your sales analysis will show which ones they are. Get those right first, then extend.

Order by supplier, on a rhythm

Group products by supplier and check low stock for each supplier on the day before their delivery. This turns ordering into a routine rather than a reaction.

Finding and clearing dead stock

Dead stock is harder to notice than a stockout because nobody complains about it. It just sits there, tying up money and shelf space.

Use a simple rule: no sale in 30 days

A slow-moving stock report that lists items with no sale in the last 30 days is one of the most valuable reports a grocery store can have. Review it every week. For each item, decide:

  • Move it: better shelf position, bundle it with a fast seller, or offer a small discount.
  • Return it: many distributors will take back slow items, especially if you ask before expiry.
  • Stop buying it: remove it from future orders.
  • Write it off: if it's expired or damaged, record it as an adjustment so your stock and profit are honest.

Look at stock value, not just quantity

Ten slow packets of a cheap item matter less than two slow cartons of an expensive one. A stock report with value per item shows where your money is actually stuck.

Reducing shrinkage

Shrinkage is the gap between what your system says you should have and what's actually on the shelf. In grocery, the usual causes are:

  • Expiry and damage that is thrown away without being recorded.
  • Billing errors, such as scanning one item and charging for a cheaper one.
  • Purchase errors, where the supplier delivers less than the bill says.
  • Theft, by customers or staff.
  • Unrecorded returns put back on the shelf without being entered.

To reduce it: check deliveries against the bill before signing, record every write-off as a stock adjustment with a reason, handle every return through the system, give each staff member their own login, and count a small group of high-value items every week rather than the whole store once a year. Over time, the adjustment reasons tell you exactly where stock is being lost.

Cycle counting instead of annual stocktakes

Closing the store for a full stocktake is disruptive and usually rushed. Cycle counting works better: count a small section every week, such as one aisle or one supplier's products, compare with the system, and correct differences with an adjustment. Over a few months you'll have counted everything, and the most valuable and fastest-moving items can be counted more often.

Valuing stock correctly

Your stock value decides your profit. If stock is valued wrongly, profit is wrong too. Purchase prices in grocery change constantly, so which price should you use? The practical standard for grocery is the weighted average cost method: each time you buy, the average cost of the item is recalculated from the old stock and the new purchase. It smooths out price changes and gives a realistic cost of goods sold. Good software calculates this automatically with every purchase, so you never do it by hand.

Handling expiry

For perishable and short-dated goods, a few habits prevent most losses:

  • Rotate stock on the shelf so older items are at the front (first expired, first out).
  • Check short-dated categories, such as dairy and bakery, daily.
  • Discount items approaching expiry early, while they can still sell.
  • Agree return terms for near-expiry goods with suppliers.
  • Record expired goods as write-offs, so you can see which products and suppliers cause the most loss.

Stores with large volumes of short-dated goods may also want batch-wise expiry tracking in their software, so each delivery's expiry date is recorded.

A weekly inventory routine

  1. Daily: check low stock alerts and place orders by supplier.
  2. Daily: record damaged or expired items as adjustments.
  3. Weekly: review slow-moving stock and decide what to move, return or stop buying.
  4. Weekly: cycle count one section and correct differences.
  5. Monthly: review adjustment reasons to spot shrinkage patterns, and review stock value by category.

How Grocer OS helps you manage inventory

In Grocer OS by Crafts Software, stock moves automatically with every sale, purchase, sales return, purchase return and adjustment, and is valued using the weighted average cost method. The stock screen shows the quantity and value of every product at any time.

The dashboard is built around the signals in this guide: low stock alerts before items run out, slow-moving stock with no sale in 30 days, top-selling products and pending supplier bills. Stock adjustments let you correct counts after a shelf check or write off damaged, expired or lost goods with a reason, and the sales analysis and stock reports can be exported to CSV.

Batch-wise expiry tracking isn't built into Grocer OS yet. If your store sells a lot of short-dated goods and needs it, our team can add it as a customization.

Stock You Can Trust

See What's Low, What's Slow and What It's Worth

Grocer OS brings POS billing, inventory, GST and accounting together, and its dashboard shows you what needs attention every day. It runs on your own hosting with no monthly subscription, and our team can customize it to the way your store works.

Explore Grocer OS →

Conclusion

Good supermarket inventory management isn't about complex forecasting. It's about three things: a stock figure that's always right because every movement is recorded, simple signals that tell you what's running low and what isn't selling, and a routine that acts on those signals every day and every week. Get those right and you'll lose fewer sales to empty shelves and less money to dead stock. For the counter side of the same system, see our supermarket POS guide and our guide to barcode billing.