Decision software for grocery chains

Days of inventory

Days of inventory is average inventory at cost divided by daily cost of goods sold; it shows on average how many days of sales the stock on hand covers.

Unit: daysTracking frequency: Monthly; forward cover by SKU weeklyKept within a target band

Also calleddays inventory outstanding, DIO, DSI, inventory days, days of stock

Formula

Average inventory at cost ÷ Annual COGS × 365
Average inventory at cost
The average of month-end inventory values at cost.
Annual COGS
The cost value of products sold in the period.
Number of days
Days in the period: 365 for an annual figure; for a monthly figure, the days in the month and that month's COGS.
Forward days of cover
Units on hand ÷ Average daily unit sales; by SKU, looking forward.

Calculator

Enter your own figures and the result updates instantly. The defaults are the figures from the worked example below.

Result91 days

Worked example

How to read it, and what good looks like

Days of inventory is an average of the past period and does not answer "how many days will today's stock last"; that question is answered by forward days of cover by SKU. Where the two measures diverge, and how the target is derived from lead time, is covered in the days inventory outstanding guide; this page is for the quick calculation.

In grocery the gap between departments is large: fresh produce delivered daily runs on a few days of stock, while ambient grocery and non-food departments carry weeks of it. That is why the chain average is never read on its own; days of inventory is tracked by department and branch. The same calculation can be run on a listed company's report using closing stock, but the result blends every department and is not used as a target.

The target is derived from supply structure rather than a sector average: target days of stock = lead time + safety days + half the order interval. Actual days above target mean excess stock; below target, stock-out risk. In Mindpera, Mind Stock shows days of inventory together with the ageing report, and Mind Send sets the ideal stock level from rate of sale and raises a replenishment proposal for any store that drops below threshold.

Where it misleads

  • The overall figure can look healthy while some SKUs are out of stock; the average hides the distribution, so decisions are made at SKU level.
  • If out-of-stock days are not removed from the denominator of forward cover, the rate of sale looks low and cover looks high.
  • Using 365 and annual COGS for a monthly figure makes the result meaningless; match the period's day count with the same period's COGS.
  • Days of inventory is calculated at cost and forward cover in units; one does not substitute for the other.

Data you need

  • Month-end inventory at cost, by category and location
  • Cost of goods sold for the period
  • Units on hand, daily unit sales and out-of-stock day flag by SKU
  • Lead time by supplier (for the target days)

Mindpera products that calculate this KPI

Frequently asked questions

How many days of inventory should a retailer hold?
Derive the right value from supply structure: target days equal lead time plus safety days plus half the order interval. Department differences are large: fresh produce runs on a few days of stock, ambient grocery and non-food departments on longer cover. Set your own target by category.
What is the difference between days of inventory and forward days of cover?
Days of inventory is an average of the past period, calculated at cost and used for stock policy. Forward days of cover shows how many more days today's stock will last, calculated in units by SKU, and drives ordering. A department carrying 91 days of stock on average can have individual products with only a few days of cover left.

Track days of inventory on your own data

Mindpera runs this calculation every day by product, branch and category; a value that crosses its threshold lands on its owner as a task.