Frequently-asked algorithm questions

Algorithms customize data analysis. These may be some of the questions you are asking about them.

How do the alert Time Range and Interval properties affect the calculation of an algorithm?

The Time Range defines the history records to process. The Interval works in conjunction with the Rollup property to configure whether all individual records should be processed or the data should be rolled up into fewer records, which are then processed.

For example, if Time Range is yesterday and Interval is 15 minutes, the algorithm processes each of the 96 records. If Time Range is yesterday and Interval is one hour, the query applies the rollup function to the records causing the algorithm to process each of 24 records.

How do I set up an algorithm and alert with data sources that use a mix of COV and Interval history extensions?

Make sure the data are tagged to identify the history as a COV. Then you could implement a Data Definition with a missing data strategy to interpolate missing records using the K nearest neighbor. When there is no COV record matching the interval history record, the analytic engine uses the last COV record prior to the timestamp.

How do I get an alert to return to normal once the alert condition has cleared?

If the alert is assigned to a cyclic poller, the next time it executes and does not detect the fault condition it should return to normal.

What are the default settings on the alert property sheet slots for Time Range, Aggregation, Interval, Rollup, and Totalize?

  • Time Range defaults to Today.
  • If Aggregation is not enabled in the binding/settings window, the Data Definition defines its value for all chart bindings, reports and tables, returning the logical “and” for Boolean values. You configure Aggregation using a check box (if optional) or a drop-down list.

    For information about all the places where you can configure the aggregation function, refer to Aggregation configuration

  • When a request does not specify the default Interval, the system calculates one based on the time range:
    • If the time range is >= one year, the interval is one month.
    • If the time range is >= one month, the interval is one day.
    • If the time range is >= one week, the interval is six hours.
    • If the time range is >= one day, the interval is fifteen minutes.
    • If the time range is >= twelve hours, the interval is five minutes.
    • If none of the conditions above match, the interval is one minute.
  • You configure Rollup using a check box (if optional) or a drop-down list. As a drop-down list, Rollup provides these options:

    If rollup is not enabled in the binding/settings window, the rollup value configured in the Data Definition applies to all chart bindings, reports and tables.

    And returns the logical “and” of Boolean values.

    Avg returns the statistical mean, which is determined by calculating the sum of all values and dividing by the number of values.

    Count returns the total number or quantity of values in a combination. If you request this value on a binding in a PX view, the system counts the number of values based on the properties defined by the data source block and the algorithm’s Property Sheet.

    First returns the first value in the combination.

    Last returns the last value in the combination.

    Max returns the highest value in the combination.

    Median returns the value in the middle of a sorted combination—the number that separates the higher half from the lower half.

    Min returns the lowest value in the combination.

    Mode returns the statistically most frequently occurring number in the combination.

    Or returns the logical “or” of Boolean values.

    Range returns the statistical difference between the largest and smallest values in the combination.

    Sum adds together all values in the combination resulting in a single value.

    Std Dev calculates the standard deviation of the values in the combination.

    Load Factor calculates the average divided by peak (Max) value.

    For information about all the places where you can configure the rollup function, refer to Rollup configuration

  • Totalize is a Boolean property or an ORD scheme parameter. It:Turns on (true) and off (false) value accumulation.

    By default, the framework totalizes (accumulates) all consumption history values in charts, tables and reports. To prevent cumulative values, disable this property (set it to false).

What specifically does the Totalize property do?

It tells the analytic engine whether to calculate a delta value or to totalize values. This applies to trend requests where the underlying data might be totalized or delta logged.

Haystack defines the hisTotalized tag as indicating values, which are a continuous stream of totalization. History data read and should be normalized by computing the delta.

You may need to experiment with the Totalize property to fully understand how it functions. But clearly it has to do with consumption values, like KWH, or gallons, and how they are logged. It is beneficial to log gallons consumed since the last record, rather than gallons since the meter was installed, because otherwise, there is a risk of “rolling over the odometer.” Totalization adds up the values, so that you see how much you have consumed over a period of time, rather than calculating a rate of consumption, which is technically what you are logging in an ideal scenario.

How do I accommodate trends with offset time stamps. How does that affect an algorithms operation?

One way to do this is to apply an interval and rollup function to align records with the smallest timestamp possible.

Another option is to implement a missing data strategy and enable interpolation with the K nearest neighbor.

There is also a timestamp offset block, which you can use in an algorithm if you actually need to compare data from one timestamp to data from another history with an offset timestamp.