Surrika

План и факт рекламного бюджета по каналам

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

Реклама

Как считать

  1. Берут последние 12 месяцев от последней даты продаж.
  2. Плановый расход суммируют по месяцам и каналам.
  3. Фактические расходы кампаний раскладывают по каналам: Яндекс Директ и ВК Реклама на сайт, продвижение на Wildberries на Wildberries, продвижение на Ozon на Ozon.
  4. Для каждого канала считают отклонение факт минус план и долю исполнения как факт, деленный на план.
  5. Каналы без кампаний показывают с нулевым фактом.

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

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

Как сравнить план и факт рекламного бюджета по каналам за последние 12 месяцев и понять, где перерасход?

План и факт рекламного бюджета по каналам за 12 месяцев

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

WITH plan_agg AS (
  SELECT
    channel,
    SUM(ad_cost) AS plan_ad_cost
  FROM plan
  WHERE month > (SELECT max(date) FROM sales) - INTERVAL 12 MONTH
    AND month <= (SELECT max(date) FROM sales)
  GROUP BY channel
),
fact_agg AS (
  SELECT
    CASE source
      WHEN 'Яндекс Директ' THEN 'Сайт'
      WHEN 'VK Реклама' THEN 'Сайт'
      WHEN 'Продвижение WB' THEN 'Wildberries'
      WHEN 'Продвижение Ozon' THEN 'Ozon'
    END AS channel,
    SUM(cost) AS fact_ad_cost
  FROM ads
  WHERE date > (SELECT max(date) FROM sales) - INTERVAL 12 MONTH
    AND date <= (SELECT max(date) FROM sales)
  GROUP BY 1
),
joined AS (
  SELECT
    COALESCE(p.channel, f.channel) AS channel,
    COALESCE(p.plan_ad_cost, 0) AS plan_ad_cost,
    COALESCE(f.fact_ad_cost, 0) AS fact_ad_cost
  FROM plan_agg p
  FULL OUTER JOIN fact_agg f ON p.channel = f.channel
)
SELECT
  channel,
  round(plan_ad_cost, 0) AS plan_ad_cost,
  round(fact_ad_cost, 0) AS fact_ad_cost,
  round(fact_ad_cost - plan_ad_cost, 0) AS deviation,
  round(fact_ad_cost / NULLIF(plan_ad_cost, 0), 3) AS execution_rate
FROM joined
WHERE channel IS NOT NULL
ORDER BY channel

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

План хранится по месяцам и каналам: отдельно выручка и отдельно расход на рекламу. Факт берут из ежедневной выгрузки рекламных кампаний, где у каждой кампании есть источник, расход и дата. Источники раскладывают на каналы продаж: Яндекс Директ и ВК Реклама относят к сайту, продвижение на Wildberries к Wildberries, продвижение на Ozon к Ozon. Для расчета берут последние 12 месяцев от последней даты продаж. Если по каналу нет кампаний, факт будет нулевым, и это видно в сравнении.

Как считать отклонение и процент исполнения

Сначала суммируют плановый расход по каналу за 12 месяцев. Потом складывают фактические расходы кампаний, которые относятся к этому же каналу. Отклонение равно факт минус план: положительное значение показывает перерасход, отрицательное значение экономию. Процент исполнения равен факту, деленному на план. Если план равен нулю, процент не считают, в результате будет пусто. Процент возвращается долей: 1.08 означает 108%.

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

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

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

Начните с каналов, где факт выше плана больше чем на 10-15%. Проверьте кампании с самым большим расходом и сравните их заказы с прошлым периодом. По каналам с недовыполнением плана уточните, хватило ли показов и не остановлены ли кампании. Новый план на следующий месяц стройте от фактического расхода и доли выполнения.

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

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

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

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

Яндекс Директ и ВК Реклама должны попасть в сайт, продвижение на Wildberries и Ozon в свои маркетплейсы. Без этого факт по каналу не сойдется с планом.

Считают процент исполнения при нулевом плане

Деление на ноль дает ошибку или бесконечность. Оставляйте процент пустым и смотрите на сумму отклонения.

Сравнивают расход без выручки и заказов

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

Вопросы

За какой период считать план-факт рекламного бюджета?

За последние 12 месяцев от последней даты продаж. Такой период сглаживает сезонность и совпадает с годовым планированием.

Как учитывать НДС в расходе?

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

Что означает процент исполнения 0.92?

Это 92% от плана. Факт ниже плана на 8%, если отклонение отрицательное.

Почему по каналу нет факта?

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

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

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

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

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

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

По теме

Все задачи