AWRA OpsHub Search

One Clock for Every Item You Own

Our dead-stock alert is better engineered than most: dead stock has no event to hook, so it is scanned for nightly, deduplicated, and cleared automatically the moment the item moves. It is then measured against one idle period for your entire catalogue — the same number for a filter and a gearbox.

Inventory Insights AWRA OpsHub Team 11 min read

The conclusion first

Turn the alert on and set the threshold to whatever suits your fastest category, then expect noise from your spares and learn to ignore it in a specific, disciplined way — by category, on a monthly review, not by turning the alert off. A single global idle period is the constraint; the alert itself is sound and the alternative is not looking at all.

Dead stock is the only inventory problem defined by something not happening. There is no transaction to react to, no document to check, no moment at which the system could be told. It is an absence, and absences have to be looked for.

That is why the way this was built is worth describing before the limitation is.

A scan, not a trigger

Every other alert in the product hangs off an event: stock fell below a point, a batch is approaching expiry, an order was approved. Dead stock cannot work that way, so a job runs nightly and looks for items that have not moved.

Three details make it usable rather than merely present.

Idleness is measured with the same definition the dead-stock report uses — last movement, falling back to when the item was created, with stock actually on hand. So the alert and the report cannot drift apart and tell you different things, which is a failure mode that afflicts a surprising number of systems.

It is deduplicated. An item that has been idle for two hundred days does not generate two hundred alerts; it generates one, recorded against the item, and the marker is cleared by the stock write path the moment that item next moves. Nightly repetition would train everybody to ignore it, which is the standard way a good alert becomes noise.

And it fires a workflow event per idle item as well as sending mail, so the alert can drive something — a task, a notification to a category owner, a report — rather than only arriving in an inbox.

Somebody thought about how this alert would fail before they built it. That is rarer than it should be.

The number it is measured against

One. A single idle period for your organisation, defaulting to ninety days, adjustable, and zero to switch the whole thing off.

For a catalogue that is broadly homogeneous, that is fine. For most real catalogues it is the wrong shape, because "how long is too long" is a property of the item and not of the business.

What it is Idle at What a 90-day threshold does
Fast-moving consumables 2 weeks Says nothing for three months while cash sits still
Standard trade stock 60–90 days About right — this is the case the default was chosen for
Seasonal lines Half a year, by design Alerts every single year, correctly and uselessly
Critical spares for plant Years, deliberately Alerts permanently on stock you are obliged to hold
Slow-moving specialist items 6–18 months Alerts long before there is anything to decide

Notice that the failure is asymmetric. On fast-moving lines the threshold is too slow and the alert arrives late, which costs cash. On spares it is far too fast and the alert arrives constantly, which costs credibility — and the second failure kills the first, because an alert that cries wolf on the spares list gets filtered out of everybody's inbox and then the consumables alert is never seen either.

Why a Botswanan operation lives at both ends of that table

Because a landlocked economy with long import lead times and a heavy industrial and mining supply chain holds two kinds of stock that could not be less alike, in the same warehouse, under the same organisation.

The consumables move fast and are replaced from a regional supplier in weeks. The critical spares are held precisely because they cannot be got quickly — the whole reason they are on the shelf is that the lead time to replace one is measured in months and the cost of not having it is a stopped plant. Holding those for two years is not a failure of inventory management. It is inventory management.

One threshold cannot describe both, and the business that most needs the alert is the one where a single threshold is least usable.

Running it well anyway

Four practices that make one threshold survivable

  • Set it for your fastest-moving category, not an average. An average threshold is wrong for everything. A fast threshold is right for the items where being wrong costs cash, and predictably wrong for the ones where it does not.
  • Route the alert to a category owner, not to a general inbox. The workflow event makes this possible, and it is the single change that stops the alert being ignored — a spares manager who expects spares alerts will read them differently from a finance inbox that does not.
  • Keep a written exclusion list and review it quarterly. Not in the system — the system has nowhere to put it. On paper, naming the categories where a dead-stock alert is expected and meaningless. Review it, because items leave that list without telling anybody.
  • Use the dead-stock report for decisions and the alert for attention. The report can be run over a chosen idle period, so it is where you go once the alert has made you look. Treat the two as a pair rather than expecting the alert to be the analysis.

The dead-stock ledger, precisely

