Pillar guide

Revenue Leakage: Where It Hides in HubSpot and How to Stop It

Most B2B companies are not short of pipeline — they are short of discipline around the revenue that already exists inside their CRM. This guide gives you a precise definition, a taxonomy of the seven places it hides, a defensible way to size it, and a 30-day plan to start recovering it.

14 minute read · written by knovaly

What revenue leakage actually is

Revenue leakage is revenue that a company has already earned the right to, through a signed contract, an existing customer relationship, an advanced sales conversation, or a qualified inbound interest, and which is not collected or converted because a process step failed to fire — not because the customer said no. It is a distinct category from three things it is routinely confused with, and the confusion is expensive because it leads finance and sales leadership to solve the wrong problem.

Leakage versus churn

Churn is a lagging, binary billing event: a subscription lapses or a contract is not renewed. By the time it appears in a churn report, the window to intervene has already closed. Leakage is the earlier, CRM-visible condition — a renewal date (closedate on the renewal deal) passing with no owner activity logged in notes_last_contacted, a decision-maker going quiet for 60 days — that produces churn as one of several possible outcomes. If you only measure churn, you are measuring the autopsy, not the vital signs.

Leakage versus discounting

Discounting reduces the value of revenue that does close; it's visible immediately in amount versus the original quoted value and is a pricing and negotiation issue. Leakage is revenue that never closes, or a relationship that never gets re-approached, at any price. A company can have disciplined, minimal discounting and still leak heavily through dormant accounts and unrevisited lost deals — the two problems require entirely different fixes.

Leakage versus missed quota

Missing quota is an aggregate output measure that can result from a weak quarter, poor territory design, under-resourcing, or genuine market conditions — none of which is necessarily leakage. Leakage is specific and diagnosable: it points to named deals, named accounts and named CRM records where a defined action should have happened and did not. A rep can hit quota this quarter while a substantial dormant-account leak sits untouched in their book, quietly building a problem for next quarter.

The seven leak points

In portal after portal, leakage concentrates in seven recurring places. Each has a distinct HubSpot signature, a distinct owner, and a distinct fix — which is why a single "clean up the pipeline" initiative rarely works. You have to work each leak point on its own terms.

  1. Stalled open deals. Deals sitting in a mid-funnel dealstage for far longer than your historical median time-in-stage, with hs_lastmodifieddate moving (someone touched a field) but hs_last_sales_activity_timestamp static (no one actually spoke to the buyer). These are deals that look alive in a pipeline report and are functionally dead.
  2. Unmanaged renewals and rebookings. Renewal deals with a closedate inside the next 60–90 days and no logged next step, or worse, no renewal deal created at all despite an active contract. These are the highest-value, fastest-to-recover leak in almost every portal we've examined, because the relationship is warm and the decision is comparatively low-friction.
  3. Dormant relationships. Contacts and companies in an active lifecyclestage (customer, opportunity) with no engagement — no email opens, no meetings, no notes_last_contacted update — for 90-plus days. The relationship exists on paper but has gone cold operationally.
  4. Unrevisited lost deals. Deals marked closedlost (hs_is_closed = true, hs_is_closed_won = false) where the loss reason was timing, budget or "went quiet" rather than a competitive loss or a hard product gap — and which have not been reapproached in the 6–18 months since. Timing objections resolve; nobody goes back to check.
  5. Unquoted line items and expired quotes. Deals where a quote was generated but never sent, or sent and never followed up before its expiration date, leaving genuine buying intent to evaporate on an administrative technicality rather than a commercial decision.
  6. Ownership handover gaps. Deals and accounts where hubspot_owner_id was reassigned — through territory changes, promotions or attrition — and the new owner has not logged a first touch within a reasonable window. The account doesn't churn dramatically; it just slowly stops being worked.
  7. Silent process leaks. Inbound leads and form fills that entered the CRM correctly but were never assigned, or were assigned and not contacted within your stated SLA — commonly visible as a gap between createdate and the first logged activity on the associated contact or deal.

Leak taxonomy at a glance

Before you can size or prioritise leakage, you need a shared reference table that every stakeholder — sales, RevOps, finance — agrees to use. This is the version we recommend teams adopt as their internal standard.

