Начать бесплатно

Прогноз спроса

Медиана по дню недели, план заготовок, черновик закупки и риск «закончится к 19:00»

16 мин чтения Открыть этот экран в демо
На этой странице 20

Прогноз спроса

Повар каждое утро отвечает на один и тот же вопрос: сколько чего заготовить. Закупщик — на соседний: сколько чего заказать. Обычно оба отвечают по памяти.

Откройте Админ-панель → Склад → вкладка «Прогноз» (admin.cenaly.ge/inventory). Вкладка берёт историю продаж и превращает её в три конкретных артефакта. Порядок на экране — по срочности: сверху то, что рискует закончиться до конца дня, ниже — план заготовок, ещё ниже — черновик заказа поставщику. Если рисковых позиций нет, верхнего блока не будет вовсе. В самом низу, свёрнутой справкой, лежит таблица «Прогноз по блюдам» — на неё можно не смотреть, пока не захотелось проверить цифру.


Как считается прогноз#

Ровно две статистики, обе объяснимые повару вслух:

  1. Сколько этого блюда обычно продаётся в этот день недели. Окно истории — 8 недель (56 дней). Точечная оценка — медиана, а не среднее: восемь вторников, один из которых был днём рождения на 40 человек, средним говорят «готовь на 40» каждую неделю, а медиана этот вторник игнорирует. В справочной таблице «Прогноз по блюдам» рядом с числом показан честный разброс наблюдений (минимум–максимум), сколько наблюдений в выборке и пик — часть суток с наибольшей долей продаж. В шапке вкладки написано основание расчёта: «медиана того же дня недели за 56 дней · N рабочих дней истории».
  2. Как этот спрос распределён внутри дня — доли по частям суток: утро (6–11), обед (11–16), вечер (16–23), ночь (23–6). Границы одинаковы для всех заведений, а сам профиль считается по всем дням истории сразу, не отдельно по вторникам.

Что считается наблюдением, тоже решено осознанно: отменённые заказы в историю не идут; сегодняшний незакрытый день в выборку не попадает; дни до первой продажи блюда не считаются нулями (новинка не получает «ноль продаж» за те недели, когда её ещё не было в меню); «день без продаж» отличается от «дня, когда заведение было закрыто». Сутки считаются в часовом поясе локации. В расчёт берутся топ-500 позиций локации по обороту — длинный хвост меню отсекается.

Меньше трёх наблюдений одного дня недели — числа не будет. В таблице вместо цифры встанет прочерк, а в колонке наблюдений — пометка «мало». В план заготовок и в закупку такое блюдо не попадёт вовсе. Прогноз, которому нельзя верить, хуже отсутствующего: по нему готовят и закупают.

Переключатель вверху выбирает, на какой день строить прогноз — сегодня или завтра.


План заготовок#

Прогноз по блюдам разворачивается по тех-картам в потребность в товарах и полуфабрикатах. Разворот идёт по текущим тех-картам, на момент открытия вкладки — если шеф поменял рецептуру утром, план это учтёт (правку, сделанную в соседнем окне, подхватит обновление страницы).

Вложенные полуфабрикаты разворачиваются вглубь: если соус варят из бульона, а бульон тоже полуфабрикат, в план попадут оба — иначе повару велели бы сварить соус, не сказав, что бульона под него нет. Глубина вложенности ограничена пятью уровнями (и защищена от рецептур, ссылающихся друг на друга по кругу): всё, что глубже, считается сырьём и уходит в закупку, а не в план заготовок.

Таблица плана:

Колонка Что означает
Название товара полуфабрикат, который нужно выпустить
Остаток сколько уже есть
Нужно валовая потребность по прогнозу за день
Выпустить нехватка — сколько реально варить/резать
К час, к которому остатка перестаёт хватать

