Order list with sales forecasts

Sales expectations mode sizes each order from the sales you expect, not from past use. It runs forecasted or planned sales per menu item through your recipes and suggests the ingredients those dishes will use until the following delivery. Order to par and Burn rate can't see a holiday weekend or a catering pickup coming.

Sales expectations is the third of the order list's generation modes, next to Order to par and Burn rate (see order list overview).

When should I order from sales expectations instead of burn rate?

Order from sales expectations when next week won't look like last week: a holiday, a catering order, a new dish or a run of hot days. Burn rate averages the past, so it suits steady weeks.

Burn-rate modeSales expectations mode
Demand sourceHistorical consumption averagePer-day forecasted sales per menu item
Reacts to upcoming eventsNoYes (weather, day of week, operator context)
Needs sales dataNoYes — at least 30 days uploaded
Reacts to menu changesSlow (after burn rate window catches up)Fast
Best forSteady, predictable demandKnown upcoming variation

The AI forecast you can load into this mode reads the weather for the city you enter under City + state in Kitchen Settings → Integrations → Weather. Rinvy gets the weather forecast for that city from OpenWeatherMap. The forecast also marks the US federal holidays on the OPM holiday calendar, plus busy days such as Mother's Day and Valentine's Day.

How the math works

In Sales expectations mode, for each ingredient:

  1. Look up every menu item that uses it.
  2. Work out each menu item's expected sales over the projection window. The window runs from today through the day before the delivery after the next one, because that later truck covers its own day. Today counts because the stock you have now still has tonight's service to get through. If you already counted the product today, today's use is out of the count, so its window starts tomorrow. A supplier set to Through the next delivery day also covers that later truck's day. Forecast-driven demand is date-aware: dates inside the forecast window use that exact day's predicted portions — a delivery window spanning a weekend counts the weekend, a Monday–Friday one doesn't. Dates beyond the forecast window fall back to the item's per-operating-day average, and closed days contribute nothing.
  3. Multiply those expected sales × the menu item's recipe quantity for this ingredient × portion multiplier, and sum across all menu items.
  4. Add the forecast buffer to that demand (see below). Take the larger of the result and your minimum stock, and subtract current stock. Par is a floor here, not extra stock on top of the forecast. The forecast already names the demand for those exact days.

Sub-recipes are exploded automatically — if "marinara" is used inside another sauce, its ingredient demand chains through.

"Expected daily sales" always means per operating day, never per calendar day — a closed day never adds demand.

Prerequisites

  • Pro tier with demandForecast enabled.
  • Sales data uploaded — at least 30 days of historical sales matched to menu items. See the sales data page.
  • Menu items linked to recipes — recipes are how forecasted sales become ingredient demand.
  • Current forecast — if the forecast shows an Outdated chip (generated more than a day ago, business context changed, new sales data, menu items changed, or the forecast window already passed), regenerate before loading it. See the "How forecasts stay current" section of demand forecasting.

Without one of these, Sales expectations mode either falls back to burn-rate behavior or shows incomplete results.

Forecast buffer

No forecast is exact. The Forecast buffer field under your expected sales adds a percentage to the forecast's demand, so the order covers a busier night than predicted.

  • An AI forecast starts at how far your forecasts typically miss: the middle value of your last five scored forecasts. The field shows that number, for example "Your forecasts typically miss by ±22%." It is the same range the shaded band on the demand forecast chart shows.
  • A plan or numbers you typed start at 0%, because they are your own statement of demand.

Change the percentage before you build the list. A lower buffer suits fresh items like buns and produce, where leftovers go to waste. Rinvy doesn't save your change: the field starts at the default again on your next visit or when you pick another source. Each line's Why names the forecast and the buffer it was sized from, for example "497 each forecast + 22%".

The buffer applies only to demand from expected sales. Products ordered by burn rate ignore it.

A product that no recipe uses, such as cleaning supplies, is still ordered by burn rate. The Burn-rate lookback setting in the sidebar sets how many days of history that burn rate reads. It does not change the quantities that come from your expected sales.

Switching modes

Unlike Order to par and Burn rate — which build the moment you pick a supplier — Sales expectations needs your expected sales first, so it has an explicit Update list step.

  1. Go to Order list and pick a supplier on the left.

  2. In the Start from list, choose Sales expectations.
  3. Enter expected daily sales per menu item in the sidebar (or tap Load from AI forecast if you have a current one), then tap Update list.

  4. Review the new quantities — some products will move a lot, others won't — and submit.

The order list's left rail in Sales expectations mode: the Start from list with Sales expectations selected, the Burn-rate lookback picker, the Expected daily sales editor with a per-day input for each menu item, and the Forecast buffer field above the Update list button

Tapping Update list builds the draft. Each row shows the ingredient's on-hand quantity against par, its forecasted daily use, a suggested order quantity, and why it's on the list — with the supplier total and Mark as ordered button at the bottom.

The built order draft in Sales expectations mode: the Order by and Expect delivery row, a table with Product, On hand, Forecast, Order qty, Why, and Cost columns for Cheddar Cheese and Ground Beef, and a footer with the Fresh Farms total and Send and Mark as ordered buttons

When you load from a forecast, Rinvy applies the forecast itself while building the list — not a flattened copy. Items you don't touch use the forecast's exact per-day portions. Editing an item's number adjusts its level while keeping its day-to-day shape: the edit rescales every day proportionally, so a Saturday peak stays a Saturday peak. Setting an item to 0 removes it from the projection.

The order list remembers your mode per restaurant — once you pick Sales expectations it stays selected on your next visit, until you switch back. Glance at the Start from list before ordering so you know which signal you're acting on.

What kinds of products see the biggest difference

  • Sales-driven ingredients with weather or weekday sensitivity (lettuce, buns, cheese, ice cream).
  • Ingredients in seasonal menu items.
  • Items used in only one or two menu items — the forecast for those items pins ingredient demand sharply.

Staple ingredients used across many menu items (salt, oil, eggs) tend to smooth out, so the two modes often agree on those.

Banner warning: missing forecast or sales

If you switch to Sales expectations mode and you're missing data, the order list shows a banner explaining what's missing and links to the docs for how to fix it. Read the banner — the projections won't be meaningful until you address it.

Common mistakes

Using forecast mode with an outdated forecast

Forecasts can go out of date fast if business context shifts. The Outdated chip on the demand forecast page lists exactly what changed — regenerate there first.

Treating forecast quantities as binding orders

A forecast is a probabilistic prediction. The order list takes it as truth for the projection, but you should sanity-check the answer for big events.

Switching between modes mid-order without re-reviewing

The quantities change as soon as you pick another option in the Start from list. Don't switch and then submit without re-reading the list.

Related