# Sales velocity in HubSpot: the four inputs, where each one lives, and a one-line weekly number

https://salesbond.app/blog/sales-velocity-hubspot/
Published: 2026-10-24 · Updated: 2026-10-24

Sales velocity in HubSpot is the number of deals times average deal amount times win rate, divided by sales cycle length in days. HubSpot’s reports show these inputs by rep or team, so to get one number you can trust, pull each from a single pipeline and a single period and write the result as one line you compare week to week.

The formula itself, with worked arithmetic, is in our [Pipedrive](https://salesbond.app/blog/sales-velocity-pipedrive/), [Salesforce](https://salesbond.app/blog/sales-velocity-salesforce/) and [Zoho CRM](https://salesbond.app/blog/sales-velocity-zoho-crm/) versions; here we only deal with what is specific to HubSpot.

## Sales velocity in one line

Velocity is four numbers and a division ( [Forecastio: sales pipeline velocity](https://forecastio.ai/blog/sales-pipeline-velocity); [Salesforce: sales velocity](https://www.salesforce.com/blog/sales/sales-velocity/)). The result is money per day. On its own it means little. Next to last week’s figure, it tells you whether the pipeline is getting faster or slower and which input did it.

HubSpot gives you a head start. The sales analytics suite in Sales Hub has a **Deal velocity** report, the average number of days deals take to close by user or team, and a **Sales velocity** report that shows how long it takes to close and win deals, the percentage of deals that turn into closed won, and the average deal amount ( [HubSpot: sales analytics reports](https://knowledge.hubspot.com/reports/create-sales-reports-in-the-sales-analytics-suite)). Use them for “how is each rep doing?” The weekly line answers a narrower question: one pipeline, one Close date window, a stated rule for won deals with no Amount, and a single figure per day you can put under last week’s.

So the deliverable is a line in a note, the same shape every week:

`Period · Pipeline · deals closed · average deal amount (won) · win rate · median days to close · velocity per day`

A hypothetical week: `Last 90 days · New business · 40 deals closed · $6,000 · 25% · 50 days · $1,200/day`. That is 40 × $6,000 × 0.25 ÷ 50.

## Number of deals and average deal amount: what to pull from HubSpot’s closed deals

Both inputs come from deals in a closed stage, filtered by **Close date** within your period. HubSpot’s default sales pipeline ends in Closed won (100%, Won) and Closed lost (0%, Lost), and every deal pipeline needs a Won and a Lost stage so that sales reports and sales analytics process deals correctly ( [HubSpot: set up and customize pipelines](https://knowledge.hubspot.com/object-settings/set-up-and-customize-pipelines)). A won stage with a custom name still carries the Won status, and HubSpot sets the deal properties **Is closed won** and **Is closed lost** to true automatically when a deal is in those states ( [HubSpot: default deal properties](https://knowledge.hubspot.com/properties/hubspots-default-deal-properties)). Filter on those properties, not on the stage label, and a renamed stage won’t break your count.

For the deal count we take deals that closed in the period, won and lost together. Open deals include whatever nobody has got round to closing, and that count jumps every time someone tidies the board.

Know what this does to the formula. Deals closed times a win rate computed on the same closed deals is simply the number of won deals: 40 × 25% in the example is the 10 deals you won. Velocity then reduces to won amount divided by cycle length. We still keep the two inputs apart, because they fail differently. A drop in deals closed means fewer decisions; a drop in win rate means worse ones. If you’d rather count open qualified deals, as most formula write-ups do, the inputs become independent but the count gets noisier. Either works; changing the definition between weeks doesn’t.

For average deal amount, use the **Amount** property, which HubSpot defines as the total value of the deal in the deal’s currency, and average it across won deals only. Not across open deals, where Amount is a rep’s hope, and not across lost deals, where it was never money. If you sell in more than one currency, average **Amount in company currency** instead. If your team sells subscriptions and Amount holds something other than the number you want to multiply, our [note on ARR, MRR and deal amount in HubSpot](https://salesbond.app/blog/hubspot-arr-mrr-deal-amount/) explains which property to use.

Two property traps. **Weighted amount** is Amount multiplied by Deal probability, and HubSpot updates the probability when a deal moves stage. Never average it for velocity: win rate is already in the formula, and you would be discounting twice. And HubSpot accepts a deal with an empty Amount. A won deal with no Amount is not a small deal; it is a missing value, and it pulls the average down for no reason. Exclude it from the average, keep it in the deal count and ask teh owner to fill the field.

## Win rate and cycle length: reuse the two numbers you already trust

Don’t rebuild these for velocity. Win rate is closed-won deals divided by all closed deals, won plus lost, over the same Close date period. The report and the count-versus-amount question are in [win rate in HubSpot](https://salesbond.app/blog/sales-win-rate-hubspot/). Take the by-count version: mixing a by-amount win rate with an average amount counts the big deals twice.

Cycle length is the time between **Create date** and **Close date**, and HubSpot has it ready as the property **Days to close**, which you can use as a filter when building a custom single object report ( [HubSpot: default deal properties](https://knowledge.hubspot.com/properties/hubspots-default-deal-properties)). Why we take it from won deals only, show the median rather than the mean, and distrust imported dates is in [sales cycle length in HubSpot](https://salesbond.app/blog/sales-cycle-length-hubspot/).

One caveat matters for velocity specifically. Create date is set automatically by HubSpot, but users can edit it. A team that creates deals late, at proposal stage, has a short cycle and a flattering velocity. The number is true; it just describes a shorter process than the one your reps run. Write down at which stage your team creates deals and keep that in the note.

## One pipeline, one period: how to keep the four inputs comparable

Every deal in HubSpot carries a **Pipeline** property, and the pipeline determines which stages the deal moves through ( [HubSpot: default deal properties](https://knowledge.hubspot.com/properties/hubspots-default-deal-properties)). Hence one pipeline per line. A renewals pipeline with a ninety-percent win rate and a ten-day cycle averaged with a new-business pipeline produces a number that describes neither. Run two pipelines, keep two lines.

The period rule is the same for all four inputs: filter on Close date, same window everywhere. A deal count for last week multiplied by a win rate for the last quarter mixes two different populations. We use a rolling window long enough to hold a real number of closed deals for that pipeline, and write the window into the line.

The rule quietly fixes one more thing. HubSpot defines Close date as “the day the deal is expected to close, or was closed”, and when a deal moves into a closed-won or closed-lost stage it sets Close date to that day, unless someone has turned the automation off in pipeline settings. On open deals it is a forecast, on closed deals it is history. Since every filter above starts from closed deals, a rep pushing a close date out by a month cannot touch the line.

## Reading the week: which input moved

Put this week’s line under last week’s and look at the four inputs before you look at the result.

![Two stacked weekly velocity lines with placeholder values; on this week's line the win rate cell is flagged as the input that moved](https://salesbond.app/wp-content/uploads/2026/10/sales-velocity-hubspot-2.png)

Velocity fell and deals closed fell: fewer deals reached a decision, so ask about stuck deals, not pricing. Velocity fell and the average deal amount fell: check whether Amount is empty on some won deals before concluding the team is discounting. Velocity fell and the win rate fell: open the lost deals from the period. Velocity fell and the median days to close grew: did a few old deals finally close, a one-off, or did the whole distribution shift?

Then say one sentence at the stand-up, naming the input. “Velocity is down because win rate dropped” is a sentence a rep can act on. “Velocity is down” is not.

A rising number gets the the same reading. A jump from one large won deal is good news and bad data; it reverses next period. A jump from a shorter cycle while the win rate holds is a change in how the team sells, and that one is worth asking about.

## When the number isn’t worth quoting

Some weeks the honest move is to leave the line blank.

Too few closed deals in the window. The win rate is a coin flip and the average amount is one customer’s budget. Widen the window or wait.

Amount missing on a meaningful share of won deals. The average then measures data entry, not selling. A filter on Amount is unknown lists the exact records, so fix those first.

A pipeline that was just restructured. The cleanup usually closes a batch of deals as lost, and that week’s win rate describes the cleanup, not the team.

Imported history. Deals brought in from a previous CRM carry whatever Create date the import gave them, and Days to close inherits the damage. Keep them out of the cycle input until native deals dominate the window.

None of this needs a tool: a saved report per input and a note with seven columns is enough, and for most HubSpot teams that is where we would start. A disclosure: we build SalesBond, a sales management layer on top of the CRM a team already uses; we started with Pipedrive. Its Deal Health checks every deal against more than 20 rules on activity, progression, data and forecast, so problems surface deal by deal before they reach your weekly line. If the inputs are what worry you, [check your CRM with SalesBond](https://salesbond.app/).
