Dashboard

Current stock and needs across all sites
No import yet
Critical / out
stock + transit can't cover demand
Reorder due
— units needed this week
On no site
manual / par purchasing only
Open in transit
— across open POs

Stock & needs

one row per product · stock split by SKU scope
avg = (4·7d + 30d) / 2  ·  needed = max(0, avg − stock − transit)
Vendor-wide settings · per-product price/MOQ live on each product
A new active site appears as a dashboard column automatically — no code change
Reorder with the arrows · drives dashboard section order
Placed POs awaiting receive · receiving retires a PO from in-transit (whole-PO, can't be undone)

Recently received

retired from in-transit · on-hand updates from the WMS import, not from receive
Products this vendor supplies that need stock · order qty prefilled to needed

Open purchase orders

placed · in transit · awaiting receive (M6)
Coming in a later milestone
This screen isn't built yet — M3 ships the Dashboard only.