Short answer: decide which of three velocity numbers you mean (time in each stage, days to close, or the sales velocity formula). Check that stage calculated properties are switched on for every stage in the pipeline. Start from HubSpot’s prebuilt sales reports, which already answer the common questions. Build a custom report only for the cut they do not give you, such as time in stage by deal source or segment. Before anyone reads the numbers, check the four traps in section 5: records still in a stage, stage skips, re-entry, and the report’s date range.
For RevOps, sales ops and marketing ops leads on HubSpot Professional or Enterprise who have been asked “where do deals get stuck?” Last reviewed October 2026.
1. Decide which velocity you mean
“Velocity” gets used for three different numbers, and teams argue past each other when they mean different ones. Write down which one the question needs before you open the report builder.
| What people say | What it actually is | The question it answers |
|---|---|---|
| “Deals are stuck in Proposal” | Average time spent in each stage | Where does the pipeline slow down? |
| “Our cycle is getting longer” | Average days from create to close | How long does a deal take end to end? |
| “Velocity is down” | Sales velocity: opportunities × win rate × average deal size ÷ cycle length | How much revenue is the pipeline producing per day? |
The first is a diagnostic: it tells you which stage to look at. The second is a trend line. The third is a compound number, and when it moves you still have to decompose it into its four inputs to know why. Most “where are deals stuck” requests need the first, and most board questions need the third.
2. Check the stage calculated properties before anything else
Custom stage reporting in HubSpot reads from a set of read-only properties that HubSpot calls stage calculated properties. For each pipeline stage, a deal carries:
- Date entered and Date exited the stage;
- Latest time in the stage (the most recent visit);
- Cumulative time in the stage (all visits added together);
- plus Date entered current stage and Time in current stage.
Three facts from HubSpot’s documentation (last updated July 2026) matter here:
- They are a Professional and Enterprise feature. On Starter you get the prebuilt reports in section 3, but not these properties to build your own cuts.
- They populate retroactively from existing data. Switching them on gives you history, not just data from today.
- They are off by default for new pipelines and new stages. Someone with property-settings permission has to switch them on. A pipeline that gained a stage last quarter can have a gap exactly where the new stage sits.
Check: open a deal that closed recently and passed through every stage. Look for a Date entered value on each stage. A blank on a stage the deal clearly passed through means the property is off, or the deal skipped that stage (see section 5).
The properties are read-only. You cannot correct a wrong date by hand. If a bulk import or a migration moved hundreds of deals into a stage on the same afternoon, that afternoon is now their entry date. Find those dates before you trust any average.
3. Start with the prebuilt reports
HubSpot’s sales analytics reports (Reporting → Reports → Sales, available from Sales Hub Starter) already answer most stage and velocity questions. Building a custom report first usually means rebuilding one of these, less well.
| Question | Prebuilt report | Notes |
|---|---|---|
| Where do deals slow down? | Time spent in deal stage | Average time per stage, by rep or team |
| How many deals move from stage to stage? | Deal funnel | Conversion between stages, time in each stage, and stage skips. Customising it needs Enterprise |
| How long does a deal take to close? | Deal velocity | Average days to close, by rep or team |
| Is the pipeline producing more or less revenue per day? | Sales velocity | Shows time to close, win rate and average deal size together |
| What changed this week? | Deal change history | Stage, amount and close-date changes, plus new deals |
| What did the pipeline look like on a past date? | Historical snapshots | Deal counts at past points in time, by stage or amount |
| Which deals keep slipping? | Deal push rate | Deals whose close date moved out of the period |
The pattern we use: Time spent in deal stage to find the slow stage, Deal funnel to see whether the slow stage also leaks, and Deal change history filtered to that stage to read the individual deals. Three reports, one question, and nothing custom yet.
4. Build a custom report for the cuts the prebuilt ones lack
The prebuilt reports split by rep or team. They do not split by deal source, segment, product line or region, and those are usually what marketing and finance ask for. That is when you build your own.
- Reports → Create report → Custom report builder, with Deals as the primary data source.
- Add the property you want to cut by (for example, deal source or segment) as the dimension.
- Add Cumulative time in “[stage]” for the stage you care about as the measure.
- Check the aggregation. In our own test portal, a numeric column arrived with its aggregation set to None and turned into a grouping dimension: three deals became three rows instead of one average. Another numeric field in the same builder defaulted to Sum. Set it to Average and read the label every time.
- Filter to one pipeline. Stage properties are per stage, and two pipelines with a stage called “Proposal” are two different stages.
- Filter to deals that exited the stage within your period, not deals created in it (see section 5).
For days to close by segment, the same build works with a closed date minus create date, or with the Days to close property, filtered to closed-won.
5. The four traps that make a healthy pipeline look slow (or a slow one look fine)
1. Records still in a stage have no cumulative time yet. HubSpot only settles Latest and Cumulative time when a deal leaves a stage. An average of Cumulative time in “Negotiation” therefore describes only deals that already got out. The ones still stuck are invisible. Pair it with Time in current stage on open deals, and look at the open deals sitting longer than the average.
2. Stage skips create blanks, not zeros. A deal that jumps from Discovery to Contract never entered the stages in between, so it has no time for them. Your average for those stages comes from fewer deals than you think. The Deal funnel report shows skips. If a third of deals skip a stage, ask whether the stage is real.
3. Re-entry inflates cumulative time. A deal that went Proposal → Negotiation → back to Proposal → Negotiation adds up both visits in Cumulative time. Latest time shows only the last visit. Neither is wrong, but they answer different questions. Choose one and label the report with it.
4. The date range is a filter, not a label. A report filtered to “deals created this quarter” can show only deals young enough to have been created and closed inside the quarter, which makes your cycle look shorter than it is. Filter on the date the deal left the stage (Date exited) or closed, and widen the window until the numbers stop moving.
6. Checks to run this week
- Every stage in every active pipeline has its stage calculated properties switched on.
- No single day holds an unusual share of Date entered values for any stage (that is an import or migration date, not real history).
- The deal count in your stage report matches a plain deal export with the same filters. If they disagree, something dropped silently.
- You know the stage-skip rate for each stage from the Deal funnel report.
- Open deals in each stage are listed with Time in current stage, sorted longest first, and someone owns that list.
- Each velocity report says in its title which velocity it measures and which date it filters on.
7. What to put in front of leadership
One number per stage (average days in stage, last two quarters side by side), the stage-skip rate next to it, and one sentence on what to do about the slowest stage. Every view should end in a verb: tighten the exit criteria, retire the stage, add a sales step, or leave it alone. A dashboard of averages with no recommendation gets read once.
If the stage report and the board deck disagree, start with why the pipeline in the deck never matches the CRM export. If finance is asking whether the forecast can be trusted at all, the five numbers a CFO should pull from the CRM is the companion check. If you have just taken over the portal, read the first 30 days with an inherited HubSpot portal before you change any pipeline stages.
FAQ
What is the difference between deal velocity and sales velocity in HubSpot?
Deal velocity is the average number of days it takes to close a deal. Sales velocity combines the number of opportunities, the win rate, the average deal size and the cycle length into revenue produced per day. HubSpot has a prebuilt report for each.
Why is “Cumulative time in stage” blank on some deals?
Either the deal is still in that stage (the value settles when it leaves), it skipped the stage, or stage calculated properties were not switched on for that stage.
Can a wrong “Date entered” value be fixed?
No. Stage calculated properties are read-only. Exclude the affected deals from velocity reports, or report from a date after the import that created them.
Does stage velocity reporting need Enterprise?
No. The prebuilt sales reports are available from Sales Hub Starter, and the stage calculated properties for custom reports from Professional. Customising the Deal funnel report needs Enterprise.
Want a second pair of eyes on your pipeline reporting? A read-only HubSpot audit covers stage definitions, properties and the reports leadership reads. Talk to us.