The seven leak points, at a glance
Leak typeSignal in HubSpotTypical sizeRecoverabilityFirst actionTime to recover
Stalled open dealshs_lastmodifieddate moves, hs_last_sales_activity_timestamp static, 45+ days in stageMedium-largeMediumOwner re-engages with a hard next-step date2–6 weeks
Renewals & rebookingsclosedate within 60–90 days, no logged next stepLargeHighNamed renewal call scheduled1–4 weeks
Dormant relationshipsNo engagement 90+ days, active lifecyclestageMediumMediumStructured re-engagement sequence6–12 weeks
Unrevisited lost dealsclosedlost 6–18 months ago, timing/budget reasonMediumMedium-lowReapproach with new trigger event8–16 weeks
Unquoted/expired quotesQuote created, not sent, or expired unfollowedSmall-mediumHighReissue quote same week1–2 weeks
Ownership handover gapshubspot_owner_id changed, no first touch loggedMediumHighMandatory 5-day first-touch rule1–3 weeks
Silent process leaksGap between createdate and first activity beyond SLASmall-medium, high frequencyHighSLA alert and reassignmentDays

Quantifying leakage defensibly

The single biggest credibility risk in any leakage initiative is presenting one number. Boards and CFOs have seen enough optimistic pipeline forecasts to be instinctively sceptical of any large recovery figure, and they are right to be. The fix is structural: always separate gross exposure from expected recovery, and always show your working.

Gross exposure

Gross exposure is the full, undiscounted value sitting behind every leak category — the sum of amount across every stalled deal, every renewal at risk, every dormant account's trailing 12-month value, and every unrevisited lost deal. It is intentionally the ceiling of the problem, not a forecast. Present it as "value currently exposed to leakage," never as "revenue we will recover."

Expected recovery

Expected recovery applies a probability weighting to each category, derived from your own historical conversion data — not an industry rule of thumb. If deals that sit stalled for 45–90 days in your pipeline historically close at 22%, apply 22% to that category's exposure, not 50%. If renewals actively worked in the final 60 days close at 78%, use that figure. This is the only number you should ever present as a commitment, and it should always be shown alongside the exposure figure it was derived from, with the underlying win-rate assumption stated explicitly.

Worked example: a $12M-revenue company

Consider a B2B software company with $12M in annual revenue, roughly 340 open and recently closed deals in its HubSpot portal, and a customer base of 210 active accounts. Running the seven-category taxonomy against 18 months of deal and engagement history produces the following exposure picture.

Gross exposure by category — $12M-revenue example company
Leak categoryGross exposureHistorical recovery rateExpected recovery
Open pipeline at risk$410,00024%$98,400
Renewals & rebookings$460,00055%$253,000
Dormant relationships$260,00012%$31,200
Win-back opportunities$180,0009%$16,200
CRM health-driven losses$90,000n/a — process fixn/a
Total (approx.)$1,400,00027% blended$380,000

Two things are worth noting about this shape, because they recur across portals of similar size. First, renewals and rebookings contribute disproportionately to expected recovery relative to their share of gross exposure, because the recovery rate on a warm renewal is far higher than on a cold, dormant account — which is exactly why renewals should be worked first in any 30-day cycle. Second, the CRM health category doesn't carry a recovery percentage of its own, because its value is realised indirectly: cleaning ownership gaps and stale fields improves the accuracy and recovery rate of every other category, rather than converting to revenue on its own.

For this company, the honest board statement is: "$1.4M sits exposed to leakage across the base; based on our own historical conversion rates, we expect to recover approximately $380,000 of that within the next two quarters if we run a disciplined recovery process, starting with renewals." That is a defensible, specific, falsifiable claim — and it is the kind of number that survives a second and third quarter of scrutiny.

Why this is a systems problem, not an effort problem

The instinctive response to a leakage number is to ask reps to "work the base harder." This almost never works, for a structural reason: the leak points are invisible inside a standard deal-by-deal or activity-by-activity view. A rep opening HubSpot each morning sees their assigned open deals, not the dormant account they haven't touched in four months or the renewal quietly approaching in another rep's book after a handover. The information required to catch a leak early simply isn't surfaced by the interface reps use daily.

This is compounded by incentive design. Commission plans reward closed-won revenue on new and active deals; they rarely reward the unglamorous work of re-engaging a dormant account or chasing down an expired quote. Without a structural mechanism — a report, a threshold, an alert, an accountable owner — leakage will always lose out to whatever is visibly urgent in the current pipeline, regardless of how hard any individual rep works.

