---
title: "Collaborative Forecasting, and why the number differs"
url: "https://trailassembly.com/salesforce-forecasting/"
topic: "Reports and Analytics"
published: "2026-09-16T10:54:54+00:00"
updated: "2026-10-06T13:56:38+00:00"
---

# Collaborative Forecasting, and why the number differs

**The short answer:** Collaborative Forecasting rolls opportunity amounts up the [role hierarchy](https://trailassembly.com/role-hierarchy/), grouped by forecast category, and lets each manager adjust their number without changing any opportunity. That last part is why the forecast never matches your pipeline report, and it is a feature rather than a bug.

## The four categories that matter

Every opportunity carries a forecast category derived from its stage: Pipeline, Best Case, Commit, Closed or Omitted. The forecast page shows them as cumulative columns, which is the first thing to understand.

- **Closed** is closed won revenue only.

- **Commit** is Closed plus everything in Commit.

- **Best Case** is Commit plus everything in Best Case.

- **Pipeline** is Best Case plus everything in Pipeline.

- **Omitted** is in none of them, which is where Closed Lost belongs.

People read the Best Case column as “deals we think are best case” and get a much larger number than expected, because commit and closed sit underneath it. Pipeline is the whole open book plus what has already closed.

## The hierarchy is the forecast hierarchy

Forecasts roll up a dedicated forecast hierarchy, which Salesforce builds from your role hierarchy. It is not the same thing, and the difference bites.

A role only appears in the forecast hierarchy if someone in it is enabled as a forecast manager. Roles with no forecast manager are skipped, and their users’ numbers roll to the next enabled role above. So an org with a deep role hierarchy and three enabled managers has a three-level forecast, regardless of how the roles look.

Territory-based forecasting is the alternative where Enterprise Territory Management is in use. It rolls up the territory model instead, which suits businesses where geography and the management chain are different shapes.

## Adjustments, and why your numbers stop agreeing

A manager can override the rolled-up figure for any category. The adjustment is stored separately from the opportunities, and the underlying amounts are untouched. Reps can adjust their own forecast too if the setting allows it.

The forecast page shows both figures, with the original amount visible behind the adjusted one. The pipeline report shows only the original. Anyone comparing the two without knowing about adjustments concludes the forecast is broken.

Adjustments are the point of the feature. A manager who knows a deal will slip can say so without making the rep change a close date, which keeps the opportunity honest about what the rep believes. The cost is that the forecast total is not derivable from the Opportunity table, so no report can rebuild it.

Adjustments are visible through the API:

```apex
SELECT Id, ForecastCategoryName, ForecastAmount, HasAdjustment,
       OwnerId, PeriodId, ForecastingTypeId
FROM ForecastingItem
WHERE PeriodId = :currentPeriod
```

ForecastingItem, ForecastingAdjustment and ForecastingQuota are queryable, which is how forecast data reaches an external warehouse. Treat them as a reporting surface, not a write surface.

## Forecast types

A forecast type is a combination of what you measure and how you group it. Opportunity revenue, opportunity quantity, product family revenue, opportunity splits, and overlay splits are the usual options. You can enable several and switch between them.

Product family forecasting is the one needing preparation. It reads the family on opportunity products, and every line missing one lands in a bucket nobody reconciles. Populate Product2.Family across the catalogue before enabling it.

## Quotas

Quotas load per user, per period, per forecast type. There is no bulk entry screen worth using, so most orgs load ForecastingQuota through the API. Getting the period right is the fiddly part, since the record wants a start date exactly matching a defined fiscal period. Custom fiscal years change how those periods are generated and enabling them is close to irreversible, so decide that first.

## When not to use it

Collaborative Forecasting assumes revenue is recognised at close. If your business bills across months, the forecast number answers a question your finance team is not asking. Opportunity products with schedules, or a custom revenue object, gives a time-phased picture that forecasting does not.

It also assumes one owner per deal. Where several people share credit, enable opportunity splits first and forecast on the split, otherwise every deal counts once against one person and the team-level numbers are wrong.

## Frequently asked

**Why can a manager not see their team’s forecast?** They are not enabled as a forecast manager on their role, which is a separate switch from managing those users.

**Do adjustments survive the opportunity changing?** The adjustment stays until removed or the period closes. If the underlying deals move, the adjusted number can drift away from anything sensible, so review adjustments weekly.

**Can I report on forecast history?** Not through standard reports in a useful way. Snapshot ForecastingItem on a schedule if you need week-over-week trend.

**Does Closed Lost appear anywhere?** No, Omitted is excluded from every column. Report on losses separately.

---

Source: https://trailassembly.com/salesforce-forecasting/
Trail Assembly — independent Salesforce write-ups.
