Salesforce Dictionary - Free Salesforce GlossarySalesforce Dictionary
Full Stage History entry
How-to guide

Build an Opportunity Stage History report

Stage History is captured automatically and surfaced through the Opportunity History report type. The steps below cover building a useful report and the most common reporting patterns sales operations teams need.

By Dipojjal Chakrabarti · Founder & Editor, Salesforce DictionaryLast updated May 26, 2026

Stage History is captured automatically and surfaced through the Opportunity History report type. The steps below cover building a useful report and the most common reporting patterns sales operations teams need.

  1. Open a new report with the Opportunity History type

    In Reports, click New Report. Search for and pick Opportunity History as the report type. The type exposes both the parent Opportunity fields and the OpportunityHistory row fields.

  2. Add the relevant columns

    Add Opportunity Name, Account Name, Stage at Save, From Stage, To Stage, Created Date, Created By, Amount at Save. The combination gives a full picture of who changed what, when, and where the deal was before the change.

  3. Apply date and stage filters

    Filter Created Date to the period you care about (Last 90 Days for recent transitions, This Fiscal Quarter for current-quarter analysis). Filter Stage to the stages you want to study, or leave open for a full picture.

  4. Add a grouping for analysis

    Group by Stage to see counts per stage. Group by Created By to see per-rep transition patterns. Group by Month to see how transitions are trending over time.

  5. Save and pin for reuse

    Save the report in a folder shared to the sales operations team. Pin the report to the Recent list for quick access. Schedule the report to deliver weekly if the team uses it for stand-up reviews.

Key options
Opportunity History report typeremember

The standard report type that exposes OpportunityHistory. Required for any Stage History reporting in the standard report builder.

Custom report type with OpportunityHistoryremember

An admin-built variant that adds related-object fields beyond what the standard type exposes. Useful for cross-object reports.

Direct SOQL queryremember

The most flexible option for very old or very large history queries. Bypasses the report builder limits but requires query knowledge.

Gotchas
  • OpportunityHistory only writes on changes to Stage, Amount, Probability, Expected Revenue, Close Date, or Forecast Category. Changes to other fields are invisible to Stage History; configure Field History Tracking for those fields if audit is needed.
  • A single save that changes multiple tracked fields produces one history row, not one per field. Parsing the history for specific field changes requires inferring the cause from value differences between consecutive rows.
  • Very old Opportunities produce a long history; reports against OpportunityHistory without tight filters can hit row limits on large orgs. Always filter Created Date to a bounded period unless you need the full history for a specific deal.

See the full Stage History entry

Stage History includes the definition, worked example, deep dive, related terms, and a quiz.