The fix, correspondingly, is systemic rather than motivational: instrument the seven leak points as standing reports, assign explicit thresholds and owners, and build a weekly ritual that surfaces new leaks before they compound into dormant or lost status. Effort applied inside a system that doesn't surface the problem produces no measurable change in the leakage number quarter over quarter.

The 30-day leak-stopping plan

A leak-stopping programme needs to be time-boxed, owned and reviewed weekly, or it dissolves into ambient good intentions. The following structure has held up across companies from $5M to $50M in revenue; adjust thresholds to your own sales cycle length, but keep the rhythm.

Week 1 — size and assign

  • Owner: RevOps lead. Export all seven leak signals from HubSpot; calculate gross exposure per category using amount and the property thresholds in the taxonomy table above.
  • Owner: Sales leadership. Assign each category to a named individual accountable for that category's recovered figure, not just "the team."
  • Threshold: Any deal stalled 45+ days or renewal inside 60 days is flagged for action this cycle.

Weeks 2–3 — work the highest-probability leaks first

  • Renewals inside 30 days get a named call scheduled within 48 hours — this category has the highest recovery rate and the shortest cycle.
  • Unsent quotes are reissued within one week of identification, with an explicit new expiration date.
  • Ownership handover gaps get a mandatory first-touch requirement within 5 business days of reassignment.
  • Stalled deals get a binary decision within the cycle: a hard next step with a date, or reclassification to closed-lost so the pipeline reflects reality.

Week 4 — review, report, reset thresholds

  • Report gross exposure versus recovered revenue by category, against the original expected-recovery figure — not against gross exposure.
  • Identify which category under- or over-performed its historical recovery rate, and update the rate used for next cycle's projection.
  • Reset thresholds for the next 30-day cycle based on what was actually recovered, and roll unresolved dormant and win-back leads into a longer 90-day re-engagement track rather than abandoning them.

Leading indicators to instrument

The difference between catching a leak in-week and discovering it in a quarterly business review is entirely a function of which indicators you track and how often. Lagging indicators — closed-lost revenue, churned ARR, missed quota — tell you what already happened. The following leading indicators, tracked weekly against the same seven categories, tell you what is about to happen.

  • Days since last activity, by deal and by account — using hs_last_sales_activity_timestamp rather than hs_lastmodifieddate, which can be misleadingly recent due to automated field updates.
  • Renewal-date proximity distribution — the count of renewal deals entering the 90-, 60- and 30-day windows each week, so the pipeline of upcoming renewal risk is visible before any individual renewal is overdue.
  • Owner coverage after handover — the percentage of reassigned deals and accounts with a logged first touch within 5 business days.
  • Quote-to-send lag — the gap between quote creation and quote being sent, and separately, quote-sent to first follow-up.
  • Lead response time against SLA — the gap between createdate on a new inbound contact or deal and its first logged activity, tracked as a distribution, not just an average.
  • Lifecyclestage drift — accounts sitting in "customer" with zero engagement events in a rolling 90-day window, which is the earliest visible signal of an emerging dormant relationship.

None of these indicators requires new CRM fields; all of them can be built from properties HubSpot already tracks natively. The discipline is in reviewing them weekly, at a fixed time, with a named owner for each — not in the sophistication of the underlying calculation.

Mistakes that make leakage numbers indefensible in front of a board

Leakage reporting lives or dies on credibility. A board that catches one inflated or unexplainable number will discount every subsequent figure you present, regardless of accuracy. The following mistakes are the ones we see most often, and each is avoidable.

  1. Presenting gross exposure as if it were forecast revenue. This is the single fastest way to lose credibility. Always label exposure as exposure and recovery as recovery, and never let the two numbers appear in the same cell of a table.
  2. Using an industry benchmark instead of your own historical conversion rate. A generic "companies typically recover 20% of stalled pipeline" claim, unless it comes from your own closed-deal history, is not defensible under questioning and should not be used.
  3. Double-counting a deal across two leak categories. A deal can be both stalled and approaching a renewal date; decide a single primary category per record before summing, or your total exposure figure will be inflated and impossible to reconcile.
  4. Reporting a single snapshot instead of a trend. One point-in-time exposure figure invites the question "compared to what?" Track gross exposure and expected recovery monthly so the board sees direction, not just magnitude.
  5. Failing to reconcile the recovery figure against actual closed-won revenue and actual renewed contracts. If you claimed $380,000 in expected recovery, the next board update needs to show what actually landed against that figure — silence on reconciliation is read as evasion.
  6. Attributing recovery to the programme without isolating it from normal pipeline activity. Some of the deals in your stalled-deal category would have closed anyway. Be conservative and explicit about what you're claiming as incremental versus business-as-usual.

