Part 4: Build the Driver Model
In this part, you create two models and build the cause-effect relations of the revenue model.
Models in Valsight define the underlying calculation logic that connects data, business logic, and drivers as the basis for scenario simulation.

For detailed reference on any of the concepts here, see Modeling.
The model structure
Driver models in Valsight follow the "Valsight Fish" structure, read from right to left.
For this tutorial, you will create two models:
500_Data: contains the base nodes that pull in the Excel data
100_P&L: contains the drivers, calculation logic, and the revenue result
Watch the video guide
Step 1: Create the models
Open the Model overview from the left menu bar.
Click Add to create the two models:
Field |
|
|
|---|---|---|
Description | Base data from Excel | Revenue calculation and drivers |
Submodels | None |
|
Click Create.
Step 2: Build the 500_Data model
The data model contains two base nodes that connect to the uploaded Excel data: one for volume and one for price.
Open the 500_Data submodel by clicking its name.
Click the Node button in the action bar at the bottom of the canvas.
Create two Data nodes:
Volume (Base)
Name:
Volume (Base)Unit:
Quantity
Price (Base)
Name:
Price (Base)Unit:
EUR / Quantity
Connect to Excel data using the DATA function
When the node is selected the function editor shows on the top of the canvas.
Click the Data button
Select Data source, Table and Measure in the dialog
Click Insert. The following functions should appear in the editor:
For Volume:
DATA("TutorialData", "Price and Volume", "Volume")For Price:
DATA("TutorialData", "Price and Volume", "Price")
Use Data Preview to confirm that both nodes show 2025 values.
Step 3: Build the 100_P&L model
Switch to 100_P&L using the model selector in the header at the top left of the Model Editor.
Create these nodes:
Volume
Type: Standard node
Name:
VolumeUnit:
QuantityFormula:
ROLLFORWARD_ADVANCED('Volume (Base)')
ROLLFORWARD_ADVANCED carries the 2025 base values forward into future years.
Market Growth
Type: Simulation node
Name:
Market GrowthUnit:
PercentFormula:
EXPAND(0, "Year", "Region")
EXPAND creates a dimensional structure for an empty node.
Update volume to:
ROLLFORWARD_ADVANCED('Volume (Base)', 'Market Growth')
Price
Type: Standard node
Name:
PriceUnit:
EUR / QuantityFormula:
ROLLFORWARD_ADVANCED('Price (Base)')
Price Adjustment
Type: Simulation node
Name:
Price AdjustmentUnit:
EURFormula:
EXPAND(0, "Year", "Product", "Country")This node must match the dimensions of
Price (Base).
Update price to:
ROLLFORWARD_ADVANCED('Price (Base)', 'Price Adjustment')
Revenue
Type: Standard node
Name:
RevenueUnit:
EURFormula:
'Volume' * 'Price'
Use Data Preview to confirm that Revenue equals Volume times Price.
Node overview
Node | Formula |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
What you have done
Created two models:
500_Dataand100_P&LConnected Excel data with DATA
Used ROLLFORWARD_ADVANCED to project values forward
Created simulatable drivers with EXPAND
Calculated Revenue as Volume times Price
Next step
Continue to Part 5: Simulate.