KPI Library / Inventory
Inventory Days on Hand
Formula: (Average inventory value ÷ COGS) × 365
Typical range: Finished goods commonly target 30 to 60 days; raw material target depends on supplier lead time, not a general number
Days on hand measures how many days of usage the current inventory balance would cover at the current consumption rate, calculated from average inventory value divided by COGS and scaled to a full year. Lower is generally better because inventory ties up cash, but “generally” is doing real work in that sentence.
What good looks like
Finished goods days on hand commonly targets 30 to 60 days for discrete manufacturers, though it swings widely with order lead time expectations and demand volatility. Raw material days on hand should track supplier lead time plus a safety buffer, not a generic company-wide target; a part with a 12-week lead time needs a different DOH than one available overnight from a local distributor.
The trap with this metric is optimizing it in isolation. Driving DOH down aggressively, without watching service level and stockout rate at the same time, saves working capital right up until a supplier hiccup turns into a missed shipment. Any DOH reduction target should be reported next to fill rate or on-time delivery, not on its own page, so nobody mistakes a cash-flow win for a customer-service loss that hasn’t shown up yet.
Days on Hand in Power BI (DAX)
With a daily inventory snapshot fact and a COGS fact rolled up by period:
Avg Inventory Value =
AVERAGEX (
VALUES ( dim_date[date] ),
CALCULATE ( SUM ( fact_inventory_snapshot[inventory_value] ) )
)
COGS TTM =
CALCULATE (
SUM ( fact_orders[cogs_amount] ),
DATESINPERIOD ( dim_date[date], MAX ( dim_date[date] ), -12, MONTH )
)
Days on Hand =
DIVIDE ( [Avg Inventory Value], [COGS TTM] ) * 365
Split this by inventory category (raw material, WIP, finished goods) rather than reporting one blended number. Each category has a different driver and a different owner.
Common mistakes
- Using a single period-end snapshot instead of an average. Month-end inventory spikes from a receiving push or a shipping delay distort a point-in-time number badly.
- Blending raw material, WIP, and finished goods into one DOH figure. It hides which category is actually carrying the excess.
- Cutting DOH without watching service level. A falling DOH number that coincides with rising stockouts isn’t inventory efficiency, it’s inventory risk showing up on a lag.