Как посчитать blended CAC в SQL

Закрепи формулу blended cac в Карьернике
Запомнить надолго — 5 коротких сессий с задачами на эту тему. Бесплатно
Тренировать blended cac в Telegram

Зачем blended CAC

Paid CAC = расходы paid каналов / paid users. Blended CAC = все маркетинг-расходы / все customers. Blended честнее показывает «сколько в реальности стоит юзер»: даже у organic есть costs (контент-команда, SEO tools, branding). Инвесторы и борды обычно смотрят blended.

Формула

blended_CAC = (total marketing + sales spend) / (total new customers)

В отличие от paid CAC, в знаменатель идут ВСЕ customers, включая organic, referral, branded.

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 обычно выше, чем выглядит только по marketing.

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;

Big gap (paid CAC >> blended) — organic тянет вниз blended. Это «бесплатные» customers, но реальная цена контента.

Закрепи формулу blended cac в Карьернике
Запомнить надолго — 5 коротких сессий с задачами на эту тему. Бесплатно
Тренировать blended cac в Telegram

Помесячная динамика

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 — flag: рост стоит дороже, нужен новый ход.

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

Ошибка 1. Не включать sales costs. Для B2B sales — половина CAC. Если считаете только marketing, занижение в 2 раза.

Ошибка 2. Считать только paid users в знаменатель blended. Это уже не blended, это paid CAC.

Ошибка 3. Включать full FTE costs частично. Если у вас designer 50% marketing, 50% product — include 50%, не 100%.

Ошибка 4. Игнорировать tooling costs. HubSpot, GA, attribution tools — все идут в numerator.

Ошибка 5. Сравнивать blended CAC между компаниями без контекста. Стадии (early vs late stage), модель (PLG vs sales-led), сегмент (Enterprise vs SMB) — несравнимо без нормализации.

Связанные темы

FAQ

Борды и инвесторы — blended. Performance-команды — paid (контролируют только это).

Какой blended CAC хороший?

SaaS B2C: $50-200. B2B SMB: $500-2000. B2B Enterprise: $5K+.

Включать ли refunds?

Customers с refund = чистые потери. Обычно не включают в knowledge base (или считают net new = new − refunds).

Headcount costs полностью?

Pro-rata по времени. Если marketing team 40% время на ABM-кампанию — 40%.

Free trial → paid — это CAC?

CAC обычно считают per paid customer. Trial conversion — отдельно.