Как посчитать MQL to SQL Conversion в SQL

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

Зачем MQL→SQL Conversion

MQL (Marketing Qualified Lead) → SQL (Sales Qualified Lead) — handoff между marketing и sales. Conversion rate показывает quality MQLs. Низкий = marketing brings unqualified, sales rejecting. Should be 30-50%.

Формула

MQL→SQL = SQL_count / MQL_count × 100%

Cohort by MQL creation month.

Базовый расчёт

WITH cohort AS (
    SELECT
        lead_id,
        mql_at,
        sql_at,
        DATE_TRUNC('month', mql_at) AS cohort_month
    FROM leads
    WHERE mql_at >= CURRENT_DATE - INTERVAL '6 months'
)
SELECT
    cohort_month,
    COUNT(*) AS mql_count,
    COUNT(*) FILTER (WHERE sql_at IS NOT NULL) AS sql_count,
    COUNT(*) FILTER (WHERE sql_at IS NOT NULL)::NUMERIC * 100 / COUNT(*) AS mql_to_sql_pct
FROM cohort
GROUP BY cohort_month
ORDER BY cohort_month;

По source

SELECT
    lead_source,
    COUNT(*) AS mqls,
    COUNT(*) FILTER (WHERE sql_at IS NOT NULL) AS sqls,
    COUNT(*) FILTER (WHERE sql_at IS NOT NULL)::NUMERIC * 100 / COUNT(*) AS conversion_pct
FROM leads
WHERE mql_at >= CURRENT_DATE - INTERVAL '90 days'
  AND mql_at < CURRENT_DATE - INTERVAL '30 days'  -- give time для conversion
GROUP BY lead_source
HAVING COUNT(*) >= 20
ORDER BY conversion_pct DESC;

High-conversion sources — invest more. Low → re-qualify upstream.

Time-to-convert

SELECT
    AVG(EXTRACT(EPOCH FROM (sql_at - mql_at)) / 86400) AS avg_days,
    PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY EXTRACT(EPOCH FROM (sql_at - mql_at)) / 86400) AS median_days,
    PERCENTILE_CONT(0.9) WITHIN GROUP (ORDER BY EXTRACT(EPOCH FROM (sql_at - mql_at)) / 86400) AS p90_days
FROM leads
WHERE mql_at IS NOT NULL
  AND sql_at IS NOT NULL
  AND mql_at >= CURRENT_DATE - INTERVAL '6 months';

Long time-to-convert = slow sales response. Should be < 7 days.

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

По AE / SDR

SELECT
    assigned_sdr,
    COUNT(*) AS mqls_assigned,
    COUNT(*) FILTER (WHERE sql_at IS NOT NULL) AS qualified_to_sql,
    COUNT(*) FILTER (WHERE sql_at IS NOT NULL)::NUMERIC * 100 / COUNT(*) AS conversion_pct,
    AVG(EXTRACT(EPOCH FROM (sql_at - mql_at)) / 86400) FILTER (WHERE sql_at IS NOT NULL) AS avg_qualify_days
FROM leads
WHERE mql_at >= CURRENT_DATE - INTERVAL '90 days'
GROUP BY assigned_sdr
HAVING COUNT(*) >= 20
ORDER BY conversion_pct DESC;

Funnel: MQL → SQL → Opp → Won

WITH cohort AS (
    SELECT lead_id, mql_at FROM leads WHERE mql_at >= CURRENT_DATE - INTERVAL '12 months'
)
SELECT
    DATE_TRUNC('month', c.mql_at) AS cohort,
    COUNT(*) AS mql,
    COUNT(*) FILTER (WHERE l.sql_at IS NOT NULL) AS sql,
    COUNT(*) FILTER (WHERE l.opportunity_created) AS opp,
    COUNT(*) FILTER (WHERE l.won) AS won,
    -- Conversion rates
    COUNT(*) FILTER (WHERE l.sql_at IS NOT NULL)::NUMERIC * 100 / COUNT(*) AS mql_to_sql,
    COUNT(*) FILTER (WHERE l.opportunity_created)::NUMERIC * 100 / NULLIF(COUNT(*) FILTER (WHERE l.sql_at IS NOT NULL), 0) AS sql_to_opp,
    COUNT(*) FILTER (WHERE l.won)::NUMERIC * 100 / NULLIF(COUNT(*) FILTER (WHERE l.opportunity_created), 0) AS opp_to_won
FROM cohort c
JOIN leads l USING (lead_id)
GROUP BY DATE_TRUNC('month', c.mql_at)
ORDER BY cohort;

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

Ошибка 1. Definition of MQL drift. Marketing tightens MQL → less but higher quality. Tracking continuity critical.

Ошибка 2. Sales rejecting valid MQLs. Sales says «not qualified» without проверки. Quarterly review reasons.

Ошибка 3. Window too short. Some MQLs convert 60+ days later. Window cutoff misses.

Ошибка 4. Self-qualified leads. Inbound demo requests = MQL = SQL nearly instant. Skews avg.

Ошибка 5. Re-qualification. Same person, new MQL months later. Dedup carefully.

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

FAQ

Какой MQL→SQL ok?

30-50% — average. 60%+ — well-qualified MQLs. < 20% — definition mismatch.

Time-to-qualify?

< 24 hours для high-intent. < 7 days для general MQL.

MQL ≠ Demo Request?

Yes. Demo Request — высокий intent. Other MQLs (whitepaper, webinar) — lower intent.

Conversion падает — что делать?

  1. Redefine MQL criteria with sales. 2) Improve lead scoring. 3) SDR training. 4) Better content.

MQL → SQL → Opp same?

Sometimes SQL = Opportunity = closed/won/lost. Or SQL → Opp stage. Org-dependent.