Pipeline Velocity: The speed at which pipeline converts to revenue. Also called Sales Velocity or Deal Velocity.
Formula
Pipeline Velocity = (# Opportunities × Win Rate × Average Deal Size) / Sales Cycle Length Computable definition
The canonical formula in the GASP formula grammar. The MCP server compiles it to SQL over the datasets listed below.
count(field.opportunity_id where field.opportunity_stage not in ('closed_won', 'closed_lost')) * metric.win_rate * metric.average_deal_size / metric.sales_cycle Unit: currency
Notes: Revenue per day. Markdown describes deal size as ACV in the levers list and average deal value in the formula.
Data requirements
Grain: Daily snapshot · Frequency: Daily · Aggregation: snapshot (day) · Staged: no · Main source: CRM.
| Field | Dataset | Type |
|---|---|---|
close_date | opportunity | date |
opportunity_amount | opportunity | decimal |
opportunity_created_date | opportunity | date |
opportunity_id | opportunity | string |
opportunity_stage | opportunity | string |
snapshot_date | opportunity | date |
Example SQL (Postgres)
SELECT (CAST((((SELECT COUNT(opportunity_id) FROM opportunity WHERE snapshot_date = :period_end AND opportunity_stage NOT IN ('closed_won', 'closed_lost')) * ((CAST((SELECT COUNT(opportunity_id) FROM opportunity WHERE snapshot_date = :period_end AND (opportunity_stage = 'closed_won' AND (close_date >= :period_start AND close_date <= :period_end))) AS DOUBLE PRECISION) / NULLIF((SELECT COUNT(opportunity_id) FROM opportunity WHERE snapshot_date = :period_end AND (opportunity_stage IN ('closed_won', 'closed_lost') AND (close_date >= :period_start AND close_date <= :period_end))), 0)))) * ((CAST((SELECT COALESCE(SUM(opportunity_amount), 0) FROM opportunity WHERE snapshot_date = :period_end AND (opportunity_stage = 'closed_won' AND (close_date >= :period_start AND close_date <= :period_end))) AS DOUBLE PRECISION) / NULLIF((SELECT COUNT(opportunity_id) FROM opportunity WHERE snapshot_date = :period_end AND (opportunity_stage = 'closed_won' AND (close_date >= :period_start AND close_date <= :period_end))), 0)))) AS DOUBLE PRECISION) / NULLIF(((SELECT AVG((close_date - opportunity_created_date)) FROM opportunity WHERE snapshot_date = :period_end AND (opportunity_stage = 'closed_won' AND (close_date >= :period_start AND close_date <= :period_end)))), 0)) AS pipeline_velocity From an agent: with the GASP MCP server, call
lookup_metric({ "name": "Pipeline Velocity" }) or generate_query({ "metric": "Pipeline Velocity", "adapter": "<your adapter JSON>" }).
What It Tells You
The theoretical throughput of your sales engine. Improving any component improves velocity.