Put the semantic layer before the algorithms
If your team can't agree what a 'sale' or 'on-hand' means, no model—however clever—will fix replenishment.
Most mid-market teams don't fail because they lack AI. They fail because every system speaks a different dialect of the same business.
Start with the decisions
Before you tune a model, write down three decisions you need weekly:
- What to reorder—and at which location
- What to promote or exit
- Where service level is at risk before it hits the P&L
If those decisions don't have stable definitions, your roadmap is a cleanup problem dressed as innovation.
A minimal semantic checklist
Here's a practical bar for "good enough to automate":
- Entities — SKU, location, supplier, and order tie together without manual glue.
- Metrics — On-hand, in-transit, and demand use one formula in every report.
- Time — Fiscal calendar, lead times, and exceptions are explicit—not implied.
Once those hold, algorithms have something to optimize. Until then, they're polishing noise.
What this looks like in code
Your warehouse system might expose raw rows; the semantic layer names what operators actually discuss:
-- Example: one definition of "sellable on hand" the whole org can cite
SELECT
sku_id,
location_id,
SUM(on_hand_qty - reserved_qty) AS sellable_on_hand
FROM inventory_snapshot
WHERE snapshot_date = CURRENT_DATE
GROUP BY 1, 2;Ship the definition once. Reuse it in dashboards, workflows, and models—so "AI-ready" means "decision-ready," not "CSV-ready."