Skip to main content
In B2B sales, deals are rarely made by a single individual. A buying committee of multiple stakeholders is the norm, and the level of engagement across this committee can be a strong predictor of sales success. By measuring this, you can better forecast deals and understand the health of your pipeline. This guide provides a model to analyze the impact of buying committee engagement on sales outcomes. It answers the question: “How does the number of unique stakeholders from a company engaging with marketing content before a demo affect the eventual sales cycle length and win rate?”

The Result

The query below buckets accounts by the number of engaged stakeholders and calculates the average sales cycle and win rate for each bucket. This reveals the relationship between broader account engagement and sales efficiency.
num_stakeholdersavg_sales_cycle_dayswin_rate
14512%
2-33228%
4-52545%
6+2255%
The data clearly indicates that a higher number of engaged stakeholders correlates with a shorter sales cycle and a higher win rate. Accounts with 4-5 stakeholders close 44% faster and are almost 4x more likely to be won than accounts with a single engaged stakeholder.

The Queries

The query below joins marketing engagement data with sales data to calculate these metrics. It counts unique stakeholders who interact with marketing content before a demo is requested for each account.
WITH DealOutcomes AS (
    -- Get deal outcomes and cycle lengths for all customers who requested a demo
    SELECT
        customer,
        MIN(CASE WHEN activity = 'requested_demo' THEN ts END) as demo_ts,
        MIN(CASE WHEN activity = 'created_subscription' THEN ts END) as win_ts
    FROM customer_stream
    WHERE customer IS NOT NULL
    GROUP BY 1
    HAVING demo_ts IS NOT NULL
),
AccountMetrics AS (
    -- Calculate metrics for each account: win status, sales cycle, and number of pre-demo stakeholders
    SELECT
        do.customer,
        do.win_ts IS NOT NULL AS is_win,
        DATEDIFF('day', do.demo_ts, do.win_ts) AS sales_cycle_days,
        COALESCE(COUNT(DISTINCT CASE WHEN cs.ts < do.demo_ts THEN cs.anonymous_customer_id END), 0) AS num_stakeholders
    FROM DealOutcomes do
    LEFT JOIN customer_stream cs ON do.customer = cs.customer
        AND cs.activity = 'visited_page' 
        AND cs.features:CHANNEL IN ('paid_social', 'paid_search', 'organic', 'email', 'attended_webinar')
    GROUP BY 1, 2, 3
),
BinnedAccounts AS (
    -- Bucket accounts by the number of stakeholders
    SELECT
        *,
        CASE
            WHEN num_stakeholders = 1 THEN '1'
            WHEN num_stakeholders BETWEEN 2 AND 3 THEN '2-3'
            WHEN num_stakeholders BETWEEN 4 AND 5 THEN '4-5'
            WHEN num_stakeholders >= 6 THEN '6+'
            ELSE '0'
        END AS stakeholder_bucket
    FROM AccountMetrics
)
SELECT
    stakeholder_bucket,
    AVG(sales_cycle_days) AS avg_sales_cycle_days,
    (COUNT(CASE WHEN is_win THEN 1 END) * 1.0 / COUNT(*)) AS win_rate
FROM BinnedAccounts
GROUP BY 1
ORDER BY 1;