Sales forecast accuracy is calculated by comparing the revenue called at a fixed point in the period with the revenue that closed: divide the absolute difference by actual revenue to get the error, and subtract that error from 100%.
The short version
That one formula is enough for the headline. HubSpot uses it in its forecast tool, with accuracy floored at zero when the error is larger than the actual. Some teams instead divide actual by forecast. Salesloft shows the same quarter, $10M forecast and $9.5M closed, coming out as 95% accuracy one way and a 5.3% error rate the other. Pick one and never switch.
Fix the snapshot before you calculate anything. The answer depends on which forecast you compare against, so choose the horizon once and apply it to every period. In sales, that usually means the commit called in week 4 or week 6 of the quarter.
A team total can hide a lot, so add a rep-level error, a bias check and one deal-level count.
The formulas
| Measure | Formula | What it tells a sales manager |
|---|---|---|
| Accuracy (headline) | 1 minus (absolute value of actual minus forecast, divided by actual) | How close the called number came |
| MAPE (by rep) | Average of each rep's absolute error divided by that rep's actual | How far off the typical rep is, each rep weighted equally |
| WAPE (team) | Sum of absolute errors divided by sum of actuals | Total miss across the team, weighted by deal value |
| Bias | (Forecast minus actual) divided by actual | Positive means over-calling; negative means sandbagging |
| Commit-to-close rate | Committed deals that closed in the period, divided by committed deals at the snapshot | Whether the forecast was right for the right reasons |
Avoma recommends MAPE for comparing reps and WAPE for team roll-ups because WAPE adjusts for deal size. The last row is ours. It is the only one that points at deals a manager can do something about.
An illustrative team
This example is illustrative. Three reps call a combined $1,000K at week 4: $300K, $250K and $450K. They close $240K, $275K and $430K, a total of $945K.
- Headline accuracy: the miss is $55K on $945K, a 5.8% error, so accuracy is 94.2%.
- MAPE: the reps are 25.0%, 9.1% and 4.7% off. The average is 12.9%.
- WAPE: absolute errors of $60K, $25K and $20K total $105K, or 11.1% of $945K.
- Bias: the team over-called by 5.8%. The first rep over-called by 25%, while the second under-called, so part of the miss cancelled out inside the total.
- Commit-to-close: 14 deals were in commit at week 4 and 9 closed, or 64%.
A 94% headline looks healthy. The other four numbers say one rep's commit is unreliable and five committed deals slipped. The manager's next step is to ask, for each of the five, which piece of buyer evidence was missing at week 4, and to coach the rep on the conversation that would have produced it. A rep can prepare each of those conversations on a call with Caty, or talk to us about running it across the team.
How to calculate it in a spreadsheet
Use one row per rep and one tab per quarter. Type the forecast in on the snapshot date and never overwrite it.
| Column | What goes in it | Formula (row 2) |
|---|---|---|
| A: Rep | Name | |
| B: Forecast | The number called at the snapshot | Typed in on the snapshot date |
| C: Actual | Closed-won revenue in the period | From the CRM at period close |
| D: Absolute error | Size of the miss, either direction | =ABS(C2-B2) |
| E: Error | Miss as a share of actual | =D2/C2 |
| F: Accuracy | The headline for that rep | =MAX(0,1-E2) |
| G: Bias | Direction of the miss | =(B2-C2)/C2 |
Under the rep rows, add a team row that sums columns B and C and runs the same formulas on those totals. That row is the headline accuracy. Then add two cells: MAPE is =AVERAGE(E2:E4) for a three-rep team, and WAPE is =SUM(D2:D4)/SUM(C2:C4). The MAX in column F floors accuracy at zero, the way HubSpot does.
Commit-to-close needs a second tab with one row per deal that was in commit at the snapshot and a yes/no column for whether it closed in the period. Count the yes rows and divide by the number of rows.
Where the miss came from
The headline nets everything into one number, and a variance review splits it back out. For each rep, sort every difference between the snapshot and the close into four buckets: deals that slipped to a later period, deals that closed smaller than called, deals pulled in from a later period, and deals that were not in the call at all.
Here is the same illustrative team, split that way:
| Rep | Called | Slipped | Closed smaller | Pulled in or new | Closed |
|---|---|---|---|---|---|
| First | $300K | -$90K (2 deals) | -$10K | +$40K | $240K |
| Second | $250K | -$40K (1 deal) | $0K | +$65K | $275K |
| Third | $450K | -$55K (2 deals) | -$15K | +$50K | $430K |
| Team | $1,000K | -$185K (5 deals) | -$25K | +$155K | $945K |
The net miss is $55K. The gross movement is $365K: $210K fell out of the call and $155K arrived from outside it. A manager who only sees the $55K thinks the quarter went roughly to plan. The table shows the total came out close partly by luck, because deals nobody had called covered most of the ones that slipped. The second rep's under-call, for instance, is one slipped deal hidden behind a deal nobody had forecast.
The five slipped deals are the coaching list. For each one, ask what the buyer had said or done by week 4 that put it in commit, and what was missing. Typical answers are a signer nobody had met, an approval step nobody had mapped, or a close date the buyer never agreed to.
Measure at more than one checkpoint
Accuracy depends on when you take the snapshot. A call made in the last week of the quarter looks accurate because most deals have already closed or visibly died. A more useful setup records the call at three points, say weeks 4, 8 and 11 of a 13-week quarter, and compares each with the close.
Read the three together. If accuracy is poor at week 4 and good at week 11, reps are finding out late what is real in their deals, which is a qualification problem. If it is poor at every checkpoint, look at how deals get put into categories. Keep the week 4 number as the one you report, because that is the one the business plans against.
Commit and best case accuracy
Category accuracy checks each forecast category on its own. For commit, divide the commit revenue that closed by the commit revenue called at the snapshot. Do the same for best case and expect a lower rate, since best case holds deals that might close.
Two readings matter. A commit rate that drifts down quarter after quarter means deals are entering commit on the rep's confidence. A best case rate close to the commit rate means the categories carry no information and reps are using them as a mood scale. Both get fixed in the deal review, by agreeing what a buyer must have said or done before a deal moves up a category. The MEDDPICC deal sheet is one way to write that rule down.
What is a good forecast accuracy?
A good forecast accuracy is one that beats your own last four quarters at the same snapshot, measured with the same formula. Published benchmarks are hard to compare because they differ in formula, snapshot and business: a renewals book with steady customers is easier to call than a new-logo team selling six-figure deals. Track accuracy by segment where the mix differs, and set the target from your own history before comparing with anyone else's.
How often to calculate it
Calculate the headline, MAPE, WAPE and bias once per period, at close, against the fixed snapshot. During the quarter, record the call every week on the forecast call so the checkpoints exist when the quarter ends. Then hold a short variance review in the first week of the next quarter, rep by rep, with the slipped deals on the table. Look at bias across at least four quarters before calling a rep an over-caller, since one quarter can turn on a single deal.
Common mistakes
Comparing against the last call of the quarter. It flatters everyone, because by then most deals are already decided.
Changing the formula between periods. Error divided by actual and error divided by forecast give different numbers for the same quarter. Pick one and write it on the report.
Reporting only the team number. Over-calls and under-calls cancel out, as the illustrative team shows.
Letting the snapshot overwrite itself. If the CRM forecast field updates live, export it on the snapshot date. Otherwise you end up comparing the close with itself.
Ignoring direction. A rep who misses by about the same amount in the same direction every quarter has a habit worth coaching. MAPE hides it and bias shows it.
From the numbers to the fix
- How to improve sales forecast accuracy: the procedure that turns these numbers into coaching.
- Deal risk guide: the evidence each stage should require.
- How to run a forecast call: the weekly questions for every committed deal.
FAQ
What is the difference between MAPE and WAPE?
MAPE averages each rep's percentage error, so a rep with a $50K number counts as much as one with $500K. WAPE adds up all the absolute errors and divides by total actual revenue, so bigger numbers carry more weight. Avoma suggests MAPE for comparing reps and WAPE for the team roll-up.
How do you measure forecast bias?
Subtract actual revenue from the forecast and divide by actual. A positive result means the team or rep over-called; a negative one means they under-called, often called sandbagging. Track it by rep over several quarters, because one quarter's bias can be a single slipped deal.
What forecast should you compare against?
Compare against the forecast called at a fixed point, such as the commit at the start of week 4, and use the same point every period. Comparing against the last call of the quarter measures how well the team reported deals already closing, which says little about forecasting.
Can forecast accuracy be negative?
It can with the basic formula, when the miss is larger than actual revenue: a rep who calls $200K and closes $80K is 150% off, which would make accuracy minus 50%. HubSpot floors accuracy at zero in that case, and the spreadsheet formula above does the same with MAX. Report the error alongside it so the size of the miss stays visible.
Should you measure forecast accuracy by rep or by team?
Measure forecast accuracy both by rep and by team. The team number is the one finance and the board plan against, so report it as the headline. The rep numbers are the ones a manager can coach, because a team total can look close while one rep over-calls and another under-calls, as the illustrative team above shows.