Все материалы
Продуктовая аналитикагайдсредний

CAC: стоимость привлечения клиента и срок окупаемости

Формула CAC, состав расходов, расчёт по каналам и когортный payback на учебном магазине. Разбираем новых покупателей, окно атрибуции и ошибки среднего CAC.

КейсПрактика28 сентября 2026 г.15 мин

Маркетинг отчитывается о дешёвых заказах: бюджет вырос, CPO снизился. Финансовый директор спрашивает, сколько стоил новый клиент и вернул ли он вложенные деньги. Если один покупатель оформил два заказа, рекламный расход не стал вдвое эффективнее сам собой. CAC требует другого знаменателя и когортной проверки окупаемости. Разберём это на учебном магазине Wave, отделив наблюдённые покупки от модельных бюджетов.

Коротко: как посчитать CAC и проверить его

CAC (customer acquisition cost) — согласованные расходы на привлечение за период, делённые на число клиентов, совершивших первую целевую покупку в том же периоде и канале. Что именно входит в расходы, нужно подписать: только медиа или медиа, команду, инструменты и промостимулы. Затем сравнивайте CAC не с выручкой первой покупки, а с накопленной маржей когорты за одинаковый горизонт.

В сентябрьском учебном Wave у paid_ads 328 впервые купивших. При синтетическом бюджете 620 000 ₽ CAC равен 1 890,24 ₽. Вклад первого заказа на нового покупателя — 1 683,45 ₽, поэтому первая покупка не вернула привлечение. У organic 380 новых покупателей, модельный бюджет 60 000 ₽ и CAC 157,89 ₽; вклад первого заказа 1 752,49 ₽. Это сравнение не доказывает, что organic «создал» все покупки: канал в данных — атрибут пользователя, а не причинный эффект рекламы.

CAC по каналу и месяцу первой покупки
CAC = согласованные расходы канала / новые платящие клиенты этого канала

Для payback сравнивайте CAC с накопленным вкладом на одного исходного клиента когорты.

  • Фиксируйте событие первой оплаты и окно атрибуции до расчёта.
  • Делите бюджет на новых клиентов, а не на регистрации или все заказы.
  • Показывайте media CAC и полную версию расходов отдельно.
  • Держите рядом возраст когорты, накопленную маржу и дату среза возвратов.

Что включать в числитель CAC

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

В файле учебной модели месячный бюджет каждого канала разделён на медиа, команду и инструменты. Например, сентябрьский paid_ads — 550 000 + 40 000 + 30 000 = 620 000 ₽. Если посчитать только медиа, получилось бы 1 676,83 ₽ на нового покупателя вместо полного CAC 1 890,24 ₽. Разница может решить, кажется ли первый заказ окупившимся.

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

Синтетические бюджеты каналов в сентябре 2024, ₽
КаналМедиа / стимулыКомандаИнструментыВсего
paid_ads550 00040 00030 000620 000
social100 00035 00015 000150 000
referral45 00020 00010 00075 000
email40 00023 0007 00070 000
organic20 00030 00010 00060 000

Кого считать новым клиентом

Покупатель Wave имеет user_id, дату регистрации и канал, а у оплаченного заказа — дату размещения. Для CAC в этой статье новым считается клиент с первой оплаченной покупкой в месяце. Это отличается от регистрации: часть зарегистрировавшихся не купит ничего, а часть купит позже. В сентябре 1 336 разных покупателей оформили оплаченные заказы, но у 1 193 это была первая покупка. Остальные 143 — повторы из прежних месяцев; включив их в знаменатель, вы искусственно удешевите привлечение.

Если один новый клиент оформил два заказа в сентябре, он остаётся одним клиентом в знаменателе CAC. Оба заказа могут входить в маржу его когорты за календарный месяц M0. Это даёт два честных показателя: вклад первого заказа и накопленный вклад месяца старта. Смешать число новых клиентов из первого и маржу всех клиентов из второго нельзя.

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

Три знаменателя сентябрьского Wave
СобытиеКоличествоМожно ли назвать CAC?
Оплаченные заказы1 433Нет: один человек может купить дважды
Разные покупатели месяца1 336Нет: включает прежних клиентов
Впервые купившие в сентябре1 193Да, при совпадающем бюджете и канале

