What is the detailed logic for when a "standard" report type is created/updated for custom objects or custom relationships?


When custom objects and custom master detail relationships are created Salesforce will often automatically create "standard" report types. For example, I create a new object "Project" I get a new report type "Projects". If I created a master detail from Project to Account I get a new report type "Accounts w/Projects".

These "standard" report types are preferable to custom report types as they don't require maintaining the set of fields that can be returned in the report. In contrast custom report types require updates whenever a new field gets added to the account or projects object before the new field can be used in reports.

However, this automatic creation doesn't seem to occur in all cases. For example, if I create the master detail from projects to account in a sandbox and then deploy to production the "standard" "Accounts w/Projects" report type doesn't seem to get created.

  • 4
    I believe you're confusing standard report types and custom report types. Standard report types are generated automatically, while custom report types are only updated manually.
    – sfdcfox
    Commented Jul 3, 2014 at 1:46
  • 2
    @sfdcfox that is what I'd thought, but in testing that wasn't the case. I created a brand new master detail to an object that was a child of the an account, the new report type was available automatically in sandbox. It also automatically included fields I had created after creating the relationship. I'm the only one using the new relationship, so it's borderline impossible someone created it for me. However when I deployed to production, I had to create the custom report type manually. Commented Jul 7, 2014 at 15:20
  • 1
    noticing some patterns, the presence or lack of a custom report type with the same objects and when the enable reports checkbox on was set. when a "standard" report type wasn't showing up when expected I was able to get it to show up, by deleting custom report types to the custom object then unchecking and then re-checking the enable reports box on the custom object ... Commented Jul 4, 2016 at 19:27

2 Answers 2


Based on some light reverse engineering.

The "standard" report types are created whenever the enable reports option is checked on a custom object, or a master detail relationship to the reportable object is created, EXCEPT if there is a custom report type that includes the same relationships.

To "reset" things, delete any custom report types for the object you're working with, uncheck 'enable reports' on the object, and then recheck. You'll then have "standard" report types that may have been missing before.

And unlike "custom" report types, "standard" report types include all fields for the object by default and hence don't require maintenance when new fields are added.

For some additional discussion see https://success.salesforce.com/answers?id=90630000000D1oTAAS

Note that there are a large number of variations in the order of things, particularly when your considering deployments. The above behavior may not apply in some cases.

  • Wow, I had no idea a 'standard' report wouldn't get created if there was an existing custom report. Do you know what happens if you're deploying from a sandbox that has both a master/detail and a custom report type, to an environment without either? Do we get the master/detail field created, the standard report types created, and the custom report type?
    – Nick C
    Commented Jul 5, 2016 at 14:38
  • @NickCook, i've seen weird behavior, but i didn't have the time and extra dev orgs with sandboxes to put anything to the test. i could see things going either way, so many different permutations on the order of things. Put up the bounty to see if anyone wanted to give a thorough of investigation a try but no takers ... Commented Jul 5, 2016 at 14:48

One thing I noticed today is that the standard report type seems to be child - parent, whereas creating custom report types is parent + child + grandchild + great grandchild.

So for standard report types, so you can only cross filter on child object, and you have to create a custom report type to cross filter on the parent.

This is just for objects in a regular lookup relationship. Its possible that master-detail or junction objects behave differently. Would love to see this documented in more detail, just so I could understand it better.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .