Кофейня: себестоимость чашки и склад — почему бэкофис лучше держать у себя
Себестоимость чашки капучино — это не абстрактная цифра для отчёта, а прямой ответ на вопрос «сколько мы зарабатываем на самом деле». В неё завязаны закупочные цены на зерно и молоко, рецептура, списания и потери на складе — вся коммерческая логика заведения. Когда этот расчёт живёт в чужом облачном сервисе учёта, владелец кофейни отдаёт стороннему провайдеру данные, по которым можно восстановить всю экономику точки. Разберём, из чего складывается себестоимость чашки, где на складе теряются деньги, и почему для такого учёта разумнее держать небольшой сервер под собственным контролем.
Содержание
- Из чего реально складывается себестоимость чашки
- Склад: где реально теряются деньги
- Почему это чувствительные данные, а не просто «таблица циферек»
- Что значит держать бэкофис у себя технически
- От кассы до отчёта о марже: как это работает на практике
- Экономика: своя система против подписки на облачный учёт
Из чего реально складывается себестоимость чашки
Себестоимость капучино — это не цена зерна на упаковке, делённая на количество чашек. Это сумма нескольких компонентов, каждый из которых меняется независимо от других:
- Зерно. Расход зависит от дозировки в рецепте (эспрессо-порция обычно 18–20 г на дабл-шот) и от помола — неправильно откалиброванный помол увеличивает пролив и расход зерна на калибровку в начале смены.
- Молоко. Для капучино и латте это часто более весомая статья, чем зерно, особенно с альтернативным молоком (овсяное, миндальное) — своя закупочная цена и свой объём на порцию.
- Сироп и топпинги. Дозировка задана помпой, но помпа изнашивается, дозатор течёт, бариста «на глаз» добавляет чуть больше — расхождение между рецептурной и фактической себестоимостью растёт незаметно.
- Стакан, крышка, трубочка. Расходники на вынос часто считают одной строкой «упаковка», хотя цена стакана 300 мл и 400 мл отличается, а крышка под холодные и горячие напитки — разные позиции с разной закупкой.
- Амортизация оборудования. Кофемашина, кофемолка, их сервис и ремонт размазываются по всем чашкам за период — это часть себестоимости каждой порции, а не разовый расход.
- Доля ФОТ бариста на чашку. При расчёте полной себестоимости время приготовления одной порции тоже стоит денег.
Управленческая себестоимость чашки — это первые пять пунктов (food cost), и именно её закладывают в ценообразование через целевой процент фудкоста. Если у заведения есть цель держать food cost капучино в районе условных 25–30% от цены продажи (ориентир — у каждой кофейни своя модель в зависимости от аренды и локации), отклонение фактического расхода зерна или молока от рецептурного сразу видно в марже — но только если есть система, которая считает это по факту, а не по теории.
Рецептурная себестоимость (что должно уйти по техкарте) и фактическая (что реально списалось со склада) — это две разные цифры. Разница между ними — это погрешность приготовления, потери или воровство. Чтобы её увидеть, нужен складской учёт, который считает списание по продажам, а не по инвентаризации раз в месяц.
Склад: где реально теряются деньги
Расхождение между теоретическим и фактическим расходом ингредиентов — это то место, где кофейня либо зарабатывает на марже, либо тихо её теряет. Несколько типичных источников потерь:
- Порча скоропорта. Молоко имеет короткий срок годности после вскрытия. Если склад не показывает остатки по датам и не подсказывает, что открытая упаковка вот-вот испортится, часть молока просто выливается — и это редко попадает в отчёт, если списание не фиксируется сразу.
- Недолив и перелив. Один и тот же рецепт у разных бариста в смену может отличаться на 20-30 мл молока просто потому, что нет объективного контроля, а есть привычка «на глаз». По отдельности копейки, за месяц — заметная сумма.
- Сироп сверх рецепта. Постоянные клиенты просят «побольше сиропа», бариста идёт навстречу — это лояльность к гостю за счёт маржи, и без учёта её никто не видит.
- Пересортица при приёмке. Поставщик привёз не совсем то, что в накладной (другая фасовка), а на складе завели по старой карточке — расчёт себестоимости после этого немного, но постоянно врёт.
- Хищения и «свои чашки». Бариста делает бесплатные напитки друзьям или себе без фиксации в системе. Без пооперационного списания по каждому чеку это невозможно поймать, кроме как по итогам месячной инвентаризации, когда деньги уже потеряны.
Правильный складской учёт для кофейни — это не Excel-таблица с остатками, обновляемая раз в неделю, а система, которая на каждую продажу списывает ингредиенты по техкарте автоматически: продали капучино — списались зерно, молоко и стакан нужного объёма в тех количествах, что заданы в рецепте. Тогда расхождение между теоретическим остатком и остатком после физической инвентаризации — это и есть измеримые потери, а не гадание.
Именно это делает складской учёт кофейни данными высокой коммерческой ценности: он показывает не просто «сколько молока купили», а сколько реально стоит каждая проданная чашка и где конкретно утекает маржа.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать серверПочему это чувствительные данные, а не просто «таблица циферек»
Себестоимость и складские остатки — это не бухгалтерская формальность, а прямое отражение бизнес-модели заведения. По этим данным можно восстановить:
- Реальную маржинальность каждой позиции меню — какие напитки прибыльные, а какие держатся только ради ассортимента.
- Условия с поставщиками — закупочные цены на зерно и молоко, часто предмет отдельных договорённостей и скидок за объём.
- Проблемные точки в операционке — где именно теряется маржа, что является прямой наводкой на слабые места контроля.
- Плановую загрузку и объёмы продаж — по темпам списания расходников легко посчитать оборот точки.
Когда весь этот расчёт ведётся в облачном сервисе стороннего провайдера, данные физически находятся на серверах, к которым у владельца кофейни нет прямого административного доступа:
- Провайдер и его сотрудники технически могут увидеть себестоимость, закупочные цены и маржу заведения.
- При смене тарифа или проблемах у провайдера доступ к собственным историческим данным может исчезнуть в неподходящий момент — например, перед подготовкой отчёта для инвестора.
- Если кофейня — часть сети или готовится к франчайзингу, утечка методики расчёта себестоимости конкуренту — это ощутимый удар по переговорной позиции, а не абстрактный риск.
- Экспорт данных из чужого облака часто ограничен форматом и функциональностью, которую предоставляет сам сервис.
Это не значит, что все облачные сервисы учёта работают недобросовестно — большинство из них устроены аккуратно. Но сама архитектура «ваши коммерчески чувствительные данные хранятся и обрабатываются на инфраструктуре третьей стороны» — это компромисс, о котором стоит знать, а не факт, который стоит игнорировать по умолчанию. Похожую логику разбирали и для бухгалтеров на аутсорсе, которые держат 1С клиентов на своём сервере именно из-за чувствительности финансовых данных.
Что значит держать бэкофис у себя технически
Альтернатива — не в том, чтобы вернуться к бумажным тетрадям, а в том, чтобы перенести тот же функционал (складской учёт, расчёт себестоимости, отчёты по марже) на сервер, который принадлежит и подконтролен владельцу кофейни, а не встроен в чужой SaaS. Это не требует дорогого железа или штата администраторов — бэкофис для одной точки или небольшой сети из 2-5 кофеен тянет один недорогой VPS:
- Веб-приложение учёта (готовое open-source решение под складской и производственный учёт, либо простое самописное с CRUD-интерфейсом под конкретные техкарты кофейни) в Docker-контейнере.
- База данных (PostgreSQL или MySQL) с историей движений по складу, техкартами и расчётами себестоимости.
- Веб-сервер (nginx) с доступом по HTTPS для управляющего и бухгалтера из любой точки, но без публичной индексации и с ограничением доступа по IP или VPN.
Минимальная конфигурация для одной точки — три сервиса в Docker Compose:
services:
db:
image: postgres:16
restart: unless-stopped
environment:
POSTGRES_DB: backoffice
POSTGRES_PASSWORD_FILE: /run/secrets/db_password
volumes:
- db_data:/var/lib/postgresql/data
secrets: [db_password]
backend:
build: ./backend
restart: unless-stopped
depends_on: [db]
env_file: .env
nginx:
image: nginx:stable
restart: unless-stopped
ports: ["443:443"]
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
- ./certs:/etc/letsencrypt
volumes: { db_data: }
secrets: { db_password: { file: ./secrets/db_password.txt } }
Подход тот же, что описан для учёта пациентов ветклиники или хранения истории шиномонтажа: небольшое веб-приложение, база данных и веб-сервер на одном недорогом сервере, без штата администраторов.
Ключевой момент — доступ к серверу ограничен: администрирование по SSH-ключу без пароля, веб-интерфейс закрыт за HTTPS с авторизацией или VPN для удалённого доступа сотрудников, кто работает не с кассового терминала в зале. Резервные копии базы данных — отдельная задача, которую нельзя пропускать:
# ежедневный дамп базы в 3:00 по крону
0 3 * * * docker exec -t db_container pg_dump -U backoffice backoffice | gzip > /backups/backoffice-$(date +\%F).sql.gz
Копии стоит хранить не только на самом сервере, но и синхронизировать в отдельное защищённое хранилище — если пропадёт диск сервера, история себестоимости не должна пропасть вместе с ним.
Ресурсов нужно немного: VPS с 1-2 vCPU, 2-4 ГБ RAM и SSD-диском от 20-40 ГБ спокойно тянет базу с несколькими годами истории движений по складу для одной-двух точек. Весь объём операций кофейни укладывается в десятки-сотни записей в день.
От кассы до отчёта о марже: как это работает на практике
Технически цепочка выглядит так: касса фиксирует продажу — учётная система списывает ингредиенты по техкарте — на конец дня видно расхождение между теоретическим и фактическим остатком.
- Касса пробивает чек. Данные о продаже уходят в бэкофис через API или выгрузку — либо в реальном времени вебхуком, либо пакетно раз в час или в конце смены, в зависимости от того, насколько кассовая система открыта для интеграции.
- Бэкофис списывает ингредиенты по техкарте. У каждого напитка заведена рецептура: капучино 300 мл — 18 г зерна, 200 мл молока, стакан, крышка. Продажа автоматически уменьшает остаток каждого компонента на складе.
- Приёмка товара фиксируется отдельно. Поставка зерна, молока, сиропов заводится по факту накладной — с датой, партией (для скоропорта это важно) и закупочной ценой, которая меняется от поставки к поставке.
- Себестоимость пересчитывается по факту закупочных цен. Если зерно подорожало в новой поставке, себестоимость чашки сдвигается сразу, а не выясняется через квартал при пересмотре меню.
- В конце периода — сверка теоретического и фактического остатка. Инвентаризация (раз в неделю по скоропорту, раз в месяц по сухим позициям) сравнивается с тем, что должно было остаться по расчёту системы. Расхождение — это погрешность рецептуры или потери, о которых говорилось выше.
- Отчёт по марже — не по выручке, а по каждой позиции. В отличие от отчёта «продали на X рублей», отчёт по марже показывает, какая позиция при текущих закупочных ценах даёт меньше маржи, чем другая — и это повод пересмотреть цену или рецепт, а не догадка.
Отдельно стоит продумать доступ: у бариста роль без доступа к закупочным ценам и себестоимости — он видит только остатки. Полный доступ к марже — только у владельца и, при необходимости, у управляющего. Такое разграничение прав на своём сервере настраивается ровно так, как нужно бизнесу, а не так, как предусмотрено тарифным планом стороннего сервиса.
Экономика: своя система против подписки на облачный учёт
Сравнение стоит делать не «дороже или дешевле в моменте», а в горизонте года-двух.
| Параметр | Облачный сервис учёта | Свой сервер (бэкофис) |
|---|---|---|
| Модель оплаты | Подписка помесячно, часто по числу точек/касс | Аренда VPS, фиксированная стоимость независимо от числа модулей |
| Данные о марже | На инфраструктуре провайдера | На своём сервере под своим контролем |
| Масштабирование на несколько точек | Обычно рост стоимости с каждой новой точкой/кассой | Один сервер обслуживает несколько точек без доплаты за «ещё одну лицензию» |
| Доступ к истории данных | Ограничен функциональностью сервиса, может исчезнуть при смене тарифа | Полный доступ всегда, включая прямые SQL-запросы к базе |
| Кастомизация техкарт и отчётов | В рамках возможностей интерфейса провайдера | Произвольная — под конкретные рецепты и метрики заведения |
| Ответственность за резервные копии | На стороне провайдера (по его политике) | На владельце — но полностью в его руках |
| Требуется техническая настройка | Минимальная (регистрация и заполнение) | Начальная настройка сервера и приложения, дальше — рутинная эксплуатация |
Условный пример для ориентира, а не измеренная цифра конкретного сервиса: если облачный учёт для сети из трёх кофеен стоит несколько тысяч рублей в месяц за точку, за год это уже сумма, сопоставимая со стоимостью аренды небольшого сервера на пару лет вперёд — при этом сервер после точки окупаемости продолжает работать по той же фиксированной цене независимо от того, три точки в сети или пять. Точную экономику стоит считать на своих цифрах: сравнить текущую годовую подписку (или предполагаемую, если учёт пока ведётся в Excel) со стоимостью аренды сервера нужной конфигурации плюс разовые часы на настройку.
Здесь стоит быть честным: перенос на свой сервер — не бесплатно и не мгновенно. Нужно либо самостоятельно настроить открытое решение под учёт, либо привлечь разработчика под конкретные техкарты. Это разовые трудозатраты в обмен на то, что дальше данные о марже — это данные заведения, а не строчка в чужой базе клиентов.
Для сети из нескольких точек имеет смысл держать сервер в удобной локации — например, в Великобритании, если операции завязаны на европейский часовой пояс. Подход к выбору сервера для учётных систем ничем принципиально не отличается от выделенного сервера в Великобритании под 1С и учётные системы. Оплатить аренду из России можно картой или криптовалютой.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать серверНужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.
Частые вопросы
Нужен ли для этого выделенный сервер или хватит VPS?
Для одной кофейни или сети до 5-7 точек хватает недорогого VPS с 2-4 ГБ RAM. Выделенный сервер имеет смысл, если сеть выросла до десятков точек или к бэкофису добавляются другие нагруженные сервисы, например видеонаблюдение.
Что делать, если нет своего разработчика?
Начальную настройку — сервер, база данных, open-source приложение под складской учёт — можно поручить разовому подрядчику, это чаще всего работа на несколько дней. Дальше система работает в фоне, требуя внимания только на плановое обслуживание и резервные копии.
А если кассовая система не даёт интеграцию по API?
Тогда данные о продажах выгружаются в бэкофис пакетно — по итогам смены или дня, файлом или через промежуточную таблицу. Менее оперативно, чем в реальном времени, но всё равно избавляет от ручного пересчёта остатков.
Не проще ли просто вести учёт в Excel, без сервера?
Excel работает, пока точка одна и учёт ведёт один человек. Как только появляется вторая точка и несколько бариста, ручная таблица перестаёт успевать за реальностью — и расхождения накапливаются незаметно.
Не проще ли для утечки свой сервер, чем облачный сервис?
При правильной настройке — доступ по SSH-ключу, закрытый веб-интерфейс, регулярные обновления — свой сервер не менее защищён, а круг тех, кто может получить доступ к данным, строго определён владельцем, а не штатом и политиками стороннего провайдера.
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →