Inventory Alert Fatigue: Why Fewer, Better Calls Win
Too many low stock alerts and they all get ignored. How to set an alert threshold: only calls worth acting on, ranked by money at risk, silent when unsure.
ShelfLifePro Editorial Team
Inventory management insights for retail and pharmacy
The alert nobody reads anymore
Picture a grocery store owner opening her inventory app on a Tuesday morning. There's a red badge with a number on it. There was a red badge yesterday too, and the day before that. She swipes it away and heads out to check the produce delivery, because the truck is actually at the back door and the badge has turned into part of the wallpaper.
That's inventory alert fatigue. It isn't laziness. It's a sensible reaction to a signal that's stopped meaning anything. When every notification looks equally urgent, none of them are. So the one that mattered, the yogurt dated Thursday that won't sell through in time, sits in the same pile as "paper towels running low."
This post covers why that happens and what a better alert diet looks like. You can get there by tuning your current system's settings, by keeping a notebook, or with a tool that's built to stay quiet.
How a useful alert turns into noise
Picture setup day. Someone sets a low stock threshold on each item and turns on expiry warnings at 30 days, and it all works. That first week, alerts are rare and worth reading.
Then the catalog grows. New SKUs come in with the default threshold, or no threshold at all. Seasonal items sit at zero for months and fire every single morning. Slow movers stay under their reorder level because nobody wants more of them, and the system has no way of knowing that. The 30-day expiry window catches canned goods you'll sell this week and fresh cream you won't sell this month, and both get the same color and the same badge.
In that picture, three things go wrong:
- Alerts fire on state, not on consequence. "Below threshold" doesn't tell you whether being below it costs you anything.
- Nothing is ranked. A cheap item and an expensive batch show up as identical lines.
- Nothing ever goes quiet. An alert you've already decided to ignore fires again tomorrow. That teaches you to ignore the whole channel, including the alerts that matter.
Why static low stock alert settings misfire
A fixed threshold is a guess you make once and then never revisit. It doesn't move when your sales change or when the supplier gets slower.
Say you set paper towels to alert at 12 units. That made sense when you sold four a day and the supplier delivered in two days. If sales drop to one a day, 12 units is almost two weeks of cover and the alert is crying wolf. If the supplier's lead time stretches to five days and sales pick back up, 12 might be too late.
The fix is to base the threshold on sell-through and lead time, not a round number. The math is in our sell-through reorder point guide.
Expiry alerts have the same problem in a different form. A date window ignores how fast the item actually moves, so a fast seller and a slow seller with the same date get flagged the same way.
Suppose you have 14 tubs of sour cream expiring Friday, four days out, and they sell at about 0.4 a day. You'll sell roughly 2 before Friday, which leaves about 12 on the shelf. That's an urgent call. Now take 40 cans of soup expiring in 25 days that sell 3 a day. They'll be gone in about two weeks, so they're not a problem at all. A date-only rule flags both the same way.
Get the free expiry-tracking spreadsheet
Batch-level rows, days-left and status formulas, colour-coded alerts, and a live value-at-risk summary. Works in Excel and Google Sheets. See what's inside.
Instant download. No spam, unsubscribe in one click.
Four tests a call should pass before it reaches you
A call should clear all four of these tests before it gets to ping you:
- Is there money on the line? Multiply the units that won't sell by their cost. If it comes to pocket change, the item belongs on a weekly list, not in a daily alert.
- Is there an action? Mark it down, move it to the front, return it to the vendor, reorder, or stop reordering. "Stock is low" with no recommended move is just trivia.
- Is there still time to act? A Thursday markdown on stock that expires Friday can still work. The same flag at Friday close is just telling you about a write-off.
- Is the system confident? If the sales history is thin (a new item, an odd week), saying nothing beats guessing loudly.
The fourth test is the easiest one to skip. Staying silent when unsure feels risky. But a wrong call doesn't just cost you that one decision. It also costs you your trust in the next ten calls.
Ranking by money at risk, worked through
Worked example: say a store's morning check turns up these candidates:
- Sour cream: 12 units won't clear by Friday, cost $1.80 each, so about $22 at risk.
- Fresh pasta: 9 packs won't clear by Wednesday, cost $3.50 each, so about $32 at risk.
- Prepacked salmon: 6 fillets past their window by tomorrow, cost $7 each, so $42 at risk.
- Paper towels: below threshold, but 9 days of cover left, so nothing at risk this week.
- Seasonal cocoa: at zero since March, nothing to do.
Ranked by money at risk, that's a three-line morning list: salmon, then pasta, then sour cream, each one with a move attached. The paper towels and the cocoa don't show up at all. Three calls you'll act on are worth more than thirty you'll scroll past.
Each call should also show its arithmetic (units, sell rate, days left) so you can disagree with it in ten seconds. More on that in how to check a markdown recommendation's arithmetic.
Teaching your current system to stay quiet
You don't need new software to cut most of the noise. Start with these:
- Delete thresholds on discontinued and seasonal items. Items at zero that you don't plan to carry shouldn't alert.
- Reset low-stock levels from recent sales. Pull the last few weeks of sales, multiply the daily rate by the lead time, add a buffer, and use that instead of the round number.
- Split expiry warnings by category. Use a short window for dairy and deli and a long one for shelf-stable goods. With one window for everything, you'll always get noise somewhere.
- Route by urgency. Send perishables daily and put everything else in a weekly digest.
- Write the decision next to the alert. If you decide to ignore something, note why, so the next person doesn't investigate it all over again.
For the date-checking side, a written routine helps. See building expiry management into the daily routine. If you'd rather work on paper, there are the department date-check logs.
Those steps have limits, though. A notebook and tuned settings will clear out the worst noise. What they can't do is rank everything by money at risk every morning. That takes sell rate, days left and cost for every batch, recalculated daily. A person can do that for ten items, but not for a whole store. And if your system keeps one expiry date per item instead of one per batch, the ranking is wrong before you even start. That's the gap covered in why inventory systems miss expiry.
Where a daily agent fits
This is the problem ShelfSense by ShelfLifePro was built for. Once a day it reads your stock, batch, cost and expiry records. It can read them from a CSV export, from ShelfLifePro natively, or from Zoho Inventory (read-only). Then it gives you one to three calls that cleared the bar, ranked by money at risk, with the arithmetic shown. It recommends, and a person approves. When it isn't sure, it says nothing. Over time it learns which accepted calls sold and which ones ended up as waste. If you're on Tally, Shopify or WooCommerce, you can export to CSV today, and a direct connection is available on request.
If you want to see how it decides what's worth saying, read how ShelfSense thinks. ShelfSense's free audit reads one CSV export, no account needed.
ShelfLifePro Editorial Team
The ShelfLifePro editorial team covers inventory management, expiry tracking, and waste reduction for pharmacies, supermarkets, and retail businesses worldwide.
See what batch-level tracking actually looks like
ShelfLifePro tracks expiry by batch, automates FEFO rotation, and sends markdown alerts before stock expires. 14-day free trial, no credit card required.
The monthly expiry-tracking brief
One short email a month, only when there is something worth reading. FEFO tactics, markdown math, and real-world waste-reduction wins. Unsubscribe anytime.
No spam. Unsubscribe in one click.