productize.life
TH EN
SME · Inventory

Your cash didn't disappear. It's asleep in the stockroom.

A great sales year, an empty bank account. The answer is usually sitting in the warehouse. Here is how to analyze your inventory with a handful of numbers, straight from the spreadsheet you already have.

Yim· written with Dobby (AI Oracle)/Jul 10, 2026/~10 min read

There is a picture most SME owners will recognize. At the end of the year the sales report looks great, better than last year. Then you open the bank account, and the cash is so tight you hesitate before ordering the next batch.

The money didn't disappear. It changed shape: from numbers in an account into boxes stacked in the stockroom. Some boxes move every week. Some have been sitting in the same corner since January, wearing dust thicker than the profit they once promised.

Recently we spent time collecting the inventory management principles that professional supply chain teams actually use, then built them into an analysis tool called Stock Insight. The clearest thing we learned along the way: most inventory problems don't come from laziness. They come from not being able to see. Without numbers, every decision falls back on feelings. Order more because you fear running out. Keep it because letting go feels like waste.

So this article tells two stories in one. First, the framework for analyzing your inventory, explained plainly enough to do by hand without opening any app. Second, the story behind the tool we built, and why we designed it so your data never has to leave your machine.

Part 1Every box on your shelf charges rent

When we think about product cost, we usually think only of the purchase price. But stock sitting in the warehouse keeps charging you every single day, like a tenant whose rent you pay on their behalf. In practice, supply chain teams estimate the total holding cost of inventory at around 17-45% of stock value per year, broken down roughly like this:

Cost typeWhere it comes from%/yr
StorageWarehouse rent, handling, admin labor4-8%
Cost of capitalLoan interest, or what that cash could earn elsewhere6-12%
ObsolescenceFashion moves on, technology moves on, full price is gone5-20%
ShrinkageBreakage, expiry, loss, theft1-3%
Insurance & taxInventory insurance, property tax1-2%

Run a round number through it. Hold 1 million baht of stock at a middling 25% per year, and that pile quietly consumes 250,000 baht a year without ever issuing a receipt. These figures are practical ranges, not laws: sell perishables and yours drifts up, sell durable goods and it drifts down. But the point was never the exact percentage. The point is that it is never zero.

One more number worth knowing: dead stock, items that did not sell a single unit within a set window, say one month. The practical target is under 10% of total stock value. Cross that line and it usually means you are carrying more SKUs than you can handle.

Part 2Days of inventory: the first number to know

Before any other question, answer this one: how many more days will the stock I have actually last? A raw unit count can't answer it. 500 units might be a mountain for one shop and dangerously thin for another. The number that answers it is DOH, days of inventory on hand.

DOH = current stock (units) ÷ average daily sales (units)

Product A has 500 units in stock and sells 25 a day: DOH = 20 days. If you don't restock, it's gone in twenty days. Product B has 100 units and sells 60 a month. Convert first: 60 a month is about 2 a day, so DOH = 50 days. The single most common mistake lives right there: always convert sales to a daily rate. Weekly data, divide by 7. Monthly, divide by 30. If sales swing a lot, a trailing 3-month average (divide by 90) is steadier. And if you already track inventory turnover, it's the same picture flipped: a rough turnover figure is 365 divided by DOH.

Once every SKU has a DOH, the warehouse looks different. One product has 12 days left while the next batch takes a month to arrive: a stockout marching toward you that nobody has noticed yet. Another sits at 300+ days: cash asleep for most of a year. Both live in the same warehouse, and they need decisions pointing in opposite directions.

DOH also extends into a reorder point. The idea: order when DOH drops to your total waiting time plus a safety margin. Say goods take 70 days from order to shelf, and you keep a 15-day buffer. When DOH touches 85 days, it's time to order. Reorder points deserve a full article of their own, so we'll save the details for the next one.

The business as a whole has a benchmark too. A practical target for average DOH across all products is around 60-90 days, depending on the business. If your average runs far past that, the warehouse is trying to tell you something.

Part 3What is ABC analysis, and why multiply it by XYZ

Now you know how long each product will last. The next question: which ones deserve your attention first? A shop carrying a few hundred SKUs cannot watch them all equally. This is where ABC analysis comes in.

ABC analysis groups products by how much they matter to revenue, using the Pareto 80/20 rule (a small share of things produces most of the result). Sort products by sales, highest first, then walk down the cumulative total:

Even ABC alone reveals something: a handful of products drives nearly all your revenue, while half your SKUs barely contribute. But ABC by itself doesn't finish the story. Two best-sellers can need very different care: one sells steadily every month, the other does a hundred units this month and ten the next.

So there is a second axis, XYZ, which measures how predictable sales are, using CV (Coefficient of Variation): standard deviation divided by mean. In plain terms, how many percent do sales swing relative to their own size?

