Expiration alerts
An expiration alert tells you that stock from one delivery expires soon, or has already expired, while Rinvy still counts it as on hand. The alert shows on Home with the product, the date and the amount left from that delivery. The kitchen can then use it up before it goes in the waste bin. Every plan includes it.
How they work
Expiring stock shows as rows in the Needs attention card on Home. Rinvy adds a row for each batch that:
- Has an expiration date (recorded at receiving time).
- Expires within the alert window (default 7 days, configurable in Dashboard settings).
- Still has stock on hand (per FIFO accounting).
A batch that expires in the next few days has an orange Expiring chip and reads Expires in 3 d. A batch whose date has passed has a red Expired chip and shows the date instead. A batch that expires today still counts as expiring. Expired rows come first, then the soonest dates. Tap a row to see the expiration date, the days remaining and the remaining units, with a Dismiss alert button.


Rinvy groups batches by product and expiration date. Two deliveries of milk that carry the same date make one row, and the remaining units are added together.
Everyone on the team sees these rows, because staff rotate the stock. Only owners and managers can tap a row to dismiss it. For staff and viewers, the row is read-only. It goes away when the batch is used up or leaves the window.
Setting expiration dates
Expiration dates are set per receipt line, not per product. When you receive a delivery:
- For each delivery line that has a date, fill in Expires (optional) before you tap Add to receipt.
- Leave it blank for shelf-stable items where expiration doesn't matter.
- On a scanned or forwarded invoice, open the line in review and set Expiration before you commit the invoice. Rinvy does not read dates off the invoice for you.
Only a normal delivery line takes a date. A short, credit or return line has no Expires field, because nothing new arrived on the shelf.
A single product can have several active batches, each with its own date. That is how FIFO accounting captures real-world spoilage timing.
You cannot change the date on a saved receipt. To fix a wrong date, delete the receipt and enter it again. See receive a delivery manually for the field details.
FIFO and what counts as "on hand"
Rinvy uses FIFO (first in, first out): it walks batches oldest first when it accounts for usage. It takes everything you received, subtracts the product's current stock, and charges that usage to the earliest deliveries first. Waste you log and a count that comes in lower both raise the usage, so they also come off the oldest batch.
Here is an example. Say you received 6 gal of milk on Monday with a date 5 days away, and 6 gal on Thursday with a date 9 days away. These are the only milk deliveries on the books. On Friday the count shows 8 gal. Rinvy charges the 4 gal you used to Monday's batch, so Monday has 2 gal left and Thursday has all 6. With the default 7-day window, Home shows one row: Milk, Expires in 5 d, with 2 remaining units. Thursday's batch shows up when its date comes inside the window.
The order is the order of arrival, not of expiration date. If a later delivery carries an earlier date, Rinvy still charges usage to the batch that arrived first.
The remaining units on a row are what FIFO has left in that batch, in the product's counting unit. They are not the product's total stock.
Configuring the alert window
Go to Dashboard settings.
Find Expiration date warning and set how many days out you want to be warned (default
7).- Save.

The window takes any whole number from 1 to 90 days. A wider window (14 days) gives more lead time but more clutter on the dashboard. A tighter window (3 days) is urgent-only. Using a batch before it expires is prevention, which is the most preferred step on the EPA's Wasted Food Scale. So pick a window long enough to put the item on a special or into family meal.
When does an expiring batch leave Home?
An expiring batch leaves Home as soon as FIFO shows no stock left in it. That happens after you use it, log it as waste, or count less of the product. Rinvy checks every hour, and right away after you save a receipt or a waste log.
You can also tap the row and Dismiss alert. The dismissal holds until the batch clears. If the batch is still on the books 90 days after you dismissed it, the alert comes back. Dismissed and cleared batches stay in the Alerts report.
The push notification
Each morning at 6 AM in your kitchen's time zone, Rinvy sends an Expiration warnings push for each batch that is inside the window. The title is Product expiring soon or Product expired, and the message names the product, the units on hand and the date. Each batch is announced once, not every morning. The push goes to every role, including staff and viewers, while the Home rows show only for owners and managers. Each person can turn the push off in Kitchen settings → Notifications. See push notifications.
What's excluded
- Status-tracked products (OK/Low/Out) don't get expiration alerts. Their inventory model is too coarse for batch tracking.
- Recipe-output products and non-inventoried products don't get receipt-based expiration dates by definition.
- Archived products and products whose stock is 0 or less show no rows.
Common mistakes
Skipping the date at receiving
No date entered means no alert. For dairy, produce, and proteins, take the extra 5 seconds at receiving. You get fewer surprise spoilage events.
Setting expiration to the print date on the package
Many packages have a print date that's not the expiration date. Use the best-by, sell-by, or use-by date stamped on the product. The FDA notes that manufacturers use many phrases for these dates, and that a "Best if Used By" date is about quality, not safety. Enter the date your kitchen uses to decide when the item goes.
Widening the window because nothing shows up
If nothing is in the window, Rinvy is working correctly. Nothing on hand is close to its expiration date. Do not widen the window to fill the card. That only adds noise.