erpkaizen

Measuring the value

ROI of a daily stock count screen: the counted number is the stock as of when?

Has a measurement By 28 Oct 2026 About 9 min
The stock count on a phone: each line shows the book figure and the count; lines that differ are marked, lines that agree are dimmed, a blank cell means not counted, and an item with negative stock is on the list too. The count time is declared as 07:00. One save creates a document for each warehouse that is off: the main store and the salvage warehouse. Stock count counted at 07:00 Item Book Count Apple 48 50 Orange 30 30 Guava −4 0 Pear 12 — blank = not counted post Main store only the 2 lines that differ Salvage warehouse in the same save The count is the stock at 07:00 what left later stays on the books
A blank cell means not counted, not zero. Declare the count time and the count is the stock at that time; one save creates a document for every warehouse that is off, the salvage warehouse included.

The storekeeper counts on a phone, the screen posts only the lines that differ, a blank cell means not counted, and every count carries a time: why a count written as an absolute number erases goods that move during the wait, how to measure three small money streams, and what the table cannot count.

Goods that move while the count waits to be posted — how much gets erased?

All it needs is counts per month, lines per count, the share of lines where goods move between counting and posting, and how much moves. Every money figure follows from those — and every one is editable.

Count the last 30 days
Items written on one count document
Measured over 60 days: about 1 line in 20, with a three-hour wait
A delivery or a receipt landing in the wait

Derived from the four numbers above

Counted lines per month–
Lines with movement erased per month (old rule)–
Kg erased from the books per month–
Value erased per month (at cost)–
Assumptions — open to see and edit every number

Value and consequence

Labour

Time and cost

One item, one morning The "real stock" line · dashed = books, old rule · solid = books, new rule
One item, one morning

A. No more promising goods that already left–
B. Less time counting and typing–
C. Less time chasing lines that are off–
Total benefit / month at full run–

This is an estimate, not a promise. Stream A is the softest — set it to 0 and read the total again. Set the moving share and the minutes saved to 0 and every stream goes to 0, as an honest model should.

At a fresh-fruit distributor the warehouse is counted again and again — about every five days, a few dozen items each time. Not because anyone suspects the storekeeper, but because fresh goods shrink, bruise, get swapped and come back, and the books drift away from reality faster than in almost any other trade. The stock count is when the books are pulled back into place.

This piece works out the ROI of a "Daily stock count" screen in the ERP, replacing the old dialog. Most of its value is not in counting faster but in a question few people ask: the number the storekeeper counted is the stock as of when?

1. Where the old count went wrong

Measured over the last 60 days, before the new screen:

  1. Goods that moved while the count waited were erased from the books. About 1 line in 20 (4.9%) had goods going out or coming in during the three hours before the count document was posted. The document writes an absolute number — "this item has 50 kg" — at the moment of posting. Count 50 kg at 7:00, let a delivery take 15 kg at 8:00, post the count at 10:00, and the books go back to 50: the 15 kg delivery vanishes from the books, though it is already on the truck.
  2. Items with negative stock were never counted. The main warehouse's count list took only items with stock above zero. More than a hundred items that were negative on the books — exactly the ones most in need of a count — never appeared.
  3. "Counted zero" and "not counted" looked the same. When four in ten count lines over 60 days set stock to zero, the difference between the two is not a small one.

2. What the screen is

  1. The storekeeper counts on a phone, standing in the warehouse. The screen works out the difference from the books as each number is typed, and posts only the lines that differ.
  2. A blank cell means not counted. Not zero. A line set to zero is a decision, not a cell someone forgot.
  3. Items with negative stock are on the list. A count document cannot carry a negative number, so a negative line is posted as zero with a warning, rather than blocking the whole document.
  4. Two ways to say "when".
    • Declare the count time — post the count back to when it was taken: the count is the stock at that time, and every movement after it stays on the books.
    • Do not declare it — the system adds back every movement from the moment each line was counted to the moment of posting.
  5. New: a cell for the salvage warehouse beside the main one. Customer returns are now received into the salvage warehouse as soon as the delivery note is submitted; the count covers it on the same screen, and one save creates a document for every warehouse that is off.

3. One item, one morning

