__Node Overview__

Each node in the VDT contains information, as well as controls to modify the node or the VDT. The colour of the node is determined by the type of the node (Parent, KPI or Constant), with the colours configured on the Site Settings Page.

- The name of the Node, as set up in the Node Edit Dialog
- Collapses/expands all the children of this node
- Contains the list of fields, as set up in the VDT Edit Page, as well as their values.
- These values are either calculated, read from the input captured in the Node Edit Dialog or retrieved from the KPI that the node is associated with

- Indicates that this node’s values are calculated and shows the formula used in the calculation.
- Provides node edit functionalities detailed as follows:
- First button, Opens the Create Node Dialog to allow for the creation of child nodes
- Second button, Opens the Edit Node Dialog
- Third button, Removes the current node from the VDT

__Edit Node__

- Title
- This value will be displayed at the top of the node and is used to identify/describe the node

- Reference
- A unique identifier for this node
- To be used in the expression of the parent node
- Must start with an alphabetic character and no spaces are allowed
- Automatically allocated a value from a – z, based on the node’s position, but can be changed to any other valid identifier for ease of use

- Node Type
- Parent Node
- Indicates that this node will have further child nodes
- Allows for input of an expression to calculate the node’s value based on child node values

- Input KPI
- Indicates that this node’s value is derived from a KPI
- Exact KPI values are determined by the KPI selected for the node, as well as the start/end date range of each field

- Constant
- Indicates that this node’s value is a fixed (constant) value
- Values are entered into the “Input Fields” section below

- Variable Value
- Indicates that this node’s values are fixed values.
- This type of node allows you to specify all the values including the actual value and acts more like a constant KPI node(actual value captured will never change)

- VDT Value
- Indicates that this node’s value is derived from another VDT.
- This type of node allows you extract the field values from another VDT.

- Parent Node
- KPI
- The KPI to be used to read this node’s value from

- Expression
- The expression to be used to calculate the field values for this node
- Based on a combination of child node references, expressions and functions
- See Expressions for more information

- Decimals
- The number of decimal places to be used when displaying this node’s values

- Input Fields
- The list of baseline and target fields, as set up on the Create/Edit VDT Page

- Comments
- Can be used for any comments, descriptions or other free-text information relevant to this node

Depending on the type of the node (selected in the Node Type dropdown), different input fields will be displayed within this dialog. The complete list of fields are listed below.

__Node Expressions__

Expressions are used to specify how a field or child node calculates its value. These can be made up of any combination of the following:

- References to other fields (for calculated fields) or child nodes (for calculated nodes)
- Constant values
- Function calls

For example, the following is a valid expression: pow(a, 2) * avg(a, b) / abs(min(a * 50, b))

In this case:

- a and b are references to other fields or nodes
- 2 and 50 are constant values
- pow, abs and min are function calls

During evaluation of the expression, references are replaced with their appropriate values (from the field/node it referenced) and the expression is then evaluated using the standard mathematical order of operations:

- brackets
- function calls
- multiply/divide operations
- add/subtract operations

### The following functions are currently supported:

Function | Description | Example Usage |
---|---|---|

abs | Returns the absolute value of a number | abs(a) |

ceil | Returns the smallest integral value that is greater than or equal to the specified number | ceil(a) |

floor | Returns the largest integer less than or equal to the specified number | floor(a) |

round | Rounds a number to the nearest integral value | round(a) |

trunc | Returns the integral part of a specified number | trunc(a) |

exp | Returns e raised to the specified power | exp(a) |

min | Returns the smaller of two numbers | min(a, b) |

max | Returns the larger of two numbers | max(a, b) |

avg | Returns the average of two numbers | avg(a, b) |

pow | Returns a specified number raised to the specified power | pow(a, b) |

sqrt | Returns the square root of a specified number | sqrt(a) |

log | Returns the natural (base e) logarithm of a specified number | log(a) |

log10 | Returns the base 10 logarithm of a specified number | log10(a) |

sin | Returns the sine of the specified angle | sin(a) |

cos | Returns the cosine of the specified angle | cos(a) |

tan | Returns the tangent of the specified angle | tan(a) |

asin | Returns the angle whose sine is the specified number | asin(a) |

acos | Returns the angle whose cosine is the specified number | acos(a) |

atan | Returns the angle whose tangent is the specified number | atan(a) |

atan2 | Returns the angle whose tangent is the quotient of two specified numbers | atan2(a, b) |

sinh | Returns the hyperbolic sine of the specified angle | sinh(a) |

cosh | Returns the hyperbolic cosine of the specified angle | cosh(a) |

tanh | Returns the hyperbolic tangent of the specified angle | tanh(a) |