AWRA OpsHub Search
Inventory insights
Stockout risk Dead stock Margin

An item with three movements gets no forecast, and that is the feature.

Anything can produce a reorder quantity for an item that has moved twice. The number will be confident, arbitrary, and indistinguishable on screen from one built on two years of history — which is how a planner learns to stop trusting the whole column. Below a floor you set, this engine declines to answer, and says it is declining.

Inventory pulse Computed
Items tracked 1,284
Stockout risk < 14d 17
Low stock 43
Dead stock 96
Overstock 28
Margin issues 11

Fourteen days is a default, not a law. It is the horizon over which the engine asks whether an item runs out, and it is the first thing most workspaces change.

The signals

Five stock problems, and they are not variations on one problem.

Running out and being overstocked look like opposites and are frequently the same workspace at the same time, on different items. The card is arranged so both are visible at once, because a business that fixes only the first ends up with a warehouse full of the second.

Stockout risk, over a horizon you choose

Not "below reorder level" — that is the low-stock signal and it is a different question. This asks whether an item runs out within the next fourteen days at its recent rate of movement, given its lead time and the safety stock you want kept. An item comfortably above its reorder point and moving fast is a stockout; an item below reorder that nobody has touched in a year is not.

Low stock, which is the simpler question

Quantity against the level you set for that item. It is kept as its own signal rather than folded into the risk number because the two disagree usefully, and a planner needs to be able to see which of them is firing.

Dead stock

Items holding value and not moving. This is the signal that pays for the module in most warehouses, because dead stock is invisible by nature — nothing goes wrong, no alert fires in any other system, and the capital sits there until somebody counts it.

Overstock

Cover far beyond what the movement rate justifies. Distinct from dead stock: an overstocked item is selling, just far more slowly than it was bought. It is a purchasing conversation rather than a write-off conversation.

Margin issues

Items whose selling price and cost have drifted into a relationship nobody would have agreed to deliberately. Cost moves quietly — a supplier price rise, a landed cost, an exchange rate — and price does not move with it unless somebody notices.

And the sixth answer: not enough history

An item with fewer than three demand observations is not forecast at all. It is not given a cautious estimate or a wide range — it is left out, because a placeholder that looks like a forecast is worse than a gap that looks like a gap. The floor is a setting, so a workspace with dense data can lower it.

Scope of the signal

What counts as demand, and what a single freak week does not do to it.

Customer demand, by default

The forecast signal ships reading customer demand — what your customers actually took — rather than every movement type in the warehouse. Internal consumption, transfers between your own locations and adjustments are movements, but they are not demand, and treating them as such inflates a forecast in exactly the workspaces that move stock around most. The sources are a setting, so a workspace whose internal issues genuinely are demand can say so.

One freak week is capped, not obeyed

A single enormous order distorts an average for months. Observations beyond a multiple of the item's own typical demand — three times, by default — are capped rather than taken at face value. The one-off is still visible in your movement history; it just does not get to set your reorder quantity for the next quarter on its own.

Lead time and safety stock are inputs, not guesses

Seven days of lead time and three days of safety stock ship as defaults and are yours to set. They matter more than the forecasting arithmetic: an item that takes six weeks to arrive and one that arrives tomorrow need completely different warnings from identical demand, and no amount of cleverness in the model substitutes for knowing which is which.

A sensitivity setting sits over all of it — balanced by default — for workspaces that would rather be warned early and occasionally wrongly, or late and rarely wrongly. That is a business preference about the cost of a stockout versus the cost of holding, and it is not a decision a vendor should be making on your behalf.

How the engine works

The numbers are not from the model. The sentence is.

This is the single most important thing to understand about Inventory Insights, and it is the thing most “AI analytics” pages are careful not to say. Every figure on the page — every count, every total, every flagged record — is computed by an ordinary database query against your own data, with thresholds you control. A language model is used for exactly one job: turning that computed result into a paragraph a person can read quickly.

1 · The facts are queried

Counts, totals, ages and comparisons, run against your workspace under the same tenant scoping as every other screen. This step is deterministic: run it twice on unchanged data and you get the same answer twice. If the engine says nine invoices are overdue, nine rows matched.

2 · Your thresholds decide what counts

What makes a request stale, a cost a spike, an entry large or a balance overdue is a number in your settings, not a judgement in a model. The defaults are listed below. Change one and the flags change with it, immediately and predictably.

3 · The narrative is written last, and only when there is something to say

Only then is a short plain-language summary generated from those facts. It is written on a background job so the page never waits for it, and it fails soft: if no provider is configured or the request fails, the summary is simply not there and every number on the page is unaffected.

