Короткий ответ
Процентное изменение считается как (текущий период − предыдущий период) / предыдущий период × 100%; важно сравнивать сопоставимые по длине и составу периоды, учитывая выходные, праздники и неполные текущие периоды.
Как это работает подробнее
формула простая, но корректность зависит от того, что именно сравнивается — календарный месяц к календарному месяцу, или скользящее окно в 30 дней; при неполном текущем периоде (например, 5 дней октября против полного сентября) сравнение будет некорректным без нормализации. Такой подход особенно важен для метрик, сильно зависящих от календаря, например количества визитов на сайт интернет-магазина.
Пример кода
Пример на SQL
-- PostgreSQL: WoW по сумме заказов, сравнение одинаковых по длине недель
WITH weekly AS (
SELECT date_trunc('week', order_date) AS week_start, SUM(amount) AS total
FROM orders
GROUP BY 1
)
SELECT week_start, total,
(total - LAG(total) OVER (ORDER BY week_start)) / LAG(total) OVER (ORDER BY week_start) * 100 AS wow_pct
FROM weekly
ORDER BY week_start;Что использовать на практике
- На практике: для метрик с недельной сезонностью (заказы в будни vs выходные) лучше сравнивать WoW «тот же день к тому же дню» или использовать скользящие недельные суммы, а не сырые дневные значения. Для MoM стоит учитывать разное количество дней и рабочих дней в месяцах. Полезно также визуализировать ряд целиком, а не только последнюю точку изменения, чтобы увидеть, укладывается ли текущее изменение в обычный диапазон волатильности метрики.
- Проверка: убедиться, что последняя неделя в выборке полная (все 7 дней прошли), иначе её wow_pct будет искусственно занижен.
Подводные камни
- Частые ошибки: сравнивать неполный текущий месяц с полным прошлым без пересчёта на сопоставимую базу; делить на 0 при расчёте процента для периода с нулевым базовым значением; интерпретировать шумовые колебания в пределах нормальной волатильности как «тренд», особенно при малых абсолютных числах. Ещё одна ошибка — сравнивать периоды с разным составом трафика (например, будни против выходных) как будто они полностью сопоставимы.