xmetric / Use cases

Analyze HubSpot Deal Stage Velocity and Bottlenecks from CSV

You can analyze HubSpot deal stage velocity and spot pipeline bottlenecks by exporting your HubSpot Deals list with cumulative stage duration columns to CSV and opening it in xmetric. Calculated fields convert HubSpot's stage time properties into days, a median shows cycle time per stage, and an LOD benchmark flags stalled deals. Build it in the free xmetric app (/app/); nothing is uploaded.

Chart your own CSV

Chart your export here

Drop a CSV here. xmetric reads every row in this browser and draws a first chart you can regroup or change the measure of. Nothing is uploaded.

No file loaded yet. You can also drop a CSV on this box.

How to export HubSpot deal stage duration columns

HubSpot automatically tracks timestamp and duration properties for every stage in your pipeline (available on Professional and Enterprise subscriptions as of October 2026): Date entered [stage ID], Date exited [stage ID], Latest time in [stage ID], and Cumulative time in [stage ID].

  1. In HubSpot, go to CRM > Deals and click Edit columns in the top right of the table.
  2. Search for Cumulative time in and check every stage in your pipeline, plus Days to close, Create Date, Close Date, Deal Stage, Amount, and Deal Owner.
  3. Click Export, choose CSV, and select Properties and associations in your view (the default option under Customize).
HubSpot Export ColumnRaw Export FormatHow xmetric Uses It
Record ID & Deal NameStringIdentifies individual stalled deals
Deal StageStringCurrent active stage or closed status
Deal OwnerStringCompares cycle velocity across reps
AmountCurrencyWeights velocity by deal size tier (SMB vs. Mid-Market vs. Enterprise)
Days to closeInteger / FloatTotal elapsed days from Create Date to Close Date
Cumulative time in [Stage Name]Duration or SecondsTotal cumulative time spent in each stage, even if a deal moved backward and re-entered
Date entered [Stage Name]TimestampCalculates days sitting in the current open stage

Three deal velocity formulas and SQL equivalents

1. Median vs. Average Days per Stage (Avoiding Outlier Skew)

One neglected deal that sat in "Proposal Sent" for 240 days before being closed-lost will distort your HubSpot average stage duration. Always compare MEDIAN days in stage between Closed Won deals and Closed Lost deals.

xmetric / Tableau formula (converting seconds/hours to days):

MEDIAN([Cumulative time in Proposal (Seconds)] / 86400.0)

SQL equivalent:

SELECT
  "Deal Stage" AS outcome_group,
  COUNT(*) AS deals,
  ROUND(MEDIAN("Cumulative time in Discovery" / 86400.0), 1) AS median_days_discovery,
  ROUND(MEDIAN("Cumulative time in Demo" / 86400.0), 1) AS median_days_demo,
  ROUND(MEDIAN("Cumulative time in Proposal" / 86400.0), 1) AS median_days_proposal,
  ROUND(MEDIAN("Days to close"), 1) AS median_total_days_to_close
FROM hubspot_deals
WHERE "Deal Stage" IN ('Closed Won', 'Closed Lost')
GROUP BY 1;

2. Stalled Open Deal Detector (FIXED LOD by Stage Benchmark)

Flag any currently open deal that has already spent more days in its current stage than 75% of historically Closed Won deals ever spent in that stage.

xmetric / Tableau formula ([Won Stage Benchmark Days]):

{ FIXED : PERCENTILE(IF [Deal Stage] = 'Closed Won' THEN [Days in Current Stage] END, 0.75) }

xmetric / Tableau formula ([Stalled Risk Flag]):

IF [Deal Stage] != 'Closed Won'
   AND [Deal Stage] != 'Closed Lost'
   AND DATEDIFF('day', [Date entered Current Stage], TODAY()) > [Won Stage Benchmark Days]
THEN 'Stalled (>P75 Won Cycle)'
ELSE 'On Track'
END

3. Sales Velocity Dollars per Day

Combine deal count, average deal value (Amount), win rate, and median sales cycle length into the classic RevOps velocity metric: how many dollars of new ARR each rep's pipeline produces per day.

xmetric / Tableau formula:

(COUNTD([Record ID]) * AVG([Amount]) * [Win Rate])
/ NULLIF(MEDIAN([Days to close]), 0)

Limits of HubSpot's native stage time reports

Questions people ask

Why do Closed Lost deals sometimes show a shorter cycle time than Closed Won deals?

Only disqualifications in Stage 1 ("Discovery") close fast. By Stage 3 ("Proposal" or "Negotiation"), Closed Lost deals usually linger 2x to 3x longer than Closed Won deals because reps hesitate to close out dead opportunities. Grouping velocity by stage in xmetric makes this crossover visible immediately.

Can I filter velocity by deal size (SMB vs. Enterprise)?

Yes. Write a calculated tier (IF [Amount] < 15000 THEN 'SMB' ELSEIF [Amount] < 50000 THEN 'Mid-Market' ELSE 'Enterprise' END) in the formula playground, then drag the tier onto Columns in the xmetric app (/app/).

Is our HubSpot deal data kept private?

Yes. Files you drop are read in your browser and nothing is uploaded, unless you sign in and save a workbook online. The app also imports Excel (.xlsx) exports.

Drop your HubSpot deals.csv above for a first chart, then build the stage velocity view and stalled deals list in the xmetric app.