07 · Packs
Paid Pack

Shelf-life alerts

Hour-precision shelf-life alerts that fire at 24h / 12h / 6h before a dairy batch expires, so warehouse staff clear short-life stock before it is wasted.

5 min read · updated 28/05/2026

Paid Pack · locked

This article is part of the Dairy PackDairy Pack

You can read the guide. The actions it describes unlock when an owner adds this Pack in Billing & entitlements.

Overview

Fresh dairy expires in hours, not days. A paneer batch with 14 hours left and one with 48 hours left both read as "1 day" in a normal stock list — so staff ship the wrong one and the short batch turns into a write-off. Shelf-life alerts watch every dairy batch by the hour and raise a flag at 24h, 12h, and 6h before expiry, so you can route short stock to a discount sale or dispatch it first while it still has value.

Paid Pack · locked

This article is part of the Dairy PackDairy Pack

You can read the guide. The actions it describes unlock when an owner adds this Pack in Billing & entitlements.

This is part of the Dairy Pack (paid). Your Owner turns it on by installing the Dairy Pack from Settings → Billing; once installed, the alerts cron starts watching your dairy batches automatically.

Where to find it

On web at Dairy → Shelf-life (/dairy/shelf-life). It is a desktop screen — there is no mobile view. Only the Owner sees the Dairy menu, so shelf-life alerts are an Owner screen.

Key concepts

  • Shelf-life hours — every dairy product carries a shelf life measured in hours, not days. The preset comes from the product's dairy category: 72h for curd, 168h for paneer, 240h for fresh cheese, 720h for milk-based syrups, 8760h for ghee. This hour precision is what lets the system tell a 14h paneer apart from a 48h one.
  • Severity tier — each alert sits in one of three tiers: Warning (≤24h), Warning (≤12h), and Critical (≤6h). As a batch ages, it escalates up the tiers.
  • Acknowledge — your dismiss on an alert, with an optional note like "routed to discount sale". It stamps the alert resolved and moves it from the open list to the acknowledged list.
  • Resolved — an alert clears either when you acknowledge it, or automatically when the batch is disposed or its stock hits zero. Both set the same resolved stamp, and the open / acknowledged filter keys off it.

Common workflows

1
See what is about to expire

Open Dairy → Shelf-life. The three KPI tiles at the top count open alerts by tier — Critical (≤6h), Warning (≤12h), Warning (≤24h). Start with Critical.

2
Filter to the urgent stock

Use the Severity dropdown to show only Critical (≤6h) alerts, or the open / acknowledged pills to hide the ones you've already handled. Each row shows the batch, product, hours left, and when the alert was emitted.

3
Read hours left

The Hours left column is the number that matters. At 6 hours or under it turns pink so it jumps off the screen.

4
Acknowledge what you've actioned

Hit Acknowledge on a row, add an optional note (e.g. "Routed to discount sale, expected to clear by 22:00"), and confirm. The alert is stamped resolved and moves to the Acknowledged list.

The alerts themselves are written by a background job that runs every 30 minutes — there is no "create alert" button. You read them, act on the stock, and acknowledge.

Role notes

Shelf-life alerts are an Owner-only screen. Owner can view the alert list and acknowledge alerts. These powers come from the Dairy Pack: Pack permissions are not granted to the Owner until the Pack is installed — before that, even the Owner cannot see the screen. No other role (Manager, Operator, Warehouse, etc.) has access to Dairy Pack screens.

There is no manual "create alert" action — alerts are emitted by the cron every 30 minutes. You clear an alert by acknowledging it, and the cron also auto-resolves one when the batch is disposed or its stock reaches zero.

Tips & time-savers

Tip

Add a note when you acknowledge — "routed to discount sale", "dispatched to QC platform first", "held for tomorrow's collection van". The note travels with the alert, so when you reopen the screen you can see at a glance which short batches already have a home and which still need a decision.

Filter to Critical (≤6h) first thing each morning and clear that list before touching anything else — those are the batches that turn into a write-off by lunch.

Gotchas

Warning

Acknowledging clears this alert — it moves to the Acknowledged list — but it does not stop the batch ageing. The same batch raises a fresh alert at the next tier (24h → 12h → 6h) until you actually move the stock, so acknowledging the 24h warning won't spare you the 6h critical. Acknowledging is your dismiss; the cron also auto-resolves an alert when the batch is disposed or its stock hits zero.

Shelf-life alerts only watch products that are tagged as dairy with a shelf-life set. A dairy product missing its category or hours will be skipped by the cron — so it won't appear here at all.

Related