← All articles

Blog

How a Surabaya Distributor Cut Stockouts by Half with Odoo Inventory

A Surabaya distributor halved stockouts and freed up cash tied in dead stock after moving to Odoo Inventory with reordering rules and barcode counts. Here is the story.

3 min read
  • narrative
  • odoo

A distributor in Surabaya — fast-moving consumer goods, supplying small retailers across East Java, around 2,000 SKUs — had two problems that looked opposite but shared one cause. They were constantly out of their best-selling items, and at the same time their warehouse was full of slow-moving stock that tied up cash. Both came from the same place: they had no reliable picture of what they actually had.

The spreadsheet ceiling

Stock lived in a large, much-loved, much-feared Excel file maintained by one person. It was updated when someone remembered, which meant it was usually a few days behind reality. Reordering was done by feel — the warehouse supervisor would notice a shelf looking empty and place an order, often too late, sometimes for the wrong quantity. Slow movers were never noticed because nobody looked at velocity; they just accumulated.

The result was painful. Best-sellers ran out, and a retailer who could not get product from them simply bought from a competitor — a lost sale and a dented relationship. Meanwhile, cash sat frozen in stock that would not move for months.

What they changed

They implemented Odoo Inventory with three things doing the work.

Reordering rules on every significant SKU. Each fast-moving product got a minimum and maximum level set from its actual sales velocity. When stock dropped below the minimum, Odoo proposed a purchase order automatically. Reordering stopped depending on whether someone noticed an empty shelf.

Barcode receiving and cycle counts. Goods were scanned in against purchase orders, and a daily cycle count covered a rotating slice of the warehouse, prioritizing best-sellers. Within a couple of months the stock numbers were accurate enough to trust — which made the reordering rules actually reliable.

Velocity visibility. For the first time, they could see which SKUs moved fast and which sat. The slow movers became visible, and purchasing of them stopped. Existing dead stock was discounted and cleared.

The result

Stockouts on their core lines fell by roughly half within the first quarter. The recovered sales — orders they would previously have lost to competitors — were the headline number, and they comfortably exceeded the cost of the project.

The quieter win was cash. By stopping the over-ordering of slow movers and clearing existing dead stock, they freed up working capital that had been frozen on the shelves. The owner said it felt like finding money they already owned.

Why it worked

None of the three changes was exotic. The reason it worked was sequence: they got stock accuracy first (barcodes and cycle counts), because reordering rules built on inaccurate data just automate bad decisions faster. Once the numbers were trustworthy, the automation and the velocity insight had something solid to stand on.

They also resisted the temptation to migrate every historical record. They started clean from a verified physical count, loaded current stock, and moved forward — rather than importing years of messy spreadsheet history and inheriting its errors.

This is a common shape for FMCG and distribution businesses: the stockout problem and the dead-stock problem are the same problem wearing two faces, and both dissolve once you can actually see what you have. If that sounds like your warehouse, an hour’s conversation usually clarifies whether a similar approach would fit. We are happy to have that chat at no cost.