A perpetual inventory system updates stock records continuously, every time something is received, sold, returned, transferred or adjusted, so the system always shows what you hold. Cost of goods sold is recorded at each sale. It replaces the periodic approach, where stock is known only after a physical count at the end of a period. The real question is not which system to use but how to keep a perpetual one accurate.
- A perpetual inventory system updates stock with every receipt, sale, return, transfer and adjustment, and records cost of goods sold at each sale.
- Periodic inventory updates stock only after a physical count, so it is blind between counts, and marketplaces need a live stock figure a periodic system cannot supply.
- In multichannel selling, the record drifts through slow syncs, missing reservations, returns restocked at the wrong time, separate stock pools, bundles and unscanned movements.
- Three habits keep it accurate: scan every movement, keep one stock pool that syncs every channel within about a minute, and verify with daily cycle counts.
- Perpetual inventory does not remove counting; it replaces the yearly shutdown with small daily counts.
- Relaxo reached 100% inventory accuracy and more than 99% bin-level accuracy on EasyEcom.
SECTION 01Perpetual inventory in one paragraph
In brief: A perpetual inventory system updates stock records continuously, every time something is received, sold, returned, transferred or adjusted, so the system always shows what you hold. Cost of goods sold is recorded at each sale. It replaces the periodic approach, where stock is known only after a physical count at the end of a period.
Under perpetual inventory, the record moves with the stock. A unit scanned in at the dock is added the moment it is received. A unit sold is deducted when the order is confirmed. A return is added back when it is checked and restocked. At any moment, the system can tell you how many units of each product you have and where they are, without anyone counting.
That constant record is what modern eCommerce runs on. Marketplaces show your stock to shoppers, reorder points fire automatically, and orders route to the warehouse that has the unit. None of that works if stock is only known once a month.
SECTION 02How it works, sale by sale
In brief: Every stock movement creates a transaction that updates the record immediately: receipts add, sales and transfers out deduct, good returns add back and count differences adjust. In accounting, each sale also moves the item's cost from inventory to cost of goods sold, so profit is known per sale, not only at period end.
Each movement in the warehouse becomes an entry in the system:
- Receiving: goods scanned in against the purchase order increase stock on hand.
- Orders: a confirmed order reserves stock, so it cannot be sold twice; shipping it deducts it.
- Transfers: stock moving between warehouses, or to a marketplace or dark store, leaves one location and arrives at another.
- Returns: units come back into stock only after they are checked; damaged units go to a separate, unsellable bucket.
- Adjustments: when a count finds a difference, the record is corrected and the reason is logged.
One accounting example. Say you sell an item for $50 that cost you $30. Under perpetual inventory, the sale is recorded twice at the moment it happens: revenue (cash or receivable up $50, sales up $50) and cost (cost of goods sold up $30, inventory down $30). Under periodic inventory, only the revenue is recorded at the sale; cost of goods sold is worked out at the end of the period with the formula below.
Periodic cost of goods sold = beginning inventory + purchases − ending inventory (from a physical count)
SECTION 03Perpetual vs periodic inventory
In brief: Perpetual inventory updates stock with every transaction and records cost of goods sold at each sale. Periodic inventory updates stock only after a physical count and calculates cost of goods sold at period end. Perpetual needs scanning and software but gives real-time accuracy; periodic is simpler and cheaper but leaves you blind between counts.
| Perpetual inventory system | Periodic inventory system | |
|---|---|---|
| When stock updates | With every receipt, sale, return, transfer and adjustment | Only after a physical count at period end |
| Cost of goods sold | Recorded at each sale | Calculated at period end: beginning inventory + purchases − ending inventory |
| Stock visibility between counts | Live, by product and location | None; last count plus guesswork |
| Physical counts | Still needed, as regular cycle counts to verify the record | The only source of truth; usually a full count |
| Shrinkage and errors | Show up as variances at each count, traceable to a period | Hidden inside cost of goods sold |
| Cost and effort | Software, scanning and process discipline | Low tooling cost, high counting effort |
| Best fit | Any brand selling online, on several channels or from several locations | Very small, single-location sellers with few SKUs |
For an eCommerce brand, the choice is rarely close. Marketplaces need a live stock figure to list against, and a periodic system cannot supply one. The real question is not which system to use but how to keep a perpetual one accurate.
SECTION 04Pros and limits
In brief: Perpetual inventory gives live stock by location, automatic reorder triggers, per-sale profit and early sight of shrinkage. Its limits: it costs more to run, and it only reflects what is recorded, so unscanned movements, delayed syncs and misplaced stock make it drift. Regular cycle counts keep the record honest.
Advantages
- Live stock by product and location, which marketplaces, quick commerce and your own site can list against.
- Automatic reorders, because the system knows when a SKU crosses its reorder point.
- Profit per sale, with cost of goods sold recorded as each order ships.
- Shrinkage you can find: when a count differs from the record, the gap points to a specific period and location. Our guide to shrinkage covers what to do next.
- No shutdown counts, because daily cycle counts replace the annual stocktake.
Limits
- It records what it is told. A unit moved without a scan, a return restocked without a check or a damaged item left in a sellable bin all put the record out of step with the shelf.
- It costs more than a count-based system: software, scanners and training.
- It can drift quietly. Without verification, small errors compound until the record cannot be trusted.
SECTION 05What breaks perpetual inventory in multichannel selling
In brief: In multichannel selling, perpetual inventory breaks when channels see stock at different times. Slow syncs cause oversells, missing reservations let two channels sell the same unit, returns restocked late hide sellable stock, marketplace-held stock sits outside the main record and unscanned movements make the record drift from the shelf.
One warehouse and one website make perpetual inventory easy. Each extra channel and location adds a way for the record and reality to drift apart:
- Sync latency. If a marketplace learns about a sale on your website ten minutes late, it can sell the last unit again. The longer the delay, the more oversells and cancellations, and the more marketplace penalties.
- No reservations. A confirmed order must reserve its unit immediately, so on hand, reserved and available are tracked separately. Without that split, two channels can promise the same unit.
- Returns restock timing. A return in transit, or sitting unchecked at the dock, is neither sellable nor gone. Systems that add it back too early oversell; too late, and they hide stock you could sell.
- Separate stock pools. Stock sent to a marketplace's own fulfillment centers or to quick-commerce dark stores leaves your warehouse but is still yours. It has to stay in the record as its own location.
- Bundles and kits. A gift set built from three SKUs must reduce all three components when it sells, or the components look available when they are not.
- Unscanned movements. Picking the wrong bin, moving stock without a transfer or fixing a count without logging a reason all create drift no software can see.
SECTION 06Making it work: scanning, sync and cycle counts
In brief: Three habits keep perpetual inventory accurate across channels. Scan every movement so the record matches the shelf, keep one stock pool that syncs every channel within about a minute and reserves stock at order confirmation, and verify the record with daily cycle counts so small errors are caught before they compound.
- Scan every movement. Receiving, putaway, picking, packing, transfers and returns all happen against a barcode scan. In EasyEcom's warehouse management, goods are scanned in against the purchase order with batch and expiry captured at the door, units are graded good or bad before putaway, and FIFO and FEFO are enforced automatically.
- Keep one stock pool, synced fast. Every channel should sell from the same record and see changes within about a minute. Multichannel order management in EasyOMS keeps one stock pool across warehouses, syncs it to every channel in 60 seconds and checks live availability across every warehouse before an order is routed, so no unit is promised twice.
- Verify with cycle counts. Perpetual inventory does not remove counting; it replaces the yearly shutdown with small daily counts. Cycle counting covers how to schedule them.
- Log every adjustment with a reason, so patterns in shrinkage or damage are visible.
Done consistently, the record and the shelf stay in step. Relaxo reached 100% inventory accuracy and more than 99% bin-level accuracy on EasyEcom, as its customer story describes.
SECTION 07A worked example: one SKU, three channels, one day
In brief: Follow one SKU through a day of orders on a webstore, a marketplace and quick commerce. Each event changes on hand, reserved or available stock, and every channel sees the new available figure within the sync interval. A cycle count at day's end catches a one-unit difference and the record is corrected.
A linen shirt, size M, sells on the brand's webstore, a marketplace and a quick-commerce app, all from one warehouse. The day starts with 100 units on hand.
| Time | Event | On hand | Reserved | Available to sell |
|---|---|---|---|---|
| 9:00 | Day starts | 100 | 0 | 100 |
| 9:02 | Marketplace order for 2 units: reserved | 100 | 2 | 98 |
| 9:15 | Webstore order for 1 unit: reserved | 100 | 3 | 97 |
| 10:40 | All 3 units picked, packed and shipped | 97 | 0 | 97 |
| 12:00 | Quick-commerce restock of 20 units for a dark store: reserved for transfer | 97 | 20 | 77 |
| 14:30 | Supplier delivery of 50 units scanned in | 147 | 20 | 127 |
| 16:10 | Customer return of 1 unit, checked and graded good | 148 | 20 | 128 |
| 17:00 | Transfer of 20 units dispatched to the dark store | 128 | 0 | 128 |
| 18:00 | Cycle count finds 127 in the bin: adjusted by 1, reason logged | 127 | 0 | 127 |
Three things make this work. Reservations stop the 20 units promised to the dark store from being sold online in the afternoon. The return only becomes sellable after it is graded, not when the courier drops it off. And the end-of-day count catches the one missing unit while it is still a one-unit problem. The 20 units at the dark store remain the brand's stock, tracked as their own location.
For definitions of on hand, reserved, available and other terms used here, see our inventory glossary, and for the wider picture, our guide to eCommerce inventory management.
Selling on more channels than your stock record can keep up with? Book a demo and we will show you one stock pool running across your own channels and warehouses.
Frequently asked questions
What is a perpetual inventory system?
A perpetual inventory system updates stock records continuously, every time goods are received, sold, returned, transferred or adjusted, so the system always shows what you hold and where. Cost of goods sold is recorded at each sale. It is the standard for any business selling online or across several channels.
What is the difference between periodic and perpetual inventory?
Perpetual inventory updates stock with every transaction and records cost of goods sold at each sale. Periodic inventory updates stock only after a physical count, and calculates cost of goods sold at period end as beginning inventory plus purchases minus ending inventory. Perpetual gives live visibility; periodic is simpler but blind between counts.
What are the advantages and disadvantages of perpetual inventory?
Advantages: live stock by location, automatic reorder triggers, profit per sale, early detection of shrinkage and no shutdown counts. Disadvantages: higher software and scanning costs, and a record that only reflects what is entered, so unscanned movements and slow syncs make it drift unless it is verified with cycle counts.
Do you still need cycle counts with perpetual inventory?
Yes. A perpetual system records what it is told, so errors, theft, damage and unscanned movements make it drift from the shelf over time. Regular cycle counts, small daily counts of a slice of stock, verify the record and catch differences while they are small, without shutting the warehouse.
How does perpetual inventory work across multiple sales channels?
All channels sell from one stock pool. Each order reserves its unit the moment it is confirmed, and the available figure syncs to every channel within about a minute, so no two channels sell the same unit. Stock held at marketplace warehouses or dark stores is tracked as its own location in the same record.
Is perpetual inventory the same as real-time inventory?
Nearly. Perpetual inventory means the record updates with every transaction; real-time inventory means those updates reach every system and channel almost instantly. A perpetual system with slow channel syncs is still perpetual, but it can oversell. For multichannel selling, you need both.