Pipeline riskPushed 3+ times rule

Which deals have had their close date pushed multiple times?

Why repeat-pushed close dates are the cleanest signal of a dead deal

Sales reps have one universal habit when a deal stalls: they push the close date. It's the path of least resistance. Marking the deal lost shows up against their loss-rate. Pushing the date keeps the deal "alive" and pushes the awkward conversation to next month.

Once you start tracking close-date pushes over time, the pattern is consistent: deals pushed once close at near-normal rates. Deals pushed twice close at significantly lower rates. Deals pushed three or more times close at nearly zero. The third push is essentially the deal's epitaph.

The tactical use: a manager scanning for "deals to mark lost so we can recover the rep's time and clean the forecast" should look at 3+ pushers first. The strategic use: tracking which reps push more than average is a coaching signal — they're either taking on deals that aren't qualified, or they're avoiding the loss conversation.

What pushes look like in HubSpot's property history

Two pieces of data:

  1. The close date property's history — every change to the date with a timestamp.
  2. The number of distinct future-direction changes. A push counts when the new date is later than the previous date. Pulls (the date moving earlier) don't count and are rare anyway.

Three or more pushes is the threshold most teams use. Some get more aggressive (2+) for late-stage deals.

Why the custom-property approach has a backfill blind spot

The custom-property approach has gotchas:

Workflow has to be in place before the pushes happen. It can't backfill. Deals already pushed three times before you set up the property show as close_date_push_count = 0 until they get pushed a fourth time.

HubSpot's "increment a number property" workflow action requires Operations Hub Pro+. Below that tier, you can't natively do +1 on a property — you'd need a webhook to an external service that does the math.

Bulk imports reset the count. A spreadsheet upload that updates close dates for many deals at once will fire the workflow, possibly multiple times, possibly not — depending on how HubSpot's import mechanism processes them. The count drifts.

The deeper friction is that pushing the close date isn't always bad. Real deals slip for legitimate reasons — buyer's procurement queue, fiscal calendar misalignment, an exec change. The 3+ threshold is a heuristic that catches most dead deals at the cost of some false positives. Reps appealing the alert with "no this one's real" is a recurring conversation, and the manager has to actually look at each case rather than trust the rule blindly.

The manual HubSpot recipe

One custom property + one workflow + one saved view. Operations Hub Pro+ required for the cleanest implementation; below that tier you're building external webhooks.

HubSpot recipe~15 minutes to set up · requires Operations Hub Pro+ for property increment
  1. Create the custom propertySettings → Properties → Deals → Create property. Name: close_date_push_count. Type: Number. Default value: 0.
  2. Build the increment workflowWorkflows → Create → Deal-based. Trigger: Close date changed.
  3. Branch on directionAdd an If/then branch: Close date is later than (previous value). The 'previous value' check is what filters out pulls (date moved earlier) and bulk imports.
  4. Action: increment the counterIf branch matched: increment close_date_push_count by 1. Operations Hub Pro+ has a native 'increment number' action; below that tier you'd need a webhook to an external service.
  5. Build the saved viewSales → Deals → Create view. Filter: close_date_push_count >= 3 AND Deal stage is not closed won/lost. Save as 'Pushed 3+ times'.
  6. Tag in pipeline reviewAdd close_date_push_count as a column on every deal pipeline view. Reps see their pushers; managers see the team total. The metric becomes part of weekly forecasting hygiene.

What Bloated does instead

The Pushed 3+ times rule

Every push, every deal, every history backfill — no Operations Hub Pro+ required.

Bloated walks the CRM Search API with propertiesWithHistory server-side, counting future-direction close-date changes for every open deal. Backfill works retroactively — you see the real pusher cohort the day you turn it on, not three months later. Pair with the suggested action: mark lost (with reason logged), push with manager sign-off, or escalate to exec sponsor.

Reads: closedate (history) · HubSpot deal property
16deals
Close date pushed 3×Field: closedate (history) · HubSpot deal property
G
Globex – Renewal
Pushed 4× over 6moLikely zombie
$148K
A
Acme – Q1 Expansion
Pushed 3× in last 90dLate-stage stuck
$94K
N
Northwind – Pilot
Pushed 5× over 12moMark lost
$48K
H
Hooli – Annual
Pushed 3× in 30dRapid pusher
$112K
Run a free scan7 days free · no card · cancel any time