Срок — это не «начало смены». Если соуса хватает на утро, но не на обед, повару надо успеть к 11:00, а не к 6:00. Час округляется до ближайшей границы части суток (6:00, 11:00, 16:00, 23:00), а у вложенных полуфабрикатов срока нет вовсе — там стоит прочерк: их варят «до» того, что из них делают. Строки отсортированы по сроку: раньше дедлайн — выше в списке. Если заготавливать нечего, вкладка так и пишет: остатков хватает на прогноз.

Остаток полуфабриката тратится один раз: если один и тот же бульон входит и в соус, и в суп, наивный расчёт применил бы остаток дважды и закупка недобрала бы сырья.

Перед отправкой план можно поправить. В колонке «Выпустить» впишите своё количество — например, шеф знает про банкет, которого нет в истории продаж. Ноль убирает строку. Поправка действует для выбранной даты и склада и сбрасывается при их смене; она идёт и в печать, и в доску смены, и в «Оформить выпуск».

Кнопка «Печать» открывает бланк задания для кухни: полуфабрикат, сколько выпустить, «Состав на партию» (тех-карта полуфабриката, умноженная на количество) и пустая колонка «Готово» для отметок. Если окно не открылось, браузер заблокировал всплывающие окна — разрешите их для этого сайта.

Кнопка «Оформить выпуск» в строке открывает операцию «Выпуск полуфабриката» с количеством из плана: выпуск списывает сырьё по тех-карте полуфабриката и прибавляет его остаток.

Кнопка «В доску смены» превращает план в чек-лист задач — см. Доска задач смены. Создаётся одна общая задача «План заготовок — <дата>», а каждая заготовка становится её подзадачей с количеством и часом прямо в заголовке («Соус демиглас — 16 шт к 11:00»); закрыть общую задачу можно только когда закрыты все подзадачи. Повторное нажатие не плодит дубли: если план на эту дату уже стоит на доске, кнопка так и скажет.

Блюда без тех-карты в план не идут и перечисляются отдельным предупреждением (до 20 названий): по ним прогноз ничего сказать не может, и это лучше сказать вслух, чем сделать вид, что заказ полный.


Заготовка на дату по заказам#

Задача: на завтра уже оформлены заказы ко времени — самовывоз к 14:00, доставка к обеду, банкет «подать к 19:00» — и кухне нужно заранее знать, что заготовить каждому цеху, какие у гостей просьбы и что подать на какой стол. Прогноз здесь не помощник: он считает обычный день, а эти заказы уже известны точно.

  1. Откройте «Склад» → «Прогноз» — блок «📅 Заготовка на дату» стоит под планом заготовок. Он работает и без прогноза: у новой точки и там, где прогноза нет, вкладка показывает только его.
  2. Выберите дату (по умолчанию — завтра).
  3. Проверьте три раздела блока и нажмите «🖨 Печать» — всё уйдёт одним листом.

Что входит в расчёт. Заказы точки, у которых время подачи (к 14:00) приходится на выбранный день: самовывоз и доставка ко времени, заказ стола «подать к …» с кассы. Отменённые, закрытые и брошенные корзины витрины не входят; оформленный гостем, но ещё не принятый предзаказ входит — кухня планирует и его. Заказы «как можно скорее» без времени здесь не видны.

По станциям. Блюда раскладываются по станциям экрана кухни — так же, как их видит кухня: станция берёт категории меню, отмеченные в её пресете (экран кухни → ⚙ → «Пресеты устройств», см. Экран кухни). Категорию без станции забирает запасная станция «прочее», а если её нет — блюда собираются в строке «Без станции» (это подсказка донастроить пресеты). Пресет «все цеха» без категорий — экран экспо, на него заготовка не кладётся. У каждой станции — список блюд с количеством и состав по тех-картам: строки тех-карт × порции. Полуфабрикат помечен «ПФ» — станция берёт его готовым, его надо заготовить заранее.

