Surrika

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

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

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

Как считать

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

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

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

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

Прибыль после возвратов по каналам, вымышленный мебельный магазин

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

WITH bounds AS (
  SELECT date_trunc('month', max(date)) AS month_start
  FROM sales
),
sales_month AS (
  SELECT
    s.channel,
    SUM(s.units) AS units,
    SUM(s.returned_units) AS returned_units,
    SUM(s.revenue) AS revenue,
    SUM(s.returned_revenue) AS returned_revenue,
    SUM(s.cost_of_goods) AS cost_of_goods,
    SUM(s.commission) AS commission,
    SUM(s.logistics) AS logistics
  FROM sales s
  CROSS JOIN bounds b
  WHERE s.date >= b.month_start
    AND s.date < b.month_start + INTERVAL '1 month'
  GROUP BY s.channel
),
ad_month AS (
  SELECT
    CASE a.source
      WHEN 'Продвижение WB' THEN 'Wildberries'
      WHEN 'Продвижение Ozon' THEN 'Ozon'
      WHEN 'Яндекс Директ' THEN 'Сайт'
      WHEN 'VK Реклама' THEN 'Сайт'
    END AS channel,
    SUM(a.cost) AS ad_cost
  FROM ads a
  CROSS JOIN bounds b
  WHERE a.date >= b.month_start
    AND a.date < b.month_start + INTERVAL '1 month'
  GROUP BY 1
),
calc AS (
  SELECT
    sm.channel,
    sm.revenue - sm.returned_revenue AS net_revenue,
    CASE
      WHEN sm.units = 0 THEN 0
      ELSE LEAST(1.0, COALESCE(sm.returned_units, 0)::DOUBLE / sm.units)
    END AS return_share,
    sm.cost_of_goods,
    sm.commission,
    sm.logistics,
    COALESCE(am.ad_cost, 0) AS ad_cost
  FROM sales_month sm
  LEFT JOIN ad_month am USING (channel)
)
SELECT
  channel,
  ROUND(net_revenue, 2) AS net_revenue,
  ROUND(
    net_revenue
    - cost_of_goods * (1 - return_share)
    - commission * (1 - return_share)
    - logistics * (1 - return_share)
    - ad_cost,
    2
  ) AS profit
FROM calc
ORDER BY profit DESC

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

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

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

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

Как читать прибыль после возвратов по каналам

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

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

Уменьшать рекламу на долю возвратов

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

Сравнивать каналы за разные периоды

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

Вопросы

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

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

Как учитывать рекламу, если покупка произошла позже месяца показа?

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

Почему в расчете нет шоурума?

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

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

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

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

По теме

Все задачи