CAC против CPA и CPO: знаменатель решает

CPA — стоимость заданного действия: подписки, заявки или другого события, которое вы объявили целью. CPO — стоимость заказа; повторный заказ может попасть в него снова. CAC относится к впервые приобретённому клиенту. Для Wave эти множества различаются: 1 433 заказа, 1 336 покупателей месяца и 1 193 новых платящих. Даже если расход один и тот же, деление на каждое число даст разную метрику.

Для paid_ads в сентябре расход 620 000 ₽ и 328 новых платящих. CAC равен 1 890,24 ₽. Если кабинет назовёт «привлечением» все заявки, число может оказаться ниже; это не ошибка платформы, пока событие ясно подписано. Ошибка возникает, когда низкий CPA заявки сравнивают с маржей платящего покупателя и делают вывод об окупаемости без конверсии между ними.

Не смешивайте также рекламный CPO и полный CAC. Первое полезно для оценки кампании на коротком горизонте, второе — для решения о росте бюджета и окупаемости клиентской базы. В отчёте показывайте оба с расшифровкой состава затрат и события.

По каналам: у одного первый заказ в плюсе, у другого в минусе

Источник users.channel в учебной базе один на пользователя; расход канала не записан и взят из допущений. Для каждого канала делим только его бюджет на число его новых сентябрьских покупателей. Вклад считаем по их первым оплаченным заказам после скидок и известных возвратов, а не по всем заказам канала. Тогда числитель и знаменатель описывают одну группу.

У paid_ads вклад первых заказов 552 170,48 ₽ на 328 новых покупателей: 1 683,45 ₽ на человека. Полный CAC 1 890,24 ₽ оставляет −206,80 ₽ после первой покупки. У organic 665 945,77 ₽ на 380 человек: 1 752,49 ₽ при CAC 157,89 ₽, остаток +1 594,59 ₽. Вклад первой покупки — диагностический срез; для решения об отключении paid_ads нужно ещё увидеть повторные покупки и сравнить с будущим, возможно более дорогим, CAC.

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

Первый заказ нового покупателя, сентябрь 2024
КаналНовыхCACВклад / клиентПосле CAC / клиент
paid_ads3281 890,24 ₽1 683,45 ₽−206,80 ₽
organic380157,89 ₽1 752,49 ₽+1 594,59 ₽
social1431 048,95 ₽1 903,37 ₽+854,42 ₽
referral130576,92 ₽1 982,62 ₽+1 405,69 ₽
email212330,19 ₽1 668,02 ₽+1 337,83 ₽
Первый вклад против CAC по каналу, ₽ на нового покупателя

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

Вклад первого заказаCAC

Атрибуция и окно: какой бюджет сравнивать с клиентами

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

При длинном цикле между рекламным расходом и первой покупкой месяцы смещаются. Сентябрьский бюджет может привести октябрьских покупателей; августовская кампания — сентябрьских. Тогда CAC одного календарного месяца будет шумным. Задайте окно атрибуции: например, наблюдайте первые покупки в течение согласованного числа дней после контакта и относите расход к соответствующей когорте. В учебном датасете контактов нет, поэтому такое окно нельзя «досчитать» из users.channel.

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

Payback: сколько маржи возвращает клиент по месяцам

Окупаемость CAC наступает, когда накопленная маржа когорты новых клиентов на одного исходного покупателя достигает CAC той же когорты и канала. Для июльского paid_ads было 180 впервые купивших при условном бюджете 250 000 ₽, CAC 1 388,89 ₽. Их суммарный вклад в календарном месяце первой покупки равен 1 760,00 ₽ на человека: по доступному срезу привлечение покрылось уже в M0. К концу августа накопленно 1 825,58 ₽, к концу сентября 2 006,46 ₽.

Для сентябрьского paid_ads при более дорогом бюджете 620 000 ₽ и 328 новых покупателях CAC поднялся до 1 890,24 ₽. В первом календарном месяце накопленный вклад 1 826,57 ₽ на человека, то есть до CAC не хватает 63,67 ₽. К концу октября сумма достигает 2 019,37 ₽ и пересекает CAC. Значит, первое наблюдаемое пересечение — M1 по состоянию на 31 октября, не точный день payback. Возвраты за октябрьские заказы после даты среза ещё неизвестны и могут пересмотреть этот вывод.

