Как посчитать blended CAC в SQL
DISTINCT в SELECT-запросе?Содержание:
Зачем blended CAC
Paid CAC = расходы на платные каналы / платные пользователи. Blended CAC = все маркетинговые расходы / все клиенты. Blended честнее показывает, «сколько в реальности стоит пользователь»: даже у органики есть своя цена (контент-команда, SEO-инструменты, брендинг). Инвесторы и советы директоров обычно смотрят на blended.
Формула
blended_CAC = (total marketing + sales spend) / (total new customers)В отличие от paid CAC, в знаменатель идут ВСЕ клиенты, включая органику, рефералов и брендовый трафик.
Blended CAC в SQL
WITH spend AS (
SELECT SUM(amount) AS total_spend
FROM marketing_spend
WHERE spend_date >= '2026-04-01' AND spend_date < '2026-05-01'
),
all_new AS (
SELECT COUNT(*) AS new_users
FROM users
WHERE created_at >= '2026-04-01' AND created_at < '2026-05-01'
)
SELECT
s.total_spend,
a.new_users,
s.total_spend / NULLIF(a.new_users, 0) AS blended_cac
FROM spend s, all_new a;Включайте расходы на продажи (sales) — зарплаты, инструменты: реальный CAC для B2B обычно выше, чем выглядит по одному маркетингу.
Paid vs blended
WITH paid AS (
SELECT SUM(amount) AS spend
FROM marketing_spend
WHERE channel_type = 'paid'
AND spend_date >= '2026-04-01' AND spend_date < '2026-05-01'
),
paid_users AS (
SELECT COUNT(*) AS n
FROM users
WHERE utm_source IN ('google_ads', 'facebook_ads', 'tiktok_ads')
AND created_at >= '2026-04-01' AND created_at < '2026-05-01'
),
total_spend AS (
SELECT SUM(amount) AS spend
FROM marketing_spend
WHERE spend_date >= '2026-04-01' AND spend_date < '2026-05-01'
),
all_users AS (
SELECT COUNT(*) AS n FROM users
WHERE created_at >= '2026-04-01' AND created_at < '2026-05-01'
)
SELECT
paid.spend / NULLIF(paid_users.n, 0) AS paid_cac,
total_spend.spend / NULLIF(all_users.n, 0) AS blended_cac,
paid.spend / NULLIF(paid_users.n, 0) - total_spend.spend / NULLIF(all_users.n, 0) AS gap
FROM paid, paid_users, total_spend, all_users;Большой разрыв (paid CAC >> blended) означает, что органика тянет blended вниз. Это как будто «бесплатные» клиенты — но у контента, который их приводит, есть реальная цена.
Помесячная динамика
WITH monthly_spend AS (
SELECT DATE_TRUNC('month', spend_date)::DATE AS month, SUM(amount) AS spend
FROM marketing_spend
GROUP BY DATE_TRUNC('month', spend_date)
),
monthly_users AS (
SELECT DATE_TRUNC('month', created_at)::DATE AS month, COUNT(*) AS n
FROM users
GROUP BY DATE_TRUNC('month', created_at)
)
SELECT
s.month,
s.spend,
u.n AS new_users,
s.spend / NULLIF(u.n, 0) AS blended_cac
FROM monthly_spend s
JOIN monthly_users u USING (month)
ORDER BY s.month;Растущий blended CAC — тревожный сигнал: привлечение дорожает, пора искать новый ход.
Частые ошибки
Ошибка 1. Не включать расходы на продажи. Для B2B продажи — это половина CAC. Если считать только маркетинг, вы занизите цифру вдвое.
Ошибка 2. Считать в знаменателе blended только платных пользователей. Тогда это уже не blended, а paid CAC.
Ошибка 3. Брать полную ставку сотрудника вместо его доли. Если дизайнер занят на 50% в маркетинге и на 50% в продукте — включайте 50% его зарплаты, а не 100%.
Ошибка 4. Игнорировать стоимость инструментов. HubSpot, GA, инструменты атрибуции — всё это идёт в числитель.
Ошибка 5. Сравнивать blended CAC между компаниями без контекста. Стадия компании (ранняя или поздняя), модель роста (PLG или sales-led), сегмент (Enterprise или SMB) — всё это несопоставимо без нормализации.
Связанные темы
- Как посчитать CAC в SQL
- Как посчитать CAC по каналам в SQL
- Как посчитать LTV в SQL
- Как посчитать CAC payback в SQL
FAQ
Paid CAC vs blended — что доверять?
Зависит от того, кто смотрит. Совет директоров и инвесторы ориентируются на blended — он отражает полную стоимость привлечения. Performance-команды смотрят на paid, потому что напрямую управляют только платными каналами.
Какой blended CAC хороший?
Единого числа нет — всё зависит от сегмента. Для SaaS B2C ориентир $50–200, для B2B SMB — $500–2000, для B2B Enterprise — $5K и выше. Сравнивать эти цифры имеет смысл только внутри одного сегмента и стадии.
Включать ли возвраты?
Клиенты, вернувшие деньги (refund), — это чистые потери. Обычно их не включают в число привлечённых клиентов, либо считают net new = new − refunds.
Учитывать затраты на персонал полностью?
Только пропорционально затраченному времени. Если команда маркетинга тратит на ABM-кампанию 40% времени, в CAC этой кампании относите 40% их зарплат.
Бесплатный триал → платный — это CAC?
CAC обычно считают на платящего клиента. А конверсию из бесплатного триала в платного считают отдельной метрикой.