The problem
You have hundreds of open deals in the pipeline. What does that mean in terms of expected revenue? If you sum up all deal values assuming everyone will close, you get a number nobody believes. The issue: a signup from yesterday that hasn’t even configured their account gets the same weight as a deal that passed through the entire funnel and is about to close. That’s not a forecast, it’s a wish. Applying the global funnel conversion rate doesn’t help either. As we showed in Post 05 and Post 06, conversion varies dramatically by stage and channel. A single rate hides both extremes.What we did
We computed the real conversion rate for each funnel stage using historical data: of all deals that ever reached stage X, what percentage eventually closed-won? Then we applied those probabilities to each open deal in the pipeline, weighted by expected deal value. For deals without a set amount, we used the expected value from our plan distribution (70% Starter + 25% Growth + 5% Custom) instead of a simple average, which better reflects the revenue potential of the pipeline. The result: two numbers side by side.
The gap isn’t a sign of a weak pipeline. It means most deals are concentrated in early stages with near-zero conversion. The weighted number represents the portion that, statistically, has a real chance of closing.
What we found
Conversion probability changes dramatically as deals advance through the funnel:Stage 1: 0%
200 deals that only created an account. None at this stage has ever converted historically. Expected value: zero.
Stage 3: 57%
Deals that connected their first data source. These 32 deals concentrate 27% of the forecast.
Stage 6: 44%
Deals approaching the free tier limit. High probability, converting in an average of 69 days.
The takeaway
A forecast built on real probabilities per stage is transparent, auditable, and defensible. Each line has a calculated probability, an expected value, and a time window. No gut feeling required. This is still Stage 03 of the maturity model: predictive. Using historical patterns to project future outcomes. Combined with the lead scoring from Post 06, you now know both which deals to focus on and how much revenue to expect from the pipeline.The Skill
Download the file below and add it to your Claude Skills. It will query your HubSpot pipeline data at Nekt and generate the revenue forecast automatically. ⬇ Download Skill file (.md)SQL — Weighted forecast by activation depth
Compute the probability-weighted forecast for each open deal based on historical conversion rates per funnel stage. Replace pipeline and stage IDs with your own:- Nekt Express / GCP (BigQuery)
- AWS (Amazon Athena)
SQL — Forecast by stage x channel
Cross activation depth with acquisition channel for more precise probabilities:- Nekt Express / GCP (BigQuery)
- AWS (Amazon Athena)
Variations
Conservative vs optimistic scenarios
Conservative vs optimistic scenarios
Compare two extremes: conservative (all deals in denominator) vs optimistic (only closed deals in denominator). Reality is between the two:
Forecast by time window (30/60/90 days)
Forecast by time window (30/60/90 days)
Estimate how much revenue should land in each time window based on average days to close per stage:
Monthly realized revenue (for calibration)
Monthly realized revenue (for calibration)
Compare the forecast against what actually closed in recent months to calibrate the model:
Watch the walkthrough (PT-BR)
Implementation notes
- Why “activation depth” instead of current dealstage? In HubSpot, won deals move to a “Closed Won” stage. If you use current dealstage, all won deals end up in one bucket and you can’t compute per-stage conversion rates. Activation depth (the highest stage a deal ever reached, via
hs_v2_date_entered_*) solves this. - Conservative vs optimistic estimates. The denominator matters. Using ALL deals (including open) gives a conservative rate because it treats open deals as if they’ll never close. Using only closed deals (won + lost) gives an optimistic rate because it ignores deals still in progress. The conservative estimate is safer for planning; the optimistic one is useful as an upper bound.
- Expected deal value uses plan distribution, not simple average. Most closed deals are on the Starter plan, so the historical average (~817) understates the revenue potential. The weighted expected value (70% Starter + 25% Growth + 5% Custom = 1,895) better reflects the mix of plans open deals might convert to.
- Time to close varies significantly. The average per stage is useful as a reference, but standard deviation is high (0 to 300+ days). For a more precise monthly forecast, consider using the median instead of the mean, or filtering outliers (deals > 180 days).
- Stage x channel cross adds precision but requires enough closed deals per cell (minimum 5) to be statistically meaningful. Small cells with 2-3 deals produce unreliable rates.
- Pipeline and stage IDs are specific to each HubSpot account. Use the pipeline overview query to discover yours.
- The methodology applies to any funnel type. Replace activation stages with your pipeline stages (Lead, MQL, SQL, Opportunity, Negotiation, Won). The logic of “depth reached = conversion probability” is universal.
Next up
With scoring to prioritize deals and a forecast to project revenue, the final step is building the first autonomous agent: a system that monitors deals, detects anomalies, and acts on its own.08 · Deal Health + Agent
Stages 04-05 · Prescriptive/Autonomous — Classify every open deal by health status, flag stalled deals automatically, and set up an agent that monitors the pipeline on its own.