Комбо разворачивается в свои блюда (бургер — на горячий цех, салат — на холодный), выбор гостя в слотах комбо — тоже, добавки считаются по своим тех-картам. Строка тех-карты «только навынос» (коробка, контейнер) идёт только в заказы самовывоза и доставки. Блюда без тех-карты перечислены предупреждением: по ним заготовка не посчитана.

Сырьё всего. Итог по всем станциям, где полуфабрикаты разложены до сырья по их составу: 3 котлеты по 150 г говядины — это 0,45 кг говядины. Количество валовое — остатки склада не вычитаются (что докупить с учётом остатков, покажет черновик закупки ниже или заказ поставщику).

Заметки. Комментарии к позициям («без лука») и к заказу целиком — списком по времени, с номером заказа и столом.

По столам. Заказы, сгруппированные по месту: столы зала (по номеру), затем самовывоз и доставка. У каждого заказа — время подачи, гость, приборы («Приборы: 2» / «Без приборов»), комментарий, блюда (члены комбо — со стрелкой ↳) и просьбы к блюдам. Это лист подготовки банкета: что и к какому часу подать на какой стол.

Пример. На завтра 14:00 два комбо «Бургер + салат + морс» (одно навынос, одно за стол 5) и бургер за тот же стол с пометкой «без лука». Блок покажет: горячий цех — 3 бургера (3 котлеты, 3 булочки, лук), холодный цех — 2 салата, морс — «Без станции» (без тех-карты), коробка — одна, только для навынос; в заметках — «без лука» к бургеру стола 5; в листе по столам — стол 5 с двумя заказами и самовывоз.

Расчёт идёт по тех-картам, действующим сейчас: если на будущую дату запланирована новая версия тех-карты или порция на розлив другого объёма, количество будет по текущему составу.


Лист разморозки#

Задача: с вечера знать, что достать из морозилки, сколько и во сколько, чтобы к началу кухни всё было готово.

  1. В карточке замороженного товара («Условия хранения» — «Морозильник (−18 °C)») заполните «Разморозка» — сколько часов он оттаивает, например лопатка — 16 ч.
  2. На вкладке «Прогноз» выберите день (например, завтра) — появится блок «🧊 Лист разморозки».
  3. Укажите «Кухня начинает в» (по умолчанию 10:00).

Результат: строка на товар — сколько разморозить (потребность дня по прогнозу) и когда начать. Пример: лопатка 4 кг, 16 ч, кухня завтра с 10:00 → «начать сегодня в 18:00». Если на складе меньше потребности, строка помечена «на складе только …». Кнопка «Печать» даёт лист с галочкой «Сделано».

Вкладка «Прогноз» на завтра: блок «Лист разморозки» — судак филе 5,2 кг, начать сегодня в 18:00, займёт 16 ч, с пометкой «на складе только 4 кг»; клюква замороженная 2,4 кг — завтра в 04:00, 6 ч
Рассмотреть экран

Черновик заказа поставщику#

Ниже плана — черновик закупки на выбранный горизонт покрытия (поле «Покрытие, дней»: обычно срок поставки плюс запас; по умолчанию 3 дня, допустимо от 1 до 30).

Для каждого товара считаются две величины, и берётся бо́льшая:

  • потребность по прогнозу за горизонт минус текущий остаток;
  • добор до целевого остатка (а если он у товара не задан — до точки заказа) — обычная складская логика.

Почему бо́льшая, а не одна вместо другой: страховой запас не знает про завтрашнюю пятницу с двойной посадкой; а прогноз не знает про товары, которые вообще не участвуют в тех-картах (упаковка, расходники) — у них складские нормативы единственный ориентир. Строки, попавшие в список по второму правилу, помечены «по точке заказа». Обратите внимание: правило смотрит на целевой остаток, поэтому в черновик попадёт и товар, который ещё выше точки заказа, но ниже целевого — вкладка «Нужно заказать» такой товар пока не показывает.

