Some stock keeps for months (pickle, packaged goods) and carries a printed expiry date; some spoils in hours or days (paneer, cooked dishes) and has a shelf life instead. Neviscater treats both the same way: every quantity that comes into stock gets an expiry date — either the one you type in, or one worked out from the shelf life you configured — and warns you before it lapses.
Expiry tracking needs inventory tracking on (Application Setup → Preferences → Track Inventory) and only applies to materials and items with Track Inventory ticked.
Set a shelf life on a material or item
- Open the material (Application Setup → Materials Table → Edit) or the item (Items Table → Edit, under the + more-details section).
- Set Shelf Life — a number plus Days or Hours (hours suit cooked items, days suit raw materials). Leave it empty for stock that never expires.
- Optionally set Expiry Alert (days) — how many days before expiry the warnings should start. If left empty, warnings start 3 days before expiry.
A preparation (an in-house material made from an item) automatically uses its source item's shelf life unless you give it one of its own.
How each purchase gets its expiry date
Whenever stock comes in, the entry carries an optional Expiry Date field:
- Material purchases (Application Setup → Material Purchases → Add New Material Stock),
- Purchase Order goods receipts — one Expiry field per material/item line on the receipt,
- Item stock additions (the item's Add Stock dialog).
Type the date printed on the packet when there is one — an explicit date always wins. Leave it blank and Neviscater derives it as purchase date + shelf life. If neither a typed date nor a shelf life exists, that stock simply never expires. For shelf-life materials the purchase Date is required, since the expiry is calculated from it.
The stored expiry shows as an Expiry column on the Material Purchases table and on every Stock History page, with past dates in red.
How Neviscater decides what is expiring
There is no separate batch bookkeeping to maintain. Neviscater assumes you use the oldest stock first: your current stock is matched against your most recent inward entries, and whatever falls on an older, expiry-dated entry is treated as still on the shelf from that lot. So if you bought 5 kg last month (now expired) and 10 kg yesterday, and 12 kg remain — 10 kg is fresh and 2 kg counts as expired.
Stock is then flagged:
- Expiring (amber) — some stock passes its expiry within the alert window.
- Expired (red) — some stock is already past its expiry.
Where you see it
- Materials and Items tables — an amber expiring or red expired badge under the stock figure; hover it for the quantities and nearest expiry date.
- Filter chips above both tables — click Expiring or Expired to see only those rows (see Materials and Inventory → Finding stock that needs attention).
- Alerts bell — "N materials have expired stock" / "N items have stock expiring soon", linking to the filtered list.
- Dashboard — Expiring / Expired counters on the Materials and Items cards.
- Daily email digest — each morning, account owners with expiring or expired stock receive an email listing it, with quantities and nearest expiry dates.
Write off expired stock
Expired stock is never removed automatically — you confirm it, so your counts always reflect a decision:
- On the Materials or Items table, click the red expired badge, or open the row's More → Write Off Expired Stock (just below Stock Logs).
- The confirmation shows exactly how much is expired and what usable stock remains. Confirm.
- The expired quantity is deducted from Current Stock and logged in the stock history as an expiry write-off, valued at the rate current at that moment.
The menu entry is greyed out with "No expired stock to write off." while nothing is expired. The quantity is always re-checked at the moment you confirm, so you can never write off more than is actually expired.
Expiry write-offs in the Wastage Report
Reports → Wastage Report has an Expiry Write-offs tab listing every write-off in the selected date range with quantity and value, plus an Expiry Write-off Value summary card and a top-contributors chart. See Wastage Report. Because the value is frozen when the write-off happens, later rate changes never rewrite historic wastage.
Common questions
I set a shelf life but nothing is flagged. Expiry only applies to stock added after the shelf life was set (older entries have no expiry date), and only when Track Inventory is on for that material/item.
The badge shows less expired stock than I expected. Neviscater assumes oldest stock is used first — stock you have already consumed is matched to the oldest entries, so only what is genuinely left over from an expired lot is flagged.
Can I undo a write-off? There is no one-click undo. Use Add / Subtract stock to correct the count; the write-off row remains in the stock history as the audit trail.
The packet's date differs from the calculated one. Type the printed date in the Expiry Date field when recording the purchase — an explicit date always overrides the shelf-life calculation.