Imagine if you had a single custom report type per object that could address a majority of the requests you have to create a report using data from that object. This is similar to the concept of “one process builder per object” or “one trigger per object” – you create one custom report type per object that you want to report on.
When working with reports in Salesforce, you will find that report types have a major effect on what you are able to manipulate. Report types control what report results have the potential to show, what objects you have access to, what fields are available, and how certain report features will behave. This is the first filter being applied to the data.
The report engine in Salesforce relies on the relationships that are explicitly defined in order to join together data from multiple objects. This means your data architecture determines what native Salesforce reports will be capable of producing. Here are four concepts to consider for data modelling that will allow you to build the reports you desire.