AI AI insights
Stock health
SKUs by planning status - value held at weighted average cost
Months of cover by category
Stock at cost / forecast monthly cost of sales (next 3 months) against the 2-month target band
Recommended purchase plan - next 13 weeks
Each order is placed on the latest date that keeps stock above safety stock, given the supplier's current lead time
Bar = order date to expected arrival (median lead time); lighter extension = latest likely arrival (P90).
| Order by | SKU | Supplier | Qty | Value | Arrives (P50) | Latest (P90) | Draft PO |
|---|
Draft purchase orders - lines you approved, ready for the purchasing team
Export (Excel)
| SKU | Supplier | Qty | Value | Order by | Approved |
|---|
SKU planner
Run-rate, cover, reorder point and the AI's recommendation per SKU - click a row for the stock projection and reasoning
| SKU | Status | ABC | On hand | Stock value | Run-rate / m | Forecast 3m | Cover | On order | Reorder point | Lead time | Order by | Order qty | Excess value |
|---|
Consumption by category - actual and forecast
Monthly cost of goods sold to day-to-day customers; shaded months are the AI forecast
Tender and contract sales are bought back-to-back for each order, so they are excluded from the run-rates that drive stock policy.
Forecast accuracy - back-test
Model fitted to March 2026, forecast April-June 2026, compared with actual demand at cost
Supplier lead times - order placed to stock received
From the supplier lead-time register: quoted vs actual days, reliability and recent drift
Quoted vs actual lead time (days)
Every receipt in the register
| Supplier | Mode | Payment terms | Orders | Quoted | Median (P50) | P90 | On time | Avg days late | Last 6m vs prior | Planning P50 / P90 |
|---|
Lead-time register - data quality
Checks run on every import of the register before it feeds the reorder engine
The register is the file the MOM asks for: one row per purchase order with the order date, the supplier's promised date and the date the stock was received.
Lead times are recomputed from those dates rather than read from the file. A client's own register in the same layout replaces this one without any change to the engine:
rows failing a hard check are excluded and listed, warnings are kept and flagged.
| Check | Rule | Result |
|---|