A forecast is what you believe will happen, not what you want to happen. Forecast accuracy measures how good that belief was, at a point when there was still time to act on it. It needs three things: one formula, forecasts saved at fixed points, and a separate measure of direction.
Worked example
A team saves its forecast every week. Here are three saved forecasts from two quarters:
| Quarter | Week | Forecast | Actual | Error | Signed error |
|---|---|---|---|---|---|
| A | 3 | $1,200,000 | $1,000,000 | $200,000 ÷ $1,000,000 = 20.0% | +20.0% |
| B | 3 | $1,050,000 | $1,100,000 | $50,000 ÷ $1,100,000 ≈ 4.5% | −4.5% |
| B | 9 | $1,090,000 | $1,100,000 | $10,000 ÷ $1,100,000 ≈ 0.9% | −0.9% |
Quarter B's week-3 forecast was about 95.5% accurate, against 80% in quarter A. That comparison is fair because both were made in week 3.
Compare the same week
Error usually shrinks as a quarter goes on, because more deals have closed and less is left to guess. Quarter B's week-9 error of 0.9% looks excellent, but it says nothing about improvement compared with a week-3 forecast. Compare quarters only at the same week, for example week 3 with week 3. Pick a few fixed scoring points, such as an early week when there's still time to act and a later week when spending decisions are made, and score every quarter at those points.
Score saved snapshots, not the live forecast
In most CRMs, the forecast is a live number that updates every time someone edits a deal. By the last week of the quarter it is almost the actual, so a dashboard built on it will show near-perfect accuracy every quarter. That is meaningless.
Save the forecast at fixed points (for example, automatically every Friday), together with the deal-level rows behind it: stage, amount, close date, owner and forecast category. The saved total tells you how big the miss was. The rows tell you why: which deals slipped, which were lost, which were never in the call.
Direction: signed error and bias
Absolute error hides whether you were too high or too low. Signed error keeps the sign: (forecast − actual) ÷ actual, where positive means you over-forecast and negative means you under-forecast. Under-forecasting is an error too: money you could have invested wasn't, because nobody said it was coming.
Bias is the average of the signed errors over several forecasts. Two forecasters can both average 5% error: one misses 5% high then 5% low (no bias), the other misses 5% high every time (a habit). A habit has a cause, such as deals committed without evidence or stages ahead of the buyer (a sign of weak stage exit criteria), and it can be fixed. In the table, two week-3 forecasts aren't enough to call a bias; you need several quarters scored at the same weeks.
To summarize the size of misses over many periods, some teams report MAPE (mean absolute percentage error): the average of the absolute percentage errors across periods, each scored at the same week. For the two week-3 forecasts in the table, MAPE = (20.0% + 4.5%) ÷ 2 ≈ 12.3%. MAPE tells you how big a typical miss is; bias tells you which way it leans.
Common mistakes
- Scoring the live forecast. It is always nearly right by quarter end.
- Comparing different weeks. A week-9 error will nearly always look better than a week-3 error.
- Switching the denominator. Some companies divide by the forecast instead of the actual. In quarter A that gives $200,000 ÷ $1,200,000 ≈ 16.7% instead of 20%. Pick one convention, write it down, and never switch.
- Tracking error without bias. You lose the direction, which is the part you can coach. A weighted pipeline forecast saved at the same weeks can be scored the same way, which gives you a second opinion to compare with the call.
- Fixing bias with haircuts. Cutting every forecast by a fixed percentage teaches reps to pad their numbers, and the bias comes back.
The free RevOps Foundations course covers measuring forecast accuracy in Lesson 6, "Forecasting basics".