Как посчитать pipeline velocity в SQL

Проверь себя · 1/3разбор после ответа
Есть выражение для маржи: revenue - cost. Что получится, если revenue = 1000, а cost = NULL? И какой вариант устойчиво вернёт 1000 при пропущенном cost?

Зачем pipeline velocity

Pipeline velocity — скорость, с которой выручка прокачивается через воронку продаж. Объединяет 4 фактора: число сделок, их размер, win rate и длительность цикла. Чтобы вырастить выручку, можно повлиять на любой из них: больше сделок, крупнее сделки, выше win rate или короче цикл. Velocity — единая метрика, которая отражает результат всех четырёх.

Формула

pipeline_velocity = (open_deals × avg_deal_size × win_rate) / avg_cycle_length_days

Результат — выручка в день. Например, 100 сделок × $20k × 30% / 60 дней = ожидаемые $10k выручки в день.

Velocity в SQL

WITH metrics AS (
    SELECT
        COUNT(*) AS open_deals,
        AVG(deal_size) AS avg_deal_size,
        SUM(CASE WHEN status = 'won' THEN 1 ELSE 0 END)::NUMERIC
        / NULLIF(SUM(CASE WHEN status IN ('won', 'lost') THEN 1 ELSE 0 END), 0) AS win_rate,
        AVG(EXTRACT(EPOCH FROM (closed_at - created_at)) / 86400)
            FILTER (WHERE status IN ('won', 'lost')) AS avg_cycle_days
    FROM deals
    WHERE created_at >= CURRENT_DATE - INTERVAL '180 days'
)
SELECT
    open_deals,
    avg_deal_size,
    win_rate,
    avg_cycle_days,
    open_deals * avg_deal_size * win_rate / NULLIF(avg_cycle_days, 0) AS pipeline_velocity_per_day
FROM metrics;

По сегментам

SELECT
    customer_segment,
    COUNT(*) FILTER (WHERE status = 'open') AS open_deals,
    AVG(deal_size) AS avg_size,
    SUM(CASE WHEN status = 'won' THEN 1 ELSE 0 END)::NUMERIC
    / NULLIF(SUM(CASE WHEN status IN ('won', 'lost') THEN 1 ELSE 0 END), 0) AS win_rate,
    AVG(EXTRACT(EPOCH FROM (closed_at - created_at)) / 86400)
        FILTER (WHERE status IN ('won', 'lost')) AS cycle_days
FROM deals
WHERE created_at >= CURRENT_DATE - INTERVAL '180 days'
GROUP BY customer_segment
HAVING COUNT(*) >= 20;

Enterprise: низкая velocity (длинные циклы), крупные сделки. SMB: высокая velocity, мелкие сделки. Mid-market — золотая середина.

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

Как повысить velocity

Разложим velocity на факторы — какой из них тормозит:

SELECT
    DATE_TRUNC('quarter', created_at)::DATE AS quarter,
    COUNT(*) AS deals,
    AVG(deal_size) AS avg_size,
    AVG(CASE WHEN status = 'won' THEN 1 ELSE 0 END) AS win_rate,
    AVG(EXTRACT(EPOCH FROM (closed_at - created_at)) / 86400) AS cycle_days
FROM deals
WHERE created_at >= CURRENT_DATE - INTERVAL '12 months'
GROUP BY DATE_TRUNC('quarter', created_at)
ORDER BY quarter;

Растёт год к году (YoY) — за счёт каких компонентов? Если растёт только длина цикла — проблема в обучении команды продаж. Если падает win rate — проблема в продукте.

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

Ошибка 1. Считать win rate только по открытым сделкам. Win rate нужно считать по закрытым сделкам. Открытые ещё не закрыты, поэтому включать их нельзя.

Ошибка 2. Включать в цикл зависшие сделки. Сделка висит 12 месяцев и перекашивает среднее. Обрезайте цикл сверху (например, 90 днями) или логарифмируйте.

Ошибка 3. Velocity без сегментов. Общая velocity по Enterprise и SMB вместе — плохой сигнал: сегменты слишком разные. Считайте по каждому отдельно.

Ошибка 4. Прогнозировать через velocity. Velocity — описательная метрика, а не прогноз. Простое перемножение факторов расходится с реальностью.

Ошибка 5. Деление на нулевой цикл. Если цикл равен 0 дней (заказали и купили сразу), деление ломается. Оборачивайте знаменатель в NULLIF.

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

FAQ

Какой velocity «хороший»?

Зависит от сегмента. Для SMB норма — около $50k в день на одного менеджера, для Enterprise — $5–10k в день на менеджера. Сравнивать имеет смысл только внутри одного сегмента.

Velocity vs ARR?

Velocity — это ежедневный run rate выручки, то есть сколько выручки воронка приносит в день. ARR — та же выручка, но в пересчёте на год. По сути это одна величина в разных масштабах времени.

Можно ли увеличить velocity?

Да, есть четыре рычага: больше сделок (генерация пайплайна), крупнее сделки (апселл), выше win rate (обучение продаж) и короче цикл (оптимизация процесса).

Velocity в разрезе менеджеров?

Да, считать velocity по каждому менеджеру полезно: у топовых она в 2–3 раза выше средней. Это прямая подсказка, кого стоит подтянуть через коучинг.

Обновлять velocity ежедневно?

Нет, для отслеживания тренда достаточно считать раз в месяц или в квартал. Ежедневные значения слишком шумные и скачут от случайных сделок.