Another approach to Time Intelligence

Best Parctices for Time Scale solution in Business Intelligence

Time Intelligence is a common issue for every OLAP structure because Time as dimension apperars in every OLAP project, in every Cube you build, despite business model or type. To handle Time Intelligence good in calculations, aggregations and optimization, you need to use Timescale as well. With Timescale I mean: MonthToDate (MTD), YearToDate (YTD), LastYear(LY) etc..., all these very important to everyday use of Business Intelligence solutions.

Now, I will take you to the technical steps of implemention of Timescale and Time calculations in SSAS via MSFT BIDS development tool. First you create a Table for Timescale in the source in you DB, DWH, Data Mart or even inside your OLAP and you populate it with data as its shown here:


Based on this table you create a Dimension Timescale where Columns are Attributes and Records are Members of that Dimension. After that, I go to DSV of our Cube, on every Fact Table that needs Timescale (usually all need Timescale) I add Named Calculation FK_Timescale with value 'PE', as in the image above: alt

I create a relationship FK_Timescale of the Fact Table to Timescale table in Data Source View (DSV) and after I build the Cube I do the same in Dimension Usage, where I create Regular relation between Fact Table and Timescale Dimension as shown above: alt

I created 2 name sets for MTD and YTD right after Calculate; and the MDX for that is shown above :

-- Month to Date [Timescale].[Timescale].[MTD] = Sum(MTD([Time Dim].[Hierarchy].CurrentMember),[Timescale].[Timescale].[PE]);

-- Year to Date [Timescale].[Timescale].[YTD] = Sum(YTD([Time Dim].[Hierarchy].CurrentMember),[Timescale].[Timescale].[PE]);

Now, you have ready implemmented Timescale in the Cube for all your Measures, so you do not need to calculate Timescales for each Measure. Instead of having MTD(YTD) Revenue, you just use Revenue measure and change Timescale from PE to MTD(YTD). Test this with Excel, through Data Connection to OLAP Cube and enjoy possibilities. This way is proven more dynamic, flexible and optimized for query performance.

I hope you liked my approach in this important issue of Business Intelligence.