Surrika

Как сверить категории в сделках и продажах и найти расхождение

Сверка категорий в сделках и продажах показывает, сходятся ли деньги по одной и той же категории в CRM и в учете продаж за 12 месяцев. Считаем выручку продаж сайта, сумму выигранных сделок и разницу между ними в рублях и в процентах от продаж.

Отчеты и данные

Как считать

  1. Берем выручку продаж сайта и выигранные сделки за один и тот же период.
  2. Складываем деньги отдельно по каждой категории в продажах и в сделках.
  3. Соединяем категории из двух выгрузок и считаем разницу в рублях.
  4. Делим разницу на выручку продаж и получаем долю расхождения.
  5. Сортируем по размеру разницы, чтобы сверху оказались категории, где расхождение больше всего.

Расчет на выгрузках магазина

Пример посчитан на выгрузках вымышленного мебельного магазина: продажи сайта и трех маркетплейсов, реклама, сделки CRM и остатки за 2024-2025 годы.

Сходятся ли суммы по каждой категории в сделках и продажах за последние 12 месяцев и где расхождение самое большое?

Сверка категорий: продажи сайта и выигранные сделки

Категория Разница к продажам Разница в рублях Сумма выигранных сделок Выручка продаж сайта
Диваны -39,8 % -19 590 571 ₽ 29 658 280 ₽ 49 248 851 ₽
Кровати -57,7 % -15 575 226 ₽ 11 434 320 ₽ 27 009 546 ₽
Шкафы -60,2 % -13 279 082 ₽ 8 796 080 ₽ 22 075 162 ₽
Освещение -75,2 % -6 423 257 ₽ 2 122 670 ₽ 8 545 927 ₽
Кухни -17,3 % -5 464 613 ₽ 26 035 880 ₽ 31 500 493 ₽

SQL, по которому посчитано

WITH s AS (
  SELECT category,
         sum(revenue) AS sales_revenue,
         sum(units) AS sales_units
  FROM sales
  WHERE channel = 'Сайт'
    AND date >= (SELECT date_trunc('month', max(date)) FROM sales) - INTERVAL '11 months'
  GROUP BY category
),
d AS (
  SELECT category,
         sum(amount) AS deals_revenue,
         count(*) AS deals_count
  FROM deals
  WHERE status = 'Выиграна'
    AND date >= (SELECT date_trunc('month', max(date)) FROM deals) - INTERVAL '11 months'
  GROUP BY category
)
SELECT coalesce(s.category, d.category) AS category,
       round(coalesce(s.sales_revenue, 0), 0) AS sales_revenue,
       round(coalesce(d.deals_revenue, 0), 0) AS deals_revenue,
       round(coalesce(d.deals_revenue, 0) - coalesce(s.sales_revenue, 0), 0) AS revenue_diff,
       coalesce(d.deals_count, 0) AS deals_count,
       coalesce(s.sales_units, 0) AS sales_units,
       round((coalesce(d.deals_revenue, 0) - coalesce(s.sales_revenue, 0)) / nullif(s.sales_revenue, 0), 3) AS gap_share
FROM s
FULL OUTER JOIN d ON s.category = d.category
ORDER BY abs(coalesce(d.deals_revenue, 0) - coalesce(s.sales_revenue, 0)) DESC
LIMIT 30

Где взять категории для сверки сделок и продаж

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

Почему суммы по категориям в сделках и продажах расходятся

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

Как разобрать расхождение после сверки категорий

Строка с минусом означает, что продажи по категории есть, а выигранных сделок на эту сумму нет, потому что заказ не завели в CRM или закрыли проигранной. Строка с плюсом означает, что сделка выиграна, а отгрузки и оплаты по ней не было. По категориям с расхождением проверяют статус оплаты в CRM и дату отгрузки в продажах. Если разница есть во всех категориях примерно одинаковая, проверьте полноту выгрузки и правила отбора строк.

Частые ошибки

Категории не сверены по написанию

Категорию в сделке выбирает менеджер, в продажах она приходит от артикула, поэтому лишний пробел или другое написание дадут две строки и разрыв, которого нет. Сверьте списки категорий до расчета.

Штуки продаж сравнивают с числом сделок

В сделке нет количества товара, поэтому штуки сопоставить не с чем. Сравнивайте суммы, а штуки оставьте для сверки с остатками.

Сделки и продажи выгружены по разным датам

Сделка датируется днем закрытия, продажа днем отгрузки, поэтому заказы на границе месяца попадают в разные периоды. Берите обе выгрузки с запасом по краям периода.

Вопросы

Что делать, если в сделке не заполнена категория?

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

Включать ли проигранные сделки в сверку?

Нет. Проигранная сделка не дает выручки, и ее сумма увеличит расхождение на весь объем проигранных.

Можно ли сверять сделки и продажи по артикулам?

В сделках артикула нет, там только категория и сумма. Сверить получится на уровне категории или по номеру заказа, если он переносится в CRM.

Посчитайте это на своих выгрузках

Бросьте выгрузки на доску Surrika и задайте вопрос обычными словами. Ответ придет графиком, а под ним будет SQL, по которому он посчитан.

14 дней бесплатно, карта не нужна.

По теме

Все задачи