HubSpot’s forecast tool does exactly what it says. It takes your deal amounts, applies a probability, and groups the result by close date. The trouble is that each of those inputs arrives with a default nobody chose, and the forecast inherits all of them without comment.
That is good news, in a way. A forecast that misses for structural reasons misses in predictable directions, and every one of the causes below can be measured inside the portal you already pay for.
Why is my HubSpot forecast always wrong?
Because the forecast is only as good as three deal properties: Amount, Deal probability and Close date. HubSpot sets Deal probability from the stage a deal sits in, using pipeline defaults unless someone changed them. Reps enter close dates, and the dates drift as deals slip. Deals with no amount contribute nothing. Each input fails in a predictable way, and each can be measured.
A pattern I run into often in HubSpot portals looks like this: a weighted pipeline that looks healthy in the first month of the quarter, shrinks every week as close dates roll forward, and ends next to a commit number that bears little relation to it. Nobody did anything wrong in the tool. The inputs were never calibrated, so the output was never a forecast. It was arithmetic on placeholders.
It is a common failure, not a HubSpot quirk. In Xactly’s 2024 Sales Forecasting Benchmark Report, 4 in 5 sales and finance leaders said they had missed a quarterly forecast in the past year. Our sales forecast accuracy guide covers how to measure the miss. This paper covers where HubSpot’s version of it comes from.
HubSpot’s default deal stage probabilities are placeholders
HubSpot’s default sales pipeline ships with seven stages and fixed win probabilities: Appointment scheduled 20%, Qualified to buy 40%, Presentation scheduled 60%, Decision maker bought-in 80%, Contract sent 90%, Closed won 100% and Closed lost 0%. Every new portal gets the same ladder. It describes no particular company’s sales cycle, including yours, until you replace it with your own numbers.
| Deal stage | Default win probability | What the default claims |
|---|---|---|
| Appointment scheduled | 20% | One in five first meetings becomes revenue |
| Qualified to buy | 40% | Two in five qualified deals close |
| Presentation scheduled | 60% | Most deals that reach a demo close |
| Decision maker bought-in | 80% | Buy-in converts four times in five |
| Contract sent | 90% | Almost every contract sent gets signed |
| Closed won | 100% | Won |
| Closed lost | 0% | Lost |
Source: HubSpot Knowledge Base, Set up and manage object pipelines, accessed October 2026.
Read the right-hand column out loud in a pipeline review. Ask whether your team closes 60% of the deals that reach a scheduled presentation. If your real rate from that stage is closer to a quarter, HubSpot is crediting every one of those deals at more than twice what your history says it is worth.
The probability also ignores everything about a deal except its stage. A $400,000 deal that entered Contract sent eight months ago carries the same 90% as one that entered yesterday. HubSpot’s own property definitions are mechanical on this point: Deal probability updates automatically when a deal moves to a new stage, based on the win probability set for that stage, and Weighted amount is the Amount multiplied by the Deal probability.
Weighted amount or forecast categories: which should you trust?
Use forecast categories for the call and the weighted amount as a cross-check. HubSpot’s forecast tool can show a weighted amount (Amount times Deal probability), the total amount, or a legacy forecast amount driven by a custom Forecast probability property. Forecast categories, Pipeline, Best case, Commit and Closed won, are meant to carry a rep’s judgment. Automated from stage, they carry none.
| Option | How HubSpot calculates it | When it misleads |
|---|---|---|
| Weighted amount | Amount × Deal probability, set by stage | When stage probabilities are uncalibrated defaults |
| Total amount | The full deal amount | Always overstates the period; useful for coverage only |
| Forecast amount (legacy) | Amount × a custom Forecast probability, set by hand or by workflow | When the workflow logic is undocumented or reps set it by feel |
Source: HubSpot Knowledge Base, Set up the forecast tool, accessed October 2026.
HubSpot lets you map each deal stage to a forecast category, and with the Automate forecast categories setting on, it creates a workflow that updates the category whenever a deal changes stage. That is convenient, and it quietly turns Commit into a synonym for a stage name. A rep’s commit should mean “I will stake my number on this deal,” and no stage can say that on a rep’s behalf.
The useful version keeps the two signals separate. Weighted amount tells you what the pipeline is worth if your stages behave the way your history says they do. Commit tells you what your reps will stand behind. When the two diverge sharply, that gap is the most useful item on the forecast call agenda. Our forecasting glossary has definitions of commit, best case and pipeline you can adopt as written.
Close dates drift, and HubSpot does not count it for you
Close date is the property most likely to be wrong in a HubSpot forecast, because reps set it, reps move it, and nothing counts how often. The forecast tool groups deals into periods by close date, so a deal pushed one week past quarter end leaves this quarter’s forecast entirely. Open deals whose close dates have already passed sit in a period that is over.
Close date also changes at the finish line. HubSpot sets Close date to the current date automatically when a deal moves into a closed won or closed lost stage, a behavior you can turn off in pipeline settings. If reps mark deals won a week late, revenue lands in the week they clicked, not the week the customer signed, and month-end reports move with it. We cover the reporting fallout in why HubSpot reports don’t match.
HubSpot keeps property history on every deal, so the evidence of drift exists. No default report counts it. Two ways to make it visible:
- A push counter. Create a number property such as Close date push count, and a workflow that re-enrolls whenever Close date changes and increases the count by one.
- A slipped-deals view. Report on open deals whose close date sits in a past period, and on deals whose close date has moved out of the current quarter.
Either way, a deal on its third push belongs in best case at most, whatever its stage says.
What breaks the inputs: deals without amounts, contacts or owners
A deal with no Amount adds zero to every forecast view, however late its stage. A deal with no associated contact disappears from contact-based reports and from HubSpot’s deal and revenue attribution, which require at least one associated contact. A deal owned by a deactivated user has nobody updating it. Each is a small hole. Together they decide what the forecast can see.
None of these show up in the forecast tool as errors. They show up as deals that close without ever being forecast, and as forecast deals nobody in the room can explain. The attribution requirements make the contact gap expensive twice: the deal is missing from the forecast conversation about who is engaged, and its revenue is missing from marketing’s reports. Duplicate contacts make it worse by splitting one buyer’s activity across two records; see why HubSpot duplicates keep coming back.
How do you calibrate HubSpot deal stage probabilities?
Replace each default with the share of deals that entered that stage and later closed won, measured over enough closed history to be stable. HubSpot records a Date entered property for each deal stage, so the math is: deals that entered stage X and closed won, divided by all closed deals that entered stage X. Recheck every quarter, and keep separate values for separate pipelines.
- Pull every deal that closed, won or lost, in the last four to six quarters, one pipeline at a time. Treat any stage with very few deals as provisional.
- For each stage, keep the deals with a value in that stage’s Date entered property. Stages that many deals skip are a stage-definition problem worth its own conversation.
- Divide the closed-won deals by all closed deals that entered the stage. That is your stage-to-close win rate.
- Enter those rates as the stage probabilities in pipeline settings, and record the date and the data window you used.
- Re-run last quarter’s weighted forecast with the new probabilities and compare it with what closed. If it is not closer, look at stage definitions before you touch the math again.
Calibration corrects the arithmetic. It cannot rescue a stage that means different things to different reps, or a close date that was a guess when it was typed. Those are judgment problems, covered in why sales reps are bad at forecasting.
- HubSpot forecast hygiene checklist
- Stage probabilities replaced with your own win rates, with the date recorded.
- Forecast categories set by reps, or the automation documented and understood.
- No open deals with a close date in a past period.
- Every deal past your first qualified stage has an Amount and an associated contact.
- A push counter or slipped-deals report reviewed in every forecast call.
- No open deals owned by deactivated users.
Our free HubSpot audit is a quick first read of a portal. The AeolusGTM CRM Diagnostic goes further: a read-only scan of HubSpot, Salesforce or Pipedrive that surfaces open deals missing the numbers a forecast needs, close dates that keep sliding and deals that have quietly gone cold, each traced to the records behind it.
HubSpot will forecast whatever you feed it, with complete confidence. The defaults were placeholders on the day your portal was created. Decide whether they should still be running your quarter.