Surrika

Прибыль по каналам и месяцам, как увидеть структуру

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

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

Как считать

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

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

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

Хочу увидеть структуру прибыли по каналам и месяцам. Как разложить прибыль так, чтобы было видно, какой канал и месяц дают деньги, а какие убыточны?

Структура прибыли по каналам за последние три месяца

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

WITH period AS (
    SELECT
        date_trunc('month', max(date)) AS last_month,
        date_trunc('month', max(date)) - INTERVAL '2 month' AS start_month
    FROM sales
),
sales_month AS (
    SELECT
        date_trunc('month', s.date) AS month,
        s.channel,
        sum(s.revenue - s.returned_revenue - s.cost_of_goods - s.commission - s.logistics) AS profit_before_ads
    FROM sales s
    CROSS JOIN period p
    WHERE s.date >= p.start_month
      AND s.date < p.last_month + INTERVAL '1 month'
    GROUP BY 1, 2
),
ads_month AS (
    SELECT
        date_trunc('month', a.date) AS month,
        CASE
            WHEN a.source = 'Продвижение WB' THEN 'Wildberries'
            WHEN a.source = 'Продвижение Ozon' THEN 'Ozon'
            ELSE 'Сайт'
        END AS channel,
        sum(a.cost) AS ad_cost
    FROM ads a
    CROSS JOIN period p
    WHERE a.date >= p.start_month
      AND a.date < p.last_month + INTERVAL '1 month'
    GROUP BY 1, 2
),
all_months_channels AS (
    SELECT month, channel FROM sales_month
    UNION
    SELECT month, channel FROM ads_month
)
SELECT
    amc.month,
    amc.channel,
    round(coalesce(sm.profit_before_ads, 0) - coalesce(adm.ad_cost, 0), 0) AS profit
FROM all_months_channels amc
LEFT JOIN sales_month sm ON sm.month = amc.month AND sm.channel = amc.channel
LEFT JOIN ads_month adm ON adm.month = amc.month AND adm.channel = amc.channel
ORDER BY amc.month, amc.channel

Где взять данные для структуры прибыли по каналам и месяцам

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

Почему прибыль по каналам расходится с расчетом по выручке

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

Как читать структуру прибыли по каналам и месяцам на графике

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

Что делать со структурой прибыли по каналам после расчета

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

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

Считать прибыль канала без размера заказа

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

Брать тарифы площадок за прошлый год

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

Смешивать выручку и прибыль на одном графике

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

Вопросы

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

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

Нужно ли вычитать себестоимость возвращенных товаров?

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

Можно ли сравнивать структуру прибыли за разные годы?

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

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

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

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

По теме

Все задачи