Blog8 min

How to measure sales forecast accuracy (and improve it)

Forecast accuracy is usually measured as the gap between forecast and actual, which throws away the most useful half of the information. Measure the gap and its sign, month after month. If the sign is mostly the same, you have a bias, and a bias can simply be subtracted. If the signs are random, you have noise, which is a different and harder problem.

What to record

Two numbers per period: what you forecast at the start, and what closed at the end. Freeze the forecast — do not let it be edited retrospectively, which is what most CRMs do by default when a deal's close date moves.

That is the entire dataset. Everything below comes out of twelve rows.

Three numbers to compute

Error per period, as a percentage: (actual − forecast) ÷ forecast. Keep the sign. Negative means you forecast more than you closed.

Mean error (your bias). The average of those signed errors. This is the number that matters most and the one almost nobody computes, because averaging signed errors feels like it should cancel out — and when it does not, that is the finding.

Mean absolute error. The average ignoring sign. This is your raw accuracy, and it is the number that improves slowly.

Six months of a team running hot
October-6%
November-8%
December-36%
January-15%
February-1%
March-7%
Mean error (bias)-12%
Mean absolute error12%

Forecast against actual, with the sign kept. The bias is the average of the signed column.

Every month is negative. That is not bad luck over six months; that is a process that systematically forecasts more than it closes, by an average of 12%. The immediate fix is arithmetic: take 12% off next month's number and say why.

A team with 15% absolute error and no bias is forecasting well. A team with 15% absolute error that is always short is forecasting badly and getting away with it, because the error looks small while the direction is costing them every month.

Where to cut the data

Once you have a year, the same two columns answer much sharper questions. Cut the error by rep: whose calls hold up and whose need discounting. Cut it by deal size: large deals are usually forecast worse, because there are fewer of them and more pressure attached. Cut it by how far ahead the forecast was made: a number set six weeks out should be worse than one set at the start of the final month, and if it is not, the later one is not using the information it has.

How it actually improves

  • Subtract the bias first. It is free, it works immediately, and it is the single largest available improvement for most teams.
  • Then fix the inputs. Replace stage probabilities with rep judgement, score the judgement, and feed that back. This is slower and compounds.
  • Stop chasing absolute error below about 10%. Beyond that you are fighting genuine randomness in a small number of deals, and the effort is better spent elsewhere.

My own error went from roughly 50% to about 14% over a year. Almost all of the improvement was the first bullet. I did not get better at reading deals; I found out I was consistently high and started taking it off.

All articles