Business & Revenue OpsFree
Forecast Accuracy Review by Rep and Deal
Send what you committed and what closed for one bad quarter, get the miss decomposed into named behaviors per rep, reconciled to the dollar.
A forecast accuracy report almost always returns a percentage. Mean absolute percentage error, a bias ratio, a rep marked Good or Poor against a ten-to-fifteen-percent band. Those numbers say how far off a quarter ran and which direction, and neither one says what to tell a rep in a one-on-one. "You missed by twenty-two percent" is a grade. It gives the rep nothing to do differently next quarter, and it gives a manager nothing to check before the next forecast lock.
This run reads the deals that sat in commit or best case at the lock, not just the totals, and traces each to what actually happened by close. Every dollar of the miss gets a named cause and a named rep. A deal can slip stage in the final two weeks, an account can carry an outsized share of quota and die late, or a deal can go quiet with no next step, aging out of commit unnoticed. The causes get summed and checked against the total miss before anything is written up.
On a worked run for a 60-person B2B software company, a $4.2 million commit landed at $3.14 million, a $1.06 million gap. Four named causes across three reps summed to a $1.2 million shortfall, and one rep's two deals that had never been in commit at all landed anyway, offsetting $140,000 of it. The forecast process template fits the next quarter's submission; this fits the quarter that already happened, once the pipeline hygiene rules already say which deals belonged in the count.
A miss has a name attached. A bias ratio does not.
Start by separating a miss from a bias. Bias ratio and MAPE are built to detect a pattern repeating across many quarters, comparing forecast against actual summed over a rolling window and reported as one signed percentage. A single bad quarter is a different object. It has a name attached to almost every dollar of it, because a quarter's commit is a short list of specific deals, not a statistical population, and the run's job is to read that list rather than average it.
The categories that matter are behavioral, not procedural. A deal downgraded from commit after a champion goes quiet is a different failure than one that was accurately weak yet still got called at ninety percent. A single enterprise logo carrying a third of the quarter's number is a concentration problem that no amount of forecasting discipline fixes by itself. The run reads the stage history and close-date changes on every commit and best-case deal, and assigns each miss to whichever of these actually happened, never to a generic "pushed" bucket that erases the difference.
The reconciliation has to be exact, not directional. If the categorized causes do not sum to the full dollar gap, something in the read is wrong, whether a deal was miscategorized or a late addition to commit was missed entirely. The output states the total miss, each named cause with its dollar figure and the rep behind it, and any residual left unexplained, rather than stopping once the largest cause is found and calling the rest noise.
How it works
Send the quarter
What was committed at the lock, what closed, and the CRM export of every commit and best-case deal.
Trace each deal
Stage history and close-date changes from lock to close, read deal by deal rather than summarized.
Assign and sum
Every dollar of the gap gets a named cause and a named rep, checked against the total miss.
Write the coaching brief
One section per rep, with their specific deals and the behavior the deals actually show.
What you get
- Every dollar of the miss assigned to a named behavior and a named rep, not to variance
- Reads deal-level stage history and close-date changes rather than trusting the roll-up total
- Separates a concentration problem, one large deal, from a pattern across many smaller ones
- Finds the deals that landed without ever being in commit, and nets them against the shortfall
- Checks the categorized causes sum to the full gap before writing anything up
- Produces a coaching brief per rep with the specific deals behind their share of the miss
Common questions
How is this different from a forecast bias or MAPE report?
A bias ratio needs several quarters to mean anything, since it is measuring a pattern repeating over time. This reads one quarter's actual deals and assigns each dollar of the miss to what happened to that specific deal, which a multi-quarter statistic cannot do on its own.
What if the miss is really one bad deal, not a pattern?
That is exactly what the categories are built to show. On the worked run, one rep's single enterprise logo died the day before close and accounted for over a quarter of the entire gap by itself. The brief says so by name, rather than folding it into an average error rate.
Does this replace the forecast call itself?
No, it runs after the quarter closes. The forecast process template is what a rep's commit gets measured against going forward; this is what explains a specific quarter that already happened, with evidence a manager can bring into a coaching conversation.
What if some deals never had a CRM stage history at all?
Those get flagged as unexplained rather than guessed at. A deal with no logged stage changes cannot be traced to a specific cause, and the output says so explicitly instead of assigning it to whichever category happens to be largest.
Our forecast total never matches what the CRM shows anyway.
Fix that first. A deal-by-deal reconciliation settles which total is right before this run traces what happened to the deals inside it. Running a behavior review against a total nobody trusts wastes the read, since every deal in the miss would need re-checking against the corrected number anyway.
Can this find a rep who is sandbagging rather than missing?
Yes, in the same pass. A rep whose deals close without ever appearing in commit shows up as an offsetting gain in the same reconciliation, named the same way as a shortfall, since the run treats both directions as behavior worth reporting. A deal inspection pass catches the same overstatement earlier, before the quarter closes.
This explains why the number missed. What explains why individual deals were lost?
That is a different read on different data: closed-lost reasons rather than commit and best-case history. The win-loss reason code template derives specific loss categories from the free text your reps already wrote, then tests which ones predict an outcome before the deal even closes.
Forecast Accuracy Review by Rep and Deal
Fill in the form and your workspace opens with the work already underway.