Выручка выросла на 2%: как разделить вклад заказов и среднего чека
В сентябре магазин получил 200 тысяч рублей со 100 заказов, в октябре — 204 тысячи со 120 заказов. Рост выручки всего 2%, хотя заказов стало на 20% больше. Руководителю нужно объяснить, какая часть изменения связана с числом заказов, а какая — с суммой одного заказа.
Для этого недостаточно поставить рядом три процента. Средний чек упал с 2000 до 1700 рублей, то есть на 15%. Складывать +20% и −15% нельзя: выручка получается умножением числа заказов на чек. Чтобы получить понятные денежные вклады, зафиксируем порядок подстановки двух факторов.
Сначала договоритесь, какие заказы считаются
Число заказов и выручка должны относиться к одному набору. Если выручка уже уменьшена на возвраты, а количество включает отменённые заказы, средний чек потеряет понятный смысл. Выберите статусы, дату и правило возвратов, затем вычисляйте выручку и число заказов по ним.
В примере выручка — согласованная сумма продаж из аналитической витрины за полный месяц. Средний чек равен этой сумме, делённой на число учитываемых заказов. Правило может отличаться между компаниями; для сравнения двух месяцев оно должно оставаться одним и тем же. Отнесение возврата к периоду подробно разобрано в статье о дате продажи и дате возврата.
Замените факторы по очереди
Обозначим число заказов через N, средний чек через A. Выручка R = N × A. Сначала увеличим заказы со старого N₀ до нового N₁, сохранив старый чек A₀. Получим вклад заказов (N₁ − N₀) × A₀: двадцать дополнительных заказов по 2000 рублей дают +40000.
Затем заменим чек на A₁ уже при новом числе заказов N₁. Вклад чека равен N₁ × (A₁ − A₀): 120 заказов теряют по 300 рублей, итого −36000. Сумма вкладов +4000 совпадает с наблюдаемым ростом выручки.
Полная формула: R₁ − R₀ = (N₁ − N₀) × A₀ + N₁ × (A₁ − A₀). Она включает совместное изменение факторов. Если вместо N₁ во втором слагаемом подставить N₀, появится остаток: изменения перестанут сходиться с итогом.
Проверьте расчёт без округления
В коде Fraction хранит точные дроби. Промежуточный чек может иметь бесконечную десятичную запись; округление до копеек до завершения расчёта создаст расхождение вкладов с общей суммой. Выполните пример стандартным Python.
from fractions import Fraction
def decompose(orders0, revenue0, orders1, revenue1):
if orders0 <= 0 or orders1 <= 0:
raise ValueError("AOV requires a positive order count in both periods")
aov0 = Fraction(revenue0, orders0)
aov1 = Fraction(revenue1, orders1)
by_orders = (orders1 - orders0) * aov0
by_aov = orders1 * (aov1 - aov0)
delta = revenue1 - revenue0
assert by_orders + by_aov == delta
return aov0, aov1, by_orders, by_aov, delta
result = decompose(100, 200000, 120, 204000)
assert result == (2000, 1700, 40000, -36000, 4000)
for label, value in zip(
["aov0", "aov1", "orders contribution", "aov contribution", "delta"],
result
):
print(label, value)
assert decompose(3, 10, 7, 23)[2:] == (
Fraction(40,3), Fraction(-1,3), 13
)
assert decompose(10, 100, 10, 100)[2:] == (0, 0, 0)
Второй тест специально использует дробные чеки: 10/3 и 23/7. Он проверяет, что равенство остаётся точным и за пределами удобного целочисленного примера. Округляйте только итоговые значения для отображения. При отсутствии заказов в одном периоде чек не определён; функция останавливает такой расчёт, а в отчёте нужно отдельно показать появление или исчезновение продаж.
Как читать два вклада
Существует и обратный порядок: сначала поменять чек на старом числе заказов, затем заказы при новом чеке. Тогда вклады будут −30000 и +34000. Общая разница останется +4000. Поэтому подпишите выбранный порядок и сохраняйте его между отчётными периодами.
Такое разложение показывает арифметическое устройство изменения. Чтобы понять, почему упал чек, потребуется следующий срез: ассортимент, скидки, доля новых клиентов, канал продаж. Из самой формулы нельзя заключить, что причиной стала рекламная кампания. Практичный вывод здесь конкретнее: рост числа заказов почти поглощён снижением среднего чека, поэтому следующий анализ посвящён структуре корзины.
В платном курсе «Практическая аналитика данных» вы разберёте декомпозицию выручки, ценовые сегменты, возвраты и подготовите аналитический отчёт по продажам. Затем повторите расчёты на новой месячной выгрузке. Откройте программу курса, чтобы связать формулу с проверкой данных, дашбордом и рекомендацией.