Календарный M0 неодинаков по длине жизни клиента: купивший 2 сентября наблюдался почти месяц, купивший 29-го — только два дня в сентябре. Для строгого сравнения каналов можно строить возраст в днях от первой оплаты и оставлять в каждом горизонте только созревшие когорты. Месячная таблица ниже показывает логику возврата вложений, а не заменяет такой анализ.

Накопленный вклад paid_ads на исходного нового покупателя, ₽
КогортаНовыхCACM0M1M2Первое пересечение
Июль 20241801 388,891 760,001 825,582 006,46M0 в наблюдаемом срезе
Сентябрь 20243281 890,241 826,572 019,37нет зрелого M2M1 предварительно
Сентябрьский paid_ads пересекает CAC между M0 и M1

M1 — наблюдение на 31.10; поздние возвраты за октябрь могут изменить линию.

Накопленный вклад / клиентCAC

Почему кривая payback может опуститься после пересечения

Возврат заказа уменьшает вклад клиента. В этой модели мы пересчитываем экономику исходного заказа с известными к 31 октября возвратами, поэтому прошлый возраст когорты может измениться после позднего события. Накопленная маржа не обязана навсегда расти. Если в новой выгрузке она опустилась ниже CAC, нужно решить, что означает «окупился»: первое пересечение или устойчивое превышение к согласованному горизонту.

Не заменяйте отсутствующий M2 сентябрьской когорты прогнозом и не усредняйте срок только по тем, кто уже успел окупиться. Когорты с незавершённым наблюдением исчезнут из такого среднего, и результат станет оптимистичным. Отдельно храните «покрыт к M1», «не покрыт к M1» и «M1 ещё не наблюдался». В учебной выгрузке возвраты 15 сентябрьских заказов превышают их сумму после скидки; кривая оставляет записи как есть, но решение о бюджете в рабочем магазине требовало бы сверки этих платежей.

CAC payback — метрика экономического вклада, не кассового разрыва. Деньги от покупателя, расчёт с поставщиком, списание рекламного бюджета и возврат происходят в разные даты. Если бизнесу важно выдержать ближайшие платежи, нужен график денежных потоков в дополнение к когортной марже.

LTV/CAC: короткое отношение без ложной точности

Маржинальный LTV на доступном горизонте — накопленный вклад заказов на исходного клиента когорты. Разделив его на CAC той же когорты, получите долю уже покрытых затрат на привлечение. У сентябрьского paid_ads к M0 это 1 826,57 / 1 890,24 ≈ 0,97; к M1 — 2 019,37 / 1 890,24 ≈ 1,07 по текущему срезу. Это не обещание пожизненной ценности: M2 и более поздние возвраты ещё не известны.

Если вместо вклада подставить выручку, отношение станет красивее, потому что закупка товара и доставка исчезнут из расчёта. Если смешать июльский LTV со сентябрьским CAC, оно ответит на вопрос, которого никто не задавал. И если разделить только на повторно купивших, кривая ещё раз искусственно вырастет.

Дальше нужен не универсальный «правильный коэффициент», а ваша граница: когда должны вернуться деньги, какие фиксированные расходы должна покрыть когорта, каков риск позднего возврата и насколько дороже будет следующий покупатель.

Покрытие CAC на наблюдённом горизонте
Накопленная маржа на исходного клиента / CAC той же когорты и канала

Сравнивайте одинаковые возраст и дату среза; значение выше единицы не включает фиксированные расходы бизнеса.

Что будет при росте CAC на 20%

Если сентябрьский бюджет paid_ads вырастет на 20%, с 620 000 до 744 000 ₽, а новых покупателей останется 328, CAC поднимется с 1 890,24 до 2 268,29 ₽. Первый заказ с вкладом 1 683,45 ₽ оставит дефицит уже 584,84 ₽ на человека. Наблюдённые 2 019,37 ₽ накопленной маржи к M1 перестанут покрывать привлечение. Для решения о повышении ставки нужны дополнительные инкрементальные покупатели или более высокая проверенная маржа, не просто больше показов.

