AWRA OpsHub Search

The Till Sells. The Reorder Point Does Not Hear It.

The nightly reorder-point calculation measures stock that was issued, not stock that was sold. For a store that issues internally it is right out of the box. For a shop with a counter it measures nothing — and the fix is one field, not a support ticket.

Point of Sale Washingtone Aura 13 min read

A reorder point is a promise: when stock falls to this number, somebody will be told, and there will still be enough time to buy more before the shelf is empty. It is one of the few pieces of inventory mathematics that pays for itself immediately, and it is also one of the easiest to have quietly stop working without anyone noticing — because a promise that is not kept looks exactly like a promise that was never needed.

Nobody files a support ticket saying "the low-stock alert did not fire". They file one saying "we ran out of the thing we sell most", weeks later, and the alert never enters the conversation.

This post is about a specific version of that failure in AWRA, why it happens, and the single field that fixes it. It is worth reading even if you use something else, because the underlying trap is not ours alone.

The calculation, in full

There is no mystery in the formula. It is the standard one, it runs every night at one in the morning, and it looks at the last thirty days.

How a reorder point is produced each night

Measured usage — stock issued through the check-out workflow and posted 30-day total
Average daily usage — a flat average, no weighting toward recent days usage ÷ 30
Lead time — yours to set, per item lead time in days
Safety stock — yours to set, per item safety stock in units
Reorder point, rounded up (avg daily usage × lead time) + safety stock

Two of those four inputs are yours. The other two are measured, and what gets measured is the whole of this post.

Read that formula for a moment with a value of zero in the usage position. The first term collapses — anything multiplied by nothing is nothing, no matter how long the lead time — and the reorder point becomes whatever the safety stock is. If safety stock is also unset, the reorder point is zero.

That is the entire mechanism of the failure. Everything else here is about how usage comes to be zero for an item you sell every single day.

What counts as usage

Measured usage is stock that left through the check-out workflow — the screen a storekeeper uses to issue stock to a department, a project, a site or a person — and only once the resulting adjustment has been posted. A check-out sitting unposted does not count yet. A posted one does.

For a very large class of business that is exactly right. A school store issuing to departments, a hospital store issuing to wards, a construction company issuing to sites, an NGO issuing to programmes — all of them move stock through check-outs, and their reorder points compute correctly from the day they start.

A sale at a till is a different path entirely. It reduces stock, correctly and immediately, through the stock service — but it does not create a check-out and it does not create a posted adjustment. It is a sale, recorded as a sale.

The counter reduces your stock and the calculation never hears about it. Both statements are true at the same time, which is why this is hard to notice.

So for an item that only ever leaves through the till, measured usage over thirty days is zero. Not approximately zero — exactly zero, because the query counts a different kind of movement.

What zero does to the alert

A reorder point of zero does not produce an alert that fires constantly, which is what people assume when they hear a threshold has collapsed. It produces the opposite, and the exact behaviour depends on which screen you are looking at.

Where The comparison Behaviour at a reorder point of zero
Low-stock reports stock at or below the point Fires once stock reaches zero — after the stockout, not before
Item risk flags stock at or below the point Same: the flag arrives as the last unit leaves
Dashboard reorder count stock below the point Cannot fire at all, because stock does not go below zero in normal trading

That table is the reason this is worth a page rather than a footnote. An alert that fires late is annoying. An alert that cannot fire is invisible, and a dashboard tile reading zero items needing reorder is indistinguishable from a business in excellent shape.

The five-minute check

Open your item list, sort by reorder point ascending, and look at what sits at zero. Then cross-reference that against your best sellers. If your fastest-moving counter items are sitting at a reorder point of zero, this page is describing your situation, and the next section is the fix.

The fix, which is one field

Set safety stock on the items that sell through the counter. That is it.

It works because of where safety stock sits in the formula. It is added, not multiplied — so it survives a measured usage of zero completely intact. An item with safety stock of forty and no measured usage gets a reorder point of forty every night, and the alert fires at forty units exactly as you intended.

