How to forecast sales in B2B SaaS: five methods with formulas, plus the CRM hygiene and weekly cadence that make your numbers trustworthy.
If your forecast changes every time you ask a different rep, you don't have a forecast. You have a collection of opinions.
Learning how to forecast sales starts with a clear definition: estimate the sales you expect to close within a specific period, using consistent data and assumptions. For this guide, the measure is new ARR booked from closed deals. Keep renewals, expansion and recognised revenue separate unless your target explicitly includes them.
This is a familiar problem for lean B2B SaaS teams. Pipeline stages mean different things to different reps. Close dates are set once and never revisited. Deal amounts reflect the first conversation, not the current scope. When the quarter ends, the founder or board sees a number that missed by 30% and asks a fair question: why should we trust next quarter's?
The cost goes beyond embarrassment. Forecasts drive hiring plans, marketing spend, cash runway and the pipeline-generation targets you hand to demand gen. When the forecast is wrong, every decision downstream is shaky.
This playbook covers how to forecast sales properly: the main methods and their formulas, the CRM inputs that make them accurate, and the weekly process that keeps them that way.
When a forecast misses, teams usually want a better method. They move from gut feel to a weighted pipeline, or buy a forecasting tool. Then the forecast still misses.
The method matters, but it cannot compensate for unreliable inputs. A weighted pipeline formula applied to bad data gives you a precise-looking wrong number. The usual culprits:
Fix these, and almost any reasonable method gets more accurate. Leave them in place, and no method will save you.
Most lean teams should combine two or three of these methods rather than relying on one. Here's how each works.
Formula: Forecast = Average new revenue per period (trailing 3-6 periods) × Adjustment factor
Example: you closed $60k, $70k and $80k in new ARR over the last three quarters. Your average is $70k. If you've added a rep who's now ramped, you might apply a 1.15 adjustment, giving a forecast of about $80k.
Use it when: you have at least 3-4 quarters of consistent history and a stable motion. It's a sanity check, not a deal-level forecast. It can't tell you which deals will close.
Formula: Expected open-pipeline bookings = Σ (Deal amount × Stage probability)
Filter to open deals expected to close in the forecast period. Add closed-won bookings from that same period once to get a full-period forecast. Stage probability estimates eventual conversion; for long cycles, also check whether each deal can realistically close before the period ends.
Example:
Use it when: your stages have clear exit criteria. The catch is that most teams set stage probabilities by guessing. Set them from your actual stage-to-close conversion rates over the last 2-4 quarters, using cohorts with enough time to reach an outcome. Separate segments where deal size or sales motion differs, and revisit the rates every quarter.
Formula: Expected open-pipeline bookings = Qualified open pipeline closing in period × Historical win rate
Example: $300k of qualified pipeline is set to close this quarter, and your trailing win rate from qualified opportunity to closed won is 25%. Your forecast is $75k.
Use it when: you have reliable win rate data but stage definitions are still messy. Use a value-based win rate for this value calculation, and add closed-won bookings once when reporting the full period. It gives a broader estimate than a weighted pipeline, so still validate close dates and qualification.
Formula: Expected bookings for an age-and-stage cohort = Open deal value in cohort × Historical share of comparable deals that won within the remaining forecast window
Example: $100k of pipeline sits in a particular stage and age band. In comparable historical snapshots, 30% of that value closed won within the next 30 days. That gives a $30k forecast for the next 30 days.
Use it when: you have enough historical snapshots to compare similar deals. Deal age divided by average sales cycle is not a win probability. A 45-day-old deal in a 90-day cycle is not automatically 50% likely to close. Without cohort data, use age and time in stage to flag timing risks rather than manufacture a probability.
Formula: Illustrative management forecast = Closed won + Open commit + (Open best case × Historical conversion factor)
Keep these buckets mutually exclusive. Best case here means additional deals outside commit, not an inclusive total. Treat commit as a planning assumption, not guaranteed revenue.
Reps put each deal in a category: Commit (high confidence, will close this period), Best case (could close with effort) or Pipeline (unlikely this period). Example: $50k closed, $70k commit and $60k best case at a 40% historical conversion rate gives a forecast of $50k + $70k + $24k = $144k.
Use it when: you have a sales leader who can inspect deals. HubSpot supports forecast categories natively; the formula above is a management model, not a claim about how HubSpot calculates every forecast view. The forecast tool requires Sales Hub or Service Hub Professional or Enterprise, with the relevant access and seats.
What we recommend for lean teams: run the weighted pipeline (system number) alongside forecast categories (rep judgment), and use run-rate as a sanity check. When the numbers diverge sharply, that gap is your agenda for the forecast call.
This is the unglamorous part, and it's where most forecast accuracy comes from.
Define stages by buyer action, not rep activity. "Sent proposal" is a rep activity. "Buyer confirmed budget and decision process" is a buyer action. Every stage needs one or two verifiable exit criteria. For example:
Make key properties required at stage changes. In HubSpot, conditional stage properties can require fields during manual record creation or stage moves. At minimum, require amount, close date and next step. Add a decision-maker field later in the process and a competitor field where relevant. Check workflow and integration updates separately; a manual-entry rule does not prove every record is complete.
Enforce close-date discipline. Build a saved view or report of deals with past-due close dates and review it every week. A close date that has moved more than twice is a signal, so track it. Use deal property history to inspect changes. If you automate push counts, distinguish a later date from any date edit and test the logic against real changes.
Review inactive deals. Set an inactivity threshold appropriate to each stage and sales motion. Flag deals with no recent buyer engagement or agreed next step, then ask the owner to confirm status. Move them to closed lost or nurture when the evidence supports it. A quiet CRM record alone is not proof that a deal is dead.
Separate deal amount from deal hope. Amount should reflect the current agreed scope. If you want to track upside, use a separate "potential amount" property.
If your HubSpot instance is already messy, start with a CRM cleanup before layering on forecasting. Keep lifecycle stages distinct from deal stages: lifecycle tracks the relationship, while deal stages track a specific opportunity.
A forecast is a process, not a report. Without a cadence, even clean data goes stale within weeks.
Rules that keep it honest:
This is where systems beat hero efforts. One great sales leader can carry a forecast through force of will, until they go on holiday. A documented cadence keeps working regardless of who runs the meeting.
If you don't measure accuracy, you can't improve it.
Track accuracy for week-one, mid-quarter and final-month snapshots. Set a tolerance for each snapshot; ±10% by mid-quarter could be an internal target, rather than an industry benchmark. Teams with a few large deals should expect more variance than teams with many small deals.
Connect the forecast to decisions:
You don't need a perfect system to forecast better. Start here:
If your sales motion is still early (a handful of deals a quarter and no repeatable process yet), a formal forecasting system is premature. Focus on generating pipeline and learning what closes first. But if you have an active motion and a forecast nobody trusts, the fix is mostly operational, and it's very doable.

Aditya writes about B2B growth, RevOps and HubSpot, drawing on nearly a decade of hands-on experience.