Surrika

Факторный анализ прибыли от продаж по каналам магазина

Прибыль от продаж меняется по четырем причинам: выручка, себестоимость, комиссия площадок и логистика. Разложение показывает, сколько рублей изменения прибыли дал каждый фактор по каждому каналу за последние 12 месяцев по сравнению с предыдущими 12 месяцами.

Продажи и ассортимент

Как считать

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

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

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

Насколько изменилась прибыль от продаж по каналам за последние 12 месяцев и какие факторы дали прирост или убыток?

Вклад факторов в изменение прибыли по каналам за 12 месяцев

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

WITH cur AS (
  SELECT channel,
         sum(revenue - returned_revenue) AS net_revenue,
         sum(cost_of_goods) AS cogs,
         sum(commission) AS commission,
         sum(logistics) AS logistics
  FROM sales
  WHERE date > (SELECT max(date) FROM sales) - INTERVAL 12 MONTH
  GROUP BY channel
),
prev AS (
  SELECT channel,
         sum(revenue - returned_revenue) AS net_revenue,
         sum(cost_of_goods) AS cogs,
         sum(commission) AS commission,
         sum(logistics) AS logistics
  FROM sales
  WHERE date > (SELECT max(date) FROM sales) - INTERVAL 24 MONTH
    AND date <= (SELECT max(date) FROM sales) - INTERVAL 12 MONTH
  GROUP BY channel
),
joined AS (
  SELECT coalesce(c.channel, p.channel) AS channel,
         coalesce(c.net_revenue, 0) - coalesce(p.net_revenue, 0) AS d_revenue,
         coalesce(c.cogs, 0) - coalesce(p.cogs, 0) AS d_cogs,
         coalesce(c.commission, 0) - coalesce(p.commission, 0) AS d_commission,
         coalesce(c.logistics, 0) - coalesce(p.logistics, 0) AS d_logistics
  FROM cur c
  FULL OUTER JOIN prev p ON c.channel = p.channel
)
SELECT channel, 'Выручка' AS factor, round(d_revenue, 0) AS effect FROM joined
UNION ALL
SELECT channel, 'Себестоимость', round(-d_cogs, 0) FROM joined
UNION ALL
SELECT channel, 'Комиссия площадки', round(-d_commission, 0) FROM joined
UNION ALL
SELECT channel, 'Логистика', round(-d_logistics, 0) FROM joined
ORDER BY channel, factor

Откуда берутся цифры

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

Как считать разложение

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

Как читать результат

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

Что делать с выводом

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

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

Выручка без вычета возвратов

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

Вклады в процентах от разных баз

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

Окна разной длины

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

Реклама внутри фактора выручки

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

Вопросы

Чем факторный анализ прибыли отличается от анализа выручки?

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

Зачем сравнивать два окна по 12 месяцев?

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

Можно ли считать разложение в процентах?

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

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

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

Как учитывать возвраты в прибыли?

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

Метрики на этой странице

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

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

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

По теме

Все задачи