Дашборд вместо ручных таблиц: автоматическая отчётность
Дашборд — это не красивые графики поверх базы, а согласованный набор определений, зафиксированный в коде. Технически он состоит из трёх слоёв: события, витрины и представление. Если расходятся числа, проблема почти всегда в первом слое, а чинят обычно третий.
Три слоя, из которых собирается число
События — это факты, которые система записывает в момент их наступления: заказ создан, оплата прошла, заказ отменён, товар отгружен. У каждого события есть своя отметка времени, и она не совпадает с остальными.
Витрина — заранее посчитанный срез по этим событиям. Выручка по дням, число заказов по источникам, средний чек по категориям. Витрина существует ровно потому, что считать всё на лету по миллиону строк дорого.
Представление — то, что видит человек: плитки, графики, фильтр по периоду. Здесь никакой логики счёта быть не должно, только отрисовка того, что дала витрина.
Разделение выглядит избыточным на маленьком проекте. Но именно оно позволяет через полгода ответить на вопрос «почему в марте выручка изменилась задним числом» — потому что событие возврата пришло позже, а витрина пересчиталась.
Почему таблица и дашборд показывают разное
Расхождение чисел — самая частая претензия к любой автоматической отчётности. Причины перечислимы, и их немного.
Разная дата. Таблица собиралась по дате оплаты, дашборд считает по дате заказа. В конце месяца это даёт разницу в сотни тысяч.
Разный состав. В таблице владелец руками не вносил отменённые и тестовые заказы, а система их видит и учитывает. Или наоборот: система отсекает возвраты, а в таблице они остались.
Разная валюта показателя. Выручка с доставкой и без, с НДС и без, до скидки и после. Четыре комбинации, и каждый считает по-своему.
Разное округление. Мелочь, но при сравнении итогов за год даёт заметный хвост.
Лечится это не отладкой, а словарём. Рядом с каждым показателем в дашборде мы держим строчку определения: «выручка — сумма оплаченных заказов по дате оплаты, без доставки, минус возвраты». Спор о цифре превращается в спор об определении, а он решается за пять минут.
Что считать сразу, а что раз в сутки
Не всякий показатель обязан быть свежим до секунды. Разделение по частоте пересчёта экономит и деньги на разработку, и нагрузку на сервер.
В реальном времени имеет смысл держать то, на что реагируют сегодня: новые заказы, необработанные заявки, остатки по ходовым позициям, платежи за текущий день. Такие числа считаются прямо по событиям, их немного.
Раз в сутки пересчитываются агрегаты за прошлые периоды: выручка по дням и неделям, конверсия, средний чек, разрезы по категориям и источникам. Ночной пересчёт заодно подтягивает опоздавшие события — возвраты, корректировки, чеки.
Раз в месяц имеет смысл считать тяжёлое: когорты, повторные покупки, оборачиваемость. Эти числа никто не смотрит ежедневно, а считаются они долго.
Практический признак: если показатель нужен, чтобы что-то сделать в ближайший час, он реального времени. Всё остальное — ночной пересчёт.
Как это выглядит в проекте
В магазине «Жук и Плут» админка выросла примерно до двадцати вкладок, и первая из них — сводка. На ней держится то, ради чего владелица открывает панель утром: заказы за сутки, что ждёт сборки, что заканчивается на складе, сколько денег пришло вчера.
Всё остальное — отчёты по категориям, динамика по неделям, разрезы по источникам — лежит на отдельной вкладке и пересчитывается ночью. Разделение сделано не из экономии, а потому что утренний экран должен отвечать на вопрос «что делать сегодня», а не показывать всё, что система умеет.
Отдельно устроены права: сборщик видит очередь заказов, но не видит сумм и выручки. Дашборд с деньгами открывается только владельцу. Стоимость и сроки разработки такой панели — на странице цен.
Кому дашборд не нужен
Бизнесу с десятком заказов в месяц. Здесь всё видно и так, а панель с графиками добавит ощущение управления, но не само управление.
Тем, кому отчёт нужен раз в месяц для бухгалтерии. Выгрузка в Excel решает эту задачу дешевле, и её проще передать стороннему специалисту.
Тем, у кого данные до сих пор не в одном месте. Дашборд поверх трёх несведённых источников будет уверенно показывать неправильное. Сначала одна база, потом отчётность по ней.
И отдельный случай: если на числа никто не собирается смотреть. Дашборд, который открывают раз в квартал, — это потраченные деньги и повод для разочарования в автоматизации вообще.
Как выбрать пять показателей на первый экран
Отбор идёт не по важности, а по действию. К каждому кандидату задаётся один вопрос: что вы сделаете, если число окажется хуже ожидаемого.
Если ответ конкретный — показатель остаётся. «Заявок за сутки меньше десяти» — включаю рекламу, звоню по старым клиентам. «Товар заканчивается» — заказываю у поставщика. Действие есть, число полезное.
Если ответа нет, показатель уходит на вторую вкладку. Посещаемость сайта, число просмотров карточек, глубина скролла — их приятно смотреть, но реакции на них обычно не бывает.
Отдельно проверьте показатель на управляемость. Курс валюты влияет на бизнес сильно, но на первом экране ему делать нечего: вы на него не влияете.
Хорошая проверка сборки — попросить владельца за неделю до запуска панели написать на листе, какие пять чисел он хотел бы знать каждое утро. Список почти всегда короче того, что просили заложить в техническое задание.
Что делать, когда цифра выглядит неправдоподобно
Порядок разбора, который экономит время всем.
Сначала уточните период и фильтры. Половина случаев объясняется тем, что открыт прошлый месяц или включён фильтр по одной категории, который забыли снять.
Затем откройте расшифровку. Любая плитка на дашборде должна разворачиваться в список тех самых заказов, из которых она посчитана. Если разворачивать некуда, дашборд сделан наполовину: числу нечем себя объяснить, и доверия к нему не будет.
Дальше сверяйте по определению из словаря, а не по ощущению. В расшифровке сразу видно, попали ли туда отменённые заказы, тестовые оплаты и доставка.
И только после этого зовите разработчика. По опыту, до этого шага доходит примерно каждый пятый вопрос о цифрах, и почти всегда причина оказывается не в ошибке расчёта, а в опоздавшем событии — возврате или чеке, который пришёл на следующий день.
Коротко
Дашборд состоит из событий, витрин и отрисовки, и логика счёта живёт только в витринах. Расхождения с ручной таблицей объясняются определением показателя — датой, составом, наличием доставки и возвратов, — поэтому словарь определений нужен раньше графиков. Оперативные числа считаются по событиям, исторические агрегаты пересчитываются ночью, тяжёлые разрезы — раз в месяц. На первом экране держите пять-семь показателей, по каждому из которых вы что-то делаете. Если заказов десяток в месяц или отчёт нужен раз в квартал, выгрузки в таблицу достаточно.
Первый разговор — разбор задачи: нужна ли вам система или хватит одной страницы. Без обязательств и без счёта.
Частые вопросы
Почему число в дашборде не совпадает с моей таблицей?
Почти всегда из-за разного определения показателя: таблица считает по дате оплаты, дашборд по дате заказа, или один источник включает отменённые заказы, а другой нет. Сверку начинайте с определения, а не с поиска ошибки в коде.
Сколько показателей выносить на первый экран?
Пять-семь. Каждый должен отвечать на вопрос, по которому вы принимаете решение на этой неделе. Показатель, который вы посмотрели и ничего не сделали, занимает место и отвлекает от остальных.
Можно ли обойтись выгрузкой в Excel вместо дашборда?
Можно и часто нужно. Если отчёт нужен раз в месяц бухгалтеру, выгрузка дешевле и понятнее. Дашборд оправдан там, где на числа смотрят каждый день и по ним принимают решения.
Те, что не помогают, мы переписываем — по этой кнопке и решаем, какие именно.
Ещё по теме
Что малому бизнесу от CRM реально нужно, чем готовая система отличается от своей внутри сайта и по каким признакам выбирать между ними.
тем, кто заказывает CRM купили, а работать в ней не стали: разбор причинШесть ошибок, из-за которых оплаченная CRM превращается в пустую базу, и что делать с каждой, пока подписка ещё действует.
тем, кто заказывает Freedom Gym: клубная система с абонементами и расписаниемИстория одного проекта: как из журнала на ресепшене выросла клубная система с абонементами, расписанием и правами тренеров, и что пошло не так.
тем, кто заказывает