learn-sales-pipeline-analytics-with-phoebe / Business session 2 of 4
Learn B2B Sales Pipeline Analytics with Phoebe · Business session 2 of 4

Reading a pipeline review

The Monday review opens with one number: "we are at 3x coverage". Everyone relaxes, and nobody asks what the number is made of. Tonight takes that number apart. A coverage ratio is only as good as the stage mix behind it, a deal that has sat open past the slow tail of your own cycle time is mostly not coming back, and a quarter can lose real money without a single deal being lost, just by close dates sliding out of the window. Kettle & Co's office-tea team is constructed; the cycle-time tail comes from real B2B funnel rows.

🟢 Business BD and sales leaders who read the pipeline, and the analysts who build it No code 45 min
0-3 · Welcome 3-18 · Coverage, stale deals, moved dates 18-40 · Build-along: last Monday's review in five questions 40-45 · Q&A
Part 0

Where we start

Last session ended with a stage list where every stage is something the buyer did. Tonight that list starts paying rent. A pipeline review is a meeting where three claims get made, usually without anyone checking them: there is enough pipeline to hit the number, the deals in it are alive, and the deals will close when the CRM says they will. Each claim has one question that tests it. Bring last Monday's report; by the end you will have five numbers written next to it that the report did not show. Kettle & Co's office-tea arm, a BD lead and four account reps (Aiko, Ben, Chiara and Dev) selling tea subscriptions to offices in Japan, is constructed and labelled. The cycle times underneath come from real rows of Olist's public B2B funnel, a Brazilian marketplace recruiting sellers.

🎫 Clear all three quiz questions to stamp your passport Live = presented in the 45 minutes Self-study = the full depth, after class ★ Build-along = everyone works it through

★ What you walk out with tonight. Your own review re-read in five questions: coverage on stage 2 and later only, coverage weighted by your own stage rates, a count of deals older than your 90th-percentile cycle, a count of pushed-out deals with how often each moved, and one sentence for the BD lead that says what the pipeline really covers. That sentence is the opening line of the forecast contract in Business session 3.

Part 1 · covers coverage ratios and the 3x convention

What a coverage ratio is made of

5 min live

Coverage is open pipeline amount divided by the target for the period. "3x" is the number people hope to see, and it circulates as a rule of thumb with no single origin anyone has traced. Its arithmetic is simple: coverage you need equals one over the share of today's pipeline you expect to close inside the period. 3x is right only if about a third of the pipeline closes this quarter. Whether it does depends on where the deals sit, which is exactly what one ratio hides.

THE STAGE MIX BEHIND ONE COVERAGE NUMBER Kettle's 300 open deals at the start of the quarter, bar width = deal count · constructed stages on real outcomes 1 Contacted 153 deals · 0.0% in-quarter 2 Need confirmed 78 deals · 0.6% 3 4 5 168.21m yen 300 deals, one number stage deals share won in-quarter, last quarter rate 1 Contacted15351%0 of 1,0220.0% 2 Need confirmed7826%3 of 5070.6% 3 Tasting trial3913%15 of 2406.3% 4 Proposal196.3%27 of 14918.1% 5 Contract out113.7%51 of 7964.6% READ IT AS 153 deals add bulk and 0.0% in-quarter 11 deals add 64.6% the forecast lives here Pipeline over what closed: 168.21m / 5.86m = about 28.7x, and still only 7 deals won. Constructed Kettle amounts and stages on real Olist outcomes; the table is printed by Analyst session 4.
🔍 Click to zoom - one coverage number, five very different kinds of deal; half of the count is stage 1, which closed nothing in-quarter
LiveTwo better coverage numbers3 min▶

Coverage on stage 2 and later only. Stage 1 is a lead, not a deal (Business session 1). Take it out of the numerator before you divide. In Kettle's quarter that removes 153 of the 300 deals; the ratio roughly halves, and nothing about the business changed except honesty.

