Analysis

Why your forecast is wrong, and the query that shows by how much.

Most forecasts multiply deal value by a configured stage probability that nobody has checked against outcomes. On one pipeline, Contract Sent was configured at 90% and closed at 54%, worth $1.34M of difference on a $4.02M weighted pipeline.

The assumption underneath.

Almost every CRM ships default probabilities per stage, and almost every company keeps them. The forecast is that percentage times the deal value, summed.

The assumption is that every deal in a stage behaves like every other deal in that stage. It is testable in one query, and it is almost never tested.

What the gap looked like.

Early stages were roughly honest. Late stages were not. Contract Sent configured at 90%, closing at 54%. The gap widened the later the stage, which is the opposite direction to how confidence usually runs.

On a $4.02M weighted pipeline that is $1.34M of difference. It does not surface in a quarterly review because the forecast and the outcome are looked at months apart by different people.

Run it yourself.

One query against your closed deals. If your configured probabilities match your observed rates, you have learned something worth knowing. If they do not, you now know the size of the gap.

What to do instead of guessing.

Weight a deal by what has actually happened on it rather than by the stage somebody dragged it to. Kaypo scores each deal from buyer behavior, shows the inputs, and back tests the weights against your own closed deals so the number is checkable rather than inherited.

Then it sends the reading to each rep in Slack every morning, which is the part that decides whether any of it changes behavior.

Configured probability against observed win rate, per stage

select stage,
       count(*)                                   as closed_deals,
       round(avg(probability)::numeric, 1)        as configured_pct,
       round(100.0 * sum(case when is_won then 1 else 0 end)
             / nullif(count(*), 0), 1)            as actual_pct
  from deals
 where closed_at >= now() - interval '12 months'
   and stage is not null
 group by stage
having count(*) >= 10
 order by configured_pct desc;

Questions

Why is my sales forecast always wrong?

Usually because it multiplies deal value by a stage probability that was set once and never checked against outcomes. The gap tends to be widest in the latest stages, where the configured number is most optimistic.

How do you calculate a more accurate forecast?

Start by measuring your own observed win rate per stage from closed deals rather than using configured defaults. Then weight individual deals by what has actually happened on them.

It arrives in Slack

Every morning, each rep gets one message naming the deals on their own book that moved overnight, biggest mover first, with the reason beside each number and the deals that have gone quiet underneath.

$99 a month, cancel any time.. Everyone on the team. No per seat charge. Connect a CRM and it runs. No implementation fee. 14 day trial. No card.

Back test my own deals, free Try it Pricing

Related reading

How to tell which of your open deals are actually real

Every pipeline has deals that are alive and deals being carried. The difference shows in what the buyer did, not the stage somebody dragged the card to.

Kaypo vs Clari

Clari forecasts revenue at the roll up level. Kaypo scores individual deals and tells reps what moved. What each costs and who each is for.

What deal scoring costs in 2026

The three tiers of deal scoring pricing: what your CRM includes, what purpose built tools charge, and what enterprise platforms cost with minimums.

Weighting company behavior against individual behavior in a deal score

A deal is a company decision made by people. Scoring only one level misses half the picture, and the balance between them is business specific.

Running a win loss analysis from what is already in your CRM

You do not need interviews to learn why deals close or die. Most of the answer is in the activity your CRM already holds. How to pull it.

Reviewed September 20, 2026 against the product as it behaves today.

Why your sales forecast is wrong | Kaypo