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:
- The close date property's history — every change to the date with a timestamp.
- 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.
- Create the custom propertySettings → Properties → Deals → Create property. Name:
close_date_push_count. Type: Number. Default value: 0. - Build the increment workflowWorkflows → Create → Deal-based. Trigger:
Close datechanged. - 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. - Action: increment the counterIf branch matched: increment
close_date_push_countby 1. Operations Hub Pro+ has a native 'increment number' action; below that tier you'd need a webhook to an external service. - Build the saved viewSales → Deals → Create view. Filter:
close_date_push_count >= 3ANDDeal stage is not closed won/lost. Save as 'Pushed 3+ times'. - Tag in pipeline reviewAdd
close_date_push_countas 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
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.
closedate (history) · HubSpot deal property