In this session, we’ll walk-through the final three steps of our Architecture Design process. First, we'll determine how many Models to build. Then we’ll define the Rules we need to configure. And lastly, we’ll determine the number of Apps we need to build.
In this session, we’ll walk-through the final three steps of our Architecture Design process, identifying our Models, Rules, and Apps.
We’ll begin by looking at the relationships between our Forms and Dimensions to determine how many Models to build. Then we’ll analyze the calculations in the Forms to define the Rules we’ll need to configure. And lastly, we’ll determine the scope of our application and the number of Apps we’ll need to build.
The key to distinct Models is the Member Lists that define them. A simple way to determine how many Models we’ll need, is to create a table with the Dimension Member Lists on the rows and Forms on the columns. Here we’ll separate out Product, Brands, and SKUs, as each Model can only use one Member List from a Dimension.
Next, we need to mark which Member Lists each Form needs access to. For example, Account is used on the rows in the first three forms, and as a filter in the last form, so we’ll mark each Form with an X. This means that the Account Member List will need to exist in every Model. Likewise, Time, Scenario, and Entity are used as Filters in every Form, let’s mark that as well.
The Product Member List, with Brands and SKUs, will be used in the P&L Report, however, the Deflator % and Trade Spend Forms will only need to input at the brand level, so we’ll include just that Member List. The Base Assumption Form, on the other hand, only needs access to the SKUs.
Looking at the completed table, we can see that the P&L Report and the Base Assumption Form need a different set of Member Lists than the other two Forms, which means they’ll both need to belong to their own Model.
The Deflator % and Trade Spend Forms on the other hand, use all the same Member Lists, and could belong to the same Model, however, as their purposes are very different, we’ll separate them as well to keep the data better organized.
Note that this is just a matter of preference, and the way we make decisions like this will vary based on the requirements of the project.
The next step in the design process is defining Rules. There are primarily two different types of Rules used in Kepion: SQL and MDX. SQL Rules can be defined either directly using raw SQL scripts, or through the Data Rule designer, which we’ll explain in more detail in a later session. As all of the data we’re referencing ultimately exists in relational tables in a database, SQL can be used to accomplish nearly any task in Kepion.
MDX, on the other hand, is used only when it’s necessary to directly define a calculation on the aggregated data in the OLAP Cube. Some common scenarios include variance and percent calculations. As MDX can sometimes impact performance, it’s advised to write rules using SQL, whenever possible.
Now let’s take a look at our Reports and determine which calculations we’ll need to define Rules for.
All of the data in the P&L Report is calculated. The Gross Sales Before Returns comes from the Base Assumption Form. It’s the sum of the revenue of all products. Returns is then calculated by multiplying this with a value from the Deflator % Form.
All of the Accounts under On Sale Discounts are calculated in a similar way, while the Post Invoice accounts are just aggregations from the Trade Spend Form.
The Cost of Goods Sold is the sum of the cost to produce each product times the quantity sold. Then we have some more accounts that are calculated using Revenue times rates from the Deflator % Form. The bolded accounts are hierarchy roll-ups. We can skip them when defining rules, as this kind of aggregation happens automatically in Kepion.
In the last row we have the Gross Margin %, which is calculated as the ratio of Gross Margin to Gross Sales After Returns.
The Trade Spend Form doesn’t need any rules. The total value for the year is another aggregation that happens automatically. No rules are needed in the Deflator % or Base Assumption Forms either, as they don’t contain any calculations.
Here we’ve outlined the final list of calculations in our Architecture Document. We’ll return to this in a later session when it comes time to implement these rules in Kepion.
Now we need to clarify the scope of the Application – how many Dashboard Apps are we going to need to tie every part of this planning process together? Our sample spreadsheet is a simple example. It only covers a single Revenue Planning Workflow, which we can likely implement using just a single App.
In real projects, we may face more complicated situations. Then we need to decide not only how many Dashboard Apps to build, but also whether to put all Dashboard Apps into one Application, or separate them into different Applications. To make the best decision, we need to consider a few factors, including the scale of each App, the project schedule, whether the Apps are related or not, and the customer requirements.
In this session, we used the relationships between our Forms and Dimensions to determine how many Models to build. Then we analyzed the calculations in our Forms to determine the rules we’ll need to configure. And lastly, we scoped the workflow of our Application down to a single Dashboard App.
This brings us to the end of the Architecture Design process. In Part II of this series, we’ll begin the actual process of building and implementing the Dimensions, Models, and Forms we outlined, using Kepion.