A perpetual inventory system is a stock record that changes with every movement as it happens. Each sale, delivery, return and recorded loss updates that product's balance. The balance is what should be on the shelf right now, and a physical count checks it.
Investopedia defines it as a computerized system, but software is only the fastest way to keep one. A paper stock card follows the same rule. This guide works one card through a month of a Kampala shop's cement, in Ugandan shillings.
How a perpetual inventory system works
A perpetual system keeps one running balance per product, in each place you hold it, and moves it with each document. The whole rule fits on one line:
New balance = last balance + units in − units out
Units come in with deliveries, customer returns and transfers from another branch. They go out with sales, returns to the supplier, transfers away and every loss someone records: breakage, expiry, theft found at a count.
Each line of the record carries the date, the document behind it and the new balance. The USAID Logistics Handbook asks for exactly this on a stock card, entered "whenever products are received or issued". It adds the result of each physical count, so the card shows where the record and the shelf parted.
For example: one month of cement on a stock card
For example, a hardware shop in Kampala buys cement at UGX 32,000 a bag and sells it at UGX 36,000. The figures are illustrative. Sales are entered as totals for a few days at a time to fit the page; a till records each one.
| Date | Document | In | Out | Balance |
|---|---|---|---|---|
| 1 March | Opening count, taken on 28 February | 120 | ||
| 1 to 3 March | Sales | 42 | 78 | |
| 4 March | Delivery, on credit | 200 | 278 | |
| 4 to 15 March | Sales | 168 | 110 | |
| 16 to 17 March | Sales | 30 | 80 | |
| 18 March | Delivery, on credit | 200 | 280 | |
| 18 to 21 March | Sales | 45 | 235 | |
| 22 March | Damage: bags torn while stacking | 4 | 231 | |
| 22 to 31 March | Sales | 145 | 86 | |
| 31 March | Count found 82: adjustment | 4 | 82 |
On 15 March the card says 110 bags, about eight days of sales at 14 a day. The owner orders for the 18th without walking to the store room.
On 31 March the card says 86 and the count finds 82. The 4 missing bags had no document, so only a count could show them. The adjustment brings the card to the count, with a note saying why.
That gap is why a perpetual system is never finished without counts. Investopedia puts it plainly: the system "estimates stock on hand", so it "does not replace a periodic physical inventory".
The journal entries in a perpetual system
A perpetual system records two entries for every sale: the revenue, and the cost of the goods leaving stock. That second entry keeps the inventory account equal to the stock card in money.
| Event | Debit | Credit | Amount |
|---|---|---|---|
| Each delivery of 200 bags, on credit | Inventory | Accounts payable | 6,400,000 |
| Sales of 430 bags | Cash or accounts receivable | Sales revenue | 15,480,000 |
| Cost of those sales | Cost of goods sold | Inventory | 13,760,000 |
| Torn bags, 22 March | Inventory losses, an expense | Inventory | 128,000 |
| Count shortfall, 31 March | Inventory losses | Inventory | 128,000 |
The inventory account ends at 3,840,000 + 12,800,000 − 13,760,000 − 256,000 = UGX 2,624,000. That is 82 bags at UGX 32,000, the count at cost.
A customer return reverses both sale entries for the units that come back, if they can be sold again. These are the entries OpenStax's Principles of Accounting sets out for a perpetual system.
When the same product was bought at different prices, a cost formula decides which cost each sale carries. FIFO and weighted average are the two IFRS allows for goods like these (FIFO vs LIFO).
What a perpetual system needs to stay right
A perpetual record is only as good as the movements entered into it. Five habits keep it close to the shelf.
- A starting count. The first balance must be counted, not guessed, or every later figure carries the error.
- Every movement, at the time. A delivery that lands on Monday and is entered on Friday leaves the balance wrong all week.
- A scan at every move. Scanning a code at receiving and at the till replaces typed entries and their errors, as barcodes in manufacturing shows for a small factory.
- Losses recorded as losses. Breakage entered as a damage keeps its reason; breakage left for the count becomes an unexplained gap.
- Regular counts. Count a few lines each week, so every product is checked on a rota (inventory cycle count).
With branches, the record shows what each one holds. Whether to keep stock in one central store and feed the branches from it is a separate choice, weighed in centralized inventory management.
Paper or software?
Use paper where stock moves a few times a day, and software where it moves at a till. The rule is the same either way; what changes is who writes each line.
| Where stock moves | Keep the record | For example |
|---|---|---|
| A store room issuing a few times a day | On a card at the shelf | A clinic's medicines, a school's stationery, a workshop's spare parts |
| A till selling all day | In software, updated by each sale | A shop, a pharmacy counter, a hardware store |
| Several branches or warehouses | In software | Every branch's balance in one place, and transfers between them |
The USAID handbook's bin card sits at the shelf and records each receipt and issue for one batch of a product. The handbook was written for health stores, and a card keeps up wherever issues are few.
A hardware shop selling a few hundred items a day can't write a card for each sale. There the till must update the record itself. Software such as ArmPOS does that from a phone or a computer, for a shop in Uganda or South Africa.
Advantages and disadvantages
A perpetual system tells you what you have, what you lost and what you made without waiting for a count. The cement month shows all three: 110 bags on 15 March, 8 bags lost, and a gross profit of UGX 1,720,000 before losses on the last day.
Its costs are discipline and counting. Every delivery, return and breakage must be entered at the time, and the counts still have to happen, because theft never records itself.
Against a periodic system, which counts instead of recording, the trade is set out in perpetual vs periodic inventory. The periodic inventory system runs the same cement month the other way.
How ArmPOS keeps a perpetual record
ArmPOS keeps a perpetual balance for every product in each warehouse, and each document moves it when you save it. Here is the cement month in ArmPOS.
- Opening stock. The 120 bags went in from the count, through the product's Opening Stock box or an Opening Stock import (Import products from a spreadsheet).
- Sales. Each sale at the POS took its bags off the shop's warehouse (Make your first sale).
- Deliveries. Each was a purchase with the status received, which adds the stock when you submit (Record a purchase).
- The torn bags. Damages › Create Damage took them off, with the note "torn while stacking" (Record damaged stock).
- The count. Products › Count Stock gave the counting sheet, and an adjustment with the type Subtraction took off the 4 missing bags (Count and adjust stock).
- The stock card. Reports › Stock Report, then Reports on the cement's row, shows its sales, purchases, returns, transfers and adjustments on tabs (Stock reports).
If the internet drops while the POS is open, it keeps selling. Sales are kept on the device and sent when the connection returns (The POS screen).
On plans with Accounting, the two deliveries posted themselves to 1200-INV, which reads UGX 16,640,000 after February's entry left it at 3,840,000. ArmPOS posts no cost of goods sold, damage or write-down entry by itself.
The month-end entry brings 1200-INV to Inventory Valuation at cost, UGX 2,624,000. The UGX 14,016,000 gap is 13,760,000 of cost of goods sold and 256,000 of losses, and inventory accounting shows the entry step by step.
Frequently asked questions
What is an example of a perpetual inventory system?
A supermarket till that takes each item off stock as it is scanned is one. A pharmacy's bin card, written up at every issue, is another, on paper.
Does a perpetual inventory system still need physical counts?
Yes. The record holds only what was recorded, so theft, unrecorded breakage and miscounts stay in it until a count finds them. Count a few lines a week and everything once a year.
How is cost of goods sold calculated in a perpetual system?
It is recorded with each sale, at the cost of the units sold. In the example, 430 bags at UGX 32,000 make UGX 13,760,000.
What is the main disadvantage of a perpetual inventory system?
It depends on every movement being entered. A delivery that never reaches the record, or breakage nobody writes down, leaves the balance wrong until the next count.
Start a stock card this week for your fastest-selling line, on paper or on screen, and count it on Friday. To let the till keep the card for you, create a free ArmPOS account.