Frequently asked questions

Is revenue leakage the same thing as churn?
No, and conflating the two is the single most common analytical error we see. Churn is a lagging, binary event — a customer cancels or doesn't renew, and it shows up as a line in a subscription report months after the underlying cause occurred. Revenue leakage is the broader condition that produces churn as one of its symptoms: it also includes stalled pipeline that never closes, renewals that quietly slip past their date, dormant accounts nobody re-engages, and lost deals nobody revisits. Leakage is measurable in real time inside the CRM; churn is only measurable after the fact in the billing system.
How is leakage different from discounting or missing quota?
Discounting is a pricing decision that reduces the value of revenue you do close — it shows up in amount and hs_deal_amount_change history and is visible to finance immediately. Missing quota is an output measure: a rep or team fell short of a number, for any reason including bad territory design or a weak quarter. Leakage is specifically revenue that was already earned, already promised, or already sitting in an existing relationship, and simply was not collected, renewed or re-engaged because a process step didn't fire. You can hit quota and still leak heavily elsewhere in the base.
How much revenue leakage is normal for a B2B company on HubSpot?
There is no universal benchmark worth quoting, and any figure not sourced from your own historical close rates should be treated with suspicion. What we do see consistently across HubSpot portals with more than 18 months of deal history is that gross exposure — the sum of everything sitting in the seven leak points — typically runs to a meaningful multiple of a single quarter's new bookings, while realistic expected recovery within 90 days is a fraction of that, usually in the 20–35% range once historical win rates by category are applied.
Who should own fixing revenue leakage — sales, RevOps or finance?
Ownership has to be shared but accountability has to be singular. RevOps typically owns the instrumentation and the weekly reporting; sales managers own the specific actions against named deals and accounts inside their pipeline; finance owns validating the recovery number against actuals once cash lands. The single most common reason leak-stopping programmes stall is that no one individual is named as accountable for the total recovered figure at the end of each 30-day cycle — assign that role explicitly, in writing, before you start.
Can this be found with a HubSpot report or dashboard alone?
Partially. Standard HubSpot reports can surface deals with no activity in N days or renewals due this month, but they don't apply recovery-weighted scoring, they don't cross-reference multiple stale-signal fields at once, and they don't distinguish gross exposure from expected recovery. Most teams end up building a set of custom reports and a shared spreadsheet that decays within a quarter. This is precisely the gap knovaly's read-only scan is built to close — it applies a consistent 0–100 Opportunity Score across every leak category without needing new fields or workflows.
How quickly can a company realistically see recovered revenue?
In our experience running 30-day leak-stopping cycles, the fastest recoveries come from Renewals & Rebookings that are within 30 days of their renewal date and Open Pipeline deals with a clear next step already identified — these can convert within the cycle itself. Dormant Relationships and Win-Back Opportunities take longer because they require re-engagement before a commercial conversation is even possible; expect 60–120 days for the bulk of that category to convert, with the 30-day plan primarily reactivating the top of that funnel rather than closing it.
What CRM hygiene issues cause the most leakage indirectly?
Three fields cause a disproportionate share of downstream leakage when they're unreliable: closedate (renewal and forecast dates drift, so nothing fires on time), hubspot_owner_id (deals sit unowned or misrouted after a rep change), and hs_lastmodifieddate versus hs_last_sales_activity_timestamp being out of sync (deals look active because a field was edited, not because a human spoke to the customer). Cleaning these three before anything else typically increases the accuracy of every downstream leakage report by a wide margin.
Should leakage numbers include deals that are technically still open?
Yes, but only if you report them separately from closed-lost or expired value, and only if you apply a probability weighting rather than counting the full deal amount. An open deal that has been in the same dealstage for 140 days with no logged activity is not worth its full amount in your exposure number — it is worth its amount multiplied by a recovery probability derived from your own historical conversion rate for deals in that stage and that stale. Reporting the full undiscounted amount as recoverable is the fastest way to lose credibility with a CFO.