Economic Order Quantity (EOQ) for Veterinary Practices
The economic order quantity is the how-much-to-order number. Here's the EOQ intuition, the carrying-cost trap, and how to round it to real pack sizes you can actually buy.
You know it's time to reorder because your shelf hit its trigger point. Now comes the question that quietly costs practices thousands of dollars a year: how much do you actually buy? Grab one box and you'll be back here in nine days, paying another shipping fee. Grab a year's worth because it was "on sale" and you've just buried cash on a shelf where half of it may expire before you sell it.
The economic order quantity, or EOQ, is the number that settles that argument with math instead of mood. It's the companion to your reorder point. If the reorder point tells you when, the EOQ tells you how much. This is the long version of the how-much. If you want the full picture of how the two work together first, start with the reorder point and EOQ overview, then come back here for the part most people skip.
The two costs pulling in opposite directions
Every ordering decision is a tug-of-war between two real costs. EOQ exists to find the spot where they balance.
Ordering cost is the price of buying often. Every purchase order has overhead that has nothing to do with the product itself: the shipping fee, the minutes someone spends placing and receiving the order, checking it in, reconciling the invoice. Order the same item twenty times a year and you pay that overhead twenty times. Order it four times a year and you've cut it by 80%. So this cost says: buy big, buy rarely.
Carrying cost is the price of holding stock. Everything sitting on your shelf is costing you money right now, even while it does nothing. This is the cost most practices badly underestimate, so it's worth breaking down.
What carrying cost actually includes
Carrying cost is more than shelf space. Three costs stack together: the capital tied up (cash you could have spent on something else), the storage and handling, and the big one in a pharmacy, expiry risk. Add it up and carrying cost typically runs 20 to 30% of an item's value per year.
That 20-to-30% figure is the part that reframes everything. If you stockpile $4,000 of a slow-moving drug to chase a better unit price, you're risking more than expiry. You're spending somewhere around $800 to $1,200 a year just to own that pile. So this cost says the opposite of the first one: buy small, buy often.
EOQ is simply the order size where those two forces cancel out, where the savings from ordering less often stop outrunning the rising cost of holding more.
The formula, without the homework
The classic EOQ formula has a square root in it and tends to scare people off. You genuinely don't have to memorize it. What matters is the intuition behind what it weighs:
- Annual demand: how many you sell in a year. Higher demand pushes the batch size up.
- Ordering cost per order: your overhead per purchase. The pricier each order is to place, the bigger EOQ wants your batches to be, so you place fewer of them.
- Carrying cost per unit per year: what it costs to hold one unit for a year. The pricier it is to hold, the smaller EOQ keeps your batches.
That's the whole story. EOQ takes those three inputs and hands you a mathematically reasonable batch size instead of a number you pulled from a gut feeling. It's not magic, just arithmetic that nobody has time to do by hand across a thousand SKUs.
But here's the catch every practice runs into the moment they try to use a raw EOQ number.
Making EOQ buyable: pack-size rounding
Pure EOQ does not care that your distributor sells things in boxes. It will cheerfully tell you to order 37.4 capsules when the smallest unit you can buy is a bottle of 100. A recommendation you can't actually place on an order form is useless on the floor. So the practical version always snaps the answer to something real:
Practical Order Qty = round up to the nearest pack size
Round up, not down, because you never want a recommendation that leaves you short of what the math said you needed. That single rule turns every EOQ into a number you can type straight into a PO. But rounding up has a sharp edge, and ignoring it is where a lot of overstock quietly comes from.
When rounding up balloons the order
Say the math wants 120 units, but the item only comes in packs of 100. Rounding up forces you to buy two packs, 200 units, nearly double what you actually needed. For a fast cheap item, fine. For an expensive or slow-moving one, you've just trapped a lot of cash to satisfy a rounding rule.
Smart shifting: keep the safety stock, skip the cash hit
There's a cleaner move than blindly rounding up, and it's worth understanding because it's the difference between a system that's technically correct and one that respects your bank account.
Smart shifting
When the math wants 120 and the pack is 100, instead of buying two packs you round down to one pack of 100 and add the leftover 20 to your reorder point instead. You order earlier next time, so you never actually lose that safety stock. You just stop pre-paying for it in giant lumps.
This works because the reorder point and the EOQ are a team. Anything you shave off the order quantity can be protected by triggering the next order a little sooner. The result is the same coverage with a fraction of the cash outlay, which is exactly why your reorder point is worth setting just as carefully as your EOQ. (That's its own full guide to the reorder point if you want the when side in full.)
A days-of-supply floor so orders aren't pointless
One more practical guardrail. For some items, the raw EOQ and pack rounding can land you on an order so small it's barely worth the shipping label: a quantity that arrives and lasts four days before you're reordering again. That defeats the entire purpose of batching.
A sensible system puts a minimum days-of-supply floor under the order. If a calculated order would only last a handful of days, step it up by whole pack multiples until it covers a reasonable stretch, say at least a month. You stop paying ordering overhead on quantities too small to justify it.
Let the EOQ math run itself
StockSolve calculates EOQ, rounds to your real pack sizes, and applies smart shifting across your whole catalog from one PIMS export. Try it free on your own data.
A full worked example
Let's run a made-up chronic medication, "Drug X," end to end so you can see the whole chain.
- Demand. You sold 730 units over the last 12 months. So
Daily Demand = 730 / 365 = 2 per day. - The trigger. Your reorder point already worked out to 30 units (lead-time demand plus safety stock, the when). When you drop to 30 on hand, it's time to order.
- Raw EOQ. Weighing annual demand against your ordering and carrying costs, the EOQ math suggests roughly 90 units is the cost-balanced batch.
- Round to a pack. Drug X comes in bottles of 90. That's a clean fit:
Practical Order Qty = one bottle (90). No shifting needed here.
Now suppose instead the EOQ had come out to 110 and the bottle held 90. Rounding up means two bottles, 180, way more than you wanted. Smart shifting steps in: order one bottle of 90, and add the leftover 20 to your reorder point, bumping it from 30 to 50. You'll reorder slightly sooner, you never run short, and you spent half the cash. Same protection, lighter shelf.
Either way you end up with a rule a human can actually follow: "When Drug X hits its trigger, order one bottle." Multiply that across the pharmacy and the daily ordering decision basically disappears.
Three mistakes that quietly cost the most
The math is the easy part. These are the habits that undo it:
- Chasing the cheapest unit price into a year of overstock. A 15% discount for buying a year's supply looks like a win until you remember carrying cost is eating 20 to 30% of that value annually, and that's before anything expires. The cheaper unit price is often the more expensive decision.
- Ignoring pack sizes. A beautiful EOQ of 37.4 that you can't buy is just a number. The order quantity that matters is the one rounded to a real, buyable pack.
- Forgetting carrying cost is real money. It doesn't show up on an invoice, so it feels free. It isn't. Capital, storage, and expiry are spending your money every single day that stock sits there.
Why the how-much number matters
A right-sized reorder point keeps you from running out. A right-sized EOQ keeps you from drowning in stock you didn't need. It's the direct lever on the trapped capital sitting on your shelves right now. Get the EOQ right and you order less often, pay fewer shipping fees, throw away less expired product, and free up cash you can actually use.
None of this is new or secret math. It's been standard inventory practice for decades. The only thing that ever made it hard was the hours it took by hand. Take that away, and "order the economically optimal amount" stops being a textbook idea and becomes just how you place a normal Tuesday order.
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
The Data-Driven Approach Works. It's Also a Full Day of Your Life.
Data-driven ordering beats gut feel every time. The catch is the workload: spreadsheet math, pack-size hunting, detective work on lumpy items. Here's the fix.
How Lean Can You Safely Run Your Veterinary Inventory?
Just-in-time sounds efficient until a patient needs a drug you skipped. Here's what holding stock really costs, what a stockout really costs, and where the lean should actually come from.