Skip to main content

SF-0193 · Compare · Medium

What is the difference between Standard Report Type and Custom report Type?

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

Standard Report Types are templates that ship with Salesforce — predefined object combos like “Accounts with Contacts” — and you cannot edit them. Custom Report Types are admin-built — you choose the objects, the join semantics, and the field set yourself. Custom types are how you expose your own custom objects to the report builder.

Side-by-side

Standard Report TypeCustom Report Type
Created bySalesforce (ships in every org)Admin / developer in your org
Editable?NoYes — fully
Objects coveredStandard objects + some auto-generated for custom objects (limited)Any combination of standard + custom objects
Join cardinalityFixed (usually “with”)“With” or “with or without” — your choice
Field setAll fields exposedYou curate which fields are pickable
Levels of relationshipUp to 4Up to 4
NamingSalesforce-defaultYour choice
Org limitUnlimited (just there)Up to 2,000 custom report types
Use caseQuick standard reportsCustom objects, custom joins, curated field sets

When to use Standard

  • Quick report on a standard object — “all opportunities by stage”, “all cases by owner”
  • Standard relationships covered by what ships (“Accounts with Contacts”, “Opportunities with Products”)
  • No need to control the field picker

When to use Custom

  • Reporting on a custom object that doesn’t have a standard report type
  • You need a relationship the standard type doesn’t model:
    • “Accounts with or without Opportunities” — outer join semantics
    • Three or four objects deep — “Account → Opportunity → OpportunityLineItem → Product2”
  • You want to hide noisy fields from the column picker for end users
  • You need a specific default sort or columns for a team

Example: same goal, two paths

Goal: Show every Account, plus their open Opportunities or “(none)” if they have no open Opps.

ApproachResult
Standard “Accounts with Opportunities”Inner join — Accounts with zero Opps are missing
Custom “Accounts with or without Opportunities”Outer join — Accounts with zero Opps appear with null Opp fields

Building a Custom Report Type (quick steps)

  1. Setup → Report Types → New
  2. Primary object (e.g. Account)
  3. Add related objects (e.g. Opportunity) — pick “with or without”
  4. Pick a category folder and label
  5. Set to Deployed when ready
  6. Edit Layout — drag fields into the column picker; add Lookup fields from related records
  7. Run a report — your custom report type now appears in the picker

Performance considerations

Custom report types with 3-4 levels of relationships and millions of records will be slow. Optimisations:

  • Selective filters — always filter on indexed fields (Id, Owner, CreatedDate, External Id)
  • Curate the field set — don’t expose 500 columns to users
  • Folder strategy — make CRTs discoverable so reps don’t duplicate them

Common follow-ups

  • Can I convert a standard report into a custom report type? — Not directly. Build the custom type, then recreate the report on top of it.
  • Why don’t I see my custom object in standard report types? — Custom objects only get auto-generated types in limited cases; build a custom report type.
  • Custom report type limit? — Up to 2,000 per org in Enterprise/Unlimited.

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