What AWRA OpsHub does today

  • A nightly scan for idle items, using the same idleness definition as the dead-stock report so the two cannot disagree.
  • Deduplication via a marker on the item, cleared automatically by the stock write path when the item next moves.
  • A workflow event fired per idle item, so the alert can drive a task or a notification rather than only an email.
  • A per-organisation threshold with a settings field, defaulting to ninety days, and zero to disable.
  • A dead-stock report that can be run over a chosen idle period, and a separate ABC analysis and turnover report.

What it does not do

  • Any per-item or per-category idle threshold. One number covers the whole catalogue.
  • An exclusion list — no way to mark an item or a category as expected to be idle.
  • A value-weighted view in the alert. Idleness is the trigger; what the idle stock is worth is a separate question.
  • Any suggested action. The alert says an item is idle and stops there.

Not ours, by choice

  • The engineering here is good and we would rather you ran it with a compromise threshold than not at all.
  • Routing by category owner is available today through the workflow event and is the highest-value thing on this page.
  • Nothing here is Botswanan. It is what happens when consumables and critical spares share a catalogue; long import lead times simply make the spares list longer.

This is scope, not a ceiling

What is not built for Southern Africa today can still be built for you

Anything described above as not built is a statement about what ships in the standard product today — not a limit on what AWRA OpsHub can do in Southern Africa. Kenya's eTIMS integration and its maintained payroll engine exist because Kenyan clients needed them and commissioned them; neither appeared by itself. The same door is open here. If a revenue authority pipeline, a bank or mobile money feed, a statutory return format, a rule your own operation needs that the standard one does not have, or a link to a system you already run is what stands between you and a decision, tell us and we will scope it as a build — written spec, timeline and price — before you commit to anything.

Tax pipelines and return output

Return output in the shape your revenue authority expects and electronic invoicing against any prescribed interface, with retries, a failure queue and a reconciliation report.

Banks, EFT and card acquirers

Bank statement feeds, EFT and debit-order files and card acquirer settlements pulled into the Payments Register so receipts match invoices without re-keying.

The operational work, which is what most commissions actually are

An extra approval stage in a chain that does not match the standard one, a custom field set on employees or assets that only your sector needs, an expiry that has to block an order rather than send an email, a report your board asks for in a shape nothing produces, or a scanner or weighbridge feeding the goods-in door. These are the commissions we are asked for most often and the smallest ones we quote — and unlike a revenue-authority pipeline, none of them waits on a regulator.

Payroll and statutory returns

Payroll tax and social security schedules produced in the layout your filing body expects, generated from live payroll records rather than rebuilt each month.

Systems you already run

The accounting package, CRM, online store or custom database you intend to keep — connected through our API so a fact is entered once and appears everywhere it is needed.

How it works: you describe the requirement, we return a written scope, timeline and cost, and once agreed it is built into your environment and maintained as part of the product. No roadmap slide, and no pretending in a demo that something exists when it does not.

Tell us what you need integrated

Four questions about any dead-stock alert

Is the threshold per item or per organisation?

A good answer sounds like

Per item, or per category, with an organisation default.

What it actually means

Ours is one number. This is the whole question and it decides whether the alert is usable in a mixed catalogue.

Does the alert repeat?

A good answer sounds like

No — deduplicated, and cleared when the item moves.

What it actually means

A repeating alert is filtered within a fortnight and then the whole capability is worth nothing.

Does the alert use the same definition as the report?

A good answer sounds like

Yes, and they can show you the shared definition.

What it actually means

Two definitions of idleness in one product means the alert and the report disagree, and nobody trusts either.

Can I exclude an item?

A good answer sounds like

A flag on the item.

What it actually means

Ours cannot, which is why the exclusion list lives on paper. Ask, because this is the difference between a maintained alert and an ignored one.

Pick the threshold with your spares list in front of you

The right number is obvious once you have looked at both ends of your catalogue at the same time. Bring your fastest lines and your slowest and we will set it with you.

Set the threshold

Frequently asked questions

What does the alert consider a movement?

The item's last movement, falling back to when it was created if it has never moved, and it only considers items with stock actually on hand. That is the same definition the dead-stock report uses, deliberately, so the two cannot tell you different things.

If I set the threshold to zero, what happens?

The alert is switched off entirely. The dead-stock report still works and can still be run over any idle period you choose, so you lose the prompt rather than the capability.

Can I get the alert weighted by value?

Not in the alert. The report is where value belongs, and the sensible pattern is to let the alert tell you to look and let the report tell you what it is worth — which is also how you avoid an alert that is either constant or silent depending on where you set the value cut.

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