Why CV instead of raw standard deviation? Because CV compares fairly across SKUs. A product selling a thousand units a month with a swing of a hundred looks noisy in absolute numbers but is actually very stable (10%). A product selling ten a month with a swing of five looks tiny but swings half its own size (50%).

Cross the two axes and you get a 9-cell grid, each cell with its own playbook:

CellMeaningPlaybook
AXHigh sales + steady. The heart of the shopNever run out. Safe to automate replenishment
AYHigh sales + moderate swingCarry a larger buffer, review often
AZHigh sales + hard to forecastFind flexible suppliers with short lead times, check in frequently
BXMid sales + steadyNormal ordering cycle, no babysitting
BYMid sales + swingyModerate buffer, quarterly review
BZMid sales + hard to forecastReduce stock, consider managing it like Class C
CXLow sales + steadyOrder small every 2-3 months, then stop thinking about it
CYLow sales + swingyHold the minimum
CZLow sales + hard to forecastTop candidate to cut, or switch to made-to-order

All the thresholds here, the 80/95% and the 25/50%, are widely used defaults, not laws. A heavily seasonal business may need to move the lines. What matters is applying the same criteria across the whole shop, so everything stays comparable.

Part 4Cut score: decide with criteria, not attachment

By now you can see which products matter and which don't. But the most painful question is still standing: the product that never moves, should you stop selling it? Answer that with feelings and the answer is "keep it a little longer, it might sell" almost every time, because cutting a product feels like admitting you once chose wrong.

The better way is to score it against criteria. The cut score checks four conditions, one point each:

  1. It's in Class C (low importance to revenue)
  2. It's in Class Z (unforecastable)
  3. Its sales are under 1% of total shop sales
  4. Its annual sales fall below a line you set, e.g. 300,000 baht (scale to your business)

A full 4 means cut it now. 3 means seriously consider cutting. 2 means watch it for one more quarter. Below that, keep it. Once the question changes from "how do I feel" to "what does the score say," the discussion about cutting products gets much shorter, because everyone is looking at the same numbers.

One important exception. Newly launched products and seasonal products can score high without deserving the axe. A new product's sales haven't settled yet, and a winter product will always look terrible measured in mid-summer. The score opens the conversation. It is not the verdict. A human still makes the call.

Part 5The tool we built, and why your data never leaves your machine

Everything above genuinely works in a spreadsheet. But doing it by hand has teeth: the DOH formula has to cover every SKU, the cumulative sort behind ABC breaks easily, CV needs computing per product, and when next month's data arrives you redo all of it. So we built Stock Insight, a tool that takes your sales and stock file (Excel/CSV) and computes every view above in seconds: DOH, the ABC-XYZ 9-cell grid, cut scores, plus supporting views like product life stage and overall portfolio health.

The design decision we cared about most is a single one: your data never leaves your machine, not a single byte. Every calculation happens in your own browser. Nothing is uploaded, and there is no database on our side. The reason is plain: sales and cost data are the most confidential numbers a business has, and an analysis tool shouldn't ask you to hand your secrets to someone before you can even start. (We wrote about designing so data can't leak out of a system in our article on the three layers of data protection.)

The other place we spent real effort is numerical correctness. An analysis tool that computes wrong numbers is worse than no tool, because it hands out false confidence. So the app ships with a test suite of 382 checks. At its heart is a set of golden tests: a 20-SKU sample dataset with independently computed answer keys for every view, and the program must match every answer exactly before a new version ships. (If that answer-key approach interests you, we wrote about it in our piece on characterization testing.) The tool itself is React + TypeScript, with the calculation engine kept strictly separate from the UI so the math can be tested on its own, with nothing in the way.

How to start

Tool or no tool, the starting point is the same. Gather two datasets your shop already has:

  1. Monthly sales history per SKU, at least 3-6 months
  2. Current stock on hand per SKU. Add unit cost if you have it, and the cash locked up becomes visible in baht, not just units

Then compute DOH for every SKU first. That alone shows you what's about to run out and what's been sleeping. Move on to the ABC-XYZ split, and finish with cut scores and a shortlist of products worth a discontinuation conversation.

Or try it on the tool we built at productize.life/apps/stock-insight. Access is currently by request: sign in with Google and tap request access. We are opening it up person by person to stay close to early feedback. There is a built-in sample dataset to play with before you touch your real data.

If this whole article had to shrink to one thought, let it be this. Inventory is not a pile of goods. It is your money living in another shape, and money you never question with numbers will keep sleeping exactly where it is. Start with the first question tonight: the stock you have, how many more days will it last?

In the same series
Sources & references
Follow along

Get new posts and free resources first

Leave your email. New posts and the occasional free resource land in your inbox. No spam.

Email only, for updates.

Comments

Join the conversation

Share a thought.

Name is shown publicly. Email stays private and is never shown.

Loading comments…