По прогнозу закупаются только конечные ингредиенты: полуфабрикаты в заказ поставщику по прогнозу не идут (их выпускают по плану заготовок) — они могут попасть в черновик разве что по складскому нормативу.

Количество округляется вверх до кратности упаковки, если она задана у товара. Строки сгруппированы по поставщикам (товары без назначенного поставщика — отдельной группой), и кнопка создаёт свой заказ на каждого поставщика — дальше это обычные закупки из раздела Склад.


«Закончится к 19:00»#

Самый верхний блок вкладки — риск исчерпания до конца дня: то, что горит прямо сейчас. Он сравнивает текущий остаток с ожидаемым расходом за оставшиеся часы, посчитанным по профилю частей суток, и называет час, к которому остаток обнулится. Если час определить не удаётся, строка честно говорит «не хватит до конца дня», без выдуманного времени.

Блок считается только для сегодня: при переключении на «завтра» он исчезает — риска «закончится к 19:00» у завтрашнего дня не бывает.

Поправка на сегодняшний темп: если к обеду уже израсходовали больше обычного, ожидание на остаток дня пропорционально поднимается, и в строке появляется пометка вроде «темп дня ×1.4». Темп считается по фактическим продажам (списания, порча и питание персонала в него не идут) и измеряется для первых десятка с небольшим самых рискованных строк — остальные считаются по обычному профилю. Коэффициент зажат в диапазоне ×0.5…×2 — поправка на «сегодня людно» нужна, а предсказание по одному чеку нет. Если темп измерить не из чего вообще, вкладка честно скажет, что взят обычный профиль дня недели.

Новая точка: посев прогноза от похожей#

У только что открытой точки истории нет, и прогноз ей считать не из чего. Чтобы план заготовок и закупка работали с первого дня, возьмите прогноз похожей точки.

  1. Откройте Склад → «Прогноз» и выберите склад новой точки.
  2. Разверните блок «🌱 Посев прогноза от похожей точки» (у точки без истории он уже открыт).
  3. В поле «Точка-донор» выберите похожую точку — с тем же меню и похожим потоком гостей.
  4. В поле «Коэффициент» укажите, насколько спрос новой точки отличается от донора: 1 — такой же, 0,7 — гостей на 30 % меньше (зал меньше, улица тише), 1,2 — на 20 % больше.
  5. Нажмите «Сохранить». Прогноз, план заготовок и черновик закупки сразу посчитаются по донору.

Например, донор продаёт по понедельникам 20 порций борща, коэффициент 0,7 — новая точка увидит прогноз 14 порций. Числа, взятые у донора, помечены «🌱 посев».

Посев гаснет сам: как только по блюду в этот день недели у новой точки наберётся три своих наблюдения, используется её собственная медиана. Донор участвует только в прогнозе — в отчёты о продажах, аналитику и точность прогноза его продажи не попадают. Снять посев — «Снять посев» в том же блоке.

Склад → «Прогноз» новой точки без своих продаж: раскрыт блок «🌱 Посев прогноза от похожей точки» — донор «Ольховый двор», коэффициент 0.7, «Сохранено», в заголовке «Посев от «Ольховый двор» × 0.7»; ниже — «Закончится до конца дня» и план заготовок
Рассмотреть экран

Точность прогноза#

Блок «🎯 Точность прогноза» внизу вкладки показывает, насколько прогноз ошибался за последние 4 недели. В заголовке — отклонение за 4 недели и за последнюю неделю, например «отклонение 18 % за 4 недели · 15 % за неделю».

Внутри две таблицы:

  • «Прошлая неделя: прогноз / факт / отклонение» — по каждому рабочему дню: сумма прогноза по блюдам, сколько продали тех же блюд, отклонение и сколько продано всего (с новинками).
  • «Самые большие промахи недели» — до 10 блюд, по которым прогноз ошибся сильнее всего.

