← All writing

Writing · 5 min read

How I define pipeline coverage, and why most teams get it wrong

“We're at 3x” is the most reassuring sentence in a forecast call. It's also often meaningless, because the numerator is stale, the denominator is wrong, and 3x was never derived from anything.

Coverage answers one question: is there enough open pipeline to close the gap to quota? Most of what goes wrong comes from losing sight of the word gap.

The definition I use

coverage = open pipeline with a close date in the period
           ÷ (quota for the period − closed-won so far)

Both halves matter, and the common version gets both wrong.

Mistake 1: dividing by the full quota

On day 60 of a quarter, a team with $1.5M quota and $900K already booked doesn't need $4.5M of pipeline. It needs enough to close the remaining $600K. Dividing by full quota makes coverage fall as the team wins deals, which is backwards, and it hides a real gap early in the quarter when bookings are low and full-quota coverage looks fine.

Mistake 2: counting pipeline that isn't really pipeline

The numerator should be deals that can plausibly close in this period. That excludes:

  • deals with a close date outside the period, unless you are deliberately measuring next quarter;
  • deals whose close date is already in the past, which are stale, not late;
  • deals in an Omitted or Closed category that are still technically open;
  • deals with no activity in a defined window, or pushed twice already. These stay in the CRM, but I report them separately as at-risk pipeline.

A team can sit at 3x on paper with a third of that pipeline untouched for 60 days. Scrubbing it usually drops coverage more than any single lost deal.

Mistake 3: treating 3x as a law

3x is a rule of thumb that assumes roughly a one-in-three win rate on open pipeline. The coverage you actually need is about 1 ÷ win rate, and win rate depends on where the pipeline sits. If your historical win rate from Qualification is 25% and from Negotiation is 75%, a pipeline that's mostly early-stage needs closer to 4x, and one that's mostly late-stage might be fine at 1.5x.

That's why I report coverage next to stage-weighted pipeline: each open deal times the historical win rate from its current stage. When the weighted number covers the gap, the raw coverage ratio matters much less.

Mistake 4: only measuring the team

Team coverage of 3x can hide two reps at 6x and three at 1x. The team number is an average of very different problems. I always show coverage per rep against each rep's own remaining quota, because that's where a manager can act: the 1x reps need pipeline generation, not deal coaching.

And one habit: snapshot it

Coverage on a single day is a reading. Coverage every day for a quarter is a trend: is the team creating pipeline faster than it's closing or losing it? Without a nightly snapshot you can't answer that, and you can't learn what coverage at week two meant for the outcome.

In SQL

SELECT
  SUM(IF(s.close_date BETWEEN @q_start AND @q_end
         AND s.close_date >= CURRENT_DATE()
         AND s.forecast_category != 'Omitted', s.amount, 0))
  / NULLIF(@quota - @closed_won, 0)                     AS pipeline_coverage,
  SUM(s.amount * w.win_rate_from_stage)
  / NULLIF(@quota - @closed_won, 0)                     AS weighted_coverage
FROM marts.opportunity_snapshot_daily s
JOIN marts.stage_win_rates w USING (stage)
WHERE s.snapshot_date = CURRENT_DATE() AND NOT s.is_closed;

The live demo uses this definition, and shows how much of the open pipeline sits in early stages.


Written by Wolfram Nothnagel. If you're working on this problem, I'm glad to talk: email or LinkedIn.