How to Keep Accurate Veterinary Inventory Counts
Veterinary inventory counts drift fast on a busy floor. Here's a simple open-date log, cycle counting, and variance triage to keep your numbers honest.
Every practice has that one bottle. The 1000-count that's somehow always either full or empty, never anything in between. You scan the shelf, the on-hand number in your PIMS says 340, and you'd bet a paycheck the real answer is closer to 90. That gap is the whole problem with veterinary inventory counts. On a busy floor they drift, quietly and constantly, until the number on the screen and the number on the shelf are barely on speaking terms.
The good news is you don't fix this with a heroic annual count and a lot of suffering. You fix it with a couple of small, boring habits that catch drift while it's still small. Let's walk through them.
Why veterinary inventory counts drift in the first place
Counts don't go wrong because your team is careless. They go wrong because the way medicine actually gets practiced fights against tidy recordkeeping:
- Large multi-dose bottles get opened and dispensed from in the middle of chaos. A tech draws up a dose mid-appointment, the patient's crashing or the lobby's full, and the charge gets entered later, or not at all.
- Unrecorded use adds up. A few mLs here for a fractious cat, a tablet there split for a tiny dog, the in-house "we'll fix it later" dose. Each one is small. A year of them is not.
- Big-count items hide their own shrinkage. Nobody notices that a 1000-count bottle is 40 capsules light. You'd notice fast on a 12-count. The bigger the container, the more room for "mystery shrinkage" to live undetected.
What 'shrinkage' actually means
Shrinkage is the catch-all term for inventory you paid for that isn't on the shelf and wasn't recorded as sold or used. It's not always theft. Most of it is unrecorded dispensing, waste, and miscounts. But you can't tell which is which until you measure.
The centerpiece: log the open date on your big bottles
Here's the habit with the biggest payoff, and it costs you about ten seconds per bottle. When you crack open a new large container, a big injectable vial, a large tablet or capsule count, a jug of liquid, write down the date you opened it.
That open date is gold. It gives you a known starting mark: on that day, the bottle held a full, factory-sealed count. Now you have a fixed point to measure from. Everything dispensed since that date should come straight off that starting number, and what's left is your estimate.
The math is genuinely this simple:
Estimated On-Hand = Starting Full Count - Units Dispensed Since Open Date
Then you do a quick physical count of that one bottle and compare. If the estimate and the count agree, great, your records are honest. If they don't, you've just found drift on a specific item, with a specific time window to investigate, instead of staring at a year-end variance with no idea where it came from.
A tiny worked example
Say you open a fresh 500-count bottle of an oral medication on June 1 and jot "Opened 6/1" on the label.
- Starting full count: 500.
- Pull the dispensing transactions since June 1 from your PIMS. Suppose they total 180 tablets sold and dispensed.
- Estimated on-hand today:
500 - 180 = 320tablets. - Quick physical count: you tip out the bottle and count 296.
- Variance:
320 - 296 = 24tablets unaccounted for.
Twenty-four tablets walked off the books in roughly three weeks. That's not a catastrophe, but it's a real signal. And because you logged the open date, you know exactly which item and exactly which window to look at. Without that starting mark, those 24 tablets just vanish into the annual count and you never learn a thing.
The open date is your anchor
A logged open date turns a guess into a calculation. You go from "I think this bottle is about half" to a number you can verify against the actual count, for the items most likely to drift.
You don't need to do this for every SKU. Do it for the big-count, high-movement, or high-value containers, the ones where drift hides best and hurts most. A grease pencil on the label or a one-line shared note is plenty.
Cycle counting beats the dreaded annual count
The annual count is where good intentions go to die. You shut down, everyone counts everything at once while exhausted, and the numbers you get are only accurate for about a day. Then they start drifting again immediately.
Cycle counting flips this. Instead of one giant event, you count a small slice of the shelf every week. Over a quarter you've covered everything, nobody's miserable, and you catch problems in near-real-time. The trick is deciding how often to count each item, and that's where an ABC approach helps:
- A items, count often (weekly or biweekly). Your fast movers and high-dollar drugs. They turn over quickly, so errors compound quickly, and the money at stake is real.
- B items, count monthly-ish. Moderate movement and value.
- C items, count rarely (quarterly is fine). The slow, cheap, long-shelf-life stuff. A miscount here barely moves the needle, so don't burn labor on it.
The point isn't to count more. It's to count smarter: frequent attention where the money and motion are, light touch everywhere else.
A simple weekly target
Pick a number you can actually sustain, say 15 to 20 line items per week, and rotate through the shelf so your A items come back around fastest. Small and consistent beats big and occasional every single time.
Turn a clean count into accurate reorder targets
Once your on-hand numbers are honest, StockSolve converts them into real reorder points and order quantities from your PIMS export. No spreadsheets, no guesswork.
Make it stick: ownership, timing, and variance triage
A counting system only works if it's somebody's actual job and it runs the same way every time.
Assign clear ownership
"Everyone counts" means no one does. Name a person, an inventory lead or a rotating role, who owns the cycle-count schedule and follows up on variances. Accountability is the difference between a system and a wish.
Count at consistent times
Count the same item the same way, ideally before the day's dispensing scrambles the numbers: early morning or before opening. Counting a fast mover at 4 PM, mid-rush, is how you manufacture a variance that isn't real.
Investigate variances; don't just adjust and move on
When the estimate and the count disagree, resist the urge to silently "fix" the system number. A variance is information. Triage it into one of three buckets:
- Unrecorded dispense: the most common by far. The product was used or sold but the charge never got entered. This is a charge-capture problem (and a missed-revenue problem) hiding inside an inventory problem.
- Miscount: someone counted a partial bottle wrong, or two similar SKUs got swapped. Recount before you conclude anything.
- True shrinkage: waste, expiry, breakage, or, occasionally, theft. This is the smallest bucket, but it's the one people jump to first.
Most "missing" inventory turns out to be bucket one, which is good news, because charge capture is fixable with process, and it ties straight to the cash quietly trapped in your inventory.
Don't let perfect be the enemy of good
You are never going to hit 100% accuracy on a live veterinary floor, and chasing it will burn out your team. Aim for "tight enough to trust your reorder numbers." Catch the drift that matters, let the rounding errors go.
A quick checklist to start this week
- Grab a grease pencil and start dating the open date on every large/high-value bottle as you crack it.
- Tag your shelf into A, B, and C buckets by movement and value.
- Pick a sustainable weekly count target and put it on one person's plate.
- Set a consistent count time, before the dispensing rush.
- When something doesn't match, run the open-date math and triage the variance instead of silently adjusting.
- Make sure your starting data is clean by pulling a tidy report out of your PIMS.
Why it matters
Accurate counts aren't a tidiness exercise. They're the foundation everything else sits on. Your reorder points, your order quantities, your valuation, your sense of how much cash is sitting on the shelf: all of it is only as trustworthy as the on-hand number it's built on. Feed those systems a number you don't believe, and you'll order on instinct again, which is exactly the guesswork you were trying to escape.
Date your bottles. Count a slice each week. Chase the variances that matter. Do that, and the next time someone asks how much of that 1000-count is left, you'll have an answer you can actually stand behind. And maybe, finally, that bottle will land somewhere between full and empty.
Written by
Neil Leinen
CVPM, Multi-Site Director of Operations
Neil Leinen is a Certified Veterinary Practice Manager who spent two decades on the practice floor before building StockSolve. He writes about the practical math behind running a calmer, more profitable inventory.
Keep reading
Reorder Tags and the Two-Bin System for Vet Clinics
Reorder tags and a simple two-bin system stop stockouts before they happen. Here's how to build a physical reorder trigger your team will actually use in any clinic.
Why StockSolve? Problem by Problem
Every table row here is a real inventory problem and the shipped fix: pack sizes, order quantities that don't overstock you, lumpy demand, messy exports, and the money hiding on your shelf.