The Apptio platform preloads calculated data into cache in dynamically published environments. This allows the system to quickly display charts and tables that would otherwise take a very long time to calculate in real-time.
While this method of storing and displaying pre-calculated data is effective, there are some combinations of data paths that won’t be pre-calculated. One of these is three object drills that are filtered at each upper object. Here is an example of such a datapath:
.View:Three Object Drill/
IT Resource Towers/
!FILTER[{IT Resource Towers Master Data.IT Resource Tower Name}="Application"]/
.WithDefaultMetric-Cost/
.DrillTo/
Fixed Asset Ledger/
!FILTER[{Fixed Asset Master Data.Class}="Database"]/
.DrillTo/
Cost Source/
In this example the top object is IT Resource Towers. This object is filtered by IT Resource Tower Name. The second object is Fixed Asset Ledger. This object is filtered by Class. The bottom object is Cost Source, which doesn’t necessarily need to be filtered in order for the data path to not be pre-calculated.
These datapaths sometimes aren’t immediately noticeable. They can be created real-time by slicers. In the case above, the data path was created by slicers that were on the report:

As slicers are selected they will append their backing object into the data path if the object is not already included. Because this data path is not pre-calculated, if a user selects a combination of slicers that creates the three object drill in a dynamically published instance, Stage or Production, a real-time calculation will be initiated that can potentially cause severe performance issues and, in some situations, an outage. This is why it is very important to pay attention to what objects are backing the components on your reports.