Coverage weighted by your own stage rates. Multiply each deal's amount by the in-quarter win share of its stage, from your own last quarter, then add up. That turns "how much is open" into "how much we expect to close", and the ratio you need is then about 1x, not 3x. For Kettle's quarter the stage-weighted figure is 8.60m yen against the 168.21m on the pipeline report.

Say which rates you used. The same deals weighted by HubSpot's default stage probabilities (20, 40, 60, 80, 90 percent) give 63.64m yen. Default probabilities are a placeholder for your own history, not a forecast; Analyst session 4 sets them side by side.

Self-studyWhere 3x comes from, and the arithmetic that replaces it3 min▶

No primary source for "3x coverage" turns up; it is a convention passed between sales leaders. Treat it as arithmetic you can check. Coverage needed = 1 / (expected in-period close share of today's pipeline). If a third of the pipeline closes in the quarter, you need 3x. If a quarter closes, you need 4x. If, like Kettle, about 3.5 percent of the amount on the report closes in the quarter (5.86m of 168.21m), the honest requirement is closer to 28x on that same report, which is why "we are at 3x" can be a disaster and "we are at 28x" can be fine.

The Metric Decomposition ↗ sessions use 3x coverage at a 25 percent win rate as a worked example of win rate as a lever in a metric tree. This page extends it rather than contradicting it: 3x times 25 percent is three quarters of the target, so the plan either relies on deals that are created and closed inside the same quarter, or on a win rate that holds for the deals open today. The extension is to measure that win rate as an in-quarter close share, by stage, from your own history.

Real world

28.7x and still a miss. Kettle's quarter opened with 168.21m yen of pipeline across 300 deals. What really closed by the end of the quarter: 5.86m yen, 7 deals. Pipeline over what closed is about 28.7x, because 153 of the 300 deals sat at stage 1 and the stage-1 deals of the previous quarter closed nothing inside it. A BD lead reading "plenty of coverage" off that report would have been reading volume, not evidence. Constructed Kettle & Co amounts and stages built on real Olist outcomes.

Part 2 · covers stale deals

Stale deals: older than your own tail

5 min live

Every pipeline carries deals nobody has the heart to close out. The test for "stale" should not be a rep's feeling, it should be your own cycle-time distribution. On the real Olist rows, half of the 842 won deals closed within 14 days of first contact, three quarters within 54.75 days, nine tenths within 161.9 days. A deal still open past your 90th percentile is in the tail where only a tenth of eventual wins happen.

HOW OLD IS AN OPEN DEAL, AGAINST YOUR OWN CYCLE TIME? marks: real Olist won-deal percentiles · dots: constructed Kettle open deals at the 30 August review · copper: past p90 median 14 days half of wins p75 54.75 days three quarters p90 161.9 days nine tenths of wins STALE ZONE 0 30 60 90 120 150 180 days since first contact (deal age at the review) 842 real wins by cycle: 0-7: 249 · 7-14: 163 · 14-30: 135 · 30-60: 97 · 60-90: 47 · 90-180: 83 · 180+: 68 A tenth of the real wins took longer than 161.9 days. Past that line, a deal needs a reason to stay.
🔍 Click to zoom - the copper zone is where your own history says wins have mostly stopped arriving
LiveWhy age is evidence the stage does not carry3 min▶

Wins arrive early. On the real rows, the median won deal closed in 14 days and the mean in 48.4: a short typical cycle with a long slow tail. A deal that has been open for months has already lived through the window where most wins happen and did not close in it.

The curve flattens. Following the 2018 leads that were still open on 1 June 2018, the survival curve puts the cumulative win share at 11.8 percent by day 90 and 12.5 percent by day 150; the eventual share, known by November 2018, was 13.0 percent. Rough arithmetic on those printed numbers: about half a point of win share arrived after day 150, spread over the roughly 87 percent of leads still open by then, which is under one in a hundred. Analyst session 3 draws the curve and explains why a still-open deal cannot simply be counted as lost.

A stage rate is an average over young deals. Kettle's stage-4 rate of 18.1 percent comes from all the stage-4 deals in the previous quarter, most of them recent arrivals. A deal that reached Proposal five months ago and is still there is not a typical stage-4 deal; its age is telling you something its stage cannot.

Self-studyNot forecasted, Omitted: where stale deals should go2 min▶

Most CRMs give you a place to park a deal that is still technically open but should not count. HubSpot's forecast tool, read on its knowledge base in October 2026, has a "Not forecasted" category beside Pipeline, Best case and Commit, and lets a team map deal stages to categories automatically. Salesforce is reported by third-party guides to have an "Omitted" category doing a similar job. The vendor pages change, and HubSpot's own page lists its default categories inconsistently, so re-verify before you teach a fixed list.

The professional norm: move a deal past your p90 age to the not-forecasted bucket by default, and let the rep move it back with one written sentence about what the buyer did recently. Do not delete it. A deleted stale deal disappears from next quarter's win-rate denominator and makes the team look better than it is (survivorship, which Analyst session 2 shows on the real rows).

Real world

68 slow wins, and a long wait for each. Of the 842 sellers Olist really signed, 68 took more than 180 days from first contact, and 83 more took 90 to 180 days. Slow wins exist, and some are large. But they are a tenth of the wins, and for every one of them many more leads of the same age never closed. A review that keeps every old deal "in case" is planning around the exception. Real Olist B2B funnel rows (Brazilian marketplace seller acquisition), read at source; Kettle's stale count in the build-along is constructed.

Part 3 · covers pulled forward and pushed out deals

Close dates that leave the quarter

5 min live

A quarter can lose money without losing a single deal. Each week a rep nudges a close date from late August to mid September, and the deal leaves this quarter's number while staying "alive" in the pipeline. The reverse happens too: a deal pulled forward into the quarter to fill a gap. Both are normal. What matters is whether you can see them, and you can only count them if every change to a close date is logged with its date.

CLOSE DATES MOVING ACROSS THE QUARTER LINE start dot = close date at the start of the quarter · arrowhead = close date at the 30 August review · constructed QUARTER · 1 Jun to 30 Aug Ben · studio · 3x Chiara · clinic · 2x Aiko · logistics · 1x Dev · law firm · 1x Ben · coworking · 1x Aiko · call centre Dev · school May Jun Jul Aug Sep Oct Pushed out: 5 deals, 8 moves, 2.31m yen Pulled forward: 2 deals, 0.84m yen Net -1.47m yen left the quarter while no deal was lost. Small ticks mark each intermediate move.
🔍 Click to zoom - five copper arrows cross the quarter line outward; without a close-date log you would see only where they ended
LiveThree things to read off moved dates3 min▶

How many left, and how much. Count deals whose close date was inside the quarter at its start and is outside it now. Add their amounts. That is the slippage the forecast has to absorb, and it is often bigger than the deals lost outright.

How often each moved. A deal pushed once is a timing change. A deal pushed three times is a pattern: the close date is a wish, not a buyer commitment. Count moves per deal, not just deals.

What came in. Pulled-forward deals are not free money. A deal pulled forward to fill a gap is a claim that the buyer will sign sooner than they said. Ask what the buyer did to justify the new date, the same test as a stage in Business session 1.

Self-studyWhy you need the close-date history, not the close date2 min▶

Most CRMs store one close date per deal, the current one. Each edit overwrites the last. On 30 August, Ben's studio deal shows a close date of 5 October and nothing else: no sign it was meant to close on 15 July, or that it moved three times. Pushed-out counting is impossible from the current state alone. Analyst session 1 shows the event table that keeps every change with its date, and how to rebuild last month's pipeline from it.

The rep's side of this conversation, how to prepare for a review and what to say about a slipping deal, lives in AI for selling, the pipeline review from the rep's chair ↗. This page stays on the reader's side of the table.

Analyst session 6 runs the hardest version: the biggest deal that really closed in Kettle's quarter, 2.11m yen, slips to next quarter, and what closed drops from 5.86m to 3.75m yen. One pushed-out deal can be a third of a quarter.

Real world

Ben's studio, three Mondays running. At the start of Kettle's quarter, a design studio in Shibuya was set to close on 15 July for 0.62m yen. In late July Ben moved it to 20 August, "procurement is on holiday". In August he moved it to 10 September, then to 5 October. In every review it was "still in the pipeline" and nobody lost it. The CRM on 30 August shows only 5 October. The BD lead found the history by asking, and from then on the team logged every close-date change. Constructed Kettle & Co example.

Build-along

Read last Monday's review in five questions

★ 22 min · everyone works it through

No code, one sheet. Take the pipeline report you brought, or Kettle's quarter as worked below. Each question replaces one number the report gives you with one the report hides. Do question 1 together, questions 2 to 4 in pairs, then everyone reads their question 5 sentence aloud. Kettle's answers are constructed and labelled; the target of 6.0m yen for the quarter is constructed for the exercise.

THE REVIEW WORKSHEET five questions · Kettle's quarter answered as the example · constructed question Kettle, constructed yours 1 · Coverage, stage 2 and later only 14.6x ________ 2 · Coverage weighted by own stage rates 1.43x (8.60m on 6.0m) ________ 3 · Deals older than p90 (161.9 days) 64 of 300 ________ 4 · Pushed out this quarter, and moves 5 deals, 8 moves ________ 5 · One sentence for the BD lead 1.43x real cover, not 28.0x ________ Constructed Kettle values on a constructed 6.0m yen target; 8.60m is printed by Analyst session 4.
🔍 Click to zoom - four numbers the report hid, and the one sentence they add up to

Step 1 · Coverage on stage 2 and later only. Add up the amount of every open deal past your first buyer-act stage, and divide by the target. If your report does not split amounts by stage, estimate it from counts and say so.

★ Step 1 · stage 2+ coveragereport coverage (all stages): ______ / target ______ = ____x stage 2+ amount: ______ / target ______ = ____x Kettle (constructed target 6.0m yen): all stages 168.21m / 6.0m = 28.0x stage 2+ 147 of 300 deals, amounts summed = 87.68m 87.68m / 6.0m = 14.6x

Step 2 · Coverage weighted by your own stage rates. Multiply each stage's open amount by your own in-quarter win share for that stage, from last quarter, add up, divide by the target. Then do it once more with your CRM's default probabilities, and look at the gap.

★ Step 2 · weighted coveragestage 1 ____ x ___% stage 2 ____ x ___% stage 3 ____ x ___% stage 4 ____ x ___% stage 5 ____ x ___% total ______ / target = ____x Kettle: own rates 0.0 / 0.6 / 6.3 / 18.1 / 64.6% -> 8.60m / 6.0m = 1.43x (HubSpot defaults: 63.64m / 6.0m = 10.6x) what really closed: 5.86m, 97.7% of the 6.0m target

Step 3 · Count deals older than your p90 cycle. Use your own 90th-percentile cycle time if you have it; if not, start from a won-deal list and find the age that nine in ten wins beat. Count open deals older than that, and list them by rep.

★ Step 3 · stale countmy p90 cycle time: ____ days (real Olist rows: 161.9) open deals older than that: ____ of ____ Kettle, at the 30 August review (constructed): 64 of 300 were first contacted on or before 22 March, so they are past 161.9 days default for each: Not forecasted, unless the rep writes one sentence on a recent buyer act

Step 4 · Count pushed-out deals, and how many times each moved. List deals whose close date was inside the quarter at its start and is outside it now. If your CRM keeps no close-date history, write that down as the finding: you cannot answer this question yet.

★ Step 4 · slippagepushed out: ____ deals, ____ moves, ______ amount pulled forward: ____ deals, ______ amount Kettle (constructed): pushed out 5 deals, 8 moves (3 + 2 + 1 + 1 + 1), 2.31m yen pulled forward 2 deals, 0.84m yen ; net 2.31 - 0.84 = 1.47m yen out

Step 5 · One sentence for the BD lead. Put the four answers into a single sentence a busy person can repeat. Lead with the weighted coverage, then the two risks.

★ Step 5 · the sentence"We have ____x weighted cover on our own rates, ____ deals past our p90 age, and ______ pushed out of the quarter in ____ moves." Kettle (constructed): "We have 1.43x weighted cover on our own rates, not the 28x on the report; 64 deals are past our p90 age, and 2.31m yen has slipped out in 8 moves."

Keep the sheet. The sentence from step 5 is the opening line of the forecast contract in Business session 3, where the BD lead signs the number and the data team signs the method and its error rate.

Homework

Before Business session 3

30 min
  1. Find your own stage rates. Ask whoever owns the CRM for last quarter's in-quarter win share by stage. If the CRM only has default probabilities, write down that you are forecasting on placeholders.
  2. Find your own p90. From last year's won deals, the number of days from first contact that nine in ten wins beat. Compare it with what reps call "stale".
  3. Check for close-date history. Open one deal and see whether the CRM shows previous close dates with the date each was changed. Yes or no is the answer.
  4. Send the sentence. Send your step 5 sentence to the BD lead before next Monday's review, and note what question comes back.
Check yourself

Three questions

Clear all three and Business session 2 gets stamped in your passport.

1 · What does "we need 3x coverage" assume?

Coverage needed is one over the expected in-period close share. 3x is a convention with no single origin, and it is only right if a third closes in the period.

2 · Why is a stage-4 deal that has been open for 200 days weaker evidence than its stage says?

Age carries information the stage table does not. A deal that sat through the window where most wins arrive, and did not close, is not a typical stage-4 deal.

3 · Why do pushed-out deals need a logged close-date history?

The current state hides the movement. Ben's studio shows 5 October on 30 August; only the log shows it was meant for 15 July and moved three times.

Sources covered

What this session teaches, and where it came from

✓Cycle time percentiles: median 14 days, 75th 54.75, 90th 161.9; buckets of the 842 wins; survival curve 11.8% by day 90, 12.5% by day 150, 13.0% eventualOlist, "Marketing Funnel by Olist", Kaggle dataset, CC BY-NC-SA 4.0; computed by the engine in Analyst session 3, read at source
✓HubSpot forecast categories (Not forecasted, Pipeline, Best case, Commit) and default stage probabilitiesHubSpot Knowledge Base, "Set up and customize pipelines" and "Set up the forecast tool". Read at source, October 2026; re-verify before teaching
◐Salesforce's "Omitted" forecast categorySalesforce Help, opportunity stages and forecast categories. Reported
◐"3x coverage"A convention with no single origin found; taught as the arithmetic 1 / expected in-period close share
◐Kettle & Co stage mix 153 / 78 / 39 / 19 / 11, stage rates, 168.21m pipeline, 5.86m closed, 8.60m and 63.64m weightedConstructed on real outcomes and labelled; printed by the methods widget in Analyst session 4
◐Kettle's 6.0m target, 64 stale deals, pushed-out and pulled-forward dealsConstructed for this page and labelled; arithmetic shown in the build-along

Every fact on this page, and its verification tier, is recorded in the course's source map.

Business session 2 cheat sheet · pin this

3x is a conventionCoverage needed = 1 / expected in-period close share. Check it, do not cite it.
Drop stage 1Coverage on stage 2 and later only. Leads are not deals.
Weight by your own ratesThen about 1x is the bar. CRM defaults are placeholders, not history.
Stale = past your p90161.9 days on the real rows. Default it to Not forecasted; never delete it.
Count the movesPushed-out deals and moves per deal. Three pushes is a pattern, not timing.
Log every close dateThe CRM overwrites it. Without the history, slippage is invisible.