Supply Chain and Inventory Dashboards with Vizly
Supply chain teams watch stock levels, reorder points, warehouse distribution, and demand trends. Vizly charts these as bar, line, heatmap, gauge, and map visuals, and composes them into a single operations dashboard.
Inventory levels over time
Track quantity on hand for a SKU across time. Multi-series lines compare several products at once.
import vizly as vz
vz.set_theme("corporate")
stock = [
{"date": "2026-01-01", "sku_a": 120, "sku_b": 45, "sku_c": 300},
{"date": "2026-01-08", "sku_a": 96, "sku_b": 38, "sku_c": 275},
{"date": "2026-01-15", "sku_a": 74, "sku_b": 22, "sku_c": 250},
{"date": "2026-01-22", "sku_a": 51, "sku_b": 9, "sku_c": 240},
]
chart = vz.line(stock, x="date", y=["sku_a", "sku_b", "sku_c"], title="Stock on hand")
chart.render("stock.html")
Reorder point alerts
A gauge cluster shows how close key SKUs are to their reorder points. Below the threshold means reorder.
chart = vz.page(
charts=[
vz.gauge(value=51, title="SKU A (reorder at 50)"),
vz.gauge(value=9, title="SKU B (reorder at 20)"),
vz.gauge(value=240, title="SKU C (reorder at 100)"),
],
title="Reorder status",
)
Warehouse stock by region
Compare inventory levels across warehouses with a bar chart, or place them on a map with a geo chart.
warehouses = [
{"name": "North", "units": 4200},
{"name": "South", "units": 3100},
{"name": "East", "units": 5100},
{"name": "West", "units": 2700},
]
chart = vz.bar(warehouses, x="name", y="units", title="Inventory by warehouse")
Demand and turnover heatmap
Show order volume by SKU and week to spot fast movers and dead stock.
import pandas as pd
rows = []
skus = ["sku_a", "sku_b", "sku_c"]
weeks = ["W1", "W2", "W3", "W4"]
for sku in skus:
for week in weeks:
rows.append({"sku": sku, "week": week, "orders": hash((sku, week)) % 90 + 10})
df = pd.DataFrame(rows)
chart = vz.heatmap(df, x="sku", y="week", values="orders", title="Order volume by SKU/week")
Waterfall for inventory changes
Show how stock moved over a period: starting inventory, receipts, sales, returns, and closing inventory.
changes = [
{"category": "Opening", "amount": 1000},
{"category": "Receipts", "amount": 400},
{"category": "Sales", "amount": -350},
{"category": "Returns", "amount": 25},
{"category": "Shrink", "amount": -10},
]
chart = vz.waterfall(changes, x="category", y="amount", title="Inventory bridge")
Full supply chain dashboard
Combine the key views into one page.
import pandas as pd
import vizly as vz
vz.set_theme("corporate")
chart = vz.page(
charts=[
vz.line(stock, x="date", y=["sku_a", "sku_b", "sku_c"], title="Stock on hand"),
vz.bar(warehouses, x="name", y="units", title="Inventory by warehouse"),
vz.heatmap(df, x="sku", y="week", values="orders", title="Order volume"),
vz.waterfall(changes, x="category", y="amount", title="Inventory bridge"),
],
title="Supply chain dashboard",
)
chart.render("supply_chain.html")
Tips
| Tip | Detail |
|---|---|
| Gauges for thresholds | Use vz.gauge for reorder and safety-stock status at a glance. |
| Waterfall for bridges | vz.waterfall shows the movement from opening to closing stock. |
| Heatmaps for demand | SKU by week heatmaps expose fast movers and dead stock quickly. |
| Maps for distribution | Use vz.geo with longitude and latitude to place warehouse stock geographically. |