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.
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.
Run inventory, procurement, assets, sales, and field work with approved AWRA guidance for setup, migration, integrations, security, pricing, and support.
We use necessary cookies for secure sessions. With your permission, we also use cookies and browser storage for preferences, analytics, and demo engagement. Privacy Policy
AWRA OpsHub
Cookie settings
Cookie Consent Manager
Necessary cookies stay on for login, CSRF protection, and security. You can choose the optional categories below.
Overview
General Information
AWRA uses cookies and browser storage to keep public pages secure, remember selected preferences, measure website performance, and manage demo engagement prompts.
You can choose whether functional and marketing engagement storage apply. Analytics measurement is always active in this AWRA setup.
These settings apply to AWRA public website experiences such as the homepage, feature pages, pricing calculator, blog, help center, and request-demo page. Authenticated dashboard and vendor portal sessions still rely on required security cookies.
Required
Always active
Functional
Optional
Analytics
Always active
Marketing
Optional
For more context on privacy handling, open the Privacy Policy.
Required Cookies
Required Cookies
Always Active
Required cookies and storage support basic website delivery, secure sessions, request protection, and remembering the consent choice itself.
These cannot be switched off from this manager because disabling them would break login/session behavior, form protection, or the ability to remember the privacy choice you save.
Cookie details
Session security: keeps secure server sessions working while browsing AWRA.
CSRF protection: helps verify form submissions and protect requests.
Consent record: stores the preference decision so the banner does not keep asking after a choice is saved.
Examples: Laravel session cookies, CSRF tokens, and the AWRA consent preference record.
Duration: session security can expire with the browser/session; saved consent can last longer so the same browser remembers the choice.
Functional Cookies
Functional Cookies
Functional storage improves the public website experience by remembering interface choices, helper states, dismissed notices, and short-lived interaction preferences.
Turning this off does not stop secure required cookies or analytics. It only limits optional convenience memory.
If disabled, AWRA may show some helper prompts again or forget non-essential display choices. Core public pages, contact forms, and request-demo forms still work.
Cookie details
UI preferences: remembered display choices and helper states where available.
Dismissed notices: session-level or preference-level memory for notices the visitor has closed.
Frequency helpers: optional browser storage that prevents repeated prompts when allowed.
Examples: localStorage or sessionStorage values for dismissed banners, guide/helper states, and lightweight public-page preferences.
Effect when off: AWRA avoids optional convenience memory unless it is also allowed through marketing and engagement preferences.
Analytics Cookies
Analytics Cookies
Always Active
Analytics helps AWRA understand public page performance, traffic patterns, and content usefulness so we can improve the marketing website.
This category does not by itself enable demo popups, exit-intent prompts, or advertising pixels. Those are controlled by Marketing & engagement.
In this AWRA setup, Google Analytics and Google Tag Manager measurement are treated as mandatory website measurement and remain active.
Cookie details
Google Analytics / GTM: measures aggregate traffic and page activity.
Performance insight: helps identify which public pages, docs, and demo paths visitors use.
Operational signal: supports website quality decisions without enabling demo popups by itself.
Examples: Google measurement identifiers such as GA/GTM tags and related browser identifiers set by Google scripts.
Use: page views, source/referrer trends, public content performance, and product education page effectiveness.
Marketing & engagement
Marketing & engagement
Marketing and engagement storage supports demo prompts, exit-intent prompts, campaign attribution, and future advertising pixels.
When disabled, AWRA will not auto-open demo or exit-intent popups. CTA buttons can still open a form because that is a direct visitor action.
When enabled, AWRA can remember that a visitor already saw, dismissed, or submitted a demo prompt so the same popup is not repeated aggressively.
Cookie details
Demo prompt memory: tracks whether an auto prompt or exit prompt was recently dismissed.
Demo submission memory: avoids asking again after a visitor submits a demo request.
Campaign context: keeps source page, referrer, and UTM context available for demo requests.
Examples: popup frequency caps, demo-submitted flags, engagement source fields, and UTM/referrer context.
Effect when off: auto demo prompts and exit-intent prompts stay blocked; normal navigation and manually clicked CTA buttons still work.