Skip to main content
Skip table of contents

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.

image-20260415-194841.png

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.

Valsight_Fish.PNG

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

  1. Open the Model overview from the left menu bar.

  2. Click Add to create the two models:

Field

500_Data

100_P&L

Description

Base data from Excel

Revenue calculation and drivers

Submodels

None

500_Data

  1. 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.

  1. Open the 500_Data submodel by clicking its name.

  2. Click the Node button in the action bar at the bottom of the canvas.

  3. 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

  1. When the node is selected the function editor shows on the top of the canvas.

  2. Click the Data button

  3. Select Data source, Table and Measure in the dialog

  4. 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.

  1. Create these nodes:

Volume

  • Type: Standard node

  • Name: Volume

  • Unit: Quantity

  • Formula: ROLLFORWARD_ADVANCED('Volume (Base)')
    ROLLFORWARD_ADVANCED carries the 2025 base values forward into future years.

Market Growth

  • Type: Simulation node

  • Name: Market Growth

  • Unit: Percent

  • Formula: 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: Price

  • Unit: EUR / Quantity

  • Formula: ROLLFORWARD_ADVANCED('Price (Base)')

Price Adjustment

  • Type: Simulation node

  • Name: Price Adjustment

  • Unit: EUR

  • Formula: 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: Revenue

  • Unit: EUR

  • Formula: 'Volume' * 'Price'

Use Data Preview to confirm that Revenue equals Volume times Price.

Node overview

Node

Formula

Volume (Base)

DATA("TutorialData", "Price and Volume", "Volume")

Price (Base)

DATA("TutorialData", "Price and Volume", "Price")

Volume

ROLLFORWARD_ADVANCED('Volume (Base)', 'Market Growth')

Market Growth

EXPAND(0, "Year", "Region")

Price

ROLLFORWARD_ADVANCED('Price (Base)', 'Price Adjustment')

Price Adjustment

EXPAND(0, "Year", "Product", "Country")

Revenue

'Volume' * 'Price'


What you have done

  • Created two models: 500_Data and 100_P&L

  • Connected 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.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.