Base Data

In this step, we create our first Submodel, Base Data. It will serve us as a nexus between the uploaded data from our XLSX sheets and the created Nodes and drivers.

First, we create blank data Nodes 1-10. We use afterwards the Connect Data Button under the formula ribbon to add all data according to the following table: Do not forget to change the Unit settings accordingly and follow the naming. 

Nr.NodeDataSourceTableMeasureResulting fx
1.Base Data RevenueBase dataBaseDataRevenueDATA("Base data", "BaseData", "Revenue")
2.Base Data VolumeBase dataBaseDataVolumeDATA("Base data", "BaseData", "Volume")
3.Base Data Internal Cost RateBase dataFTEDataInternalCostRateDATA("Base data", "FTEData", "InternalCostRate")
4.Base Data Total RevenueBase dataServiceDataTotalRevenueDATA("Base data", "ServiceData", "TotalRevenue")
5.Base Data COGSBase dataBaseDataCOGSDATA("Base data", "BaseData", "COGS")
6.Base Data Billed Days per Project TypeBase dataServiceDataBilledDaysDATA("Base data", "ServiceData", "BilledDays")
7.Base Data Personnel ShareBase dataPersonnelSplitPersonnelShareDATA("Base data", "PersonnelSplit", "PersonnelShare")
8.Base Data G&ABase dataOPEXGADATA("Base data", "OPEX", "GA","EUR")
9.Base Data M&SBase dataOPEXMSDATA("Base data", "OPEX", "MS","EUR")
10.Base Data R&DBase dataOPEXRNDDATA("Base data", "OPEX", "RND","EUR")

(If you forgot to upload your data, see the last step and do that first.)


In our next step we focus on the "Drivers" Model. The Drivers are our ways to simulate effects of outside drivers as well as our own actions.  

What we can achieve with following Formulas:

  • with the EXPANDformula we copy our desired Input for chosen dimension level (e.g. Country level of Location Dimension) across all its level values (e.g. Germany) 
  • with the ROLLFORWARDformula we take the most recent value in  the base and continue data (Base Data Volume) and the drivers ( Market Growth)
  • with the FILTERformula we can select or exclude data based on their dimensions level values (e.g. keeping only data for the level value Germany in the dimension level Countries of the Location dimension)
  • with the EXPANDSINGLEformula we set a chosen level ( e.g Year) to a specific level value (=dimension member) ("2018") on a node or value

Once again we create the 9 driver Nodes and type in the command by opening each Nodes operation editor (fx):

Nr.UseNeeded fx (Highlighted according to the formula explanation above)
1.With this node, we want to simulate effects of different market developments on our sales and associated variable costs. We want to start off with 0 development for both country and years and simulate changes from that baseline.EXPAND(0,"Year","Country")
2.With merit increase, we simulate the increase of Salary for different groups which affects our costs. We start again with zero salary increase for all groups and years.EXPAND(0,"StaffGroup","Year")
3.The volume is the past volume increased with the predicted market growth.ROLLFORWARD(('Base Data'.'Base Data Volume'),'Market Growth')
4.Inflation has affects on our costs and the sales price. We want to keep it at zero for all countries and years and then adjust it later on.EXPAND(0,"Year","Country")
5.The Cost of Goods Sold per Product node should only cover the costs for products and exclude the services cost. We need the past total product cost and divide it with the past product sales volume to have a cost per each product. The most current data point should be a starting point for the future estimation.

FILTER('Base Data'.'Base Data COGS' * -1,"ProductGroup","Products")/
FILTER( 'Base Data'.'Base Data Volume',"ProductGroup","Products"))

6.To model the cost increase following salary changes, we need the share of COGS belonging to personnel.ROLLFORWARD('Base Data'.'Base Data Personnel Share')
7.General and Administrative: The same use case as for the COGS Personnel Share. Please note that including a number manually in a formula can make the model less readable and harder to change, keeping the data in Excel Sheets results in easier model management. However, it is sufficient for our use case.EXPANDSINGLE(0.9,"Year","2018")
8.Marketing and Sales: See 6 & 7.EXPANDSINGLE(0.55,"Year","2018")
9.Research and Development: See 6 & 7.EXPANDSINGLE(0.8,"Year","2018")

If everything went well, your Model should look somewhat like this:

You can see the grey Nodes are from the Submodel "Data Base". 

Next Step

Congratulations on getting to know the four most important formulas of Valsight: EXPAND, EXPANDSINGLE, ROLLFORWARD & FILTER. With their combinations and simple arithmetic operations, you can model most business relationships. You can practice them some more in the Product sub-model. 

Next Page