Skip to main content
Nodes

All about nodes, including variables, constants, operators and groups

Carissa Castro avatar
Written by Carissa Castro
Updated over a month ago

Overview

This article describes the following:


What is a node?

A node is one of the two basic building blocks of all Logica models. Nodes store values, and hovering over any node in the canvas will display any link connection points on the left and right sides. A node can be linked to other nodes, and there is no limit to the number of links coming to or from a node.


How are nodes used in models?

There are several types of nodes that are used in Logica models. These include Variables, Constants, Operators and Groups.

Node Settings

All nodes share several common settings. To update settings for a specific node, select the node from the canvas or the table. Additional information is displayed in the right panel for the currently selected variable:

Name

Update a node's name by clicking on the text field. This is not available for Operators.

Description

Add a description to providing additional context about the specific node.

Group

Displays the specific node's parent group.

Source

Use the Source field to update scenario dependencies and inheritance.

From/To

The From list shows where the specific node gets its value from (i.e. other nodes that flow into the specific node) and the To list shows where the specific node sends its value to (i.e. other nodes that receive a value from the specific node).


Variables

A variable is a one of the most commonly used types of nodes in Logica models. A variable stores a value over time, and is displayed as a row in the table. There are two types of variables: input variables and output, or calculated, variables.

Input Variables

An input variable is logically independent, meaning it does not depend on any other node to determine its value. Input variables can be updated manually by a user or automatically by a data integration or API. Input variables automatically show a blue background in the canvas.

Output Variables

An output, or calculated, variable is dependent on at least one other node to determine its value. Output variables are calculated dynamically by Logica, and automatically show a white background on the canvas. Output variables will always have at least one link from another node, and may contain one or more links to other nodes.

Variable Settings

To set a node to be a Variable, open the Advanced Node Settings and set the "Type" field to "Variable".


Constants

A constant is a type of node that stores a value that does not change over time, and is displayed as a column in the table. A constant will only be viewed as a column in the table view when the entire group or component is pinned.

The "Revenue" group is selected and has been pinned to the table. The "Department Name" and "Department Head" have been set to constants. This can be seen in the table as:

The two constants will appear as columns layered onto the three variable rows. When you pin the outermost group holding all of the pasted components, you will see all of the data organized by the constant's columns.

The unnamed variables are organized by both the "Department Name" and the "Department Head." This feature is useful in situations where you have many similar components with different data and you want to be able to separate that data by a specific title, name, department, company, job, etc. A couple of great applications come from headcount models and revenue models.

Constant Settings

To set a node to be a Constant, open the Advanced Node Settings and set the "Type" field to "Constant".


Operators

There are three types of operators in Logica: Arithmetic, Comparison, and Conditional. These operators can be linked to variables, constants and other operators to produce complex formulas.

Arithmetic operators

There are five arithmetic operators available: Addition, Subtraction, Multiplication, Division, and Modulo.

Addition

The addition operator returns the sum of one or more nodes connected into the top and/or bottom ports of the operator. The output value is sent to a node from the left or right ports.

Subtraction

The subtraction operator returns the top node minus the bottom node. In the case of more than one node connected to the top and/or bottom ports, the operator takes the sum of all nodes in the top port minus the sum all nodes in the bottom port. The output value is sent to a node from the left or right ports.

Multiplication

The multiplication operator returns the top node times the bottom node. In the case of more than one node connected to the top and/or bottom ports, the operator multiplies all nodes. The output value is sent to a node from the left or right ports.

Division

The division operator returns the top node divided by the bottom node. In the case of more than one node connected to the top and/or bottom ports, the operator takes the sum of all nodes in the top port divided by the sum all nodes in the bottom port. The output value is sent to a node from the left or right ports.

Modulo

The modulo operator returns the remainder of the top node divided by the bottom node. The output value is sent to a node from the left or right ports.

For a more detailed explanation of how to use conditional operators, see How to build an arithmetic formula.

Comparison operators

The comparison operators return a true (1) or false (0) based upon the comparison between the top node and the bottom node. This result can be passed to a conditional “IF” operator by linking the comparison operator to the left or right ports. The types of comparison operators include greater than, less than, greater than or equal to, less than or equal to, not equal to, equal to.

Conditional operators

The conditional “If” operator evaluates a boolean value (either a 1 as true or a 0 as false) which is the output of a comparison operator. The output, or result, of a conditional operator (linked to the left side of the conditional operator), is the value of the top-linked input if true and the bottom-linked input if false.

A comparison operator links its output to the center of a conditional “If” operator.

A conditional “If” operator is linked to a comparison operator from the right, an output, or result, variable on the left, and the values to pass to that result on the top (if true) and bottom (if false).

For a more detailed explanation of how to use conditional operators, see How to build a comparison and conditional formula and using the IF operator.


Group

A group is used to improve the organization of your model. Drag and drop any model components (variables, operators, and other groups) into a group. Double-click on the group name to expand or collapse the group. You can also right-click on a group to open the context menu and choose “Expand group(s)” or “Collapse group(s)”.

Drag and drop model components into a group.

Drag and drop a group into another group.

Right-click a group to open the context menu and expand or collapse the group.

Group settings

Title

Update a group’s title by clicking on the title to activate a text field.

Description

The group settings view has options to add a Description, which can be helpful to provide context to yourself and other users about the purpose of the group and its members.

Layout

Use the Layout dropdown menu to update the group layout. This can also be done by right-clicking a group in the canvas and selecting a “Change layout” option.

Group members

This list shows all immediate children members within the group. For example, if Group 1 has a set of variables and that group is a member of Group 2, the Group members list of Group 2 would not display any of the Group 1 members--only Group 1 itself.


What's next?

Did this answer your question?