Inventory Velocity

A Power BI dashboard that classifies inventory movement (fast/slow/dead) using time-window logic and highlights stock concentration and dead inventory value for action.

Power BIInventoryDAXKPI DesignWorking Capital

Summary

Problem
The team needed a fast way to identify which items are actively moving, which are slowing down, and which have become dead stock — without manually investigating thousands of SKUs.
Solution
Built a velocity classification model using time windows (90-day / 365-day) and surfaced top fast movers and dead stock by value, with clear definitions to prevent misinterpretation.
Result
Faster inventory reviews, clearer prioritization for purchasing/stock adjustments, and a repeatable view of where working capital is tied up.

Business impact

This dashboard turns “inventory intuition” into an auditable classification system, helping teams quickly identify where inventory is moving, where it’s slowing, and where dollars are tied up in dead stock.

Working capital visibility
Highlights dead inventory value so leadership can prioritize the few SKUs driving the majority of non-moving dollars.
Faster inventory decisions
“Fast / Slow / Dead” classifications reduce time spent manually investigating movement and help buyers focus on the right items first.
Cleaner communication
Clear definitions (90-day / 365-day windows) ensure teams interpret the dashboard consistently and avoid confusing “stocked” with “selling.”

Gallery

Screenshots and artifacts from the build (sanitized where needed).

1) Define movement windows

I anchored the classification around practical time windows: items with activity in the last 90 days are “fast,” items that haven’t moved recently but have within the last year are “slow,” and anything beyond 365 days is treated as dead stock.

2) Build the dataset
  • Created clean dimensions for items, vendors, and locations.
  • Used sales and purchase facts to provide context and allow drilldown.
  • Added an enriched item fact containing a usable “last purchase date” field for velocity logic.
3) Classify velocity in DAX

The velocity label is computed using days since last purchase date (DATEdiff against TODAY), then mapped into Fast / Slow / Dead buckets. Missing dates are handled explicitly so “no purchase date” doesn’t silently distort counts.

4) Make it actionable
  • Surfaced top fast movers by sales quantity (last 90 days).
  • Surfaced top dead stock by inventory value to show where dollars are tied up.
  • Included tables that allow quick investigation (item number, vendor, on-hand, value, last activity).
5) Prevent misreads

I added a definition panel explaining exactly what each category and metric means (especially “dead stock” and inventory value), so the page supports consistent decision-making across teams.