Two things follow from that which are worth being explicit about, because both are counter-intuitive.

  • Lead time on its own does nothing for a counter-only item. It multiplies against measured usage, so at zero usage a lead time of two days and a lead time of ninety days produce the same answer. Set it anyway for correctness, but do not expect it to raise the floor by itself.
  • Typing a reorder point directly does not stick. The nightly job writes a reorder point for every item, calculated from the formula. A number entered by hand is replaced at one in the morning. Safety stock is an input to that calculation, which is exactly why it is the field that holds.

That second point is the one that catches people, and it catches them silently — the number is right when they leave in the evening and wrong when they arrive in the morning, and the natural conclusion is that somebody changed it.

  1. List what actually sells at the counter

    Take a month of sales, sorted by quantity. The top fifty items are where the entire value of this exercise sits; the long tail can wait or stay empty.

  2. Decide a floor for each, in days rather than units

    Ask how many days of cover you want before reordering, then multiply by typical daily sales. Thinking in days makes the number defensible; thinking in units makes it a guess that gets copied down a column.

  3. Set safety stock to that number

    Set it on the item. Leave the reorder point alone entirely — it is an output, and the nightly job owns it.

  4. Set lead time honestly too

    It does nothing for a counter-only item today, but it costs nothing and it is correct for anything that also moves through check-outs. It also means the figure is already right if your usage pattern changes.

  5. Check the morning after

    Come back the next day and confirm the reorder points now read what you expect. This is the step people skip, and it is the only one that proves the change took.

  6. Revisit quarterly

    Sales patterns move. A floor set once and never reviewed becomes wrong in the direction of your growth, which is the expensive direction.

Reorder points — what the calculation sees

What AWRA OpsHub does today

  • A nightly recalculation on a real schedule, at 01:00, across every item, using the standard reorder-point formula.
  • Safety stock and lead time are yours to set per item, and safety stock sets a floor that survives a measured usage of zero.
  • Usage is measured from posted stock issues, so a check-out that has not been through its adjustment is not counted as consumption yet.
  • Low-stock reports, item risk flags and dashboard counts all read the same reorder point, so there is one number rather than three competing ones.
  • Transfer suggestions use it too, proposing moves from a location holding more than the point to one holding less.

What it does not do

  • Till sales are not in the usage signal. A sale deducts stock but does not create the posted stock issue the calculation counts, so a counter-only item measures zero usage. Safety stock is the field that makes this a non-issue; it is not automatic.
  • Reorder points are one number per item, not per location. Every branch is compared against the same figure, which is why a small outlet and a regional store can both read as understocked.
  • A hand-typed reorder point does not persist. The nightly job recalculates and writes every item, so a manual value is replaced.
  • Usage is a flat thirty-day average. There is no weighting toward recent weeks and no seasonality, so a genuine step change takes a month to be fully reflected.

Not ours, by choice

  • We will not quietly infer usage from sales to make this number look better. The calculation measures posted stock issues, and we would rather publish that definition than blend two different movement types into an average nobody can reconstruct.
  • We will not pick your safety stock for you. How much cover to hold is a working-capital decision with your cost of money and your supplier reliability in it, and a default shipped by a vendor is a guess wearing a number.

Including till sales in the usage signal, per-location reorder points, and a weighted rather than flat average are all scope rather than ceilings. The job runs nightly, the formula is a few lines, and the movement data all exists — each is a written specification and a price.

If you run a counter, treat setting safety stock on your top sellers as a go-live task rather than a tuning task. It takes an afternoon and it is the difference between an alert that works and a dashboard tile that reads zero for the wrong reason.

Why this shape of bug is common everywhere

It is worth pulling back from our specific version, because the pattern behind it turns up in every inventory system, and recognising it is more useful than memorising one instance.

Any system that grows a second way of moving stock inherits the question of whether the analytics were told. The first path — issue to a department, post the adjustment — gets built with the reporting. The second path arrives later, correctly reduces the stock figure because that is obviously required, and quietly does not appear in a query written when only one path existed.

The result is always the same: a number that is right for one kind of business and silently wrong for another, with no error, no warning, and a perfectly plausible-looking value on screen. Zero is the most dangerous plausible value there is, because it reads as "nothing to worry about" in almost every context a person might see it.

