On this page
Tanqory Analytics has a sales by product report, and its AI assistant answers questions such as which product to restock.
How to calculate inventory turnover
Divide the cost of the goods you sold by the stock you held on average, both at cost and for the same period:
Inventory turnover = cost of goods sold ÷ average inventory at cost
Average inventory = (opening inventory + closing inventory) ÷ 2
Value stock the same way you value cost of goods sold: at landed cost, meaning product cost plus inbound freight and duties per unit. If COGS includes freight and your stock count does not, the two numbers measure different things and the ratio drifts.
| Year | Opening stock at cost | Closing stock at cost | Average inventory | Cost of goods sold | Turnover |
|---|---|---|---|---|---|
| 2025 | $14,000 | $16,000 | $15,000 | $60,000 | 4.0 |
A turnover of 4 means the store sold an amount of stock equal to its average holding four times in the year.
Why not revenue ÷ inventory
Some tools divide revenue by inventory. If inventory is valued at cost, that formula puts selling prices on top and costs underneath, so it counts your margin as speed. The same store had $100,000 of revenue at a 40% gross margin, which is the $60,000 of COGS above. Revenue ÷ $15,000 gives 6.7, not 4.0. Raise every price by 10% and that figure rises too, though not one more unit left the shelf. Use cost on both sides, or price on both sides, never one of each.
Average inventory: two counts or twelve
Opening and closing stock are two days in a year. If stock builds between them, their average misses it. Take the same store with $14,000 of stock on January 1 and these month-end counts at cost:
| Month end | Stock at cost |
|---|---|
| January | $12,000 |
| February | $12,000 |
| March | $13,000 |
| April | $13,000 |
| May | $14,000 |
| June | $14,000 |
| July | $16,000 |
| August | $22,000 |
| September | $32,000 |
| October | $40,000 |
| November | $36,000 |
| December | $16,000 |
The twelve month-end counts add to $240,000, an average of $20,000. On that average the turnover is $60,000 ÷ $20,000 = 3.0, not 4.0. The store built stock for the holidays and sold it down before the year-end count, so the two-count average saw none of it. Some stores average thirteen counts, the opening balance plus twelve month ends. Either works if you keep the same method every year.
Days of inventory
Days of inventory turns the ratio into time: how long stock sits, on average, before it sells.
Days of inventory = 365 ÷ inventory turnover
| Turnover in a year | Days of inventory |
|---|---|
| 2 | 182.5 |
| 3 | 121.7 |
| 4 | 91.3 |
| 6 | 60.8 |
| 8 | 45.6 |
| 12 | 30.4 |
The same number comes from average inventory ÷ COGS per day. $60,000 ÷ 365 is $164.38 of stock sold per day, and $15,000 ÷ $164.38 is 91.3 days.
For a shorter period, use the days in that period. A quarter with $15,000 of COGS and $15,000 of average stock turned once, which is about 91 days, the same pace as 4 a year. Do not compare a quarterly turnover with an annual one.
Days of inventory looks back over a period. Days of stock left looks forward: units on hand ÷ units you expect to sell per day. A product with 90 units on hand selling 10 a day has 9 days left.
One product, one store
The store figure is total COGS ÷ total average inventory. It can look healthy while one product barely moves:
| Product | Cost of goods sold | Average inventory | Turnover | Days of inventory |
|---|---|---|---|---|
| Harness | $40,000 | $5,000 | 8.0 | 45.6 |
| Lead | $18,000 | $4,000 | 4.5 | 81.1 |
| Winter coat | $2,000 | $6,000 | 0.33 | 1,095 |
| Store | $60,000 | $15,000 | 4.0 | 91.3 |
The coat holds 40% of the stock ($6,000 of $15,000) and accounts for 3.3% of COGS ($2,000 of $60,000). At its pace the stock on hand takes three years to sell. The store turnover of 4.0 hides it.
Go one level further, to each SKU. A product that turns well overall can carry sizes or colors that never sell, and a variant with no sales has a turnover of zero. List stock with no sales in the last 90 days, at cost, beside the turnover report.
In Tanqory, Analytics has a sales by product report that you can download as a CSV file; add your landed cost per unit and your stock counts in a spreadsheet to work out turnover by product.
Turnover, stockouts and cash
Every dollar of stock is cash you paid before the sale. Cut average inventory from $20,000 to $15,000 with COGS steady at $60,000, and turnover rises from 3.0 to 4.0 while $5,000 comes back to spend on something else. Stock also costs money to hold: storage, insurance, damage and theft, and goods that go out of date or out of fashion.
Less stock means less margin for error. A product that sells 10 units a day at $40, with a $24 landed cost, and runs out for 7 days misses 70 sales: $2,800 of revenue and $1,120 of gross profit, unless buyers wait or buy something else. An order you cannot fulfill on time can also cost the buyer's next order.
A stockout also flatters the ratio. While a product is out, its stock is low and its average inventory falls, so turnover can rise in the same month you lost sales. Read turnover beside days out of stock, never alone.
Seasonal stock builds
Building stock before a peak lowers turnover for those months by design, as the month-end table above shows. Compare a season with the same season a year earlier, and use monthly counts so the build is in the average. What matters is how much of the build is left once the season ends.
Ways to raise inventory turnover
Each lever has a cost. Watch gross profit in dollars and days out of stock while you try one:
- Smaller, more frequent orders. Average stock falls with order size. You may lose volume pricing, pay more inbound freight per unit, which lowers gross margin, and spend more time receiving shipments. A late delivery leaves you less stock to cover it.
- Clear slow stock. Sell it at a discount, bundle it with a product that sells, return it to the supplier if your terms allow, or write it off. You give up margin on those units, and a discount code used too widely cuts margin on stock that was selling anyway. In return you get cash and shelf space back.
- Set reorder points. Reorder point = units sold per day × supplier lead time in days + safety stock. At 10 units a day, a 14-day lead time and 30 units of safety stock, reorder when stock falls to 170. The safety stock is cash held on purpose, and the rule works only if your counts and lead times are accurate.
- Narrow the range. Fewer colors and sizes mean less stock spread over slow variants. Some buyers who wanted the variant you dropped will not buy another.
Questions
What is a good inventory turnover?
There is no single good number. Turnover depends on what you sell, how long your suppliers take and how much they make you order at once: fresh food has to turn far faster than furniture. We do not quote an industry average here, because published figures mix cost and revenue formulas and different ways of averaging stock. Compare your own turnover over time and by product, calculated the same way each time.
Should inventory turnover use cost of goods sold or revenue?
Use cost of goods sold when inventory is valued at cost. Revenue divided by inventory at cost mixes selling prices with costs, so a price rise or a richer margin shows up as faster turnover. If you use revenue on top, you have to value inventory at selling price underneath.
How do I calculate days of inventory?
Divide 365 by your annual inventory turnover. A turnover of 4 is 91.3 days, and a turnover of 6 is 60.8 days. For a quarter or a month, divide the days in that period by the turnover for that period.
Can inventory turnover be too high?
Yes. Very high turnover can mean you hold too little stock and run out, which loses sales and gross profit. It can also mean you order so often that freight and lost volume pricing eat into margin. Read turnover beside days out of stock and gross margin.
Does stock on order count as inventory?
Stock you have ordered but do not yet own is not inventory. Goods in transit count once they are yours, which depends on your purchase terms with the supplier. Whatever rule you choose, use it for both the opening and the closing count.