You have already been introduced to Flow Aggregation Methods. Let's look at how each of the standard Aggregation Methods that Flow provides transforms (i.e. aggregates) data points within a single time period. The sample data introduced earlier is shown here again.
Point | Timestamp | Raw Value |
1 | 05:55:03 | 1.6 |
2 | 06:03:23 | 2.3 |
3 | 06:07:30 | 2.5 |
4 | 06:10:22 | 3 |
5 | 06:15:52 | 2.1 |
6 | 06:20:40 | 1.9 |
7 | 06:25:13 | 2.5 |
8 | 06:29:44 | 2.3 |
9 | 06:35:14 | 1.6 |
10 | 06:41:14 | 1.8 |
11 | 06:46:03 | 2.3 |
12 | 06:52:35 | 2.9 |
13 | 06:55:26 | 2.2 |
14 | 07:05:40 | 1.4 |
Sum
When using the “Sum” aggregation method, Flow will calculate the sum of points 2 to 13. It will exclude the “boundary” value, since point 1 before the “boundary”, would have been used in the previous time period’s calculation.
For the above data points, and for the period from 06:00 to 07:00, Sum = 27.4
Average
When using the “Average” aggregation method, Flow calculates a time weighted average. The “boundary” value is included in the calculation.
For the above data points, and for the period from 06:00 to 07:00, Average = 2.213722222
See the article on time weighted averages for a detailed explanation on how this is calculated.
Minimum
When using the “Minimum” aggregation method, Flow determines the minimum value of all the points within the time period, including the “boundary” value.
For the above data points, and for the period from 06:00 to 07:00, Minimum = 1.6
While Point 14 has a value of 1.4, it is not included in the minimum aggregation because it is outside the time period.
Maximum
When using the “Maximum” aggregation method, Flow determines the maximum value of all the points within the time period, including the “boundary” value.
For the above data points, and for the period from 06:00 to 07:00, Maximum = 3
Range
When using the “Range” aggregation method, Flow determines the maximum and the minimum values of all the points within the time period, including the “boundary” value, and then returns the difference between the maximum and the minimum.
With the above data points, Range = Maximum - Minimum = 3 - 1.6 = 1.4
First
When using the “First” aggregation method, Flow will return the “boundary” value.
For the above data points, and for the period from 06:00 to 07:00, First = 1.6
Last
When using the “Last” aggregation method, Flow will return the value of the last point before the end of the time period.
If a point falls exactly on the end of the time period (i.e. 07:00:00), it will be excluded from the evaluation.
For the above data points, and for the period from 06:00 to 07:00, Last = 2.2
Delta
When using the “Delta” aggregation method, Flow will sum the difference between each consecutive point, including the “boundary” point.
For the above data points, and for the period from 06:00 to 07:00, Delta = 0.6, the sum of all the values in the Delta column in the table below.
Point | Timestamp | Raw Value | Delta |
1 | 05:55:03 | 1.6 | N/A |
2 | 06:03:23 | 2.3 | 0.7 |
3 | 06:07:30 | 2.5 | 0.2 |
4 | 06:10:22 | 3 | 0.5 |
5 | 06:15:52 | 2.1 | -0.9 |
6 | 06:20:40 | 1.9 | -0.2 |
7 | 06:25:13 | 2.5 | 0.6 |
8 | 06:29:44 | 2.3 | -0.2 |
9 | 06:35:14 | 1.6 | -0.7 |
10 | 06:41:14 | 1.8 | 0.2 |
11 | 06:46:03 | 2.3 | 0.5 |
12 | 06:52:35 | 2.9 | 0.6 |
13 | 06:55:26 | 2.2 | -0.7 |
14 | 07:05:40 | 1.4 | N/A |
Count
When using the “Count” aggregation method, Flow will return the number of points within the time period, excluding the “boundary” point.
For the above data points, and for the period from 06:00 to 07:00, Count = 12.
Time in State
When configuring Flow to return a “Time in State” summary, you will need to specify the “State” setting and condition. Flow will return the total duration (in milliseconds) that the “Stair Step” interpolation evaluates to the specified “State” setting and condition.
Point | Timestamp | Raw Value | Duration (seconds) |
1 | 05:55:03 | 1.6 | 203 |
2 | 06:03:23 | 2.3 | 247 |
3 | 06:07:30 | 2.5 | 172 |
4 | 06:10:22 | 3 | 330 |
5 | 06:15:52 | 2.1 | 288 |
6 | 06:20:40 | 1.9 | 273 |
7 | 06:25:13 | 2.5 | 271 |
8 | 06:29:44 | 2.3 | 330 |
9 | 06:35:14 | 1.6 | 360 |
10 | 06:41:14 | 1.8 | 289 |
11 | 06:46:03 | 2.3 | 392 |
12 | 06:52:35 | 2.9 | 171 |
13 | 06:55:26 | 2.2 | 274 |
14 | 07:05:40 | 1.4 | N/A |
For example, in the above scenario, if the “State” setting is specified as “=” 1.6, Flow will sum the duration between the “boundary” point and point 2, and the duration between point 9 and point 10.
So, Time In State = 563000ms
Remember that Flow does all its time-related calculations in milliseconds and not seconds
Variance
When using the “Variance” aggregation method, Flow will calculate the statistical population variance for all the data points within the time period, including the “boundary” point.
For the above data points, and for the period from 06:00 to 07:00, Variance = 0.17751479
Standard Deviation
When using the “Standard Deviation” aggregation method, Flow will calculate the statistical population standard deviation for all the data points within the time period, including the “boundary” point.
For the above data points, and for the period from 06:00 to 07:00, Standard Deviation = 0.42132504.