Прогноз спроса в ресторане предсказывает число гостей или выручку на будущий день либо на его часть — по повторяющимся образцам из истории плюс сигналы календаря, погоды и событий поблизости. Он чего-то стоит только тогда, когда ты меряешь его ошибку и когда он меняет две вещи: часы в графике смены и количества в заказе поставщику.
Каждое число в расчётных примерах ниже — круглая учебная величина, подобранная так, чтобы расчёт можно было проверить на бумаге. Ни одно из них не является нормой, ни одно не описывает реальное заведение и ни одно не надо переписывать в свою модель. Единственные числа на этой странице, описывающие действительность, — те, рядом с которыми стоит ссылка на источник.
Отдельная оговорка, важная в Варшаве. Все нормативные числа и весь календарь здесь — польские: закон о нерабочих днях, данные польской метеослужбы, польский статистический ряд. Если ты держишь заведение в Польше, а привычки счёта привёз из другой страны, разница начинается ровно с календаря.
Почему память управляющего — это уже прогноз и где она заканчивается
Управляющий, который заказывает три лишних ящика помидоров, потому что «на длинные выходные всегда уходит», только что построил прогноз спроса. Вопрос никогда не в том, прогнозирует ли твой ресторан — он делает это каждый день, — а в том, записан ли прогноз до начала дня.
У незаписанного прогноза три свойства, на которых трудно вести дело. Он не может ошибиться на бумаге, поэтому никто никогда не узнаёт, насколько он промахнулся. Он не разложен на части, поэтому, когда промах случается, нельзя сказать, какое звено рассуждения подвело: день недели, погода или концерт через квартал. И живёт он в одной голове, поэтому вторничный управляющий и субботний тихо ведут две разные модели одного ресторана.
Прогноз спроса — предсказанное значение числа гостей или выручки на будущий период, названное вместе с диапазоном, который говорит, насколько оно неопределённо.
Запись ничего не меняет на кухне и меняет всё в характере спора. Число, поставленное накануне, можно сравнить с кассой на закрытии, и разница между этими двумя числами — единственное сырьё, из которого когда-либо получается улучшение.
Гости, чеки, выручка или порции: четыре прогноза, которые нельзя подменять друг другом
«Спрос» — не одна величина, а эти четыре кандидата ведут себя достаточно по-разному, чтобы путаница между ними тихо ломала решение на другом конце цепочки.
| Что прогнозируешь | Какое решение кормит | Что его портит |
|---|---|---|
| Гости (посаженные люди) | Укомплектованность смены, план зала, объёмы заготовки | Брони, записанные, но не дошедшие; заходы с улицы, не записанные вовсе |
| Чеки (закрытые счета) | Оборачиваемость столов, темп обслуживания | Разбитые счета и сдвинутые столы считаются то как два, то как один |
| Выручка в злотых | Часы в графике, планирование денег | Смена цен в меню двигает число без всякой смены спроса |
| Порции одной позиции | Заказы поставщикам, листы заготовки | Дни с настоящим нулём; блюдо, снятое из меню посреди периода |
Детализация — наименьшая единица, для которой строится прогноз: день, часть дня, час или отдельная позиция меню.
Практическое правило: прогнозируй ту величину, в которой на самом деле записано твоё решение. График пишется в часах, а часы берутся из выручки, значит графику нужна выручка. Заказ поставщику пишется в килограммах и штуках, а они берутся из порций. Спрогнозировать гостей и прикинуть остальное на глаз — это тот шаг, на котором теряется большая часть точности, и теряется она беззвучно.
Доставка — пятый поток, и он заслуживает отдельной строки, а не доли в кривой зала. У него другая форма недели, на погоду он отзывается в обратную сторону, и приходит он через площадки, чьи данные ты скорее получаешь, чем записываешь, — об этой проблеме владения говорит статья про онлайн-заказы. Один общий прогноз на зал и доставку усредняет два по-настоящему разных ритма.
Наименьшая пригодная история и то, что уничтожает месячная сумма
Прогноз — это арифметика на повторяемости, поэтому история обязана быть достаточно мелкой, чтобы повторяемость в ней ещё была видна. Месячная сумма — классическая потеря: как только сорок тысяч злотых записаны одним числом за октябрь, ни один метод на свете не разложит их обратно на пятницы и вторники, из которых они сложились. Уровень дня — это пол, уровень транзакции лучше, и ни один из них не восстанавливается задним числом.
Сколько нужно истории, зависит от того, какой ритм ты собираешься предсказывать, и честный ответ здесь — метод, а не число недель. Чтобы увидеть неделю, нужно несколько полных недель, иначе модель не отличит пятницу от вторника и просто усреднит обе в число, которое не годится ни одной. Чтобы увидеть год, нужен как минимум один полный годовой цикл: более короткая история не содержит ни одного законченного сезона, на котором можно было бы учиться.
То, что годовой сезон — вещь настоящая, а не отраслевой фольклор, относится к немногому, что польская официальная статистика действительно покажет.
sts_setu_m, NACE I56, без сезонной корректировки, индекс 2021 = 100, обновлено 20.08.2026) индекс составил 186,8 в феврале 2025 и 217,9 в декабре 2025 — декабрь на 16,6 % выше февраля того же года.Читай этот ряд ровно настолько, насколько он простирается, и ни шагом дальше. Он номинальный, поэтому часть роста внутри года — это цены, а не дополнительные гости; он общенациональный и покрывает весь раздел, то есть точки быстрого питания, столовые и гостиничные рестораны вместе; и описывает он отрасль, а не твой зал. Он доказывает, что сезон существует. Вклеить его как собственный сезонный коэффициент нельзя, и эта страница не будет делать вид, что можно.
База, дневной множитель и двойной счёт, который прячется между ними
Работающая форма ресторанного прогноза — мультипликативная: базовый уровень, а затем поправка на каждое обстоятельство, которое ты про день знаешь.
Прогноз гостей = Гости базово × Дневной множитель × Множитель события × Множитель погоды
Гости базово— уровень периода плюс его годовая сезонность и ничего больше: без недельного профиля, без событий, без погоды;Дневной множитель— профиль дня недели в виде множителя, посчитанный по собственной истории как среднее число гостей в этот день ÷ среднее число гостей по всем дням;Множитель события— множитель, приписанный известному календарному или местному событию, тоже измеренный на собственных прошлых случаях этого события;Множитель погоды— множитель для прогнозируемой погодной корзины, измеренный так же.
База — только уровень и годовая сезонность. Недельный профиль из неё намеренно вынут, его несёт отдельный Дневной множитель.
Это разделение — не педантизм, а самая частая арифметическая поломка в самодельных ресторанных прогнозах. Если твоя база — «среднее по четырём последним пятницам», а потом ты умножаешь её на пятничный множитель 1,35, пятница посчитана дважды и каждый пятничный прогноз завышен на треть. База — это плоское среднее по всем дням; день недели живёт в множителе; каждый факт входит в произведение ровно один раз.
Досчитано до конца при базе 100 гостей, пятничном множителе 1,35, множителе местного события 1,20 и множителе плохой погоды 0,95: 100 × 1,35 = 135; 135 × 1,20 = 162; 162 × 0,95 = 153,9, то есть 154 гостя. Каждое из этих четырёх чисел — учебная величина. В настоящей модели каждое из них измерено на собственных прошедших днях, а множитель, который ты не умеешь измерить, — это множитель, который ты не ставишь.
Польский список нерабочих дней изменился 1 февраля 2025 года, а история — нет
Календарь — самый дешёвый в добыче фактор и самый лёгкий, чтобы тихо ошибиться: календарь сам по себе есть закон, а законы меняются. Польский список дней, свободных от работы, лежит в законе от 18 января 1951 года (действующая сводная редакция: Dz.U. 2025 poz. 296, объявлена 06.03.2025 — первоначальная редакция Dz.U. 1951 nr 4 poz. 28 историческая и сочельника не содержит), и 1 февраля 2025 года в нём появилась ещё одна позиция: закон от 6 декабря 2024 года добавляет после буквы k, дословно, ka) 24 grudnia - Wigilia Bożego Narodzenia, то есть 24 декабря, Сочельник (Dz.U. 2024 poz. 1965, в силе с 01.02.2025).
Посмотри, что это делает с моделью, обученной на 2023 и 2024 годах. В той истории 24 декабря было обычным рабочим днём; с 2025 года это установленный законом нерабочий день, и офисы, школы и торговля вокруг них ведут себя соответственно. Модель выучила факт о стране, который с тех пор перестал быть правдой. Ни один показатель ошибки об этом не предупредит: модель добросовестно воспроизводит то прошлое, которое ей дали.
Фактор — внешняя переменная, сдвигающая спрос: праздник, погода, местное событие, день выплат, учебный период.
День выплат выглядит частным делом работодателя, а на самом деле окно ему задаёт закон. Польский Kodeks pracy (Трудовой кодекс, ELI DU/1974/141) в статье 85 говорит: выплату вознаграждения за труд производят не реже одного раза в месяц, в постоянный и установленный заранее срок (§ 1); вознаграждение, выплачиваемое раз в месяц, платят за отработанное, сразу после определения его полной суммы и не позднее первых 10 дней следующего календарного месяца (§ 2); а если установленный день выплаты приходится на день, свободный от работы, платят накануне (§ 3) (Kodeks pracy, ст. 85, сводный текст Dz.U. 2025 poz. 277, опубликован 06.03.2025).
Прогнозисту эти три параграфа — хорошая новость, а не юридическая мелочь: они сужают фактор, а не размывают его. Выплата за минувший месяц идёт следом за ним и не позже десятого числа следующего, значит пик выплат физически не может лечь на середину месяца: кандидатов горстка на стыке месяцев, а не тридцать. Срок обязан быть постоянным и назначенным заранее, значит однажды измеренный множитель не убегает от месяца к месяцу — а § 1 разрешает платить чаще, чем раз в месяц, поэтому у части работодателей таких дней два, и они тоже постоянные. Сдвиг из § 3 стоит завести в колонку прямо: выплата, пришедшаяся на субботу или воскресенье, переезжает на предыдущий день, поэтому одна пятница в месяце бывает тяжелее остальных по причине, не имеющей никакого отношения к твоей кухне.
Одного закон не делает: дня внутри этого окна он не называет — конкретную дату каждый работодатель ставит у себя. Поэтому то, на какой день приходится пик выплат именно у тебя, следует из того, кто нанимает людей в твоём районе: конторы с одним сроком, склад со вторым, автобусный парк с третьим. Окно задаёт закон, распределение внутри окна задают работодатели — и ровно поэтому этот множитель меряют на собственной истории, а не переписывают из кодекса.
У остального календаря нет за спиной даже такого одного акта. Даты школьных каникул объявляются на год и по воеводствам, а даты матчей и концертов лежат у площадок. Пригодными их делает не источник, а форма: каждый из них обязан стать колонкой в твоей истории — одна строка на день, один флаг на фактор, — прежде чем станет множителем. Фактор, который никогда не записывали на прошедших днях, нельзя на них измерить, а множитель, который нельзя измерить, — это догадка с десятичной запятой.
Проверка погоды по показаниям станций IMGW вместо веры в неё
Погода — фактор, в котором все уверены больше всего и который проверили меньше всего. И это же тот фактор, на проверку которого Польша даёт бесплатные официальные данные: институт IMGW-PIB публикует текущие синоптические показания и файлы исторических наблюдений на danepubliczne.imgw.pl, станция за станцией, а его живой синоптический канал отдаёт температуру, ветер, влажность и осадки по станции и по часу.
Сама проверка — обычная арифметика. Берёшь длинный ряд собственных дней, подклеиваешь к каждому показания ближайшей станции, раскладываешь дни по нескольким погодным корзинам — скажем, дождь против отсутствия дождя или три температурных полосы — и сравниваешь среднее число гостей по корзинам.
Два условия, без которых погодная проверка не меряет ничего
Первое: сравнивай подобное с подобным внутри дня недели. Тёплые дни собираются летом, холодные зимой, поэтому наивное сравнение тёплых с холодными — это в основном сравнение августа с февралём: ты измеришь сезон, припишешь его термометру, а потом посчитаешь его второй раз, когда сверху наложишь сезонный коэффициент. Сравнивай пятницы с пятницами.
Второе: держи веранду вне расчёта, пока не решишь, что она такое. У заведения с летней верандой две разные реакции на погоду — веранда работает или нет, — и усреднение их даёт одно число, не описывающее ни одну.
Если корзины выйдут практически вровень, это тоже результат, а не провал. Значит, погода для твоего заведения фактором не является, твой множитель погоды равен 1,00, и ты только что убрал источник шума из каждого прогноза, который построишь.
События по соседству: фактор без официального набора данных
Местные события — фактор с самым крупным однодневным эффектом и самым скверным снабжением данными. Национального реестра концертов, матчей и конференций, на который можно подписаться и подклеить к истории продаж, не существует; есть то, что рассыпано по календарям площадок, билетным сервисам, городским уведомлениям о массовых мероприятиях и местной прессе.
Остаются две честные дороги и никакой третьей. Либо кто-то на твоей стороне ведёт календарь — арена, два театра, конференц-центр, стадион и еженедельный рынок на твоей же улице — и отмечает каждую дату в том же файле, где лежат продажи, либо ты покупаешь это сведение как услугу. Ровно эту работу в нашем продукте делают внешние сигналы, а сценарии what-if — это место, куда ты ставишь такую дату и спрашиваешь, как выглядит вечер, если множитель удержится.
Так или иначе требование то же, что и к любому другому фактору: прошлые случаи обязаны быть записаны, прежде чем множитель можно измерить. Первый крупный матч рядом с заведением — не прогноз, а точка данных. Четвёртый — множитель.
Брони заслуживают здесь отдельного предупреждения, потому что выглядят самым чистым сигналом спроса в здании, а не являются им. Книга, полная столов, которые не пришли, завышает завтра — и завышает незаметно, пока неявки не записываются как неявки. Цепочку подтверждений, которая делает это число надёжным, разбирает наша статья про no-show в ресторане.
Прогноз отдельной позиции меню, где нули нормальны, а MAPE перестаёт работать
Прогнозировать блюдо труднее, чем зал, и трудность здесь структурная, а не техническая. Дорога через неё идёт через долю в чеке: сначала прогнозируешь гостей, потом умножаешь на долю гостей, которые исторически заказывали эту позицию.
На этом уровне ломается измерение, а не метод.
Именно поэтому точность на уровне позиции отслеживают через WAPE или через обычную абсолютную ошибку в порциях, а не через MAPE.
Здесь же сидят ещё две ловушки. Блюдо, снятое из меню на три недели, имело не нулевой спрос, а отсутствие возможности, и эти дни надо исключить, а не выучить. А акция, которая шла одиннадцать дней, — такой же фактор, как любой другой: записанная, она становится множителем; незаписанная, она становится шумом, который модель ровно размажет по всем будущим вторникам.
MAPE, WAPE и смещение на одних и тех же пяти днях: три числа, три смысла
Прогноз без меры ошибки — это просто число, которому ты либо веришь, либо нет. Стандартных измерений три, и отвечают они на разное, поэтому вот они на одном маленьком наборе дней.
| День | Прогноз | Факт | Абсолютная ошибка | Ошибка ÷ факт |
|---|---|---|---|---|
| 1 | 120 | 132 | 12 | 0,0909 |
| 2 | 150 | 141 | 9 | 0,0638 |
| 3 | 96 | 88 | 8 | 0,0909 |
| 4 | 210 | 224 | 14 | 0,0625 |
| 5 | 175 | 160 | 15 | 0,0938 |
MAPE = (100 ÷ n) × Σ ( |Фактᵢ − Прогнозᵢ| ÷ Фактᵢ )
n— число сравниваемых периодов;Фактᵢ— то, что на самом деле произошло в периоде i, в гостях или в злотых;Прогнозᵢ— то, что на тот же период предсказывали, в той же единице.
WAPE = 100 × Σ |Фактᵢ − Прогнозᵢ| ÷ Σ Фактᵢ
Две законные метрики, один набор данных, два разных числа — и в этом вся причина, по которой ярлык рядом с числом имеет значение.
Смещение = (1 ÷ n) × Σ (Прогнозᵢ − Фактᵢ)
Ошибки со знаком: −12, +9, +8, −14 и +15, в сумме +6; делённое на 5 даёт смещение = +1,2 гостя в день. Прочитай эту пару вместе, и она скажет то, чего ни одно число не говорит поодиночке: прогноз промахивается примерно на восемь процентов в типичный день, но не кренится. Ошибки, которые взаимно гасятся, — это случайная ошибка, и управляют ею диапазоном. Смещение +12 при том же MAPE было бы совсем другой болезнью: хроническим завышением, с графиком и холодильником, переполненными каждый день недели.
Почему деление обязано стоять внутри суммы
MAPE — это среднее отношений, а среднее отношений не равно отношению средних.
Все три печатаются с двумя знаками после запятой и все три выглядят одинаково солидно. Назвать одно из них именем другого — это способ, которым двое, сравнивающих «наш MAPE», сравнивают ничто.
Два свойства MAPE стоит носить с собой. Он не определён везде, где факт доходит до нуля, — потому раздел про позиции меню и отправляет к WAPE. И он несимметричен: раз факт стоит в знаменателе, переоценка наказывается сильнее недооценки той же абсолютной величины. Прогноз, слепо оптимизируемый под MAPE, дрейфует в сторону занижения, то есть ровно в ту сторону, которая опустошает кухню в субботу.
MAPE (средняя абсолютная процентная ошибка) — среднее из абсолютных ошибок прогноза, каждая из которых выражена в процентах от фактической величины своего периода.
Смещение — устойчивая склонность прогнозировать выше или ниже факта. Это другая болезнь, чем случайная ошибка, и лечится она иначе.
Сколько точности нужно графику смены и сколько — вторничной поставке рыбы
Эта страница не называет достаточного MAPE. Не потому, что вопрос неинтересен, а потому, что достаточную ошибку задаёт стоимость твоей собственной ошибки, а она различается между задачами внутри одного ресторана в один день. Общая причина, по которой ни одна наша страница не наследует ходящую по отрасли норму, изложена на странице про prime cost ресторана; частная причина здесь ещё проще — ошибка, безобидная для мешка риса, выбросит ящик палтуса.
| Задача | Нужный горизонт | Нужная детализация | Чего стоит ошибка |
|---|---|---|---|
| График смены | Дни вперёд, до публикации графика | Часть дня или час | Оплаченные часы без гостей либо очередь и ушедший клиент |
| Заказ скоропорта | Срок поставки поставщика | Порции конкретной позиции | Списание либо блюдо, вычеркнутое посреди сервиса |
| Заказ бакалеи | Срок поставки плюс цикл заказов | Недельный объём | Деньги, замороженные на полке, редко что-то хуже |
| Закупка на банкет | Дата мероприятия | Утверждённое меню, на человека | Обе ветви сразу и в одном счёте |
Горизонт прогноза — насколько далеко вперёд достаёт прогноз. Графику нужны дни; заказу поставщику нужен минимум срок поставки, иначе число приходит после решения, которое оно должно было питать.
Читай эту таблицу как порядок приоритетов, а не как систему баллов. Прогноз, который обязан быть хорошим, — тот, что кормит решение с самой дорогой ошибкой, а для большинства кухонь это заказ скоропорта, а не заголовочная сумма дня.
От прогноза к часам и от часов к тому, что не страшно закрепить
Прогноз, который не меняет график, не изменил ничего. Мостом служит одно деление:
Часы графика = Прогноз выручки ÷ Целевая выручка на час работы
Каждая строка ниже — слагаемое строки выше
Прогноз выручки— прогнозное число гостей × собственный средний чек, в злотых;Целевая выручка на час работы— собственная цель по выручке на человеко-час, в злотых в час;Часы графика— человеко-часы, которые смене позволено выдать, в часах.
При прогнозе 154 гостя, посчитанном выше, и учебном среднем чеке 60 злотых прогноз выручки составляет 9 240 злотых; против учебной цели 220 злотых на человеко-час это 42 человеко-часа на смену. Откуда берётся сама цель и почему её надо строить на собственных прошлых сменах, а не занимать, — целиком тема страницы про выручку на час работы персонала. Эта страница поставляет числитель; та владеет знаменателем.
Обычно пропускают то, что делает с этим делением диапазон ошибки. Прогони тот же расчёт на нижнем и на верхнем конце диапазона — и получишь две величины часов, а не одну. Осторожный график закрепляет нижнюю, а разницу держит в пределах досягаемости: короткая смена по звонку, разрыв, договорённость с тем, кто живёт рядом.
От прогноза к количеству в заказе, через срок поставки поставщика
Второй выход из той же кривой ведёт к поставщику, и у него есть лишнее измерение: заказ обязан покрыть период до момента, когда сможет приехать следующая поставка, а не период до завтра.
Количество к заказу = Прогнозный расход за срок поставки + Страховой запас − Текущий остаток
Прогнозный расход за срок поставки— прогнозные порции в день × срок поставки в днях, в порциях;Страховой запас— подушка, которую держат под ошибку прогноза и под сдвиг поставки, в порциях;Текущий остаток— то, что физически лежит на полке прямо сейчас, пересчитанное, а не предположенное.
Продолжая тот же пример: 46 порций в день на трёхдневном сроке поставки — это 138 порций; прибавь учебный страховой запас 40 и вычти 55 порций, пересчитанных в морозильнике, и заказ выходит 123 порции. Заметь, куда входит ошибка прогноза: она не меняет 138, она задаёт размер этих 40. Как ставятся страховой запас и par-уровни и какая оборачиваемость из них следует, принадлежит странице про оборачиваемость запасов ресторана.
Шаг, который пропускают, — последний. Заказ, сделанный без пересчёта текущего остатка, — это прогноз, сложенный с предположением, а предположение ошибается чаще прогноза.
Стоимость промаха, посчитанная один раз, а не два
Рано или поздно кто-нибудь спрашивает, сколько эти промахи стоят, и это тот расчёт, который чаще всего завышают — в том числе те, кто прогнозирование продаёт.
Стоимость ошибки прогноза, когда Прогноз > Факт: (Прогноз − Факт) × Затраты на персонал на гостя
Стоимость ошибки прогноза, когда Факт > Прогноз: Необслуженные гости × Маржинальная прибыль на гостя
Затраты на персонал на гостя— собственные полные затраты на персонал, делённые на число гостей, в злотых на гостя;Маржинальная прибыль на гостя— средний чек минус переменные затраты на его обслуживание, в злотых на гостя;Необслуженные гости— те, кого действительно не удалось посадить или накормить, а это не автоматически весь недобор.
Переоценка на 24 гостя при учебных затратах на персонал 12 злотых на гостя: 24 × 12 = 288 злотых оплаченных часов, которые никого не обслужили. Недооценка на 24 гостя, из которых 10 ты развернул, при учебной маржинальной прибыли 34 злотых: 10 × 34 = 340 злотых маржи, которой не случилось.
Две ветви не могут относиться к одному дню
День бывает либо переоценён, либо недооценён. Никогда и то и другое сразу, поэтому два результата никогда не складываются. Соблазн сложить силён именно потому, что удваивает число, а удвоенное число делает прогнозирование вдвое ценнее, чем оно есть, — и поэтому эта страница проговаривает правило вслух, вместо того чтобы тихо на нём наживаться.
Та же дисциплина действует внутри каждой ветви. Выброшенная еда и незаработанная выручка — обычно одно событие, описанное дважды, а не два убытка; если ты считаешь маржу, потерянную на госте, которого не удалось обслужить, то не приплюсовывай к ней ещё и продукты, купленные под него. Посчитай потерю один раз, на той стороне, где она действительно приземлилась, и полученное число будет меньше и защитимо.
Разбор дня, который промахнулся, и то, что можно впускать в модель
Прогноз, сильно промахнувшийся, — не повод бросать прогнозирование. Это единственный день месяца, несущий новую информацию, и дисциплина в том, чтобы описать его в постоянной форме, а не спорить о нём.
| День | Прогноз | Факт | Ошибка % | Объяснимая причина | Что меняется в модели |
|---|---|---|---|---|---|
Заполняй по строке на промах, а правила для последнего столбца коротки. Причина объяснённая и разовая — лопнувшая труба, улица, перекрытая на день — заслуживает флага на этой строке, чтобы модель её исключила, и ничего сверх того. Причина, появившаяся уже третий или четвёртый раз, заслуживает собственного множителя, измеренного на этих случаях. Промах вовсе без объяснения не заслуживает ни того, ни другого: он уходит в кучу, которую показатель ошибки и так считает, а если эта куча растёт, проблема в базе, а не в факторах.
Чего происходить не должно, так это нового множителя на каждый плохой день. Модель, получающая очередной коэффициент всякий раз, когда её пристыдили, кончает идеальной подгонкой под собственное прошлое и нулевым предсказанием, и симптом заметить легко: ошибка на днях, которые ты уже знаешь, падает, а ошибка на днях следующей недели стоит на месте. Держать это сравнение на виду с первого дня — и есть смысл того, чтобы прогноз и факт стояли на одном экране. Живёт эта пара в модуле прогноза: сверка прогноза с тем, что произошло на самом деле, входит в его состав с первого дня, а не докладывается позже. Панели показателей и отчёты с ИИ делают другое, и границу стоит держать: панель собирает ключевые показатели фирмы — лиды, продажи, маркетинг и финансы — на одном экране, а отчёт с ИИ присылает еженедельную сводку по лидам, кампаниям или продажам, написанную простым языком. Ни один из них прогноза не считает и рядом с фактом его не ставит, так что искать там пару «прогноз и факт» — зря потраченный вечер.
Чего прогноз не может в принципе и где на самом деле сидит машинное обучение
Две честные границы, а затем часть про наш собственный продукт.
Статистическая модель предполагает, что будущее похоже на прошлое. Везде, где это предположение падает, прогноз падает вместе с ним, и никакое количество метода его не спасает: заведение, не прожившее ещё одного полного сезонного цикла, дело на разовых банкетах без недельного ритма, ресторан посреди смены адреса, меню или часов работы и — самый частый случай из всех — прогноз, из которого никто не делает ни заказа, ни графика. Последний случай не является задачей моделирования и единственный в этом списке не чинится на стороне поставщика.
Теперь различение, которое отрасль замазывает, а мы предпочитаем провести. Умножение базы на набор множителей — это арифметика; ты только что прочитал её здесь целиком, выполненную вручную. Измерение этих множителей по собственной истории — дневного, погодных корзин, доли в чеке — это статистика. Машинное обучение в собственном смысле начинается там, где веса подбираются автоматически, пересчитываются с приходом новых дней и выбираются по тому, насколько хорошо предсказывают дни, которых модель не видела. Это настоящая разница в методе, и стоит понимать, что именно покупаешь.
В нашем модуле прогноза прогноз считается из собственной истории продаж вместе с сезонностью и внешними сигналами, показывается числом с диапазоном, а не одним обещанием, а сверка прогноза с фактом входит в объём с самого начала, а не добавляется потом. Это и есть описанный выше статистический слой, работающий на твоих данных. Там, где в продукте работает языковая модель, она описывает и объясняет числа, которые эта арифметика уже посчитала, — само число она не производит; о том же разделении труда говорит наша статья о том, на какие показатели владелец смотрит на самом деле. Решение, что с числом делать, остаётся за тобой: прогноз сужает угадывание, он не снимает решение и не отменяет необходимости иметь план на случай собственной ошибки.
Одно измеренное замечание о том, куда завышение приземляется физически. Рестораны и предприятия общественного питания в Польше произвели в 2023 году 293 062 тонны пищевых отходов, 8 килограммов на жителя, при 4 651 137 тоннах по стране в целом (Eurostat, env_wasfw, отчётный год 2023, обновлено 18.02.2026). Это число охватывает всё, что сектор выбрасывает, — обрезь, остатки с тарелок, порчу, — и никто не выделил из него долю, вызванную плохим прогнозированием, поэтому экономией, которую кто-то может пообещать, оно не является. Это размер ведра, в которое стекает перепроизводство, и только.
Вопросы, которые рестораторы задают про прогноз спроса
Какие данные нужны ресторану, чтобы прогнозировать спрос?
Минимум — история продаж на уровне дня или мельче, потому что месячную сумму обратно на дни недели не разложить, плюс отметка на днях, которые были исключительными по известной причине: закрытие, ремонт. Всё дальше — это факторы, записанные колонками рядом с продажами: установленные законом нерабочие дни, каникулы, показания погоды, местные события. Фактор, который никогда не записывали на прошедших днях, нельзя на них измерить, поэтому запись обязана начаться раньше, чем прогнозирование.
Какая точность достаточна для графика смены, а какая для заказа поставщику?
Опубликованного числа, которое на это отвечает, нет, а за любым единственным процентом, выдаваемым за отраслевой ответ, не стоит ни одного прослеживаемого источника. Достаточная ошибка — та, чью стоимость ты в состоянии вынести, а стоимость различается по задачам: перезаказанный рис — это деньги на полке, перезаказанная свежая рыба — это ведро. Считай по каждому решению: возьми свою типичную ошибку, оцени её двумя ветвями, приведёнными на этой странице, и сравни с тем, что пришлось бы потратить, чтобы уменьшить её вдвое.
Что такое MAPE и зачем его используют?
MAPE — это средняя абсолютная процентная ошибка: для каждого периода берётся абсолютный разрыв между прогнозом и фактом, делится на факт этого периода, и эти отношения усредняются. Его используют, потому что он безразмерный: день на 90 гостей и день на 400 вносят сопоставимый вклад, и результат путешествует между заведениями и периодами. Цена — два известных изъяна: он не определён при факте, равном нулю, и наказывает переоценку сильнее, чем недооценку той же величины.
Как проверить на своей истории, влияет ли погода на мой спрос?
Подклей к каждому прошедшему дню показания ближайшей станции IMGW, которые публикуются бесплатно на danepubliczne.imgw.pl, затем разложи дни по нескольким корзинам — дождь против отсутствия дождя или две-три температурные полосы — и сравни среднее число гостей по корзинам внутри одного и того же дня недели. Ограничение по дню недели и делает проверку действительной: тёплые дни собираются летом, поэтому сравнение тёплых с холодными по всему году меряет сезон и винит термометр. Если корзины выйдут вровень, погода у тебя фактором не является, а множитель погоды равен 1,00.
Насколько далеко вперёд ресторану стоит прогнозировать?
Настолько заранее, насколько того требует решение, которое прогноз должен изменить: горизонт задаёт решение, а не модель. Графику прогноз нужен до публикации графика; заказу поставщику — минимум за один срок поставки, потому что число, пришедшее после размещения заказа, это отчёт, а не прогноз. Прогнозировать дальше, чем требует любое из твоих решений, значит добавить неопределённости и не купить ничего.
Может ли ресторан прогнозировать отдельные позиции меню?
Да, и обычная дорога — доля в чеке: прогнозируешь гостей на период, потом умножаешь на долю гостей, которые исторически брали это блюдо. На уровне позиции меняются две вещи: появляются настоящие нули, поэтому меры ошибки, построенные на процентах, перестают работать и ты переходишь на WAPE или на абсолютную ошибку в порциях, и дни, когда блюдо было снято из меню, надо исключить, а не выучить как нулевой спрос.
Как из прогноза получается график смены?
Через одно деление: прогноз выручки, делённый на собственную цель по выручке на человеко-час, даёт часы, которые смене позволено выдать. Прогноз выручки — это прогнозные гости, умноженные на средний чек. Поскольку прогноз несёт диапазон, проведи деление дважды, по нижнему и верхнему концу, и закрепи меньшую величину часов, держа разницу в пределах телефонного звонка. Закрепление середины диапазона как достоверности как раз и производит расписание, которое на одной неделе и переукомплектовано, и недоукомплектовано.
Что делать, когда прогноз сильно ошибся?
Опиши этот день прежде, чем начнёшь о нём спорить: прогноз, факт, процентная ошибка, причина, если она правдоподобна, и что меняется в модели. Разовая объяснённая причина заслуживает флага, чтобы день был исключён, и ничего сверх. Причина, повторившаяся уже несколько раз, заслуживает собственного множителя, измеренного на этих случаях. Промах без объяснения не заслуживает ни того, ни другого и просто остаётся в показателе ошибки — а если необъяснённые промахи накапливаются, перестройки требует база, а не список факторов.
Хочешь понять, насколько предсказуем спрос именно в твоём заведении? Начинай с собственной истории, а не с отраслевой кривой: справочник по ресторанам собирает соседние расчёты, автоматизация ресторана рассказывает, откуда эти данные вообще берутся, один экран на несколько заведений — что меняется, когда зал не один, а движок решений — то место, где прогноз, данные и сигналы сходятся в одну конкретную рекомендацию, записанную в журнал решений вместе с причиной. График смены он за тебя не пишет: часы даёт деление с этой страницы, а решение остаётся твоим. А если хочется начать с разговора о собственных числах, вход в короткий разбор бизнеса открыт.