If your sales leader and your CRM disagree on forecast every Monday, the rule of thumb is simple: it’s not the reps, it’s the configuration. Three settings drive 80% of the variance.
Pick One Forecast Type and Commit
Zoho offers Revenue, Quantity, and Custom forecast types. Don’t run more than one in parallel — reps will optimize for whichever one they’re measured on. If you sell SaaS, run Revenue with Annual_Revenue as the source field. If you’re transactional, run Quantity. Custom only when you genuinely report on units that aren’t either.
Forecast Categories Map to Stages, Not Probability
The default mapping ties stage probability % to category (Pipeline/Best Case/Commit/Closed). This is brittle — reps can’t tell why a 60% deal is in Best Case but a 70% one is Commit. Override it:
Stage -> Forecast Category
Qualification -> Pipeline
Proposal -> Best Case
Negotiation -> Commit
Verbal Yes -> Commit
Closed Won -> Closed
Stage-driven categories give reps something to discuss in pipeline reviews — probability fields turn forecast into math.
Quotas Belong to the Person, Not the Role
Set quotas at the user level, broken down by quarter and territory. The aggregate flows up through the territory hierarchy automatically. Avoid setting role-level quotas — when reps move roles mid-quarter, the math gets weird.
Lock the Forecast Period Before Quarter Open
Once Q1 starts, do not edit Q1’s forecast settings. Use a CRM Variable like FORECAST_FROZEN_AT so admins know the cutoff. Mid-period changes to category mappings rewrite history and burn trust.
Adjustment Records, Not Pipeline Stuffing
When leadership wants to layer in a “we’ll close two more big ones” view, use Forecast Adjustments — a separate field from pipeline. Don’t pressure reps to inflate stages. The adjustment column gives leadership the override they want without polluting the deal data.
What to Do This Week
- Pick one forecast type. Disable the others.
- Replace probability-based category mapping with stage-based.
- Move all quotas from role to user-level.
- Add a “frozen” variable and stop touching active-quarter settings.