Expiry tracking
Track stock in dated lots so you use the oldest first, bin what's expired, and stop reordering stock you can't finish.
Perishable stock is tracked in lots — each delivery you receive becomes a lot with its own expiry date. Because the app knows when each lot goes off, it can tell you what to use first, what to dispose of, and when not to reorder something you already can’t finish in time. Nothing here ever blocks you from working — every flag is advice, backed by a date.
New to the terms here (lot, GRN, adjustment)? See the Glossary.
Where expiry dates come from
Dates are captured while you receive goods — see Confirm GRN for the receiving flow itself. On each receive line:
- If the item has a shelf life set, the expiry is filled in for you, marked auto — received today plus the shelf life (for example, today + 5 days). Tap the date chip to correct it if the printed date on the packet differs; −1 day and +1 day chips make small fixes quick.
- If the item has no shelf life yet, the line shows a one-time nudge: Set shelf life (pick how many days the item keeps — it then auto-fills on every future receipt), or Not perishable if it never expires. You can also skip and receive now — the line simply posts without an expiry.
You can also set the Shelf life field when adding or editing an item, so new items arrive with dates from their very first delivery.
Note: expiry capture never blocks receiving. A line without a date still posts — it just won’t appear in any expiry list.
The two horizons
Expiring stock is flagged at two levels of urgency:
- Critical — within 48 hours of expiry. Red. Act today: use it or plan to bin it.
- Warning — within 7 days. Amber. Plan your prep and ordering around it.
These are the shipped defaults, and they suit most kitchens. Owners can check the values their organisation runs on under Settings → Expiry horizons, which also shows the reorder cover window (same as the warning horizon) and the vendor freshness floor (60% by default — explained below).
What you see day to day
- Expiry badges on stock lists. Items with an expiring lot carry a small pill on the Inventory and stock screens — for example 2 lots · exp Tue. Red means critical, amber means warning. Items with no expiring lot show nothing.
- Use-first cues. On the staff stock list, an expiring item tells you exactly which lot to open first — “Use the 14 Jul cream first · 2 days left”.
- Use first today. The owner and manager dashboard has an Expiring soon zone. Its Use first today strip lists the three soonest-expiring lots at the location, with a See all in Inventory link.
The daily expiry check
Each location confirms once a day that it holds no expired stock. On the dashboard’s expiry zone, tap No expired stock on hand — the tile then shows who attested and at what time, building a dated audit trail.
If the location still has expired lots waiting in the dispose queue, a clean one-tap attest isn’t allowed: you must add a note explaining why expired lots are still on hand, then tap Attest with note.
Dealing with expired stock
The Dispose now panel on the dashboard lists every lot that is past its date but still on the books — the item, its lot, the exact remaining quantity, how long it’s been expired, and the total value still sitting on the books.
One tap opens a disposal prefilled with the lot, its quantity, and the reason Expiry:
- At an outlet or kitchen, the tap opens Log wastage with everything filled in.
- At the warehouse, tap Write off to open the Write off expired lot form. The item and reason are locked; you can lower the quantity if you are only disposing of part of the lot — the remainder stays on the books, still tracked. A note for the admin is optional.
Warning: logging a disposal posts a live stock adjustment — the loss is recorded on the ledger, not hidden. Check the quantity before you confirm.
Clearing the queue removes the location’s expired badge and lets the daily check be attested clean.
Smarter ordering
Expiry data also feeds your buying decisions:
- Expiring soon KPI. The dashboard shows how many items have a lot inside the 7-day window, the rupee value at risk, and a count of anything already expired. Tap it to jump to the filtered inventory.
- The “don’t reorder yet” flag. When you’re about to order an item whose stock already covers the quantity — but that stock expires within the reorder cover window — the order line warns you: “3.5 kg expires by Tue — this order may arrive after you’ve had to bin it.” You can still order; it’s your call.
- Vendor freshness. Each vendor gets a Freshness on arrival score — what share of an item’s shelf life is still left when their deliveries land. A vendor below the freshness floor (60% by default) is flagged as a short-dating supplier on their detail page and in the vendor picker when you raise a purchase order.
Who does what
- Outlet staff and kitchen staff follow the use-first cues, log wastage for expired lots at their location, and can record the daily attestation.
- Warehouse managers clear warehouse lots through Write off and keep the dispose queue empty.
- Owners see the org-wide expiry zone across all locations and the expiry horizon values in Settings.