# Calculations with Non-Overlapping Dimensions

This page should help you to understand how the calculation of Nodes with different Dimensions works. Here you can learn about Dimensions and data upload. Just a reminder, when it comes to Dimensions, Valsight uses 3 specific terms:

 Dimension ProductDim Dimension Levels e.g. Product Category, Product, Product variant (Level) Values for Product Category e.g. Sweets; Baked Goods; Soft Drinks

## Setting

The setting describes a street stand that was at first offering only coffee and tea products, but in 2020 started also to offer ice cream and cake. The following data are used for demonstration purposes.

Input 'Sales'

 Year Product Category Product Sales 2019 Hot drinks Coffee 100 Tea 200 2020 Hot drinks Coffee 100 Tea 200 Sweets Cake 300 Ice cream 400 Totals 1,300

Input 'Variable Cost Rate'

Product Category

Variable Cost Rate

Hot drinks

20%

Sweets

50%

Input 'FixedCost2019'

Year

Fixed Cost

2019

-100

Input 'FixedCost2020'

Year

Fixed Cost

2020

-200

We want to look into the ADDITION (+) & SUBTRACTION (-) as well as  MULTIPLICATION (*) & DIVISION (/), because other formulas are mostly based on these. Please note that  SUBTRACTION (-) behaves the same as  ADDITION (+)  and DIVISION (/) behaves as  MULTIPLICATION (*). When working with the Dimensions, there are 3 cases: fully matching Dimensions and level values,  non-matching level values, and non-matching Dimensions or their levels.

## Matching Dimensions & Level Values

This is the simplest case. The elementary arithmetic operations just match all the dimensions and their levels.

'Sales' + 'Sales' =

Year

Product Category

Product

Sales

2019

Hot drinks

Coffee

200

Tea

400

2020

Hot drinks

Coffee

200

Tea

400

Sweets

Cake

600

Ice cream

800

Totals

2,600

'Sales' * 'Sales' =

Year

Product Category

Product

Sales

2019

Hot drinks

Coffee

10,000

Tea

40,000

2020

Hot drinks

Coffee

10,000

Tea

40,000

Sweets

Cake

90,000

Ice cream

160,000

Totals

350,000

## Non-Matching Level Values

With non-matching level values, ADDITION (+) & SUBTRACTION (-) just stack the present level values. Items multiplied or divided with Node without matching level value result in null and show an error.

'FixedCost2019' + 'FixedCost2020'

Year

Fixed Cost

2019

-100

2020

-200

'FixedCost2019' * 'FixedCost2020'

Year

Fixed Cost

2019

0

2020

0

## Non-Matching Dimensions or Dimension Levels

With non-matching Dimensions or Levels, ADDITION (+) & SUBTRACTION (-) will first aggregate according to the Aggregation setting to the common set of Dimensions and Dimension depths and then perform the action. MULTIPLICATION (*) & DIVISION (/) is performed at the common set of Dimensions and Dimension depths. In contrast to Addition & Subtraction, the result gets assigned the joined set of Dimensions and their levels.

'Variable Cost' = -1 * 'Sales' * 'Variable Cost Rate' =

Year

Product Category

Product

Sales

2019

Hot drinks

Coffee

-0.2 * 100 = -20

Hot drinks

Tea

-0.2 * 200 = -40

2020

Hot drinks

Coffee

-0.2 * 100 = -20

Hot drinks

Tea

-0.2 * 200 = -40

Sweets

Cake

-0.5 * 300 = -150

Sweets

Ice cream

-0.5 * 400 = -200

Totals

-470

'Gross Margin' = 'Sales' + 'Fixed Cost2019' + 'FixedCost2020' + 'Variable Costs' =

Year

Gross Margin

2019

300 + (-20 + -40) - 100 = 140

2020

1000 + (-20 -40 - 150 - 200 ) - 200 = 390

Totals

530

(Sum is set as the aggregation type)

JavaScript errors detected