Blog

The CRM data hygiene checklist for forecasts

A forecast is a function of your pipeline data. Feed it deals with no amount, a close date three weeks in the past, or a stage nobody has touched since March, and the number that comes out is confident nonsense. Before you argue about which forecasting model is best, run the boring checklist — clean inputs beat a clever model every time.

Here are the checks worth running every week, why each one quietly corrupts the forecast, and how to triage them in bulk instead of deal by deal.

The checklist

1. Missing amount

A deal with no amount can’t be forecast — it either drops out of the number silently or gets counted as zero, and both are wrong. Worse, a missing amount usually means the deal was created in a hurry and never qualified, so it’s a data-quality and a pipeline-quality signal.

Triage: filter every open deal with a blank amount, and either fill it or disqualify it. Don’t let “we’ll size it later” sit in the committed number.

2. Past close date

A close date in the past on an open deal is the single most common forecast distortion. The deal is either already won or lost (update it) or it slipped and nobody moved the date (re-forecast it). Left alone, it pulls into the current period a deal that has no business being there.

Triage: sort open deals by close date ascending; anything before today needs a decision, not a nudge. Pipemetry’s risk alerts flag slipped deals automatically so this doesn’t pile up between reviews.

3. Missing forecast category

Stage tells you where a deal is in the process; the forecast category tells you how the rep actually feels about it. A deal with no category can’t roll into commit / best-case / pipeline cleanly, so the whole roll-up gets mushy.

Triage: require a category on anything past early stage, and reconcile category against stage — a “Commit” deal sitting in “Discovery” is a conversation worth having.

4. Stale deals (no update in N days)

A deal nobody has updated in weeks is a deal nobody is working. Its stage, amount, and close date are all fiction the moment they go stale, and stale deals are where forecasts go to die. Pick a threshold that fits your cycle — 14 days for a fast SMB motion, 30 for longer deals — and treat anything past it as suspect.

Triage: filter by last-modified date. Pipemetry surfaces stalled deals as a risk alert so the ones going quiet reach you before the QBR, not after.

Why point-in-time history makes hygiene enforceable

Here’s the part a plain CRM report can’t do: to know a deal went stale, or slipped, or lost its amount, you need to compare its state now against its state then. A CRM overwrites the past, so “it’s been stuck for three weeks” is a claim you can’t prove. Pipemetry keeps an event log of every change and reconstructs any past day exactly, so staleness and slippage are measured, not guessed — and the same signals drive the risk alerts.

No CRM? The same checks apply to a spreadsheet

If you forecast from a spreadsheet instead of a supported CRM, none of this changes — the same four checks decide whether your upload produces a trustworthy forecast. The column-mapping step flags rows missing an amount or carrying a close date in the past, so bad rows surface at import rather than silently skewing the number.

The payoff

Clean these four things up and two good things happen: the forecast gets more accurate immediately, and you can finally tell whether a miss was a forecasting problem or a data problem. If you want to see how accuracy is scored once the data is clean, read how to measure sales forecast accuracy — and then backtest it on your own closed quarters to see what the model would really have called.