Полдня в неделю на прайсы и Excel: я сделал систему, которая забирает у бренд-шефа арифметику
Каждую неделю бренд-шеф получает прайсы от пяти–пятнадцати поставщиков, и у каждого свой формат. Дальше всё как обычно: свести в одну таблицу, пересчитать канистры в литры, найти, что подорожало, и прикинуть, как это ударило по меню. На это уходит полдня, хотя главная работа шефа — меню, качество и команда.
Я разработчик и делаю SmartRestaurant — систему, которая берёт эту арифметику на себя, а решения оставляет человеку. В статье расскажу, что в ней есть, как это устроено и чего она сознательно не делает.
С чего всё началось
Обычная история в ресторане: техкарты лежат в Excel, прайсы приходят в почту и мессенджеры, а фудкост считают раз в квартал, когда бухгалтерия уже показала итог. Пересчитать себестоимость после каждого нового прайса физически некогда: одна подорожавшая позиция тянет за собой десятки блюд.
Поэтому в большинстве кухонь фудкост — это исторический показатель. Он отвечает на вопрос «что было», а не «что происходит сейчас». Я хотел, чтобы было наоборот.
Себестоимость блюда должна быть известна на сегодня, а не на прошлый квартал. Причём без того, чтобы кто-то специально садился её пересчитывать.
Как устроена система: цепочка, а не набор экранов
Разделы связаны друг с другом, и порядок здесь важен:
- Номенклатура — единый справочник продуктов: одна позиция — одна строка.
- Поставщики и прайс-листы — цены, приведённые к этому справочнику.
- Меню и техкарты — состав блюд, который считается по этим ценам.
- Продажи — отчёт из кассы по блюдам.
- Фудкост, ABC-анализ и задачи — выводы и решения по ним.
Каждое звено питается предыдущим. Загрузили новый прайс — пересчиталась себестоимость всех блюд, где встречается позиция. Пришли продажи — обновился фудкост и ABC-анализ. Руками эти цифры никто не вводит, поэтому они и не устаревают.
Прайс загружается таким, каким его прислали
Это была первая и главная задача. Попросить пятнадцать поставщиков присылать прайс по шаблону нереально: у крупного своя выгрузка из 1С, у мелкого — файл, который он ведёт с 2019 года.
Поэтому система читает Excel и CSV как есть. Шапку с реквизитами, строки «ИТОГО», объединённые ячейки и кодировку cp1251 она разбирает сама. Колонки с названием, ценой и фасовкой вы показываете один раз, и система запоминает настройку за поставщиком. Со второй недели прайс загружается в один клик.
Названия тоже сходятся сами. «Ф/куриное охл. в/с» и «Филе куриное» становятся одной позицией справочника. Автоматически система ставит только уверенные совпадения, а спорные отдаёт человеку. Каждое подтверждение сохраняется как правило, так что к третьей неделе вопросы остаются только по действительно новым позициям.
Себестоимость считается сама
Техкарта задаёт закладку нетто, справочник — процент потерь при обработке, прайс — цену. Из этих трёх источников собирается калькуляция, и она всегда актуальна.
- Потери при обработке учитываются в расчёте. Из килограмма салата романо в тарелку попадает 780 граммов, а платите вы за килограмм.
- Отход зависит от сезона. У картофеля осенью и весной он разный, и система берёт процент на дату расчёта.
- Полуфабрикаты раскрываются автоматически. Соус, бульон и тесто заводятся отдельными техкартами и входят в блюда как ингредиент. Подорожали сливки — выросла себестоимость всех блюд с этим соусом.
- У каждой правки техкарты есть версия: кто, когда, что изменил и почему. Через полгода видно, почему выход стал 250 граммов вместо 280.
На карточке блюда система не только показывает фудкост, но и называет цену, которая попадает в целевой процент. Рядом показана наценка, потому что её путают с фудкостом постоянно.
Сравнение поставщиков без калькулятора
Все цены приводятся к единице учёта. Канистра масла 5 литров за 650 ₽ превращается в 130 ₽ за литр и встаёт в один столбец с поставщиком, который возит литровыми бутылками. Если в прайсе две колонки с ценой, система берёт цену с НДС.
Прошлые прайсы не перезаписываются, поэтому видно, что и когда подорожало. Отчёт об изменениях показывает не все 800 строк, а только изменения выше порога по ключевым позициям, и рядом — в какие блюда входит позиция.
Отдельно система следит за зависимостью от одного поставщика. Ключевая позиция, которую возит только один, — это риск, и лучше узнать о нём заранее, а не в день, когда поставщик перестал отвечать.
ABC-анализ, который заканчивается задачей
Продажи загружаются отчётом из кассы. Система сама узнаёт выгрузки iiko, r_keeper, Poster, Quick Resto, Tillypad и 1С: Общепит, а с iiko можно настроить автоматическую загрузку по расписанию.
Блюда раскладываются по трём меркам: сколько порций продали, сколько выручки принесли и сколько заработали. Важны не сами буквы, а то, где они расходятся. Например, «берут охотно, а денег не приносит» — повод пересмотреть цену или состав, а не снимать блюдо с меню.
Из любой строки отчёта можно поставить задачу. В неё попадает основание: то, что система показывала в момент решения. Через месяц по нему понятно, почему решение было таким.
Сеть и команда
- Справочники общие, факты — по точкам. Бренд-шеф правит «Цезаря» один раз, а не в пяти таблицах. Продажи, списания и аудиты остаются раздельными, и точки можно сравнивать между собой.
- Роли решают, кто что видит. Закупочные цены видят владелец, управляющий, кухня и закупщик. Кладовщик работает со справочником, но цен не видит. Наблюдателю, например инвестору, доступны цифры без права что-то менять.
- Проблемы на точках: повар сообщает о поломке из своей смены, управляющий сразу видит её в списке. Закрыть проблему без ответа «что сделали» нельзя.
- Списания и возвраты — по причинам. Порча, брак и перепроизводство лечатся разными способами, поэтому общая сумма мало что говорит.
- Экран «Сегодня» открывается первым и собирает всё на текущий день: что просрочено, что поручено вам, что вышло за цель.
Чего система не делает
Это важно сказать честно.
- Она не выбирает поставщика за вас. Самая низкая цена регулярно оказывается невыгодной: минимальный заказ вдвое больше недельной потребности, нет отсрочки, плавает качество. Условия и оценки поставщика лежат рядом с ценой, но решение остаётся за человеком.
- Это не складская программа. Остатки и движение товара она не ведёт. Это середина между Excel, который не пересчитывает себестоимость, и «большим учётом», который сначала нужно месяцами внедрять.
Как попробовать
Начинать с заполнения всего справочника не нужно. Первый прайс сразу даёт сравнение цен, первая техкарта — себестоимость, остальное добавляется по ходу.
Если хочется сначала просто прикинуть цифры, на сайте есть бесплатные калькуляторы себестоимости, фудкоста и брутто-нетто. Они работают без регистрации и ничего не сохраняют. Подробнее о системе и запрос доступа — на сайте SmartRestaurant.
Буду рад вопросам в комментариях, особенно от шефов и владельцев: что у вас занимает больше всего времени в работе с прайсами и техкартами? Может чего-то жизненно не хватает, расскажите!