A customer asks whether you can ship 30 units by Friday. Your accounting software says you have 34 on the shelf, so you say yes and take the order. Monday morning the warehouse tells you the real number is 11 — two dozen units leaked away over the last quarter through damage, miscounted receipts, and one box nobody can explain, and your books never noticed because they only learn what you own when someone counts it. Now you get to call the customer back, discount the partial shipment, and explain why cost of goods sold just jumped for reasons nobody can itemize.
That gap between what the books say and what the shelf holds is not a bookkeeping error. It is a system choice. Every business that sells physical goods runs one of two inventory systems — perpetual or periodic — and the choice decides whether your books track inventory continuously or reconstruct it after the fact. Pick the wrong one and you either pay for real-time precision you never use, or you fly blind between counts while shrinkage quietly eats your margin.
The Two Systems in Plain Terms
A perpetual system updates inventory with every transaction. Each purchase adds units to the inventory account; each sale subtracts them and records cost of goods sold at the same moment. The ledger always shows a current balance — in theory, you can look up your stock of any item at 3 p.m. on a Tuesday without leaving your desk. Point-of-sale systems, barcode scanners, and inventory software are the machinery that makes this practical: every scan is a journal entry.
A periodic system updates inventory only when someone counts it. Between counts, the inventory account sits frozen at its last counted value. Purchases during the period go into a temporary holding account — usually called Purchases — and sales record revenue with no inventory movement at all. At period-end, someone physically counts everything, and cost of goods sold is backed into with arithmetic: what you started with, plus what you bought, minus what is left, must be what you sold (or lost).
| Perpetual | Periodic | |
|---|---|---|
| Inventory balance | Updated with every sale and purchase | Updated only after a physical count |
| Cost of goods sold | Recorded at the moment of each sale | Calculated once per period from the count |
| Purchases during the period | Debited directly to Inventory | Debited to a Purchases holding account |
| Physical counts | Cycle counts to verify the system | Full counts that create the numbers |
| Best fit | Many SKUs, high volume, multiple locations | Few SKUs, low volume, simple operations |
| Cost | Software, scanners, receiving discipline | Staff time for counts, minimal tooling |
Neither system eliminates physical counting — that is the first myth to retire. Perpetual records drift from reality through theft, damage, data-entry slips, and supplier short-shipments, so every perpetual operation still counts to verify. The difference is what the count does: under perpetual it corrects and audits a running balance, while under periodic it manufactures the period's numbers from scratch.
How Each System Computes Cost of Goods Sold
This is where the two systems diverge on the page, and understanding the mechanics is what lets you read your own statements critically.
Perpetual: two entries per sale
Every sale triggers a pair of entries. The first records the revenue side — debit Cash or Accounts Receivable, credit Sales Revenue. The second records the cost side — debit Cost of Goods Sold and credit Inventory for the cost of exactly the units that left. If you sell 20 units that cost $8 each for $15 each, the cost entry moves $160 out of Inventory into Cost of Goods Sold at the same moment the $300 of revenue hits the books.
Because cost is relieved unit by unit, the system needs a cost-flow assumption — FIFO, weighted average, or similar — to decide which $8 leaves when identical units were bought at different prices. The inventory balance that remains is therefore a costed record, not just a quantity.
Periodic: one formula per period
Under periodic, sales record revenue only. All buying activity accumulates in Purchases (plus side accounts for freight-in and purchase returns), and the Inventory account keeps its beginning balance untouched all period long. Then comes the count, and cost of goods sold falls out of the classic formula:
Cost of Goods Sold = Beginning Inventory + Net Purchases − Ending Inventory
Net purchases means Purchases plus freight-in, minus purchase returns and allowances and minus purchase discounts taken. Work it with round numbers: beginning inventory of $1,000, purchases of $8,000, and an ending count worth $1,920 gives cost of goods sold of $7,080. A compound closing entry then sets the Inventory account to the counted $1,920, empties Purchases, and books the $7,080 difference to Cost of Goods Sold.
Notice what that formula assumes: everything not on the shelf was sold at a profit. Theft, spoilage, breakage, and counting errors all inflate the same Cost of Goods Sold number, invisibly. Under periodic, a shoplifting problem looks exactly like healthy sales volume. That single fact drives more upgrades to perpetual than any other.
The Purchases Account, Explained
Newcomers often trip over the Purchases account because it looks like an expense but is not quite one. Think of it as a staging area: during the period it collects every merchandise buy — debit Purchases, credit Cash or Accounts Payable — while the Inventory asset account waits. Freight-In accumulates delivery charges that are part of inventory cost, while Purchase Returns and Allowances and Purchase Discounts accumulate as contra-purchases that shrink net buying.
At period-end, all of these temporary accounts close out. Their net total flows into the cost-of-goods-sold computation, and the accounts reset to zero for the next period. If you ever see a Purchases balance surviving past year-end close, something went wrong — these accounts should be empty on day one of every period. Auditors check exactly that, because a stale Purchases balance usually means the closing entries were skipped and both inventory and cost of goods sold are wrong.
What Perpetual Needs to Work
Perpetual is the better system on paper, but it is also the system with more ways to fail, because its accuracy depends on every transaction being captured. Before switching, make sure you can fund all four requirements:
A point of sale that decrements stock. Every sale must reduce the item's quantity automatically. Modern POS software does this natively, and many entry-level plans include it — some retail POS inventory add-ons cost around $25 per store per month, which puts perpetual within reach of single-location shops, not just chains.
Scanning at receiving and sale. Manual quantity entry defeats the purpose; a handheld barcode scanner costs well under $200 and pays for itself the first time it catches a supplier short-shipment. Print your own labels for items that arrive without barcodes, and scan both directions — goods in and goods out.
Receiving discipline. The loading dock is where perpetual systems go to die. Every delivery must be checked against the purchase order, with shortages, damage, and substitutions logged before the boxes leave the dock. Unrecorded receipts overstate cost of goods sold later; unrecorded damage understates shrinkage while the shelf quietly empties.
Someone who reconciles the exceptions. Perpetual generates exception reports — negative on-hand quantities, items sold that were never received, margins that swing wildly on one SKU. Those reports are the system's real product. Assign a person and a weekly slot to clear them, or the running balances degrade into fiction within a quarter.
If that list sounds like more operation than you can staff, that is useful information. A well-run periodic system beats a perpetual system nobody maintains — confident-looking numbers that are wrong are worse than honestly approximate ones.
Cycle Counts: The Verification Habit Both Systems Need
A full physical count — shutting down, counting everything, reconciling for days — is so disruptive that most businesses do it once a year at most. Cycle counting replaces that annual ordeal with small, frequent counts: a slice of SKUs every day or week, on a rotation that covers the whole warehouse over a quarter. Operations never stop, discrepancies surface within days instead of months, and the staff gets better at counting through practice.
The highest return comes from counting by risk, not by alphabet. Rank items by value times velocity and count the top tier weekly, the middle monthly, and the slow tail quarterly — a 2 percent error on your bestseller costs more than a 20 percent error on a dusty spare part. Every cycle count should end in one of three outcomes: the system was right (do nothing), the system was wrong for a known reason (fix the process that caused it), or the system was wrong for an unknown reason (log it as shrinkage and watch for a pattern).
Shrinkage math is simple and sobering. Divide the dollar value of unexplained loss by recorded inventory: $30,000 of shrinkage against $1,500,000 of book inventory is a 2 percent shrinkage rate. Under a perpetual system that 2 percent shows up as a visible book-to-physical gap you can investigate by SKU, shift, and location. Under a periodic system it dissolves into cost of goods sold. Either way the money is gone — the question is whether your system tells you where to look.
Tracking Either System in Plain-Text Books
Accurate bookkeeping from day one prevents the year-end scramble these systems cause, because the inventory entries are small if you post them as you go and painful if you reconstruct a year of them in January. In a plain-text ledger the structure is explicit: separate accounts for on-hand inventory, in-transit purchases, and cost of goods sold keep each system's moving parts visible instead of netted into one opaque balance.
A perpetual-style sale of 20 units costing $8 each, following a 100-unit purchase at the same cost, looks like this — note the paired revenue and cost entries on the sale date:
2026-10-03 * "Receive 100 units from supplier at 8.00 USD each"
Assets:Inventory:Widgets 800.00 USD
Liabilities:AccountsPayable:Supplier -800.00 USD
2026-10-05 * "Sell 20 units at 15.00 USD each"
Assets:Checking 300.00 USD
Income:Sales:Widgets -300.00 USD
2026-10-05 * "Relieve inventory for 20 units sold at 8.00 USD cost"
Expenses:COGS:Widgets 160.00 USD
Assets:Inventory:Widgets -160.00 USDThe same business on a periodic system books the purchase to the staging account and touches Inventory only at the close. With beginning inventory of $1,000, period purchases of $8,000, and an ending count of $1,920, one compound entry sets the asset and backs into $7,080 of cost of goods sold:
2026-10-03 * "Receive goods — periodic system stages in Purchases"
Expenses:Purchases:Widgets 800.00 USD
Liabilities:AccountsPayable:Supplier -800.00 USD
2026-12-31 * "Periodic close — ending count 1,920.00 USD against 1,000.00 USD beginning"
Assets:Inventory 920.00 USD
Expenses:COGS 7,080.00 USD
Expenses:Purchases:Widgets -8,000.00 USDEither structure stays readable as volume grows, because the account names carry the system's logic. For background on structuring accounts and reports this way, see the introduction to Beancount and the financial reporting templates, and use a dashboard view such as Fava to watch inventory and margin trends month to month.
Which System Fits Your Business
Work through these five questions honestly. If most answers land on the left, periodic serves you well; if they land on the right, it is time to go perpetual.
How many SKUs do you carry? Under a few dozen distinct items, a periodic count takes an afternoon and stays accurate. Past a few hundred, full counts become multi-day shutdowns, and that pain alone usually justifies perpetual plus cycle counting.
How many transactions per day? Low daily volume means few movements to miss between counts. High volume means the shelf turns over constantly, and a quarterly count is stale before the reconciliation spreadsheet is finished.
How many locations? One room you can walk in ten minutes is countable. Two stores, a warehouse, and a consignment shelf across town are not — transfers between locations vanish under periodic, while perpetual tracks each move.
How tight are your margins? A business earning 60 percent gross margin can absorb some invisible shrinkage. A grocer or distributor earning 8 percent cannot; undetected loss of two points of margin is a quarter of the profit, and only perpetual shows it while there is still time to act.
Can you staff the discipline? Perpetual without receiving discipline and exception review is the worst of both worlds. If you cannot commit the weekly hours, run periodic well — scheduled counts, secured stockroom, investigated variances — until you can.
Watch for the three signals that you have outgrown periodic: stockouts on items the books say you own, a cost-of-goods-sold percentage drifting upward with no supplier price change behind it, and counts that consume selling days. Any one of them means count-and-calculate now costs more than perpetual machinery would.
Common Mistakes to Avoid
- Running perpetual software with periodic habits. Buying the POS and scanners but skipping receiving scans produces balances that look precise and are wrong. The hardware is the cheap part; the scanning discipline is the system.
- Treating periodic cost of goods sold as exact. It is a plug figure that absorbs shrinkage, damage, and every counting error. Read it as "goods no longer on the shelf," not "goods profitably sold," and investigate when the percentage moves.
- Counting once a year with no cycle counts in between. Eleven months of drift makes the annual reconciliation a forensic exercise. Monthly or weekly slices keep each variance small enough to explain.
- Mixing the two systems in one set of books. Debiting purchases to Inventory while also running the periodic closing formula double-counts stock. Pick one plumbing design per business and keep every entry consistent with it.
- Forgetting freight-in and purchase returns in net purchases. Delivery charges are part of what the goods cost, and returned goods were never really bought. Both adjust the formula, and both are easy to leave in the wrong account.
- Writing off book-to-physical gaps without reason codes. Every adjustment should carry a cause — damage, vendor shortage, theft, data entry — or the pattern never emerges. Shrinkage you categorize is a solvable problem; shrinkage you shrug at is a tax on everything you sell.
Run This Week's Test Before You Choose
Pull your last three months of records and answer two questions with numbers, not impressions: how many selling days did your last full count consume, and how far did cost of goods sold as a percentage of sales drift from month to month? If the count cost you days and the percentage wobbles without explanation, price out a POS inventory add-on and a barcode scanner this week — the hardware costs less than one more blind quarter. If the count took an afternoon and the percentage holds steady, stay periodic and spend the savings on a cycle-count rotation for your ten highest-value SKUs. Either way, your next count will measure a system you chose on purpose instead of one you inherited by default.




