A physical inventory count is the process of counting every unit of stock in your store, yard, and back room by hand, recording the quantities, and adjusting your books so the recorded inventory matches what is on the shelf. It matters because your ending inventory feeds straight into cost of goods sold: COGS = beginning inventory + purchases minus ending inventory. Get the count wrong and your profit, and your tax bill, are wrong by the same amount.

Why the IRS and the CRA care

The IRS is blunt about this in Publication 538: "You must take a physical inventory at reasonable intervals and the book amount for inventory must be adjusted to agree with the actual inventory." You can keep a perpetual (book) inventory through the year, but only if you follow sound accounting practices, and in practice that means verifying it against a real count. Canada's CRA makes the same point in IT-473R, an archived bulletin: "In the usual case, a physical stocktaking should be carried out at the end of the year," with a reliable perpetual system allowed to stand in only when it's periodically verified against the quantities on hand.

So once a year, at minimum, you count everything. Here's how to do it without losing a weekend and your patience.

When a full count is required

The year-end count is the one everyone knows about, but the full count is the reset button you hit at a handful of moments: fiscal year-end for your accountant, when a lender or insurance carrier asks for a verified inventory figure, when you're selling the business, and when you go live on a new POS and need clean opening numbers. If you're planning a system switch, the count you take before cutover is the foundation everything transfers on top of, and our guide on what transfers in a POS data migration covers how to sequence it.

The rest of the year, cycle counting keeps the book numbers honest between full counts. Counting a subset of inventory on a regular cadence is a different discipline with its own cadence and scoping rules, and we cover it in the cycle counting guide. The full count is the wall-to-wall version, and it deserves real preparation.

Before the count: decisions to make with your accountant

The first call is the date. Pick it with your accountant so the count lines up with your fiscal year-end, because a count taken on January 12th for a December 31st year-end creates a reconciliation problem nobody enjoys.

Next, decide whether you close the store for the day or count after hours. Closing costs you a day of sales but gives you a still target. Counting after hours keeps the doors open but means you're counting a moving store, which is doable if your cutoff rules are tight. Plenty of stores count on a Sunday or a closed day and buy the crew a box of donuts, which remains the only universally accepted form of inventory-count compensation.

Then set your cutoff rules, and write them down where every counter can see them:

  • Receive and post every delivery before the count starts. Anything sitting in receiving that's been delivered but not posted will get double-counted or missed entirely.
  • Hold any truck that arrives during the count in a marked area. Rope it off, tag it "do not count," and don't let a single box migrate to the shelf until counting is done.
  • Post all sales before you start. Every invoice that's been rung up but not posted will make the expected quantities wrong.
  • Tag and exclude goods that aren't yours anymore. A will call that's already been paid for belongs to the customer, not to you, so tag it and leave it out of the count. The same goes for paid special orders waiting on pickup.
  • Exclude consignment goods. They belong to the vendor until they sell, so they're not your inventory and they don't go on your sheets.
  • Count damaged goods separately and write them down. A pallet of feed with torn bags and a stack of cull lumber still have value, but not full value. Count them on their own sheet so the office can adjust the cost rather than pretending they're sellable at full price.
  • Don't forget the inventory that isn't on the sales floor. Goods at a second location, the yard, the shed out back, and items sitting on your delivery truck all count, and they're the places counts go to die.

Set up the store: zones, tags, and teams of two

Map the store into numbered zones before count day: Zone 1 might be fastener aisles, Zone 4 the paint mixing area, Zone 7 the yard. Tag every shelf section, and treat the sales floor, overstock, back room, and endcaps as separate locations even when the same product lives in all of them. A gallon of paint on the shelf and the same gallon in overstock should land on two lines with two location tags, because "twelve somewhere in the building" is how shrink hides.

Count in teams of two, one person counting and calling, one person recording or scanning. It's slower per aisle and faster overall, because the recorder catches the "wait, was that 847 or 850?" moment before it becomes a $600 variance in deck screws. (Every store has that bin. You know the one. The nail keg in the corner that nobody has wanted to count since 1994 can wait for last, but it cannot wait for never.)

Run blind counts, where counters see the SKU and the shelf, not the quantity the system expects. An expected number on the sheet turns counting into agreeing, and agreeing is how a wrong book figure stays wrong for another year.

