Pipeline forecasting predicts how much open pipeline will close in a period. It uses stage conversion rates and deal age, not rep opinion.
I held 92% forecast accuracy for three years across $200M in marketing-sourced pipeline. The method was not clever. It was arithmetic on clean stage data, run weekly, with sentiment removed.
What is pipeline forecasting
It converts open opportunities into an expected revenue number for a period. Three inputs decide the output.
- Created pipeline. Opportunity value, dated by creation, not by close date.
- Conversion rate. The historical share of created pipeline that reaches closed won.
- Velocity. The elapsed days from creation to close, measured by cohort.
Everything else is commentary. A forecast you cannot rebuild from those three inputs is a guess in a spreadsheet.
Most teams confuse forecasting with the forecast call. The call is a review ritual. The forecast is a model. When the ritual produces the number, accuracy tracks the mood of the room.
A forecast built from rep confidence measures confidence. It does not measure revenue.
Why most B2B forecasts miss
I have rebuilt this in PE-backed portfolio companies more than once. The failure modes repeat.
Stages have no exit criteria. If "Discovery" means what a rep decides, conversion rates are noise. Two reps at the same stage are describing different realities.
Sentiment is the input. Commit and best case are useful as a rep's read. They are dangerous as the model. Rep-called forecasts systematically skew optimistic near quota deadlines.
Close dates get pushed instead of lost. A deal that slips four quarters is not pipeline. It is a loss with an open record. Aging rules fix this. Hope does not.
Marketing and sales pipeline are pooled. They convert and move at different rates. Averaging them produces a number that describes neither.
The forecast is monthly. A monthly cadence means you find the miss with two weeks left. Weekly reforecasting finds it with time to act.
One number, no segments. A blended forecast hides a failing segment behind a strong one. Aggregate accuracy can look fine while both halves are wrong in opposite directions.
Nobody owns the definition. Sales, marketing, and finance each hold a private version of "qualified pipeline". Every review then starts by reconciling numbers. The forecast then arrives late and pre-argued. One owner, one written definition, held for four quarters.
The pattern underneath all six is the same. Each one replaces a measured input with a negotiated one. Forecasting is the discipline of refusing that trade.
The forecasting model I use
Six steps. Each one is auditable.
Step 1. Define stages with exit criteria. A stage advances on a specific, observable event. Not when it feels right. Write the criteria down and hold the definition for four quarters minimum.
| Stage | Exit criterion | Owner |
|---|---|---|
| Qualified | Budget, authority, and a named business problem confirmed | Rep |
| Discovery | Technical and business requirements documented | Rep |
| Evaluation | Solution validated by the buying committee | Rep and SE |
| Proposal | Pricing delivered to an economic buyer | Rep |
| Negotiation | Terms under legal or procurement review | Rep |
Step 2. Measure conversion by cohort, not in aggregate. Take opportunities created in a month. Track what share of that cohort reaches closed won. Do this by segment and by source. Aggregate conversion rates blend fast and slow motions into a rate that fits nothing.
Step 3. Measure velocity the same way. Median days from creation to close, by segment. Median, not mean. One 400-day enterprise deal will drag a mean average somewhere useless.
Step 4. Forecast from created pipeline times conversion by age. This is the core move. Deals convert differently depending on how long they have been open. A deal 30 days old in a 90-day cycle behaves differently from one 200 days old. Bucket by age and apply the historical rate for that bucket.
Step 5. Separate marketing-sourced from sales-sourced. Different rates, models, and owners. Two forecasts that sum to one number.
Step 6. Reforecast weekly. Compare the model to actuals every week. When the gap opens, you have weeks to correct rather than days to explain.
Worked example (illustrative)
These numbers are illustrative, not benchmarks. They show the shape of the calculation.
| Age bucket | Open pipeline | Historical win rate | Expected revenue |
|---|---|---|---|
| 0 to 30 days | $4,000,000 | 12% | $480,000 |
| 31 to 60 days | $3,000,000 | 22% | $660,000 |
| 61 to 90 days | $2,500,000 | 34% | $850,000 |
| 91 to 120 days | $1,500,000 | 41% | $615,000 |
| 121 days and over | $2,000,000 | 9% | $180,000 |
| Total | $13,000,000 | $2,785,000 |
Two things fall out immediately. Coverage looks generous at $13M against a $2.8M expectation. And the oldest bucket, which reps will still call live, contributes almost nothing. That last row is where forecast optimism goes to die.
Compare this to a rep-called forecast on the same book. Commit plus best case usually lands 20 to 40% higher. The model does not care how the last call went.
Pipeline coverage: how much is enough
Coverage is total qualified pipeline divided by the revenue target. The commonly cited answer is 3x. The correct answer is the inverse of your win rate.
Clari publishes the formula directly: required coverage equals 1 divided by win rate. At a 25% win rate that is 4x. At a 20% win rate it is 5x. At 50% it is 2x. Enterprise teams at 15 to 25% win rates need 4x to 7x coverage to forecast reliably. Source: Clari on pipeline coverage.
The 3x rule is not wrong. It is a special case. It assumes a 33% win rate, and most B2B SaaS teams no longer have one.
Coverage by segment matters more than the blended figure. Enterprise and SMB rarely share a win rate, so they rarely share a coverage requirement. A company at 4x blended can be 6x in SMB and 2.5x in enterprise. The enterprise number is already missed. Nothing in the dashboard says so.
Coverage is also a quality claim, not just a volume one. Unqualified opportunities in the denominator inflate coverage while conversion falls. That is the mechanism behind why I do not measure MQLs as a primary target. Volume metrics with no conversion gate corrupt the coverage math upstream of the forecast.
Marketing pipeline vs sales pipeline
These are two different assets. Treat them that way.
Marketing pipeline arrives inbound or through campaign-driven outbound. It converts at one rate and moves at one velocity. Sales-sourced pipeline arrives through rep prospecting and referral. Different rate, different velocity, often different ACV.
Pool them and you get an average that predicts neither. Split them and three things become visible.
- Which engine is actually producing revenue, not just records.
- Which engine is degrading, before the blended number reflects it.
- What marketing should be held to, in pipeline dollars rather than lead counts.
I carried $200M of marketing-sourced pipeline as a named number, split from sales-sourced. A team that owns a pipeline target behaves differently from one that owns leads. The forecast is where that ownership becomes real.
Attribution belongs in the same conversation. Sourcing rules must be written down before the quarter, not litigated after it. That is the subject of B2B marketing attribution. The measurement frame sits in marketing ROI measurement.
Forecasting in HubSpot and Salesforce
Both platforms ship real forecasting. Neither fixes bad stage hygiene.
HubSpot. The forecast tool groups deals into categories by likelihood to close. Defaults are Pipeline, Best case, Commit, and Not forecasted. You can automate assignment from deal stage. Source: HubSpot forecast tool. HubSpot also compares submitted forecasts against actual closed revenue. Source: HubSpot forecast accuracy.
Practical setup: automate categories from stage. The category then reflects criteria, not mood. Then run your age-bucket model against exported deal data. The native tool is your review surface. The model is your number.
Salesforce. Collaborative Forecasts rolls opportunity amounts up the role hierarchy. It supports quotas, adjustments, and multiple forecast types. Source: Salesforce Collaborative Forecasts. The ForecastingItem object exposes those rollups to the API. Build the model on live data, not a weekly export. Source: Salesforce ForecastingItem.
Practical setup: keep manager adjustments visible and separate from the raw rollup. An adjustment you can see is a judgment call. An adjustment baked into the base number is a data-integrity problem.
The rule for both: the CRM stores state. It does not decide what a stage means. Exit criteria are a management decision. They come before either tool can be trusted.
How to measure forecast accuracy
One formula. Run it every period, without exception.
Forecast accuracy = 1 minus (absolute value of (actual minus forecast) divided by actual)
At $2.4M forecast against $2.6M actual, the gap is $200K. That is 7.7% of actual. Accuracy is 92.3%.
Four rules make the number honest.
- Use absolute value. Overshooting by 15% is not better than missing by 15%. Both mean the model is wrong. Signed error lets a good quarter cancel a bad one and reports the average as skill.
- Lock the forecast. Record the number at period start. A forecast revised on the final day is a report, not a forecast.
- Measure by segment. Blended accuracy hides offsetting errors. Two segments wrong in opposite directions can average to a number that looks excellent.
- Track the trend. One accurate quarter is luck. Four consecutive quarters above 90% is a system.
Two diagnostics come free once you log the number. Bias tells you if misses run high or low. Average the signed error, not the absolute one. Consistent overshoot means sentiment is still in the model. Dispersion tells you if accuracy is stable or noisy. 95%, then 78%, then 94% averages well. It predicts nothing.
Log forecast, actual, and the reason for the gap every period. After four quarters that log is worth more than the model. It names which input drifts.
Sustained 90%+ is achievable in most B2B SaaS motions. I held 92% for three years. It required stage discipline and weekly reforecasting, not a better algorithm.
How a board reads it
A board is not buying your number. It is buying whether your number can be trusted next quarter.
Four questions surface that fast.
- Forecast accuracy over the last four quarters, by segment? One quarter proves nothing.
- Coverage ratio, and the win rate that justifies it? Coverage alone is a volume claim.
- How much is model-driven versus rep-called? More sentiment means a wider miss.
- When you missed, what changed? A miss with a named root cause is a working system. A miss with an excuse is not.
Forecast accuracy is a governance signal before it is a sales metric. A team inside 10% for four quarters gets a different spend conversation. One that misses by 30% explains itself afterward. It pairs with CAC payback to decide whether growth spend gets approved.
Where to start
If you are rebuilding this, the order matters.
- Write exit criteria for every stage. Nothing downstream works without this.
- Pull 12 months of created pipeline and measure conversion by cohort and segment.
- Bucket open pipeline by age and apply those rates.
- Split marketing-sourced from sales-sourced.
- Lock the number at period start and reforecast weekly against it.
Step one is where most rebuilds stall. Writing exit criteria forces the argument about what qualified means. That argument is the work. Steps two through five are arithmetic once the definitions hold.
The first accurate quarter takes one full sales cycle. You need clean cohort data first. The growth diagnostic is where I map which of the five is broken. The wider operating model sits on the marketing leader page.
Sources
- Clari, pipeline coverage best practices: coverage equals 1 divided by win rate. 3x to 5x typical. 4x to 7x for enterprise.
- HubSpot, Use the forecast tool: forecast categories, automation from deal stage.
- HubSpot, Track the accuracy of forecasts: forecast versus actual reporting.
- Salesforce Collaborative Forecasts: types, rollups, quotas, adjustments.
- Salesforce, ForecastingItem object: API access to forecast rollups.