The chart in the calculator above draws exactly the example from section 1. The "real stock" line is what is really there: 50 kg at the count, 35 kg after the delivery leaves. The dashed line is the books under the old rule: it catches the delivery, then jumps back to 50 when the count is posted — the books now claim 15 kg that do not exist. The solid line is the books under the new rule: it lands on 35. Change the quantity that moves or the hours of waiting, and the gap changes with it.

That gap does not sit still. The dispatcher reads the books to allocate the next day, promises a customer 15 kg that are not there, and finds out only at picking. Then the next count finds 15 kg "missing" and books a shrinkage nobody can explain — the mirror image of the unexplained surplus that returns kept off the books leave behind.

4. First stream: no more promising goods that already left

Benefit/month = counted lines × share with movement during the wait × quantity moved × cost × share becoming a short delivery × gross margin
Example 6 counts × 72 lines = 432 lines a month; 4.9% with movement during the wait = about 21 lines; 15 kg each × 30,000 VND/kg = about 9.5 million at cost erased from the books each month. Assume 30% of it turns into a short delivery, losing a 25% margin. 9,525,600 × 30% × 25% ≈ 714,000 VND a month.

How to measure it. For each old count document, take its posting time and the stock movements in the three hours before — the "before" can be measured straight from the ledger, with no waiting. The "after" is zero by the definition of the new rule.

How far to trust it: low. The 4.9% and the value erased are measurements; the 30% becoming short deliveries is an assumption. Receipts during the wait are erased too, in the other direction — the books claim a shortage that is not there — and that direction is not in the calculator.

5. Second stream: less time counting and typing

Benefit/month = counted lines × minutes saved per line × hourly cost
Example Counting on a phone instead of on paper and typing it in later, and posting only the lines that differ: half a minute a line. 432 × 0.5 minutes × 50,000 VND an hour = 180,000 VND a month.

6. Third stream: less time chasing lines that are off

Benefit/month = lines with movement erased per month × minutes to chase each × hourly cost
Example Each line whose movement was erased leaves an unexplained shrinkage at the next count; chasing it takes about 10 minutes. 21.2 × 10 minutes × 50,000 VND an hour = 176,400 VND a month.

When hours become money. As the piece on keyboard entry put it, freed hours become money only when they go into work that has a price. For a storekeeper the nearest such work is counting more often — and counting more often makes the books more right. Otherwise read these two streams as capacity.

7. Adding it up

StreamPer monthPer year
No more promising goods that already left0.71 M8.6 M
Less time counting and typing0.18 M2.2 M
Less time chasing lines that are off0.18 M2.1 M
Total1.07 M12.8 M

At 10 million VND to build the screen, it pays back in about month 9.3. It is a modest figure, and this piece does not make it bigger. What the table cannot count is what the screen actually fixes: more than a hundred negative items counted for the first time, and a final count that tells the truth about a moment that really happened.

8. What this ROI stands on

The softest assumption is the share of book error that becomes a short delivery. Lower it from 30% to 10%, and cut the minutes saved per line to a quarter of a minute: 0.5 million VND a month is left, payback in about month 19.8. Set the moving share and the minutes saved to zero and every stream goes to zero — if nothing moves during the wait and counting is no faster, the new screen is worth nothing. A model that cannot collapse is a prejudice in arithmetic costume.

And one thing sits outside the model: the longer the wait, the larger the share of lines with movement. Three hours is the measured figure; in a warehouse that posts its counts at the end of the day, it is far larger.

9. Measuring it in your own business

  1. Baseline from the ledger. Take the count documents of the last 60 days; for each line, check for stock movement between the count time (if one was recorded) or the few hours before posting. Count the negative items that were never counted.
  2. Run the new screen for two to four weeks. Record the declared count times and how long each count takes.
  3. Compare unexplained shrinkage and surplus at the counts before and after, in the same season and the same warehouse.

10. The thing to remember

A counted number is always the number of a moment. Writing it into the books at another moment, without saying so, overwrites everything that happened in between. The new screen does not make anyone count better — it simply asks one more question: counted at what time?

The books are not wrong because someone miscounted. They are wrong because the right number was written down at the wrong time.

The ratios in this piece were measured on a real distributor's system and anonymised; costs, quantities moved and every assumption in the calculator are illustrative. Replace them with your own.

Read next