Прогноз дня считается так, как он выглядел утром этого дня: медиана тех же дней недели ДО этой даты. Отклонение — сумма промахов по блюдам, делённая на продажи (WAPE): «ошиблись на 18 % того, что продали». Промах по каждому блюду считается отдельно, поэтому −10 супов и +10 салатов не дают «идеальный» день. Если прогноз в среднем систематически завышает или занижает (больше чем на 5 %), под заголовком будет об этом строка — например «В среднем прогноз завышает на 12 % — заготовки остаются».

Например, во вторник прогноз — 40 порций по всем блюдам, продали 46, а промахи по блюдам дали в сумме 9 порций: отклонение дня — 9 / 46 ≈ 20 %. Блюда без прогноза (новинки с историей меньше трёх дней недели) промахом не считаются.

Склад → «Прогноз»: раскрыт блок «🎯 Точность прогноза — отклонение 18 % за 4 недели · 15 % за неделю», пометка «прогноз завышает на 6 %», таблица прошлой недели «Дата / Прогноз / Факт / Отклонение / Продано всего» и самые большие промахи по блюдам — судак жареный, пиво, шашлык
Рассмотреть экран

Прогноз выручки и гостей на неделю#

Блок «📈 Прогноз выручки и гостей на неделю» на той же вкладке отвечает на вопрос управляющего: какой будет неделя — сколько выручки, чеков и гостей ждать по каждому дню. Кнопками «← Назад» и «Вперёд →» листаются недели, «Эта неделя» возвращает к текущей.

По каждому дню видны:

  • выручка — и под ней разбивка по частям суток (утро / обед / вечер / ночь); если события или поправка изменили число, ниже серым — «база …», то есть обычный день;
  • чеки, гости и средний чек;
  • события этого дня с их влиянием;
  • поправка руководителя, если она есть.

Внизу — итог за неделю. Это оценка, а не план: блок так и подписан.

Как считается. База — та же медиана того же дня недели за 8 недель, что и у блюд, только по выручке, числу чеков и гостей точки. При истории меньше трёх таких же дней числа нет — вместо него «мало истории (2 из 3)». Гости — число гостей из кассы, а у заказа без него (навынос, доставка) — один гость. Разбивка по частям суток берётся из того, как этот день недели обычно распределяется по часам.

Прогноз дня = база × события × поправка.

Склад → «Прогноз»: блок «📈 Прогноз выручки и гостей на неделю» — таблица Пн–Вс с выручкой, разбивкой по частям суток, чеками, гостями и средним чеком; у 8 марта событие «по прошлым: +40 % (1)» и поправка «+15 % · банкет», внизу итог недели
Рассмотреть экран

События и акции#

Праздник, матч по соседству, акция, открытие конкурента рядом — всё это заводится в блоке «📅 События и акции» кнопкой «+ Событие»: название, вид, даты (прошлые и будущие), «Повторяется каждый год» и к каким точкам относится — к этой или ко всем.

Влияние события считается по прошлым вхождениям. Для каждой прошлой даты события берётся факт выручки и делится на «обычный день» — медиану того же дня недели за 8 недель до этой даты. Медиана таких отношений и есть влияние. Например, 8 марта прошлого года было +40 % к обычному воскресенью — значит, прогноз этого 8 марта будет умножен на 1,4. Рядом с событием видно «по прошлым: +40 % (1)» — в скобках число вхождений, по которым посчитано: одно вхождение — это ещё не закономерность.

Если прошлых вхождений нет (первый матч, новая акция), укажите свою оценку в процентах — «+30» или «−20». Галочка «Брать мою оценку, даже если история есть» нужна, когда прошлый раз был нетипичным. Без истории и без оценки событие на прогноз не влияет и подписано «влияние пока не известно».

