Why Sales Forecasts Are Wrong, and Why Your Data Is Not the Reason
Every revenue leader I meet blames the same thing when the forecast misses: the data. It is the wrong culprit. Your forecast is wrong because it rests on assumptions that quietly stopped being true, and clean data cannot save a stale assumption.Ask a room of RevOps leaders why sales forecasts are wrong, and they all say the same thing. Our data is a mess. Reps do not update stages. Close dates are fiction. Amounts are guesses. Every one of them believes they are uniquely cursed, the only company on earth trying to run revenue on garbage.
It is bullshit. Everyone has bad data. It does not matter. Garbage in does not have to mean garbage out. As long as your data is consistently bad, a good model reads through the noise and predicts anyway. In our data at ORM, we build fully trained models on a company's messy history in four to six weeks, and they hit around 90% accuracy on new and expansion business without anyone cleaning a single field first. The data was never the blocker. The belief that data is the blocker is the blocker.
The real reason sales forecasts are wrong
Here is the mechanism, not the symptom. A forecast is a set of assumptions about how your market behaves: what a deal is worth, how often you win, how long a cycle runs, how much your team can execute. You built those assumptions on last year's market. Then the market moved and the assumptions did not.
I call this assumption drift. Your model was right the day you built it and wrong every day after, because the world underneath it kept changing while the spreadsheet sat still. A static forecast is a photograph of a market that has already walked out of frame. The teams that miss are not the teams with the dirtiest CRMs. They are the teams whose forecast cannot feel the ground shift.
The Four Drift Vectors
Assumption drift is not random. In our data it arrives through four channels. I call them the Four Drift Vectors, and every forecast miss I have investigated traces back to at least one.
| Drift vector | What changes in the market | What breaks in your forecast |
|---|---|---|
| Pricing pressure | A new competitor enters and undercuts you | Average deal size falls, so booked revenue lags the pipeline count |
| Capital cost | Rates rise, PE slows deployment, buyers cut spend | Win rates drop as fewer companies buy |
| Cycle stretch | Uncertainty makes buyers hesitate | Deals run longer from qualified to closed, so in-quarter revenue thins |
| Territory churn | You reshuffle territories and reps get distracted | Coverage looks fine, execution does not |
The vectors compound. When capital tightens and a competitor cuts price at the same time, win rate and deal size fall together, and a forecast built on last year's numbers overstates the quarter twice.
A worked example
Vantora, a mid-market SaaS company, closes Q1 planning with 3.8x coverage and a forecast that says the quarter is safe. (Illustrative, not a benchmark.)
Then two vectors drift. A funded competitor enters and starts discounting, and a rate move pushes Vantora's PE-backed buyers to freeze budgets. Neither shows up in the coverage ratio. The pipeline still looks fat.
Watch what happens under the surface. The pipeline carries an average deal size of $80,000, but closed-won lands at $40,000, exactly the gap we see across our customers when pricing pressure hits. The forecast counted the $80,000. Meanwhile sales cycle length stretches by weeks as frozen buyers stall, so deals that were supposed to close in-quarter slip to the next one. Vantora's deal slippage climbs, the coverage ratio stays green the whole time, and the team misses badly while swearing their data was clean. It was. Their assumptions were three months stale.
How to build a forecast that feels the drift
A responsive forecast does one thing a static one cannot. It re-reads the market and adjusts itself as the quarter moves, not after it ends. Getting the number right in the last week helps no one, because by then the quarter already happened. The value is knowing the shape of the quarter on day one and watching it update through day 90.
Three moves get you there.
Decompose instead of aggregate. A single coverage number hides the composition of the quarter. Split it into carry-over deals already in pipeline, in-quarter deals not yet created, and pull-forward deals borrowed from future periods. Most teams over-trust the pipeline they can see and under-model the revenue they cannot see yet.
Watch the leading vectors, not the lagging total. Deal size, win rate, and cycle length all move before booked revenue does. When a rep changes a close date, that is drift showing its hand early. The earliest signal of all is no signal: a deal with no activity, no notes, and no data changing is a deal quietly dying.
Let the model retrain on the change. This is the part manual forecasting cannot do. A human rebuild to catch a pricing shift takes weeks, and by the time you finish, the market has drifted again. A model that retrains continuously holds accuracy from day 1 to day 90. That is how you reach 95% accuracy that stays put instead of 90% that decays the moment conditions turn.
The contrarian close
Here is the position I will defend. Stop auditing your data and start auditing your assumptions. Data cleanliness is the comfortable problem, the one you can hand to an intern and feel busy about. Assumption drift is the real one, and it stays invisible until it has already cost you the quarter. Forecast accuracy is not a data-hygiene project. It is a question of whether your model can change its mind as fast as your market does.
The best forecast is not the one with the cleanest inputs. It is the one that notices the ground moving and adjusts before the quarter is spent. That is the difference between a photograph and a live feed, and it is the whole of why sales forecasts are wrong. At ORM we build the revenue forecasting models that keep re-reading the market so your forecast drifts with it instead of against it.
Frequently Asked Questions
Why are sales forecasts wrong?
Sales forecasts are wrong because they rest on assumptions that quietly stopped being true. A forecast encodes what a deal is worth, how often you win, and how long a cycle runs, all based on last year's market. When the market moves and those assumptions do not, the forecast misses. The problem is stale assumptions, not dirty data.
Is bad data the reason my forecast is inaccurate?
No. Every company has bad data, so it is not what separates accurate forecasts from inaccurate ones. Garbage in does not have to mean garbage out. As long as your data is consistently bad, a well built model reads through the noise. At ORM we hit around 90% accuracy on new and expansion business without cleaning fields first.
What is assumption drift in forecasting?
Assumption drift is the gap that opens when your forecast's assumptions stay fixed while the market underneath them changes. The model was right the day you built it and wrong every day after. A static forecast is a photograph of a market that has already walked out of frame, which is why forecasts decay as the quarter progresses.
What causes a sales forecast to miss the number?
In ORM's data, forecast misses arrive through four drift vectors: pricing pressure that shrinks average deal size, rising capital costs that lower win rates, uncertainty that stretches cycle length, and territory reshuffles that hurt execution. These vectors compound. When a competitor discounts and rates rise at the same time, deal size and win rate fall together and a stale forecast overstates the quarter twice.
How do you build a responsive sales forecast?
Decompose the quarter into carry-over, in-quarter, and pull-forward revenue instead of trusting one coverage number. Watch leading vectors like deal size, win rate, and cycle length, which move before booked revenue does. Then let the model retrain continuously so it adjusts mid-quarter instead of after the quarter ends. A model that retrains holds accuracy from day 1 to day 90.
How accurate can a B2B SaaS sales forecast be?
A manual forecast on new and expansion business typically reaches around 90% accuracy, but it takes heavy effort and decays as conditions change. A model that retrains continuously can hold 95% accuracy from the first day of the quarter to the last. The difference is not cleaner data. It is whether the model can change its mind as fast as the market does.
See how ORM turns these insights into action
ORM builds custom revenue forecast models for B2B SaaS companies. Not dashboards. Prescriptive analytics that tell you what to do next.
Schedule a Demo