Выручка блюда отвечает на вопрос «сколько продали». Для решения по меню нужна другая цифра: сколько одна продажа оставляет после продуктовой себестоимости, потерь, упаковки, скидки и переменного труда. Популярная позиция может давать большой оборот и слабый вклад, а менее заметная — приносить больше денег за минуту узкой станции.
Если читать 30 секунд
- Считайте одну версию блюда в одном канале: зал, доставка и самовывоз имеют разные расходы.
- Начните с вклада на проданную порцию в рублях, затем добавьте продажи и получите суммарный вклад.
- Используйте фактический выход закупленного продукта, списания и порчу; идеальная техкарта не показывает все потери.
- Отдельно измерьте минуты узкой станции: блюдо с высоким вкладом может блокировать более выгодные заказы в пик.
- Не удаляйте позицию по одной неделе. Проверьте сезон, роль в категории и одну управляемую гипотезу.
Четыре уровня, которые нельзя смешивать
В разговоре о «прибыли блюда» часто объединяют разные показатели.
- Выручка — цена продажи, умноженная на количество продаж.
- Продуктовая себестоимость — стоимость продуктов в проданной порции.
- Вклад — выручка минус переменные расходы конкретной продажи.
- Операционная прибыль ресторана — вклад всего меню минус постоянные и условно-постоянные расходы.
Отдельное блюдо не «оплачивает 2,7% аренды» само по себе без правила распределения. Для ежедневного меню-инжиниринга полезнее вклад: его можно сравнить между версиями и каналами без ложной точности.
CM_item = P_gross − C_food − C_loss − C_pack − C_discount − C_variable_labor − C_error
Где:
CM_item — вклад одной проданной порции, ₽/порция;
P_gross — сумма по цене меню до скидки, оплачиваемой рестораном, ₽/порция;
C_food — продукты по техкарте и актуальным закупочным ценам, ₽/порция;
C_loss — порча, обрезь сверх норматива и списания, распределённые на продажи, ₽/порция;
C_pack — расходники конкретного канала, ₽/порция;
C_discount — скидка, оплаченная рестораном, ₽/порция;
C_variable_labor — только действительно переменный труд, ₽/порция;
C_error — компенсации и переделки, ₽/порция.
Не вычитайте один расход дважды. Если стоимость нормативной обрези уже заложена в выход продукта в техкарте, не добавляйте её повторно в C_loss. Если оклад смены не меняется от продажи одной порции, не называйте его переменным трудом; используйте минуты станции как показатель мощности.
Если кассовая выгрузка уже содержит чистую выручку после скидки ресторана, используйте её вместо P_gross и не вычитайте C_discount повторно.
Шаг 1. Зафиксируйте продаваемую версию
Название блюда недостаточно. Запишите:
- канал продажи;
- массу порции и состав;
- гарнир, соусы и обязательные расходники;
- действующую цену;
- период расчёта;
- версию техкарты;
- поставщика и цену закупки;
- промо, в котором участвовала позиция.
Это важно и для гостя. В меню общественного питания должны быть указаны цена и сведения о массе или объёме порции; Роспотребнадзор напоминает об этом в актуальном разъяснении от января 2026 года (информация для потребителей в меню). Управленческий расчёт должен соответствовать той порции, которую ресторан реально обещает и отдаёт.
Шаг 2. Пересчитайте продукты через выход
Для каждого ингредиента:
C_i = q_net_i / Y_i × p_gross_i
Где q_net_i — чистая масса в порции, кг; Y_i — доля выхода после обработки, от 0 до 1; p_gross_i — закупочная цена, ₽/кг; C_i — стоимость ингредиента, ₽/порция.
Если в порцию идёт 0,12 кг очищенного продукта, фактический выход равен 0,8, а закупочная цена — 240 ₽/кг, то условный расчёт такой:
C_i = 0,12 / 0,8 × 240 = 36 ₽/порция
Это пример, не норматив выхода. Собственный Y_i измерьте контрольной проработкой: масса партии до обработки и масса пригодного продукта после неё. Для полуфабриката используйте его фактическую цену и выход по вашей технологии.
Сумма ингредиентов:
C_food = Σ C_i
Food_cost_rate_gross = C_food / P_gross × 100%
Процент фудкоста удобен для сравнения, но решение принимает вклад в рублях. Блюдо за 900 ₽ с себестоимостью 45% оставляет до прочих переменных расходов 495 ₽; блюдо за 300 ₽ с себестоимостью 25% — 225 ₽. Высокий процент не всегда означает слабый денежный вклад.
Шаг 3. Приземлите потери на проданные порции
Редкий ингредиент может красиво выглядеть в техкарте, но регулярно портиться. Посчитайте стоимость потерь группы за период:
C_loss = V_loss / N_sold
Здесь V_loss — стоимость списаний и ненормативных потерь, ₽ за период; N_sold — число проданных порций, шт.; результат — ₽/проданную порцию.
Если один продукт используется в нескольких блюдах, распределите потери по понятному правилу — например, по фактическому расходу в килограммах. Зафиксируйте правило и не меняйте его каждый месяц под желаемый результат.
Полезная проверка: сравните теоретический расход из продаж с фактическим движением склада.
Variance = C_actual_usage − C_theoretical_usage
Обе величины — ₽ за одинаковый период. Отклонение не доказывает кражу или ошибку техкарты; это сигнал проверить выход, порционирование, пересорт, бесплатные добавки и ввод данных.
Шаг 4. Добавьте канал, скидку и цену ошибки
Одна и та же паста в зале и доставке — две юнит-экономики. В доставке появляются контейнер, пакет, пломба, услуги канала и иной риск компенсации. Полный P&L канала лучше считать отдельно — по методике из статьи «Доставка съедает ресторан».
Для скидок используйте фактическую долю ресторана. Купон на 20% не обязательно означает 20% расхода ресторана: условия акции могут распределять скидку иначе. Источник — отчёт конкретного канала.
Цена ошибок:
C_error = (C_remake + C_refund + C_compensation) / N_sold
Единицы числителя — ₽ за период; знаменателя — проданные порции. Если переделанная порция затем продана, не потеряйте её выручку и не задублируйте расход. Причины недовложений и переделок стоит вести по отдельному журналу; практический процесс описан в материале о стоимости ошибок заказа.
Шаг 5. Измерьте узкую станцию
Рублёвый вклад не показывает, что блюдо делает с пиком. Запишите активное время станции от начала операций после заказа до освобождения ограничивающего оборудования или сотрудника.
CM_per_bottleneck_min = CM_item / T_bottleneck
Где T_bottleneck — активные минуты узкой станции на порцию; результат — ₽ вклада/минуту станции.
Условный пример:
| Блюдо |
Вклад, ₽/порция |
Узкая станция, мин/порция |
Вклад, ₽/мин |
| A |
360 |
12 |
30 |
| B |
250 |
5 |
50 |
Блюдо A оставляет больше рублей с продажи, но B эффективнее использует узкий гриль в этом примере. Это не повод автоматически убрать A: оно может быть якорем категории. Зато это повод изменить подготовку, оборудование, окно доступности или цену.
Шаг 6. Получите две итоговые цифры
Для периода:
Total_CM = CM_item × N_sold
Total_CM — ₽ за период. Теперь видно два измерения:
- вклад с одной продажи — качество юнит-экономики;
- суммарный вклад — роль позиции в результате меню.
Соберите матрицу:
| Вклад на порцию |
Продажи |
Интерпретация |
Следующий вопрос |
| высокий |
высокие |
рабочая лошадка |
выдерживает ли кухня качество? |
| высокий |
низкие |
скрытый потенциал |
видит ли гость карточку и ценность? |
| низкий |
высокие |
ловушка оборота |
можно ли исправить состав, цену, промо? |
| низкий |
низкие |
кандидат на выход |
нужна ли позиция ассортименту? |
Границы «высоко/низко» задавайте внутри сопоставимой категории и одного периода. Кофе, суп и праздничный сет нельзя честно сравнить одной медианой.
Шаг 7. Выберите одно действие и контроль
У блюда больше вариантов, чем «поднять цену» или «удалить»:
- скорректировать выход дорогого элемента;
- заменить компонент после слепой дегустации;
- уменьшить списания общим использованием заготовки;
- убрать скидку только с этой позиции;
- изменить гарнир или комплект упаковки;
- ограничить канал или время;
- улучшить карточку, если ценность не считывается;
- оставить осознанно как имиджевую позицию и зафиксировать бюджет.
Для сложного разговора используйте совместный протокол шефа и владельца. Если затрагивается вся архитектура меню, применяйте пересборку без ценового шока.
Меняйте одну переменную и сравнивайте полный сопоставимый цикл: будни с буднями, сезон с тем же сезоном. Контрольные показатели — CM_item, Total_CM, продажи, время станции, списания и жалобы.
Перед тестом сохраните исходную карточку расчёта и назначьте владельца цифры. Закупочные цены подтверждает ответственный за поставки, выход — шеф, продажи и скидки — выгрузка системы, компенсации — отчёт канала. Если источники относятся к разным датам, результат выглядит точным, но ничего не измеряет. После теста подпишите период, допущения и причину решения: оставить, повторить или откатить.
Пересчитывайте карточку после заметного изменения закупки, выхода, порции, цены, канала или промо, а не только по годовому расписанию.
Отмечайте качество исходных данных
Не все строки одинаково надёжны. Поставьте рядом с показателем простой статус:
- A — фактическая выгрузка или измерение за выбранный период;
- B — норматив техкарты, подтверждённый недавней проработкой;
- C — допущение, которое ещё нужно измерить.
Если итоговый вклад зависит от трёх строк C, не принимайте необратимое решение. Сначала измерьте самую чувствительную переменную. Проверка чувствительности проста:
CM_low = P_gross − C_variable_high
CM_high = P_gross − C_variable_low
Получается диапазон ₽/порция, а не ложная точка. Например, если потери оценены от 12 до 30 ₽, вклад тоже имеет диапазон шириной 18 ₽. В карточке решения укажите его и дату, когда замените оценку фактом.
Такой статус особенно важен для нового блюда: продажи ещё малы, а списание одной партии резко меняет среднее. Не сравнивайте нестабильную неделю запуска с устойчивым годовым хитом без оговорки.
Финальная карточка блюда: одна страница вместо спора о популярности
В карточке решения оставьте цену, фактическую себестоимость, потери, переменные расходы канала, вклад на порцию, суммарный вклад, минуты узкой станции и выбранное действие. Тогда хит перестаёт быть «неприкосновенным», а редкая позиция — «очевидно ненужной»: каждое решение связано с ролью и измеримой ценой.
В демо цифрового меню можно проверить только гостевую часть: категории, фото, описание, добавление блюда в корзину и оформление заказа. Себестоимость, складские потери и вклад позиции демо не рассчитывает.
Обсудить подключение цифрового меню после аудита ассортимента.