Stockout risk alerts

Stockout risk alerts are Rinvy's "you're going to run out" warning. Every morning the system projects current stock forward using your burn rate and supplier delivery schedule, and flags anything that won't make it to the next delivery. The alert shows on Home before service starts, so you still have time to act on it.

When it fires

The check runs once a day at 6 AM local time, in the time zone set for your kitchen. That zone is a name from the IANA time zone database, such as America/Chicago. The database holds each zone's daylight-saving rules, so 6 AM stays 6 AM after the clocks change. For every quantity-tracked product, the check asks:

  • What's the current stock?
  • What's the daily burn rate? (the amount used per day between your counts over the last 30 days, after receipts and transfers. It needs at least two completed counts in that window.)
  • When does the next supplier delivery land? (the next of the supplier's delivery days, starting today)

If current stock ÷ daily burn rate is fewer days than it takes for the next delivery to arrive, the product is at risk. If the supplier doesn't have a delivery schedule set, the system uses a 7-day horizon.

The burn rate is an average, which the NIST/SEMATECH e-Handbook of Statistical Methods describes as the simplest way to smooth data. It evens out a slow Tuesday and a busy Saturday, but it also lags a sudden jump in sales.

If you set Operating days in Kitchen settings, Rinvy counts only open days. Say it is Friday morning, olive oil has 5 L on hand and you use 2 L a day, so it lasts 2.5 days. The supplier delivers Monday. Open every day, the kitchen has 3 days to cover (Saturday, Sunday, Monday), and 2.5 is less than 3, so olive oil gets an orange alert. Closed on Sundays, the kitchen has only 2 open days to cover, and 2.5 days of oil is enough, so there is no alert.

Severity

Each alert shows days remaining until projected stockout:

  • Red: under 2 days. Urgent.
  • Orange: 2 days or more, but before the next delivery. Address before ordering.

The alert detail modal shows current stock, daily burn rate, days remaining, and the next delivery date, so you can check the math. Under 1 day, Days remaining reads Out today.

The Alert details sheet for Ground Beef with a Stockout risk chip: current stock 2 lb, daily burn rate 3.3, days remaining Out today, next delivery Oct 16, and a Dismiss alert button

Where alerts show up

  • Home: open Today and look under Needs attention. Each alert is one row. Tap the row to open the detail modal.
  • Push notification: sent to Owners and Managers when new alerts are created. The title is "Stockout risk detected". The body says how many products are at risk.
  • Alert history: the Alerts report (Reports → Alerts) records each stockout-risk alert after it clears, with when it fired and how it resolved.

The Needs attention card on Home with a "1 new" chip. Three rows tagged Low sit above a Ground Beef row tagged Stockout risk that reads Out today and has an unseen dot

You don't get a separate push for every product. Each daily run sends one notification that groups that morning's new risks.

Rinvy also recalculates right after you save a receipt, prep, waste or a transfer. A delivery that covers the gap clears the row at once. A new risk that appears during the day shows on Home but sends no push.

Dismissing alerts

The detail modal has a Dismiss alert button. Dismissing acknowledges the alert without taking action. Use it when you've already placed the order, or you know the product is about to be deprecated.

A dismissed alert is sticky: it doesn't re-fire even if the next morning's check shows the same risk. But if the product stops being at risk (you received a delivery, burn rate dropped) and then re-enters risk later, a fresh alert is created.

A dismissed alert is removed once the risk clears. If the same risk is still there 90 days after you dismissed it, the dismissal expires and the alert comes back.

Why is a product that's running low not flagged?

The check skips any product it cannot project forward, or that has already run out:

  • Products with no burn rate. If a product hasn't been consumed in the lookback window, or has fewer than two completed counts in it, the check skips it. You can't run out of something you're not using.
  • Products already at 0. A product with no stock left has already run out, so the check does not count it as at risk. If it has a minimum stock level, it shows as a red Out row on Home instead.
  • Status-tracked products (OK/Low/Out). The alert math needs numeric stock, which status products don't have. Their low-stock state is surfaced separately.
  • Recipe-output products. Their stock comes from prep, not deliveries. The check rolls them up into their source product's risk instead.
  • Non-inventoried products. The check skips them by design.

How this relates to the order list

The order list flags stockout risk too, but only when you open it. Stockout alerts run automatically every morning and push-notify, so you don't have to remember to check.

An alert tells you a product is at risk. The order list turns that into a quantity to order.

What the operator should do

When an alert fires:

  1. Open Today and read the affected products.
  2. Tap into the detail modal for context (days remaining, next delivery).
  3. Either:
    • Order more: go to Order list in Burn rate mode. The same product is flagged there with a suggested quantity. The default Order to par mode only refills items below their minimum, so it does not add a stockout-driven need on its own. When fast movers are at risk, it shows a banner with a Switch to Burn rate button.
    • Reduce usage: if you can't reorder in time (no time, supplier closed), slow down on that ingredient until the next delivery.
    • Dismiss: if you know the risk is resolved (already ordered, product retiring).

The Order list banner in Order to par mode: "1 item may run out before the next delivery", with a Switch to Burn rate button and a Dismiss link

Common mistakes

Dismissing alerts without ordering

Dismissing doesn't extend stock. It only silences the alert. If you dismiss without ordering, the next morning's check doesn't fire again, and the product can run out during service.

Ignoring alerts for items with low burn

A product with a low daily burn rate can still go red if stock is low enough. Don't assume "we barely use this" means "we can't run out of it". The check compares days of stock, not amounts.

Forgetting supplier delivery days

If the supplier doesn't have delivery days set, the alert defaults to a 7-day horizon, which is conservative. Setting actual delivery days (under suppliers) tightens the projection.

Related