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

На момент проекта у Simple Coffee было 26 кофеен и больше 240 тысяч чеков в месяц. Сеть работала в Екатеринбурге уже больше десяти лет. Продажи учитывались в R-Keeper, управленческие отчёты собирали в Excel.

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

Но сначала всё это надо собрать так, чтобы результатам сравнения можно было верить.

Одна из кофеен Simple Coffee.
Одна из кофеен Simple Coffee.

Заказчик хотел получать отчётность ежедневно и разбирать показатели вплоть до отдельного чека. Если у одной кофейни изменился средний чек, нужно было понять, что произошло с продажами: изменилось количество товаров в заказе, покупатели стали выбирать другие позиции, выросла доля скидок? В месячном отчёте отклонение тоже будет видно. Только к тому времени оно уже несколько недель будет влиять на результат.

Здесь я неудачно сформулировал мысль в первой версии: написал так, будто 240 тысяч чеков сами по себе делают Excel непригодным. Конечно, это не так. Объём ещё ничего не говорит о том, какой инструмент нужен бизнесу. Считать в Excel можно много чего.

В нашем случае требовалось ежедневно получать данные, приводить их к общим правилам и давать сотрудникам возможность самостоятельно разбирать продажи. При этом одинаковые товары в разных кофейнях должны были попадать в одинаковые категории. Вот с этим оказалось интереснее, чем с выбором инструмента.

Работа сети продолжается, пока управляющая команда разбирает её результаты. Данные для следующего отчёта уже появляются в кассовой системе.Задача: не просто нарисовать дашборд, а сделать систему  управляемой
Работа сети продолжается, пока управляющая команда разбирает её результаты. Данные для следующего отчёта уже появляются в кассовой системе.Задача: не просто нарисовать дашборд, а сделать систему управляемой

Сначала пришлось разобраться с товарами

Мы в Smart Easy BI подключились к R-Keeper через собственный коннектор по API. Забирали транзакции, позиции чеков, скидки и модификаторы. Настроили ежедневную загрузку, хранение и обработку данных в ClickHouse, отчёты собрали в DataLens.

Данные из R-Keeper проходят загрузку и обработку, после чего попадают в отчёты.
Данные из R-Keeper проходят загрузку и обработку, после чего попадают в отчёты.

В исторических данных один товар мог быть заведён по-разному в разных точках. Категоризация тоже различалась. Для кассы это не обязательно мешает работе: товар можно выбрать, продать и пробить чек. Трудности начинаются при сравнении кофеен.

Допустим, вы смотрите продажи категории за месяц. Если часть товаров в другой точке отнесена к соседней категории, на графике получится разница. Только объяснять её предпочтениями гостей рано: сначала надо проверить, одинаково ли мы вообще сгруппировали товары.

Это и обнаружилось при подготовке данных. Нам пришлось выровнять общий каталог товаров, категорий и подкатегорий, настроить соответствия между исходными записями и добавить проверки при загрузке.

Я бы сейчас уделил этому месту в статье больше внимания. По скриншотам такую работу почти не видно. Но если её пропустить, дальше люди будут обсуждать продажи и принимать решения на основании разницы, которую сами же создали в справочниках.

Для сравнения кофеен нужны общие правила учёта товаров и категорий.
Для сравнения кофеен нужны общие правила учёта товаров и категорий.

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

Поэтому на вопрос из комментариев «почему нельзя было просто подключить BI к кассовой системе?» ответ в этом проекте такой: подключение давало доступ к записям, но оставалась работа с их содержанием. Разницу в товарных справочниках BI-система сама не исправит. Правила сопоставления всё равно придётся определить.

Что получилось в отчётах

На проект ушло около трёх месяцев. В результате у команды появились ежедневные отчёты по сети с детализацией по кофейням, товарам, скидкам и чекам.

Ниже — те же экраны, что были в первой версии статьи. Данные обезличены, структура и логика соответствуют рабочему решению. Цифры на скриншотах иллюстрируют возможности отчётов.

Общие показатели сети и детализация до чеков и позиций. Отсюда можно начать разбор изменения выручки или среднего чека.
Общие показатели сети и детализация до чеков и позиций. Отсюда можно начать разбор изменения выручки или среднего чека.
Сравнение кофеен по выручке, количеству и среднему чеку. Для оценки прибыли этих показателей недостаточно: дальше нужно учитывать себестоимость и расходы.
Сравнение кофеен по выручке, количеству и среднему чеку. Для оценки прибыли этих показателей недостаточно: дальше нужно учитывать себестоимость и расходы.
Продажи по времени суток. Утро, день и вечер можно рассматривать отдельно — по каждой кофейне.
Продажи по времени суток. Утро, день и вечер можно рассматривать отдельно — по каждой кофейне.
Распределение выручки между буднями и выходными. При сравнении точек важно учитывать, в какие дни у них возникает основной спрос.
Распределение выручки между буднями и выходными. При сравнении точек важно учитывать, в какие дни у них возникает основной спрос.
Продажи по категориям и их динамика. Здесь как раз важны единые справочники: состав сравниваемых категорий должен совпадать.
Продажи по категориям и их динамика. Здесь как раз важны единые справочники: состав сравниваемых категорий должен совпадать.
Выручка, количество продаж, средняя цена, плановая себестоимость, фудкост и валовая прибыль по позициям. Плановая себестоимость позволяет оценивать экономику ассортимента, но не заменяет учёт фактических затрат.
Выручка, количество продаж, средняя цена, плановая себестоимость, фудкост и валовая прибыль по позициям. Плановая себестоимость позволяет оценивать экономику ассортимента, но не заменяет учёт фактических затрат.
Две кофейни за один период с одинаковыми фильтрами. Так удобнее разбирать различия в ассортименте и продажах.
Две кофейни за один период с одинаковыми фильтрами. Так удобнее разбирать различия в ассортименте и продажах.
Количество позиций в чеке по времени и дням, с детализацией. Можно проверить, за счёт чего меняется средний чек.
Количество позиций в чеке по времени и дням, с детализацией. Можно проверить, за счёт чего меняется средний чек.

Как сеть использует эту аналитику

Уже в первые месяцы проекта данные использовали для корректировки меню и рекламы. Позже в обратной связи от клиента появился ещё один существенный момент: стало проще готовить аргументы для новых предложений.

Например, перед вводом сезонного напитка можно посмотреть, как раньше продавались похожие позиции: в каких кофейнях, в какое время, по какой цене. Это не предскажет результат нового запуска. Зато у команды есть история продаж, с которой можно сверить своё предположение.

Раньше для такой проверки приходилось поднимать Excel-файлы и отдельно готовить расчёты. Теперь нужные срезы доступны в системе. На масштабе сети это заметное изменение в повседневной работе: предложение по меню можно предметно обсудить до запуска, а после — проверить, что получилось.

В первой версии я назвал статью «Как мы нашли утекающую маржу». Заголовок получился сильнее доказательств, которые я привёл. Читатель вправе ждать под ним конкретную находку, сумму потерь и результат исправления. Галерея дашбордов на этот вопрос не отвечает.

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

Simple Coffee.
Simple Coffee.

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