Guide · Inventory
Why your Excel stock register is always wrong, and how to fix it
The sheet says 54 racks, the godown has 49, and nobody can say when the two parted ways.
Updated · 8 min read
In short
An Excel stock register goes wrong because stock is typed in separately from the sale, the purchase and the transfer. The fix is to move stock only when a document posts. SimpleERP does this on every bill, invoice, transfer and adjustment.
Why is an Excel stock register always wrong?
An Excel stock register is wrong because it is a second record typed by hand after the real event. The invoice goes to the customer, the truck leaves, and someone is supposed to update the sheet later. Every gap between the event and the typing is a chance for the numbers to drift.
The sheet is not the problem on its own. Many small businesses run for years on one. The problem is that nothing forces the sheet to agree with the invoices, the bills and the godown. When a number is wrong, there is no trail to say which row broke it.
Below are the five most common failure modes, each with a small example from Lakshmi Steel Furnitures, the fictional Coimbatore business used across these guides.
Failure 1: sales are entered late, or not at all
When sales are typed into the register at the end of the day, the register is wrong for the whole day and stays wrong for every sale that gets missed.
On a busy Saturday the Ukkadam store sells 5 steel racks across three invoices. The salesperson updates the sheet for two of them before closing. On Monday the sheet shows 5 more racks than the shelf, and a customer is promised stock that is not there.
Failure 2: the invoice and the stock live in different files
If the invoice is made in one program and stock is kept in another, nothing links the two, so a cancelled or edited invoice never reaches the stock sheet.
Invoice INV-2026-27-0219 to Ravi Stores is made for 4 racks, then cut to 3 when the customer changes the order. The billing software is corrected. The stock sheet still shows 4 out. The register is now one rack short of reality, and the error will show up only at the next count.
Failure 3: the average cost is never recalculated
Most stock sheets carry one fixed rate per item, so stock value goes stale the moment a purchase comes in at a new price.
Lakshmi Steel had 34 steel racks at ₹3,000 each. It then bought 20 more from Tamil Nadu Steels at ₹3,324. The sheet kept ₹3,000 as the rate.
| Excel register (fixed rate) | Weighted average | |
|---|---|---|
| Opening 34 racks | 34 × ₹3,000 = ₹1,02,000 | 34 × ₹3,000 = ₹1,02,000 |
| Bill: 20 racks at ₹3,324 | 20 × ₹3,000 = ₹60,000 | 20 × ₹3,324 = ₹66,480 |
| Stock on hand: 54 racks | ₹1,62,000 | ₹1,68,480 |
| Rate per rack | ₹3,000 | ₹1,68,480 ÷ 54 = ₹3,120 |
| Difference in stock value | ₹6,480 understated |
The same stale rate also understates cost of goods sold on every rack sold, so the margin looks better than it is. The weighted average cost guide shows the formula step by step.
Failure 4: godown transfers are agreed by phone
A transfer agreed on a call is recorded on one side, both sides, or neither, depending on who remembers.
The Ukkadam store calls the main godown for 10 racks. The godown manager reduces his column. The store never adds them. The total across both columns is now 10 racks short, though not a single rack has left the business.
Failure 5: nobody owns the count
When no one person is responsible for a warehouse's numbers, differences found at a count are fixed by overwriting the cell, and the reason is lost.
At the half-yearly count, the main godown has 3 racks fewer than the sheet. Someone types the counted number over the old one. Was it a missed sale, damage in loading, or theft? The sheet cannot say, so the same loss happens again before the next count.
What does a stock register need that Excel does not enforce?
A reliable stock register is a movement ledger: every change in quantity is a row that points to the document that caused it, and the balance is the sum of those rows.
| Typical Excel column | What it holds | Movement ledger equivalent |
|---|---|---|
| Item name | Free text, often spelt two ways | One product record with one unit |
| Opening qty | Typed once a year | Opening stock posted as a dated movement with a cost |
| In | Typed from the bill, sometimes | Posted by the supplier bill itself |
| Out | Typed from the invoice, sometimes | Posted by the invoice itself, at the current average cost |
| Rate | One fixed number | Weighted average recalculated on every receipt |
| Godown columns | One column per site, edited separately | Quantity per warehouse; a transfer moves both sides at once |
| Closing qty | A formula anyone can overwrite | The sum of movements; no one types it |
| Remarks | Optional, usually empty | A reason on every adjustment, plus who posted it and when |
How do you fix an Excel stock register?
You fix it by changing where stock numbers come from, not by adding more columns. Four principles cover the five failures above.
Stock moves only when a document posts
A sale reduces stock because the invoice posted, and a purchase increases it because the bill posted. No one edits a quantity directly. This closes failures 1 and 2.
Use one cost method and let it run
Pick weighted average with your accountant and apply it on every receipt. The rate is calculated, never typed. This closes failure 3.
Correct stock with a count adjustment and a reason
When the count differs, post an adjustment that records the counted quantity and why (count difference, damage, theft). The old number stays in the history. This closes half of failure 5.
Give each warehouse one owner
One named person answers for each godown's count and approves transfers out of it. Transfers are posted as documents, so both sides move together. This closes failure 4 and the rest of failure 5.
Before switching anything, it helps to run a quick check on the sheet you have today.
- Every item has one name and one unit (box or piece, not both)
- Each "Out" entry can be traced to an invoice number
- Each "In" entry can be traced to a supplier bill
- The rate column changed after the last purchase at a new price
- Every godown-to-godown move appears in both columns on the same date
- The last count difference has a written reason
- Each warehouse has one person who signs off its count
If more than two of these fail, the sheet is costing you more time than it saves. Two related guides go deeper: negative stock and how to fix it covers what happens when the register goes below zero, and stock audit and physical count shows how to run a count in a day and post the differences.
How does SimpleERP keep the stock register right?
In SimpleERP, stock moves only from posted documents: supplier bills, invoices, credit and debit notes, adjustments, transfers and work orders. Posting an invoice writes the stock issue, cost of goods sold, the receivable and GST in one step, so the sale and the stock can never disagree.
- Weighted average cost per product across the organisation, with quantities kept per warehouse.
- Transfers between warehouses move both sides in one document.
- Stock adjustments in count mode: enter what you counted, pick a reason, and the difference posts.
- Posted documents cannot be edited; a cancellation reverses them, and the audit history shows who did what.
- The stock screen shows total stock value beside the Inventory account balance and the difference between them, as a monthly self-check.
- Opening stock comes in by product, by adjustment, or by a product CSV import.
Illustration of stock on hand by warehouse at average cost, with a low-stock row highlighted and a movement ledger.
See the inventory management page for the stock screens. If you are planning the move off spreadsheets, the switching from Tally and Excel guide covers what to move and when, and moving from Tally or Excel shows how SimpleERP fits that switch.
FAQ
Questions, answered
Why does my Excel stock not match physical stock?
Because the sheet is updated by hand after each sale, purchase and transfer, and some updates are late, wrong or missing. Cancelled invoices, one-sided transfers and overwritten counts are the usual causes. A system where documents move stock removes the hand step.
Can I keep a stock register in Excel at all?
Yes, for a handful of items and one location, if one person updates it the same day from every bill and invoice. It becomes unreliable once more than one person sells, stock sits in more than one godown, or purchase prices change often.
What columns should a stock register have?
At minimum: date, document number, item, unit, warehouse, quantity in, quantity out, cost per unit, running quantity and running value. The document number is the column most sheets skip, and it is the one that lets you trace a difference.
How do I correct stock after a physical count?
Post an adjustment that records the counted quantity and a reason, such as count difference or damage, rather than overwriting the old number. The difference is then valued at average cost and the history shows what changed and why.
Can I import my Excel stock into SimpleERP?
Yes. SimpleERP imports products with their opening stock by CSV. You can also enter opening stock per product or post it as an adjustment. Customers and suppliers can be imported from a spreadsheet too.
Related
Keep reading
Switch from Tally and Excel
The whole move from Tally and Excel to a cloud ERP in one page: what moves, what stays, the cut-over date, a dry run and what your accountant needs.
Read moreNegative stock
Why stock goes below zero, how it bends average cost and cost of goods sold, and the order in which to fix it.
Read moreStock audit and count
How to plan a physical stock count, run it in a day, post the differences at average cost and lock the period once the auditor signs.
Read moreOutgrown Tally and Excel
Eight signs a growing business has outgrown Tally and Excel, what each one costs in a month, and the fix for each.
Read moreInventory
Stock on hand by warehouse at weighted average cost, with a movement ledger and a low-stock list.
Read more
Run your whole business from one simple place.
Seven days free. No card. Your first GST invoice in minutes.