С 10:00 до 20:00

8 (800) 302-05-03

Скопировать

info@appfox.ru

Скопировать

Логотип Appfox
Кодим ваши мечты 8 (800) 302-05-03

Обсудить проект

#

Как мы собрали P&L-дашборд в Metabase за 5 дней

Время чтения: 7 минут

Один из важнейших инструментов для анализа бизнеса — это дашборд с прибылью и убытками (P&L). Он позволяет контролировать рентабельность, понимать финансовое состояние, находить точки роста и выстраивать прогнозы. В этом кейсе расскажем, как мы реализовали такой инструмент с помощью open-source BI-платформы Metabase и сделали это всего за неделю.

Зачем нужен P&L-дашборд и кто им пользуется

Этот дашборд помогает ответить на ключевые вопросы:

  • Как изменилась прибыль по кварталам?
  • Насколько фактические показатели отличаются от запланированных?
  • Что повлияло на снижение прибыли за последнюю неделю?
  • Есть ли убытки и стоит ли переходить к антикризисному управлению?
  • Когда бизнес достигнет точки безубыточности или окупаемости?
  • Почему расходы на фонд оплаты труда растут быстрее выручки?
  • Почему не учтены доходы от нового контракта?

Обычно такой инструмент используется руководителями направлений, финансовыми менеджерами, продактами, CTO и командой продаж — всеми, кто принимает решения на основе финансовых показателей.

Как выглядит готовый дашборд

Визуально — это интерактивная таблица, где можно кликнуть на любое значение и провалиться в подробности. Основной KPI — рентабельность бизнеса, и мы стараемся удерживать её выше 20%. Вся структура настраивается один раз, а данные затем обновляются автоматически.

День 1. Инфраструктура и подключение сервисов

Мы построили инфраструктуру из нескольких компонентов:

  • Grist — редактор таблиц, похожий на Google Sheets, но с возможностью интеграции в бэкенд.
  • Authentik — для управления доступами и правами.
  • Apache Airflow — для автоматизации ETL-процессов.
  • PostgreSQL — основная база хранения данных.
  • Metabase — визуализация и аналитика.

К PostgreSQL мы подключили источники: CRM, таск-трекеры, отделы маркетинга и производства, финансы. Первичный сетап занял примерно день.

День 2. Сбор и подготовка данных

Следующий шаг — внесение данных в Grist и подготовка структуры БД. Мы заносим:

  • Доходы
  • Зарплаты
  • Закупки
  • Капвложения

Причём в разрезе: план / факт, сотрудники / отделы, сроки сдачи / оплаты и т.д.

Мы ведём учёт по методу начислений, а не кассовому. Это значит, что расходы признаются в момент получения дохода, а доход — когда работа сдана, а не когда поступили деньги. Grist в этом плане — мощный инструмент: справочники, фильтры, календарь, метки — всё как в Google Sheets, но с возможностью безопасно работать с базой и без риска блокировок.

День 3. SQL-запросы и сборка дашборда

Когда данные готовы, переходим к написанию SQL-запросов и созданию сводных таблиц в Metabase.

Пример запроса:

WITH
  Revenue AS (...),
  Purchases AS (...),
  Salary AS (...)
SELECT
  cost_month,
  coalesce(Revenue, 0) AS revenue,
  coalesce(Purchases, 0) AS purchases,
  coalesce(Salary, 0) AS salary,
  revenue - purchases - salary AS profit,
  (revenue - purchases - salary) / NULLIF(revenue, 0) AS profitability
FROM ...
ORDER BY cost_month;

Такой запрос позволяет в один клик получить свод по прибыли, расходам и рентабельности по месяцам. Мы также используем снапшоты (DIM-таблицы) — это исторические копии данных, которые сохраняются ежедневно. Это позволяет анализировать, как менялись показатели, и находить отклонения от плана.

День 4. Автоматизация обновлений и алерты

Metabase по умолчанию обновляет данные по расписанию. Но это не всегда удобно — внесли данные, а обновления ещё нет. Решение — добавить кнопку «Обновить» прямо в дашборде. Она триггерит обновление через Airflow.

Также настраиваем алерты — если появляются отклонения, например, просроченные платежи или перерасход, отправляется уведомление на почту или в Slack. Каждому элементу таблицы можно задать ссылку — клик по строке ведёт к детальному отчёту по этой позиции.

декоративная картинка

День 5. Запуск, регулярные встречи и персонализация

Система готова, и мы переходим к внедрению в ежедневную работу. Проводим регулярные срезы с руководителями отделов — смотрим показатели по P&L, обсуждаем отклонения, ставим задачи. Это помогает не только в операционном управлении, но и в развитии культуры работы с данными.

Персональные P&L-дашборды

Для каждого отдела создаём фильтрованную версию дашборда. Расходы, доходы, зарплаты — только те, что относятся к конкретному подразделению. Косвенные затраты (например, офис, IT, бухгалтерия) распределяются пропорционально общим расходам отдела.

Мы добавляем в SQL специальную логику для распределения:

(coalesce(indirect_purchases, 0) + coalesce(indirect_salarys, 0)) *
(расходы отдела / сумма всех расходов) AS allocated_indirect_costs

Это позволяет корректно рассчитать прибыль и рентабельность по каждому направлению.

Что дальше?

  • Разграничить доступы по ролям.
  • Обучить команды пользоваться дашбордом.
  • Расширять использование Metabase на другие отделы (продажи, маркетинг, QA и т.д.).

Такой подход позволяет принять управленческий учёт как стандарт: все решения опираются на данные, и они всегда под рукой.

Что даёт эта система

  • Чёткий контроль за прибылью и затратами
  • Возможность прогнозировать финансовое будущее
  • Повышение прозрачности и ответственности в командах
  • Мотивация руководителей — часть KPI и бонусов рассчитывается на базе этих данных

Вывод

Создание P&L-дашборда за 5 дней — реальный и достижимый результат, если использовать правильные инструменты и подход. Это не просто отчёт, а инструмент управления, который помогает бизнесу быстрее адаптироваться, находить слабые места и принимать решения на основе цифр, а не интуиции.