The narrative is keyed to the facts it was written about

The summary is stored with a fingerprint of the exact figures it was generated from. When those figures move, the fingerprint no longer matches and the summary is regenerated rather than served stale. This closes the failure that makes cached AI commentary dangerous: a confident paragraph describing last week, sitting directly above this week's numbers, with nothing on the screen indicating the two disagree.

Results are cached per workspace for a window you set — fifteen minutes by default — so the page is fast without being out of date, and a refresh action clears it when you want the current picture immediately.

The Inventory thresholds, and what they ship as

These are the actual settings behind the flags on this page. They are per workspace, they are yours to change, and the defaults are chosen to be defensible rather than dramatic — an engine tuned to flag everything on day one is an engine nobody reads by day three.

Setting Ships as What it decides
inventory_stockout_days 14 The horizon the stockout question is asked over. Shorten it for fast-moving consumables; lengthen it where lead times are long.
inventory_default_lead_time_days 7 How long replenishment takes when an item does not carry its own lead time. Usually the first setting worth correcting.
inventory_default_safety_stock_days 3 The buffer you want left when stock is planned to run down, expressed in days of cover rather than units.
inventory_min_demand_points 3 How many demand observations an item needs before it is forecast at all. Below this the engine declines rather than estimating.
inventory_outlier_cap_multiplier 3.0 How far above an item's own typical demand a single observation is allowed to count, so one freak order does not set the next quarter.
inventory_forecast_sensitivity balanced Whether to warn early and sometimes wrongly, or late and rarely wrongly — a judgement about the cost of a stockout against the cost of holding.
inventory_forecast_sources customer_demand Which movements count as demand. Ships as customer demand only, so internal issues and inter-location transfers do not inflate the signal.

Every flag carries the way to act on it. A finding is not a number on a dashboard you then go hunting for — it is rendered with a label and a link to the screen where the work is done. An insight you cannot act on from where you are reading it is a report, and you already have reports.

Before you rely on it

What this reads, and what it does not pretend to be.

Inventory Insights — the position

What AWRA OpsHub does today

  • Stockout risk over a horizon you set, computed from recent movement against that item's lead time and your safety-stock preference.
  • Low stock kept as a separate signal from stockout risk, because the two disagree usefully.
  • Dead stock and overstock as distinct findings — one is a write-off conversation, the other a purchasing one.
  • Margin drift on items whose cost has moved and whose price has not.
  • A refusal to forecast below a history floor you control, rather than a confident placeholder.
  • Outlier capping at a multiple of the item's own demand, so a single freak order does not set the next quarter.
  • Demand scoped to customer movement by default, so internal issues and transfers do not inflate it.
  • Lead time, safety stock, horizon, sensitivity and sources all as per-workspace settings rather than fixed behaviour.
  • Alerts carrying a link to the item or list where the work is done.

More we can add to your workspace

  • Seasonality in the forecast, so an item that always triples in December is planned for rather than discovered each year.
  • Automatic reorder proposals that draft a purchase request at the right quantity for the right supplier, ready for approval.
  • Supplier lead time learned from your own receiving history, replacing the number somebody typed once with what actually happens.
  • Multi-location awareness in the risk signal, so stock sitting in the wrong warehouse counts as a transfer rather than a stockout.
  • Economic order quantity and carrying-cost modelling, turning the overstock signal into a recommended order size.
  • Expiry and shelf-life in the risk calculation, for stock where time rather than demand is the constraint.
  • Alerting that reaches a planner instead of waiting for someone to open the card.
  • Substitution awareness, so a stockout on an item you have an equivalent for is ranked differently from one you do not.

Where we point you to a specialist

  • We will not forecast an item with too little history. A number produced from two observations is indistinguishable on screen from one produced from two years, and shipping both is how a planner learns to ignore the column.
  • We will not decide your service level for you. How much stockout risk is acceptable is a commercial judgement about your customers and your cash, and the sensitivity setting exists so it stays yours.
  • We point you to your own stock policy on what counts as dead. We can show you what has not moved and what it is worth; whether twelve months idle is dead or seasonal is a question about your business.

Seasonality and automatic reorder proposals are the two most asked for, and both sit on top of a forecast layer, a settings layer and a purchase-request workflow that already exist. Tell us which one your planners would use.

Help Center

Need a quick answer while you read?

Run inventory, procurement, assets, sales, and field work with approved AWRA guidance for setup, migration, integrations, security, pricing, and support.

Search all approved AWRA public help articles.

Open Help Center