Если вырастут сразу все модельные маркетинговые бюджеты сентября на 20% без изменения заказов, общие расходы увеличатся на 195 000 ₽. Вклад самих заказов останется 2 459 009,05 ₽, но месячный результат ухудшится с −1 515 990,95 до −1 710 990,95 ₽. Это сценарий без отклика спроса, а не прогноз реальной кампании.

Для оптимистичного сценария не подставляйте произвольные «+20% заказов». Сначала зафиксируйте тестовый бюджет и контрольный период, сравните новых покупателей, их категории и ранние возвраты. Иначе вычисление изменит сразу два неизвестных — расходы и качество трафика — и не покажет причину.

Один меняющийся параметр, число клиентов и заказов прежнее
СценарийCAC paid_adsВклад всех заказовРезультат месяца
База1 890,24 ₽2 459 009 ₽−1 515 991 ₽
Дополнительная скидка 10%1 890,24 ₽1 607 335 ₽−2 367 665 ₽
Возвраты +5 п. п.1 890,24 ₽2 253 890 ₽−1 721 110 ₽
CAC всех каналов +20% через бюджеты2 268,29 ₽2 459 009 ₽−1 710 991 ₽

Как снижать CAC без обещаний процента

Первый проверяемый рычаг — убрать аудитории, у которых много заявок и мало первых оплат. Для этого свяжите рекламную кампанию с первым заказом и сравните не только CPA, но и вклад нового покупателя. Второй — улучшить конверсию после клика: карточку товара, наличие, доставку и оплату. Если стоимость трафика прежняя, больше первых оплат уменьшит CAC; при этом проверьте, не выросли ли скидки и возвраты.

Третий — распределение уже существующих ресурсов команды. В отчёте показывайте media CAC и полную версию, чтобы перераспределение зарплаты по каналам не выглядело настоящим снижением затрат. Четвёртый — удержание: оно не уменьшит исторический CAC, но может ускорить его окупаемость за счёт повторного вклада. Не называйте снижение CAC тем, что на самом деле является ростом LTV.

Наконец, измеряйте следующую порцию бюджета отдельно. Даже если органический канал сейчас дешевле paid_ads, его доступный объём может быть ограничен. Исторический средний CAC описывает прошлую закупку; решение о расширении должно опираться на цену дополнительного клиента и его маржу.

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

Первая — делить бюджет на все заказы, хотя часть сделали старые клиенты. Вторая — делить на регистрации, ещё не ставшие покупателями. Третья — забыть команду и инструменты в числителе и сравнить медийный CAC с полной маржой бизнеса. Четвёртая — учесть промокод и в уменьшенном net_total, и повторно в расходах CAC. Пятая — назвать выручку клиента его LTV и не вычесть товар и выполнение.

Шестая — сравнить сентябрьскую когорту с июльской без выравнивания возраста и окна возвратов. Седьмая — приписать всю органику рекламной кампании по последнему клику без проверки инкрементальности. В учебной базе вообще нет цепочки кликов; это ограничение нельзя обойти арифметикой.

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

Частые вопросы и следующий шаг

«CAC — это цена заказа?» Нет, это цена нового клиента при оговорённом составе расходов; CPO считает заказ. «Включать зарплаты маркетинга?» Для полной управленческой версии — согласованную долю, а медийный CAC сохраняйте отдельно. «Почему CAC paid_ads выше organic?» В нашей модели бюджеты и число новых покупателей различаются; это описательное отношение, а не доказательство причин.

«Через сколько месяцев должен окупиться CAC?» Универсального срока нет: он зависит от денежных обязательств и допустимого риска. У сентябрьского paid_ads наблюдённое пересечение в M1 предварительно из-за поздних возвратов. «Можно ли сравнить CAC разных месяцев?» Да, если определение клиента, состав расходов и горизонт атрибуции совпадают.

Проверьте по своей базе дату первой успешной покупки, а затем соберите одинаковые когорты по каналу. Для группировки и оконных расчётов можно потренироваться в SQL-тренажёре. В рабочем отчёте рядом с CAC оставьте накопленную маржу и пометку о зрелости: одно число бюджета без возврата денег мало что решает.

Продолжить чтение
Вся библиотека