Кнопка «Добавить праздники» заводит ежегодные праздники, которые чаще всего двигают выручку (на русском интерфейсе — 1 и 7 января, 14 и 23 февраля, 8 марта, 1 и 9 мая, 12 июня, 4 ноября, 31 декабря; на других языках интерфейса — 1 января, 14 февраля, 8 марта, 24, 25 и 31 декабря). Лишние удаляются в окне события.

Окно «Событие»: название «8 марта», вид «Праздник», даты 2026 и 2027, галочка «Повторяется каждый год», «Только эта точка», поле «Ваша оценка, %» и строка «по прошлым: +40 % (1) — 8 мар 2026: факт ÷ база = 1.40»
Рассмотреть экран

Поправка руководителя#

Управляющий знает то, чего нет в истории: заказан банкет, на улице ремонт. Ссылка «Поправить» в строке дня открывает окно: ± процент к прогнозу или выручка дня целиком (чеки и гости пересчитываются в той же пропорции), и причина. В окне видно, каким был прогноз без поправки. «Снять поправку» возвращает расчётный прогноз.

Каждая поправка, событие и изменение производительности должностей попадает в «Журнал изменений прогноза» внизу блока: когда, кто, что и почему.

Тот же прогноз по часам используется в графике смен: раздел «Персонал → График» показывает, сколько людей нужно в каждый час (см. График смен).


Что нужно, чтобы прогноз появился#

Нужно Зачем Без этого
История продаж посчитать медиану по дню недели «Пока мало истории заказов, чтобы прогнозировать спрос»
≥ 3 одинаковых дня недели в истории считать выборкой блюдо в таблице помечено «мало» и в планы не идёт
Тех-карты блюд развернуть прогноз в товары блюдо попадёт в предупреждение «без тех-карты»
Актуальные остатки посчитать нехватку и риск вкладка не покажет ничего, пока остатки не загрузятся

Агрегат истории пересчитывается на сервере примерно раз в полчаса (и только для аккаунтов, которые сейчас работают); разворот тех-карт и вычет остатков считаются в момент открытия вкладки, по текущим данным.


Связанные разделы#


Частые вопросы#

Почему у половины блюд стоит пометка «мало»?#

Потому что по этим блюдам в истории меньше трёх продаж в этот день недели — например, блюдо появилось в меню две недели назад. Число появится само, когда наблюдений станет достаточно; до этого блюдо не участвует ни в плане заготовок, ни в закупке.

Почему используется медиана, а не среднее?#

Медиана устойчива к выбросам. Один банкет на 40 человек сдвигает среднее так, что заведение неделями готовит лишнее. Среднее в интерфейсе не показывается вовсе — только медиана, разброс и число наблюдений.

Как понять, можно ли доверять прогнозу?#

Откройте блок «🎯 Точность прогноза»: там отклонение за 4 недели и таблица прогноз/факт по дням прошлой недели. Отклонение 15–25 % по блюдам для небольшого заведения — нормально; если блок пишет, что прогноз систематически завышает, уменьшите заготовки вручную.

Прогноз учитывает погоду, праздники, футбол?#

Прогноз блюд — нет: он знает только день недели и время суток. Прогноз выручки и гостей на неделю учитывает события, которые вы завели в блоке «📅 События и акции»: влияние считается по их прошлым вхождениям или берётся ваша оценка. Погоду не учитывает ни тот, ни другой.

Можно ли строить прогноз на неделю вперёд?#

Выручку, чеки и гостей — да: блок «📈 Прогноз выручки и гостей на неделю» листается по неделям. Прогноз блюд и план заготовок — на сегодня и завтра; для закупки горизонт задаётся полем «Покрытие, дней»: прогноз одного дня умножается на него.

Черновик закупки сразу отправляет заказ поставщику?#

Нет. Это именно черновик: лишние строки вы снимаете галочкой и только затем нажимаете создание — получаются обычные черновики закупок раздела «Склад», по одному на поставщика. Количества правятся уже в созданном заказе, там же, где и обычно.