Build a live inventory dashboard in 7 steps: connect ERP and sales data, pick KPIs with formulas, set low-stock alerts and refresh. Includes sample SQL.
To build an inventory dashboard, pick the decisions it has to support, connect your warehouse, ERP and sales data into one clean table, choose six or seven KPIs with fixed formulas, then lay them out by role with low-stock alerts and a refresh schedule you can trust. This guide walks through that process step by step, with formulas, a worked example, sample SQL and the tool trade-offs, so you end up with a live view instead of a spreadsheet someone rebuilds every Monday.
What you need before you start
Gather four things before you open a BI tool:
- Data access: Read access to your ERP or WMS (SAP, NetSuite, Microsoft Dynamics, Odoo, Fishbowl or similar) and to every sales channel that depletes stock (Shopify, Amazon Seller Central, a B2B order portal, POS).
- A KPI list: A short, agreed set of metrics with written formulas, so finance and operations read the same number.
- A build tool: A BI tool, your ERP’s own reporting module, or a low-code builder. Step 4 compares them.
- Stakeholder input: Who will open the dashboard, how often, and which decision each person makes from it.
How to build an inventory dashboard: step by step
The full procedure has seven steps: define users and decisions, connect and clean the data, lock the KPI formulas, pick a tool, design views and alerts, model every location, then set refresh and testing. Most teams get a first useful version live in one to three weeks; the data cleaning in Step 2 takes the longest.
Step 1: Define goals and who will use the dashboard
Start from decisions, not charts. Write one line per role:
Role | Decision the dashboard supports | What they need to see |
|---|---|---|
Executive / owner | How much cash sits in stock, and is it moving? | Inventory value, turnover, days of inventory, trend vs last quarter |
Operations or supply chain lead | What to reorder this week, from whom | Items below reorder point, supplier lead times, open purchase orders |
Warehouse manager | Where stock is and what is wrong today | Stock by location and bin, count variances, inbound and outbound today |
Sales or customer service | Can we promise this order? | Available-to-promise by SKU and location |
If a chart does not change one of these decisions, leave it out. Dashboards fail more often from clutter than from missing data.
Step 2: Connect and clean warehouse, ERP and sales data
An inventory dashboard is only as good as the table underneath it. Build that table in three passes:
- Collect. Pull stock on hand per SKU and location from the ERP or WMS, sales and returns per SKU per day from every channel, open purchase orders with expected dates, and unit cost. Barcode or RFID scan feeds can add bin-level movement if your WMS exposes them.
- Clean. Standardise SKU codes across systems (Shopify variants rarely match ERP item numbers one to one), convert units of measure, remove test orders, and treat returns and cancellations consistently.
- Structure. Land everything in one place (a warehouse such as BigQuery, Snowflake or Postgres, or a well-kept spreadsheet for small catalogues) as daily snapshots: one row per SKU, location and date.
Reconcile before you chart. Compare ERP stock on hand with the quantity your sales channels think is available, and flag every SKU where they differ. Those mismatches are usually the first insight the dashboard produces, and they explain most overselling. For a deeper look at fixing mismatches, see the guide to inventory reconciliation.
Step 3: Choose the inventory KPIs with formulas
Keep the core set small and write the formula next to each metric on the dashboard itself.
KPI | Formula | What it tells you |
|---|---|---|
Stock on hand | Units physically in stock per SKU and location | The starting point for every other metric |
Inventory value | Units on hand × unit cost | Cash tied up in stock |
Inventory turnover | Cost of goods sold ÷ average inventory value (same period) | How many times stock sells through |
Days sales of inventory (DSI) | (Average inventory value ÷ COGS) × days in period | How many days current stock lasts |
Stockout rate | SKU-days out of stock ÷ total SKU-days | How often customers find nothing to buy |
Reorder point | (Average daily usage × lead time in days) + safety stock | When to place the next purchase order |
Carrying cost | Average inventory value × carrying cost rate | What holding stock costs per year |
Sell-through rate | Units sold ÷ (units received + starting units) | How fast new stock moves, useful for seasonal lines |
Worked example. A distributor had $1.2 million in cost of goods sold over the last 12 months, opened the year with $280,000 in inventory and closed it with $320,000.
- Average inventory = ($280,000 + $320,000) ÷ 2 = $300,000
- Inventory turnover = $1,200,000 ÷ $300,000 = 4.0
- DSI = ($300,000 ÷ $1,200,000) × 365 = about 91 days
For one SKU that sells 40 units a day, with a supplier lead time of 10 days and 120 units of safety stock, the reorder point is (40 × 10) + 120 = 520 units. When stock on hand plus open purchase orders drops below 520, the dashboard should raise an alert.
Safety stock itself can be a fixed number of days of cover or, for more volatile items, Z × standard deviation of daily demand × √lead time, where Z is about 1.65 for a 95% service level.
Step 4: Pick your build tool
Option | Examples | Strengths | Trade-offs | Typical time to first version |
|---|---|---|---|---|
BI tool | Power BI, Tableau, Looker Studio, Metabase | Flexible visuals, many connectors, row-level security | Needs someone to model data and maintain refreshes; per-user licences on most paid tiers | 1 to 3 weeks |
ERP reporting | NetSuite saved searches and dashboards, SAP Fiori apps, Dynamics 365 reports | Data is already there; no pipeline to build | Hard to blend in sales-channel data from outside the ERP | Days |
Spreadsheet with connectors | Google Sheets or Excel with scheduled imports | Cheap and familiar | Breaks at scale; manual fixes creep in | Days |
Low-code internal tool | Retool, Appsmith, or an internal tool built by Viktor | Can add actions such as “create PO” next to the chart | Someone has to own changes | Days to 2 weeks |
Check current licence prices on each vendor’s pricing page before you commit, since BI pricing changes often and usually scales with the number of viewers.
A small team without a data analyst can also hand the whole build to Viktor, an AI employee who works in Slack and Microsoft Teams. He connects to the ERP, Shopify and warehouse tools through 9,800+ integrations, builds the dashboard, refreshes it on a schedule and posts the low-stock list to the operations channel every morning.
Step 5: Design the layout, views and low-stock alerts
Put the most urgent information top left, where eyes land first. A simple layout that works for most teams:
Build three views on the same data model:
- Supplier view: Open POs, lead time accuracy and items waiting on each supplier.
- Product view: Turnover, DSI and margin by SKU and category, with slow movers highlighted.
- Location view: Stock and variances per warehouse, store or 3PL.
Alerts turn the dashboard from a report into a tool. Trigger one when stock on hand plus open POs drops below the reorder point, when a SKU has been out of stock for more than a day, or when a count variance exceeds a set percentage. Send alerts to the place people already read, such as a Slack or Teams channel or email, rather than expecting anyone to check the dashboard.
Step 6: Model multiple warehouses and locations
Treat location as a first-class field from day one, even if you have one warehouse today:
- Store stock as SKU × location × date, never as a single total.
- Calculate reorder points per location, because lead times and demand differ by site.
- Add in-transit stock between locations as its own status so it is not counted twice.
- Map each sales channel to the location that fulfils it, so channel availability matches the right warehouse.
- Give every chart a location filter, with “all locations” as the default for executives.
When a 3PL holds part of your stock, pull its inventory report on the same schedule as your own WMS and reconcile the two before they reach the dashboard.
Step 7: Set refresh frequency, test and maintain
Choose refresh speed by decision, not by ambition:
Refresh type | When it fits | Cost and effort |
|---|---|---|
Real-time streaming | High-volume e-commerce where overselling is costly; available-to-promise | Highest: event pipelines, more compute, more things to break |
Hourly batch | Most multichannel sellers | Moderate: scheduled syncs from each source |
Daily batch | Reorder planning, executive views, B2B distributors | Lowest: one overnight job |
Before you launch, validate the numbers. Pick ten SKUs, count them physically or check them in the ERP, and confirm the dashboard matches. Re-check after every schema change in a source system. Then assign an owner who gets an alert when a refresh fails, because a dashboard that quietly shows yesterday’s numbers is worse than none.
Sample SQL to produce the core metrics
This example assumes three tables in a SQL warehouse: stock_snapshots (sku, location, snapshot_date, qty_on_hand, unit_cost), sales (sku, location, sale_date, qty, cogs) and items (sku, lead_time_days, safety_stock).
To run it you need daily stock snapshots (most ERPs only store the current quantity, so schedule a nightly copy), read access to the database or an API export, and a SQL dialect that supports INTERVAL and NULLIF. Add open purchase orders to qty_on_hand in the reorder check if you track them.
Why a dashboard beats spreadsheets for inventory
Spreadsheets feel faster at first, and for a catalogue of a few dozen SKUs they may be enough. They break in predictable ways as you grow:
- Stale data: Someone has to export, paste and fix formulas, so the sheet is out of date by the time it is shared.
- Many versions: Each team edits its own copy and the numbers drift apart.
- No alerts: A spreadsheet cannot tell you that a bestseller just crossed its reorder point.
- Fragile formulas: One broken lookup can misstate stock for every SKU below it.
A live dashboard reads from the source systems on a schedule, gives everyone the same numbers and pushes alerts to the people who act on them. If nobody on the team has time to build or maintain it, Viktor can do it as a recurring task: he pulls the data from your ERP and sales channels, rebuilds the metrics, flags reorder candidates and asks before he does anything sensitive, such as drafting a purchase order. You can read more about what an AI employee is and how teams hand over this kind of recurring operations work.
FAQ
Which KPIs should an inventory dashboard show?
Start with stock on hand, inventory value, inventory turnover, days sales of inventory, stockout rate and reorder point. Add carrying cost and sell-through rate if you manage seasonal or high-value stock.
Which tool should I use to build it?
Use your ERP’s reporting if most data already lives there, a BI tool such as Power BI or Tableau if you need to blend several sources, and a spreadsheet only for small catalogues. Teams without an analyst can have Viktor build and maintain it.
How often should the dashboard refresh?
Daily is enough for reorder planning and executive views. Hourly suits most multichannel sellers. Real-time is worth its cost only where overselling is expensive.
How should executive and warehouse views differ?
Executives need value, turnover, DSI and trends. Warehouse managers need stock by location, variances and today’s movements. Build both on the same data model so the numbers match.
How do I set reorder triggers?
Calculate a reorder point per SKU and location as average daily usage × lead time + safety stock, and alert when on-hand plus open purchase orders drops below it.
How do I handle multiple warehouses?
Store stock per SKU, location and date, compute reorder points per location, track in-transit stock separately and add a location filter to every view.
Get your inventory dashboard built
If you would rather not build and babysit the pipeline yourself, start free with up to $100 in credits and ask Viktor to build your inventory dashboard, no credit card required. He connects to your ERP and sales channels, builds the views and sends the low-stock list where your team already works.