Skip to main content

SF-0192 · Concept · Easy

What is a Report Type?

✓ Verified by Vikas Singhal · Last reviewed 5/17/2026 · Updated for Spring '26

A Report Type is the template that defines what data is available for a report — which primary object, which related child objects, and which fields can be added as columns or filters. Every report starts by picking a Report Type.

Two kinds

TypeSource
Standard Report TypesShipped by Salesforce — “Accounts”, “Opportunities with Products”, “Cases”
Custom Report TypesBuilt by admins — define the object combo and field set yourself

What a Report Type controls

  • Primary object — the root of the report
  • Related objects — up to 3 levels of child objects (e.g. Accounts → Opportunities → Opportunity Line Items)
  • Relationship cardinality — “with” (require child) vs “with or without” (outer join semantics)
  • Field set — which fields are exposed in the column picker (you can curate to hide noise)
  • Folder / category — where it appears in the Report Builder picker
  • Default columns / sort — initial layout for new reports

Standard report types ship for most objects

Every standard object comes with one or more standard report types. Examples:

  • Accounts and Contacts
  • Accounts with Contact Roles
  • Opportunities with Products
  • Cases
  • Activities
  • Campaigns with Campaign Members

Standard types are good enough for many reports — but they’re inflexible (you can’t change the field set or join logic).

Why build a Custom Report Type

You’d build a custom report type when:

  1. The standard types don’t include the related objects you need (e.g. Accounts → Custom Object → Custom Junction → another Custom Object)
  2. You want to control the field set — hide rarely-used or sensitive fields
  3. You need a different join semantic — “Accounts with or without Opportunities” doesn’t exist as standard
  4. You’re exposing a custom object that has no standard report type
  5. You want default sort/columns for your team

Building a Custom Report Type

Setup → Report Types → New:

  1. Pick the primary object (e.g. Account)
  2. Choose label, name, description, category, folder
  3. Deploy / In Development — controls visibility in Report Builder
  4. Define relationships — add child objects with “with” or “without” semantics, up to 4 levels
  5. Edit Layout — pick which fields appear in the column picker; reorder, add Lookup fields from related records

”With” vs “With or Without”

JoinWhat it does
Accounts with OpportunitiesOnly Accounts that have at least one Opportunity
Accounts with or without OpportunitiesAll Accounts; Opportunity fields are null when no related row

Same as INNER JOIN vs LEFT JOIN in SQL.

Sharing and access

Custom Report Types respect object-level permissions. A user in a custom report type’s field set still only sees data they have row-level access to via sharing.

How many can I have?

  • 2,000 custom report types per org in most editions
  • 4 levels of object relationships per custom report type
  • 1,000 fields exposed per custom report type

Common follow-ups

  • Difference from a Report Folder? — Folder is for storing reports. Type defines the data structure.
  • Can a Custom Report Type include formulas? — Yes — bucket fields and summary formulas defined on individual reports; the report type itself defines available fields.
  • Why is my custom object missing from standard report types? — Custom objects don’t get auto-generated standard types — you need a custom report type.

Verified against: Salesforce Help — Custom Report Types. Last reviewed 2026-05-17 for Spring ‘26.