Units of measure: count in the unit you sell

This is where experienced stores still trip. Count in the unit of measure you sell in, not the unit you buy in. If you sell deck screws by the each but they arrive in boxes of 100, decide before count day whether the sheet records eaches or boxes, and make sure every counter knows. Chain, rope, and cable get counted by the foot off the spool, not by the spool. Paint gets counted as gallons, quarts, and five-gallon pails as separate lines, because "paint: 40" reconciles to nothing. If your store buys by the roll and sells by the foot, the units of measure guide is worth a read before you print your sheets.

The count sheet

A good count sheet is boring, and boring is the goal. Here are the columns you need, with a few example rows:

Zone/location SKU Description UOM Counted qty Counter initials Recount qty Notes
1-Aisle 3 SCR-3400 Deck screws #8 x 2.5", box of 100 box 38 JM
2-Overstock SCR-3400 Deck screws #8 x 2.5", box of 100 box 12 JM partial box, counted 60 eaches
4-Tint room PNT-2110 Interior eggshell, white base gallon 22 RS 21 opened gallon set aside
6-Warehouse FED-1180 Layer feed, 50 lb bag bag 64 RS
6-Warehouse dmg FED-1180 Layer feed, 50 lb bag (torn bags) bag 3 RS write down

Two optional columns live in the office, not on the floor. Expected qty stays hidden from counters if you're running blind. Unit cost and Extended cost get filled in afterward by whoever reconciles, so counters aren't anchoring on dollar amounts.

After the count: reconcile, recount, adjust, file

Pull the count into a variance report and set a recount rule before anyone starts second-guessing. A common one: any line with a variance over $50 at cost, or over 10% of expected units, gets a second counter. So if the system expected 56 boxes of those deck screws at $12.40 a box and the sheets add up to 50 (38 in the aisle plus 12 in overstock), that's a six-box, $74.40 variance at cost, and a second counter walks the aisle, the overstock, and the receiving area before anyone accepts it. Have a supervisor audit a random sample of tags too, even on lines with no variance, because a count that only gets checked where it disagrees with the book teaches counters what they can get away with.

Investigate the big variances before you post anything. Unposted sales, unposted receiving, and miscounted units of measure explain most of them, and the rest is shrink, which is worth understanding on its own. Our guide on retail shrink for hardware and feed stores walks through where those losses come from.

Once you post the adjustment, the count value flows into your year-end numbers, and this is where accuracy stops being housekeeping and starts being money. Say your count overstates ending inventory by $10,000 because someone double-counted a pallet in the yard. With COGS = beginning inventory + purchases minus ending inventory, that overcount understates your cost of goods sold by $10,000, which overstates your profit by $10,000, which means you pay tax on $10,000 you didn't make. A $16.50 bag of layer feed counted twice is a rounding error, while a whole pallet counted twice is a conversation with the IRS.

The count also sets the cost basis your valuation method runs on for the next year, whether you're on FIFO, LIFO, or average cost. If you're not sure which method your store uses or why it matters, the inventory valuation guide covers the tradeoffs.

Finally, sign off. The owner or manager signs the completed count, and the count sheets, variance reports, and adjustment records go into the tax file. If the IRS or CRA ever asks how you arrived at your ending inventory, "here are the sheets, the recount notes, and the sign-off" makes for a short conversation.

How Rundoo handles it

Rundoo runs a Full count of the whole store or a Cycle count scoped by vendor, category, product line, or product tag. Staff count by camera scan in the Staff app on iOS or Android, several counters can work the same count at once, and counts are blind, so nobody confirms last year's number on autopilot. The count table shows Expected, Counted, Variance, Cost, and Variance ($) per line, and the one trap worth knowing is that the variance report exports to CSV or Excel only before you click Complete, so export it for your recount pass and your tax file first. Completing the count adjusts on hand and posts a journal entry for the dollar difference to an inventory-variance expense account. For the valuation side, Rundoo shows on-hand value (average cost times on hand), stock value, and ledger valuation, so agree with your accountant on which figure you report and use it every year, and run the Negative inventory report before count day to catch sales that drove on hand below zero.