Where we start
So far you can rebuild the pipeline on any date (Analyst session 1), measure conversion by cohort (session 2) and read cycle time with open deals left in (session 3). Tonight those pieces become forecasts. Scope matters here: these are sales forecast methods, built deal by deal from the pipeline. Statistical forecasting models such as ARIMA, Prophet or machine learning on a revenue series are a different discipline, and Learn Timeseries Forecasting with Phoebe owns them. The rep's side of the forecast call lives in AI Sales, A forecast people actually believe.
★ What you walk out with tonight. The three methods written as formulas you can explain to a sales leader, the one field each of them reads, a range for each instead of a single number, and a stage-weighted query you can run against your own snapshot table on Monday. You also leave with a healthy suspicion of one quarter: a single result is an anecdote, and Analyst session 5 is where the methods get scored properly.
Rep commit: what the people closest to the deals say
5 min liveThe oldest method asks each rep to place every deal in a forecast category. HubSpot's forecast tool (read at source, October 2026) uses Pipeline for low likelihood, Best case for moderate, Commit for high likelihood and committed to the forecast, plus Closed won and Not forecasted. Salesforce is reported to use a similar set: Pipeline, Best Case, Commit, Closed and Omitted. The forecast is the sum of Commit; the range runs from commit to commit plus best case. The categories are a convention, and the catch is that each rep decides where "high likelihood" begins.
LiveHow the commit number is built3 min▶
The point. Sum the amounts of every deal a rep has put in Commit. For Kettle this quarter that is 3.55 + 3.37 + 0.94 + 0 = 7.86m yen.
The range. Low end is commit; high end is commit plus best case. Best case summed is 4.61 + 4.84 + 4.29 + 2.76 = 16.50, so the range is 7.86 to 24.36. Really closed: 5.86, below the floor. The range missed.
Why it can miss low too. Dev commits nothing until a contract is signed, yet 1.16m yen of his deals closed. A sandbagger's zero is a forecast too, and an equally wrong one. Per rep, commit against actual: Aiko 3.55 vs 3.28, Ben 3.37 vs 0.91, Chiara 0.94 vs 0.51, Dev 0 vs 1.16.
Self-studyCategories are a convention, not a measurement2 min▶
HubSpot lets categories be mapped automatically from deal stage, which turns rep commit into a crude stage rule. When reps set them by hand, the category records a judgement and a mood. Neither is wrong, but write down which one your team does. The same help page also lists "Most likely" among its default categories elsewhere, so do not hard-code a fixed list beyond Pipeline, Best case and Commit: check your own configuration.
Rep commit is the only method that can see what is not in the CRM: a call last night, a budget freeze rumour. Keep it. Just never ship it alone, and measure each rep's call ratio over many quarters in Analyst session 5.
Constructed Kettle & Co example. In the Monday call, Ben says his Proposal deals are "basically done" and commits 3.37m yen. Aiko waits for a contract to go out before committing. Dev, burned once by a slipped renewal, commits nothing unsigned. All three are using the same CRM category with three private definitions. The quarter closes with 0.91m yen from Ben. The fix is not a better rep; it is a written commit rule and a record of how each person's calls land.
Stage-weighted: amount times a probability per stage
5 min liveStage-weighted replaces judgement with a table. Each open deal contributes its amount times the probability attached to its current stage, and the forecast is the sum. HubSpot calls the product the weighted amount. Everything rides on where the probabilities come from. Kettle's own come from last quarter: of the deals at each stage on 1 March, what share won inside the quarter. HubSpot's default pipeline ships with 20, 40, 60, 80 and 90%. Same deals, two ladders, two very different forecasts.
LiveBuilding your own stage table3 min▶
Take the snapshot on the first day of last quarter (Analyst session 1's as-of join). Group by stage. For each stage, count the deals and count how many were won before the quarter ended. Kettle's prior quarter, as of 1 March 2018:
The rate must rise with stage; the widget's self-test refuses to run if it does not. If yours does not rise, your stages are not buyer commitments yet (Business session 1).
A constructed check of the arithmetic: a 360,000 yen deal at Proposal adds 360,000 x 0.181 = 65,160 yen on Kettle's own ladder, and 360,000 x 0.80 = 288,000 yen on HubSpot's default.
Self-studyWhere the 80% band comes from2 min▶
Each deal either closes or does not: a yes-or-no outcome worth its amount with probability p. The sum of many of those has a mean (the forecast) and a variance, the sum of amount squared x p x (1 - p). The band is the mean plus or minus 1.2816 standard deviations, which is where 80% of a normal distribution sits. That is a modelled approximation, labelled as such in the widget. It is rough with few deals or one giant deal, and it assumes deals close independently, which a recession or a budget freeze breaks.
HubSpot's own help pages, read at source. The default pipeline lists Appointment scheduled 20%, Qualified to buy 40%, Presentation scheduled 60%, Decision maker bought-in 80% and Contract sent 90%, and says each stage's probability drives the weighted amount. Mapped onto Kettle's five stages, those defaults forecast 63.64m yen for a quarter that closed 5.86m. That is not HubSpot being wrong; the defaults are placeholders for a team's own history, and a team that never replaces them is forecasting from someone else's guess.
History-based: ignore the stage, ask how deals like this behaved
5 min liveThe third method never reads the stage field. In words: for each open deal, ask two questions of history. How often do leads from this origin end up won at all? And of the deals that do get won, what share close in the next 91 days, given this deal is already a certain age and has not closed yet? Multiply the answers, sum over deals, and that is the forecast. It is Analyst session 3's survival idea put to work: a deal that has already waited a long time has used up most of the fast-closing chances.
LiveThe formula, one piece at a time4 min▶
Numerator. c x F(a + 91) is the chance a lead is won by age a + 91; c x F(a) is the chance it was won by age a. The difference is the chance of a win inside the window.
Denominator. This deal is still open, so the cases where it already won are ruled out: divide by 1 - c x F(a).
A constructed check of the arithmetic. With c = 0.124 and made-up curve values F(a) = 0.5 and F(a + 91) = 0.9: numerator 0.124 x 0.4 = 0.0496; denominator 1 - 0.062 = 0.938; p = 0.0529, about 5.3%. Forecast = the sum of amount x p over all 300 deals; Kettle's this quarter is 5.01m yen, 80% band 2.03 to 8.00, which covers the 5.86 that closed.
Self-studyWhat it protects you from, and what it cannot see2 min▶
Protection. Because it never reads stage, an optimistic rep who drags deals up a stage cannot move it. Analyst session 6 tests exactly that.
Blind spot. For the same reason it cannot see a real late-stage signal either: a signed contract and a cold lead of the same age and origin look identical to it. It also assumes the next quarter behaves like the training period. And it cannot see past the longest observed cycle, 126 days in the training wins, the same limit Analyst session 3 found in the survival curve.
The training cohort is real. Leads Olist first contacted in January and February 2018, as seen on 1 June 2018: 2,169 leads, 268 won by then, a pooled 12.4%. Conversion c comes from those rows by origin, and any origin with fewer than 40 leads borrows the pooled 12.4% rather than trusting a handful of rows. F is the cycle-time distribution of those 268 observed wins. These are real Olist B2B funnel rows (Brazilian marketplace seller acquisition) standing in for Kettle's history; Olist has no stage history and no lost deals, which is exactly why this method never needed either.
One quarter, three answers
★ 22 min · everyone buildsThe widget draws this quarter's 300 open deals (real Olist leads first contacted March to May 2018 and not yet won on 1 June; Kettle's stages, amounts and reps constructed) and runs all three methods in your browser. One control switches the stage probabilities between Kettle's own table and HubSpot's default pipeline. Work the five steps, and copy what the widget prints.
Step 1 · Read the verdict. Before any method speaks, note the two facts it is judged against: the size of the pile and what came out of it.
Step 2 · Read the three range rows. With Kettle's own probabilities selected, copy each method's point, range and verdict.
Step 3 · Read the stage table. Half the pile sits at stage 1, where Kettle's own rate is zero. Compare the two probability columns row by row.
Step 4 · Switch to HubSpot default. Set "Stage probabilities" to the HubSpot default pipeline and read the stage-weighted row again. Notice which rows did not move.
Step 5 · Write stage-weighted against your own snapshot. A sketch, not a result: no output is claimed. Join the snapshot on the forecast date to your stage table and sum.
One quarter is an anecdote. Tonight history-based came closest and rep commit missed its own range, but a single quarter has an error and no bias. Analyst session 5 replays the quarter 20 times with different 300-deal draws from the same real open pool and scores each method on bias, error and how often its range covers what closed.
Before Analyst session 5
30 min- Build your own stage table. From the snapshot on the first day of last quarter, count deals per stage and how many won inside the quarter. Check that the rate rises with stage.
- Find your CRM's probabilities. Open your pipeline settings and note whether the stage probabilities are still the vendor's defaults. If they are, write down who would own replacing them.
- Run the Step 5 query against last quarter's snapshot with both ladders, and compare each to what really closed.
- Write each rep's commit rule in one line ("commits at Contract out", "commits when the buyer confirms budget"), and note whose rule differs from the rest.
Three questions
Clear all three and Analyst session 4 gets stamped in your passport.
1 · Ben commits deals at Proposal; Aiko commits at Contract out. Both use the same Commit category. What does that do to rep commit?
Forecast categories are a convention each rep applies privately. Ben's 3.37m committed against 0.91m closed shows what a lower line does.
2 · The same 300 deals give 8.60m on Kettle's own stage table and 63.64m on HubSpot's default pipeline. Why?
Stage-weighted is only as good as its probabilities. Kettle's own stage 1 rate is 0.0%; the default is 20%, on half the pile.
3 · A rep moves every deal up one stage before the forecast. Which method does not move at all?
That is its protection and its blind spot: it cannot be inflated by stage, and it cannot see a real late-stage signal either.
What this session teaches, and where it came from
Every fact on this page, and its verification tier, is recorded in the course's source map.
Analyst session 4 cheat sheet · pin this
Three methods, one quarter, three answers. Analyst session 5 asks which you should trust: it replays the quarter 20 times, separates bias from error, scores each rep's call ratio, and counts how often each range really covers what closed.