Another Approach to Moving Averages
Objective and Business Scenario
Similar to the path we took in our last article, Introduction to Moving Averages, we will perform the steps required to derive the MDX needed to support a calculated measure that generates a simple moving average within a sample cube. Our objective, just as before, is to provide for cube-level support of an organizational analysis requirement for the calculated measure. With the same simple structural addition to MSAS that we practiced in our last session, we can enable the use of the rolling average capability in any OLAP reporting solution that is capable of accessing an MSAS cube and its calculated measures.
Once we add the calculated measure to our cube, the uses to which we put the new moving average calculated measure are limited only by our knowledge of the reporting tools we use, and the manner with which these tools interact with MSAS. As we mentioned in our last session, examples of these uses might include the construction of a report that presents a rolling average of a key performance measure within our organization, online analysis of a rolling average of a critical measure (with variable time granularity and range parameters as a further nuance), and the support of numerous key performance indicators that exist in various organizational responsibility centers. (The reporting side of these concepts will be developed in articles within my Reporting Services series at Database Journal.)
For purposes of our practice procedure, we will assume, once again, that information consumers within the Finance department of the FoodMart organization have expressed the need for the capability to analyze a key measure, Warehouse Sales, on a rolling average basis. We will assume a business requirement that is identical to that of our last article, to enable us to compare the alternative solution that we develop in this article to that of our last.
To restate the requirement, the information consumers wish to be able to examine the rolling average over a two-year time frame, on a quarterly basis. They need to be able to see the moving averages specifically for U.S. Store States, at present, but, again, appreciate somewhat the value of an ability to apply the rolling average of the measure to other perspectives, both within the store hierarchy ("drill up / down") and across other relevant dimensions ("slice and dice"), and state that such versatility will be "nice to have."
As we noted in the previous article, we discussed the business requirements with the consumers, and confirmed our understanding of their need as follows: the capability to take the Warehouse Sales value for the current quarter (let's say we are Q4 of 1997, for purposes of illustration), then average that value with the same value from the immediately previous three quarters (Q1, Q2, and Q3 of 1997, to continue the illustration). As time passes, and as we move into the next quarter, the "four quarter" range over which the Warehouse Sales average is computed becomes Q2, Q3, and Q4 (of 1997), and Q1 of 1998 - thus the window effectively "rolls" up a quarter in response to the movement of the "current" quarter.
Having recognized, in this scenario just as in the last, that such a rolling average might be valuable for other measures, as well as for other consumers in the organization, we consider making the investment in creating other business intelligence capabilities based upon the calculated measure, which we will assemble in this article. For example, we see that the calculated member can be leveraged with further structural additions in MSAS to support parameter prompts support for the rolling average that we can carry into our reporting capabilities in Reporting Services (the same concepts are valid with other compatible reporting solutions, such as Cognos, Business Objects, Crystal Analysis Pro, and others).
We will expose approaches to creating these broader capabilities in articles in our Reporting Services (and other) series. Regardless of the end applications to which it is made available, a calculated measure that returns a rolling average provides numerous benefits, including easier, more consistent reporting and browsing (as I like to say, such components add a degree of "managed authoring..."). The provision of the measure as a drag-and-drop object frees the intended users from writing calculations, and allows them to focus on mission critical analysis.
Considerations and Comments
Our objective in this article is to create a calculated measure to house the MDX that returns a moving average. The MDX we use will offer an alternative approach to the MDX we offered in our last article to accomplish the same outcome. We will again be working within the FoodMart 2000 sample database, specifically with the Warehouse sample cube, one of the samples that accompany the installation of MSAS. If we want to keep our sample cube in its pristine, original condition, we can simply discard our calculated measure upon the conclusion of our session, or at any convenient time thereafter.
If the sample MSAS database was not installed, or was removed prior to your beginning this article, please see the MSAS documentation, including the Books Online, for the straightforward procedure to restore the database from the archive (.cab) file containing the samples. As of this writing, a copy of the archive can be obtained from the installation CD or via download from the appropriate Microsoft site(s).
We will again assume, for purposes of accomplishing the steps of the practice exercises, that you have the authority, access and privileges needed to accomplish the process, and that performing these operations within the FoodMart 2000 database presents no other issues in your environment.