Ask this of any inventory system, including ours

  • Which stock movements count toward measured usage, named individually — sales, issues, transfers, wastage, returns?
  • Is a reorder point calculated, entered, or both — and if both, which one wins overnight?
  • Is it one number per item or one per location, and which one do the alerts read?
  • What is the alert comparison exactly — at or below the point, or strictly below? At a threshold of zero those two behave completely differently.
  • Over what window is usage averaged, and is it weighted toward recent activity?
  • What does the system do about an item with no measured usage at all — is it flagged for attention, or does it just get a low number?

The fourth question is the one that most reliably surprises people. Nobody thinks the difference between "at or below" and "strictly below" matters until a threshold reaches zero, at which point one of them still works and the other cannot fire.

What good looks like once it is set

With safety stock set on the items that matter, the machinery does what it was built to do. The nightly job produces a floor for every item. Items at or below it appear in the low-stock report and on the item risk flags. The dashboard count becomes a real count. Transfer suggestions start proposing a move from the branch holding a surplus rather than a purchase order, which is the cheaper answer whenever it is available.

None of that required a change to the software. It required knowing which of the four inputs the calculation was going to be able to measure, and filling in the ones it could not.

The mathematics behind the formula is set out in reorder point and safety stock, the multi-branch consequences in running multi-branch retail, and the catalogue discipline all of it depends on in the till will not sell what you have not listed.

Our take

If you sell through a counter, set safety stock on your top fifty items before you go live, and treat the reorder point as an output you never type into. That one afternoon converts a dashboard tile that cannot fire into an alert that arrives while you can still do something about it. And when you are evaluating any inventory system, ours included, ask which movements count as usage — the answer is always specific, always knowable, and almost never volunteered.

See where your reorder points actually sit

A nightly recalculation you can inspect, safety stock and lead time you control per item, low-stock reporting that reads the same number as the dashboard, and transfer suggestions that look for a surplus before a purchase order.

Explore inventory controls

Frequently asked questions

Why is the reorder point zero on an item we sell every day?

Because measured usage is counted from stock issued through the check-out workflow and posted, and a till sale is a different movement — it reduces stock correctly but does not create that posted issue. With measured usage at zero, the calculation returns whatever safety stock you have set, and if safety stock is empty the answer is zero. Set safety stock on the item and the floor comes back that same night. Nothing is broken about the stock figure itself; it is the usage signal feeding the calculation that does not include sales.

Can I just type the reorder point I want?

You can type it, but it will not survive. The nightly job at one in the morning recalculates and writes a reorder point for every item from the formula, so a hand-entered value is replaced. This catches people out quietly — the number is right in the evening and different in the morning, and the natural assumption is that a colleague changed it. Set safety stock instead. It is an input to the calculation rather than an output of it, which is precisely why it holds.

Does setting a longer lead time help?

Not on its own, for an item that only sells at the counter. Lead time is multiplied by average daily usage, so at zero measured usage any lead time produces the same result — nothing. Set it anyway, because it is correct information and it will do real work for anything that also moves through check-outs, but do not rely on it to raise the floor for a counter-only item. Safety stock is the field that does that, because it is added rather than multiplied.

How quickly does the reorder point react to a change in demand?

Usage is a flat average over the previous thirty days with no weighting toward recent activity, so a genuine step change takes a full month to be reflected completely, and about half of it shows up after a fortnight. For a seasonal business that is worth planning around — raise safety stock ahead of a known peak rather than waiting for the average to catch up, and lower it deliberately afterwards rather than leaving the peak figure in place through a quiet quarter.

Is the reorder point per branch?

No — it is one number per item, and every location is compared against that same figure. This matters most for transfer suggestions, which look at each location's quantity against the item-level point and propose moves from surplus to shortage. In a network with genuinely different demand profiles per branch, treat those suggestions as a prompt to look rather than an instruction to act, and weigh whether per-location points are worth scoping before you rely on them.

How do I know whether this affects us?

Sort your item list by reorder point ascending and look at what sits at zero, then compare that against your best-selling items from the last month. If your fastest movers are the ones with a reorder point of zero, the calculation is not seeing their usage. If the zeros are all slow or dormant items, the calculation is working as intended and those items genuinely have no measured consumption. The check takes five minutes and it is worth doing at go-live rather than after a stockout.

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