Fall 2022. I was doing an operations review at a 3PL warehouse outside Ontario, California. The owner slid an Excel sheet across the table: company-wide inventory turnover of 8.2. In his mind, that meant "we run a tight ship." So he made the call on the spot — cut safety stock by thirty percent ahead of peak season. With turns that high, he figured, stockouts weren't a risk.
The following spring, two of his biggest accounts ran dry on bestsellers. Expedited air freight to recover cost him well into six figures. When I took his spreadsheet apart, I found that 8.2 was wrong from numerator to denominator. The real number was barely above 4. His inventory wasn't well managed. His math was.
Since then I've developed a reflex. Whenever a client starts talking about inventory turns, my first question is always the same: how exactly did you calculate that? Seven times out of ten, the formula itself doesn't hold up.
Sales or Cost of Goods Sold — Which Goes on Top?
This is the most common trap. The formula itself is sound: inventory turnover equals cost of goods sold over a period, divided by average inventory over the same period. Both halves are cost-based. The moment you put revenue in the numerator, you're dividing "money that includes profit" by "goods that don't." The ratio comes out inflated, guaranteed.
Run the numbers with me. A small warehouse ships $8 million a year at a 25 percent gross margin, carrying $1.2 million in average inventory. Using sales: 8 ÷ 1.2 = 6.7 turns. Using COGS: 6 ÷ 1.2 = 5 turns. Same warehouse, two formulas, a 34 percent gap. The higher your margin, the fatter the lie.
The subtler version shows up in benchmarking. Company A runs a 40 percent margin, Company B runs 15 percent. Compare their turns with sales in the numerator and you're measuring with two different rulers. If you want a fair comparison, standardize on COGS — and if you can't get cost-based numbers from the other side, skip the comparison rather than fooling yourself.
One more detail people miss: returns. Do you subtract them from the numerator? You should. Returned goods were never actually sold; leaving them in the flow inflates your shipped volume. Plenty of warehouses track returns on a separate line and then forget to back them out. It quietly pumps the numerator by 5 to 8 percent over a year.
Average Inventory or Just Whatever's on the Shelf Today?
The second trap sits in the denominator. In a lot of spreadsheets I've seen, the denominator is simply the ending inventory balance — because that's the easiest number to grab right after a count. But ending inventory is a snapshot, and snapshots lie when your business is seasonal.
Take an outdoor-gear warehouse. By September it's stocked up for the holidays: $1.8 million on hand, versus $600,000 back in January. Divide by the ending figure and the turnover ratio collapses; the owner sees "terrible turns" and cuts purchase orders. Switch to a proper average of beginning and ending balances and the number looks sane again. The mirror image happens too — a warehouse that ran a big clearance in January and ended the year nearly empty gets flattering turns from the same shortcut.
My rule is blunt: if your data allows it, don't average two endpoints. Average twelve month-end balances, or at minimum do it quarterly. For seasonal categories — toys, outdoor, apparel — a quarterly view catches problems an annual number flattens out. Your WMS can almost certainly export month-end balances; it's one AVERAGE function in Excel. Don't skip it.
Then there's in-transit inventory. Goods you've paid for that are still on a container ship — do they count? They sit on your balance sheet, but they're not on your racks. You can't sell them, you can't pick them. When I calculate turns for operational purposes, in-transit stock stays out of the denominator. It affects your cash flow, not your warehouse efficiency. You can track both views, just don't blend them.

Dead Stock in the Denominator Poisons the Whole Number
The third trap is the nastiest because it hides the deepest. Many warehouses carry "zombie SKUs" — items with no movement in over twelve months. They squat in the denominator, motionless, dragging the whole ratio down. The owner stares at the weak number, concludes the business is overstocked, and cuts replenishment on the fast movers. The real disease — the zombie stock — never gets touched.
I worked with a hardware distributor stuck at barely 2 turns a year, with the owner complaining constantly about bloated inventory. Break it apart and the story changed: dead stock was over thirty percent of inventory value. Strip it out and the healthy SKUs were turning more than 5 times. The problem was never "slow turns." It was "nobody cleared the dead wood."
So I always run two numbers. The all-in turnover shows overall capital efficiency; the turnover with 12-month-no-move SKUs excluded shows how the day-to-day operation is actually performing. The wider the gap between the two, the heavier the dead-stock drag — and the higher liquidation should sit on your priority list. Set your own dead-stock threshold (twelve months of no movement is my usual line), but once it's set, keep it consistent across the company. Don't use twelve months this quarter and eighteen the next.
The Formula I'd Actually Use, Plus a Checklist
Fill in the three traps and the correct formula looks like this:
Inventory turnover = (COGS − cost of returns) ÷ monthly-average inventory, excluding in-transit stock
And here's a checklist you can steal. Run through it every time before a turns report goes out:
- The numerator is COGS, not sales. Returns are backed out.
- The denominator is average inventory for the same period — quarterly average at minimum for seasonal businesses. Ending-balance snapshots are reference only.
- In-transit stock stays out of the denominator; track it separately.
- Dead stock gets its own view, never blended with active SKUs.
- When comparing across periods, keep the accounting method (FIFO vs. weighted average) consistent. When comparing across companies, confirm the other side is cost-based too.
One conversion worth memorizing: 365 ÷ turnover = days of supply. Telling the sales team "this category sits 73 days on average" lands a lot better than "turnover is 5."
And a final trade-off nobody escapes. Turns too low and your cash drowns in inventory. Turns too high and stockouts plus expedite costs eat you alive. There is no universal "healthy" number — consumer goods and industrial spares live in different universes, so don't agonize over someone else's benchmark. Get your own math right first. Optimizing a miscalculated number just means getting wrong faster.
Here's what you can do tomorrow: open your current turnover report and check it against the five items above, one by one. If you find sales in the numerator, don't rewrite history. Just start running both versions in parallel from this month. Three months from now, look at the gap between the two curves. That gap is the truth your inflated number has been hiding from you.







