This documentation provides comprehensive information about all available functions in the Math Editor module, including both built-in and custom functions.
Returns the absolute value of a number or each value in a time series.
Option 1 – Time series input. Returns a series with absolute values of [TS_EX1]
Output: Time series (SimpleDataNumeric)
Example:
abs([TS_EX1])
Option 2 – Standing data field input. Returns the absolute value of the merged timeseries
Output: Time series (SimpleDataNumeric)
Example:
abs(ST_FIELD_TS)
Option 3 – Standing data field input. Returns a standing data field with absolute values of ST_FIELD
Output: Standing numeric (SimpleStandingNumeric)
Example:
abs(ST_FIELD)
Option 4 – Numeric input. Returns positive value
Output: Scalar number (double)
Example:
abs(-5.5)
Option 5 – Timespan input. Returns 5d
Output: TimeSpanWithMonthYears (TimeSpanWithMonthYears)
Example:
abs(-5d)
Returns an 'Asset' entity.
Option 1 – Represents the asset with Name 'MYASSET123'
Output: Entity (StandingDataEntityDto)
Example:
asset("MYASSET123")
Option 2 – Represents the asset with id 1542
Output: Entity (StandingDataEntityDto)
Example:
asset(1542)
Returns a list of 'Asset' entities.
Option 1 – Returns all assets
Output: Standing list (SimpleStanding)
Example:
assets()
Option 2 – Returns all assets filtered by the given lambda expression
Output: Standing list (SimpleStanding)
Example:
assets(a=> a.Type="Thermal")
Returns the average of one or more inputs. For a single time series, returns its scalar average. For multiple time series, computes the per-timestamp average. Supports numeric standings (piecewise) and numeric scalars.
Option 1 – Scalar-only: average of all numeric arguments
Output: Scalar number (double)
Example:
average(100, 200, 500)
average(5, -3, 12, 7)
Option 2 – Numeric standing (piecewise) with optional scalars: per-milestone average
Output: Standing numeric (SimpleStandingNumeric)
Example:
average(ST_NUM_A, ST_NUM_B)
average(ST_NUM_A, 100)
average(ST_NUM_A, ST_NUM_B, 100)
Option 3 – Time series with optional numeric standings/scalars: per-timestamp average
Output: Time series (SimpleDataNumeric)
Example:
average([TS_A], [TS_B])
average([TS_A], [TS_B], 100)
average([TS_A], ST_NUM)
average([TS_A], ST_TS_B)
Option 4 – Single argument: global average of a time series or standing; numeric returns itself
Output: Scalar number (double)
Example:
average([TS_A])
average(42)
Option 5 – Downsample using average aggregation
Output: Time series (SimpleDataNumeric)
Example:
average([TS_EX1], "Hour")
Option 6 – Average over a standing list of entities using a calculation lambda per entity (no where filter)
Output: Time series (SimpleDataNumeric)
Example:
average(ST_ENTITIES, e => e.TS_FIELD)
average(ST_ENTITIES, e => somecalc(e))
Downsample to Day granularity using Average.
Option 1 – Create a constant timeseries with target granularity
Output: Time series (SimpleDataNumeric)
Example:
averageday(3)
Option 2 – Downsample a time series (or standing time series) to the target granularity
Output: Time series (SimpleDataNumeric)
Example:
averageday([TS_EX1])
Option 3 – Downsample a time series (or standing time series) to the target granularity. When ignoreNulls is true, null values are skipped in aggregation; when false (default), any null in the range results in null
Output: Time series (SimpleDataNumeric)
Example:
averageday([TS_EX1], true)
averageday([TS_EX1], false)
Option 4 – Expand standing numeric to a time series at the target granularity
Output: Time series (SimpleDataNumeric)
Example:
averageday(ST_FIELD)
Downsample to GasYear granularity using Average.
Option 1 – Create a constant timeseries with target granularity
Output: Time series (SimpleDataNumeric)
Example:
averagegasyear(3)
Option 2 – Downsample a time series (or standing time series) to the target granularity
Output: Time series (SimpleDataNumeric)
Example:
averagegasyear([TS_EX1])
Option 3 – Downsample a time series (or standing time series) to the target granularity. When ignoreNulls is true, null values are skipped in aggregation; when false (default), any null in the range results in null
Output: Time series (SimpleDataNumeric)
Example:
averagegasyear([TS_EX1], true)
averagegasyear([TS_EX1], false)
Option 4 – Expand standing numeric to a time series at the target granularity
Output: Time series (SimpleDataNumeric)
Example:
averagegasyear(ST_FIELD)
Downsample to HalfHour granularity using Average.
Alias: averagemin30
Option 1 – Create a constant timeseries with target granularity
Output: Time series (SimpleDataNumeric)
Example:
averagehalfhour(3)
Option 2 – Downsample a time series (or standing time series) to the target granularity
Output: Time series (SimpleDataNumeric)
Example:
averagehalfhour([TS_EX1])
Option 3 – Downsample a time series (or standing time series) to the target granularity. When ignoreNulls is true, null values are skipped in aggregation; when false (default), any null in the range results in null
Output: Time series (SimpleDataNumeric)
Example:
averagehalfhour([TS_EX1], true)
averagehalfhour([TS_EX1], false)
Option 4 – Expand standing numeric to a time series at the target granularity
Output: Time series (SimpleDataNumeric)
Example:
averagehalfhour(ST_FIELD)
Downsample to Hour granularity using Average.
Option 1 – Create a constant timeseries with target granularity
Output: Time series (SimpleDataNumeric)
Example:
averagehour(3)
Option 2 – Downsample a time series (or standing time series) to the target granularity
Output: Time series (SimpleDataNumeric)
Example:
averagehour([TS_EX1])
Option 3 – Downsample a time series (or standing time series) to the target granularity. When ignoreNulls is true, null values are skipped in aggregation; when false (default), any null in the range results in null
Output: Time series (SimpleDataNumeric)
Example:
averagehour([TS_EX1], true)
averagehour([TS_EX1], false)
Option 4 – Expand standing numeric to a time series at the target granularity
Output: Time series (SimpleDataNumeric)
Example:
averagehour(ST_FIELD)
Computes a conditional average: either masks a numeric time series and averages matching points, or filters entities, evaluates per-entity numeric series and averages non-null values per timestamp.
Option 1 – Apply a boolean expression and return the average of values where the condition is true (nulls ignored; no matches => null)
Output: Scalar number (double)
Example:
averageif([TS_A], x => x > 100 and x <= 200)
averageif(ST_TS_A, x => x <= 50)
Option 2 – Filter entities, evaluate a per-entity numeric series, and compute the per-timestamp average of non-null values (all-null => null)
Output: Time series (SimpleDataNumeric)
Example:
averageif(ST_ENTITIES, e => e.IsActive, e => e.TS_FIELD)
averageif(ST_ENTITIES, e => e.Type = "Thermal", e => 10 * e.TS_PRODUCTION)
Downsample to Min1 granularity using Average.
Option 1 – Create a constant timeseries with target granularity
Output: Time series (SimpleDataNumeric)
Example:
averagemin1(3)
Option 2 – Downsample a time series (or standing time series) to the target granularity
Output: Time series (SimpleDataNumeric)
Example:
averagemin1([TS_EX1])
Option 3 – Downsample a time series (or standing time series) to the target granularity. When ignoreNulls is true, null values are skipped in aggregation; when false (default), any null in the range results in null
Output: Time series (SimpleDataNumeric)
Example:
averagemin1([TS_EX1], true)
averagemin1([TS_EX1], false)
Option 4 – Expand standing numeric to a time series at the target granularity
Output: Time series (SimpleDataNumeric)
Example:
averagemin1(ST_FIELD)
Downsample to Min10 granularity using Average.
Option 1 – Create a constant timeseries with target granularity
Output: Time series (SimpleDataNumeric)
Example:
averagemin10(3)
Option 2 – Downsample a time series (or standing time series) to the target granularity
Output: Time series (SimpleDataNumeric)
Example:
averagemin10([TS_EX1])
Option 3 – Downsample a time series (or standing time series) to the target granularity. When ignoreNulls is true, null values are skipped in aggregation; when false (default), any null in the range results in null
Output: Time series (SimpleDataNumeric)
Example:
averagemin10([TS_EX1], true)
averagemin10([TS_EX1], false)
Option 4 – Expand standing numeric to a time series at the target granularity
Output: Time series (SimpleDataNumeric)
Example:
averagemin10(ST_FIELD)
Downsample to Min20 granularity using Average.
Option 1 – Create a constant timeseries with target granularity
Output: Time series (SimpleDataNumeric)
Example:
averagemin20(3)
Option 2 – Downsample a time series (or standing time series) to the target granularity
Output: Time series (SimpleDataNumeric)
Example:
averagemin20([TS_EX1])
Option 3 – Downsample a time series (or standing time series) to the target granularity. When ignoreNulls is true, null values are skipped in aggregation; when false (default), any null in the range results in null
Output: Time series (SimpleDataNumeric)
Example:
averagemin20([TS_EX1], true)
averagemin20([TS_EX1], false)
Option 4 – Expand standing numeric to a time series at the target granularity
Output: Time series (SimpleDataNumeric)
Example:
averagemin20(ST_FIELD)
Downsample to Min5 granularity using Average.
Option 1 – Create a constant timeseries with target granularity
Output: Time series (SimpleDataNumeric)
Example:
averagemin5(3)
Option 2 – Downsample a time series (or standing time series) to the target granularity
Output: Time series (SimpleDataNumeric)
Example:
averagemin5([TS_EX1])
Option 3 – Downsample a time series (or standing time series) to the target granularity. When ignoreNulls is true, null values are skipped in aggregation; when false (default), any null in the range results in null
Output: Time series (SimpleDataNumeric)
Example:
averagemin5([TS_EX1], true)
averagemin5([TS_EX1], false)
Option 4 – Expand standing numeric to a time series at the target granularity
Output: Time series (SimpleDataNumeric)
Example:
averagemin5(ST_FIELD)
Downsample to Month granularity using Average.
Option 1 – Create a constant timeseries with target granularity
Output: Time series (SimpleDataNumeric)
Example:
averagemonth(3)
Option 2 – Downsample a time series (or standing time series) to the target granularity
Output: Time series (SimpleDataNumeric)
Example:
averagemonth([TS_EX1])
Option 3 – Downsample a time series (or standing time series) to the target granularity. When ignoreNulls is true, null values are skipped in aggregation; when false (default), any null in the range results in null
Output: Time series (SimpleDataNumeric)
Example:
averagemonth([TS_EX1], true)
averagemonth([TS_EX1], false)
Option 4 – Expand standing numeric to a time series at the target granularity
Output: Time series (SimpleDataNumeric)
Example:
averagemonth(ST_FIELD)
Downsample to OneSec granularity using Average.
Alias: averagesec1
Option 1 – Create a constant timeseries with target granularity
Output: Time series (SimpleDataNumeric)
Example:
averageonesec(3)
Option 2 – Downsample a time series (or standing time series) to the target granularity
Output: Time series (SimpleDataNumeric)
Example:
averageonesec([TS_EX1])
Option 3 – Downsample a time series (or standing time series) to the target granularity. When ignoreNulls is true, null values are skipped in aggregation; when false (default), any null in the range results in null
Output: Time series (SimpleDataNumeric)
Example:
averageonesec([TS_EX1], true)
averageonesec([TS_EX1], false)
Option 4 – Expand standing numeric to a time series at the target granularity
Output: Time series (SimpleDataNumeric)
Example:
averageonesec(ST_FIELD)
Downsample to Quarter granularity using Average.
Option 1 – Create a constant timeseries with target granularity
Output: Time series (SimpleDataNumeric)
Example:
averagequarter(3)
Option 2 – Downsample a time series (or standing time series) to the target granularity
Output: Time series (SimpleDataNumeric)
Example:
averagequarter([TS_EX1])
Option 3 – Downsample a time series (or standing time series) to the target granularity. When ignoreNulls is true, null values are skipped in aggregation; when false (default), any null in the range results in null
Output: Time series (SimpleDataNumeric)
Example:
averagequarter([TS_EX1], true)
averagequarter([TS_EX1], false)
Option 4 – Expand standing numeric to a time series at the target granularity
Output: Time series (SimpleDataNumeric)
Example:
averagequarter(ST_FIELD)
Downsample to QuarterHourly granularity using Average.
Alias: averagemin15
Option 1 – Create a constant timeseries with target granularity
Output: Time series (SimpleDataNumeric)
Example:
averagequarterhour(3)
Option 2 – Downsample a time series (or standing time series) to the target granularity
Output: Time series (SimpleDataNumeric)
Example:
averagequarterhour([TS_EX1])
Option 3 – Downsample a time series (or standing time series) to the target granularity. When ignoreNulls is true, null values are skipped in aggregation; when false (default), any null in the range results in null
Output: Time series (SimpleDataNumeric)
Example:
averagequarterhour([TS_EX1], true)
averagequarterhour([TS_EX1], false)
Option 4 – Expand standing numeric to a time series at the target granularity
Output: Time series (SimpleDataNumeric)
Example:
averagequarterhour(ST_FIELD)
Downsample to Season granularity using Average.
Option 1 – Create a constant timeseries with target granularity
Output: Time series (SimpleDataNumeric)
Example:
averageseason(3)
Option 2 – Downsample a time series (or standing time series) to the target granularity
Output: Time series (SimpleDataNumeric)
Example:
averageseason([TS_EX1])
Option 3 – Downsample a time series (or standing time series) to the target granularity. When ignoreNulls is true, null values are skipped in aggregation; when false (default), any null in the range results in null
Output: Time series (SimpleDataNumeric)
Example:
averageseason([TS_EX1], true)
averageseason([TS_EX1], false)
Option 4 – Expand standing numeric to a time series at the target granularity
Output: Time series (SimpleDataNumeric)
Example:
averageseason(ST_FIELD)
Downsample to Summer seasonal granularity using Average.
Option 1 – Create a constant timeseries with target granularity
Output: Time series (SimpleDataNumeric)
Example:
averagesummer(3)
Option 2 – Downsample a time series (or standing time series) to the target granularity
Output: Time series (SimpleDataNumeric)
Example:
averagesummer([TS_EX1])
Option 3 – Downsample a time series (or standing time series) to the target granularity. When ignoreNulls is true, null values are skipped in aggregation; when false (default), any null in the range results in null
Output: Time series (SimpleDataNumeric)
Example:
averagesummer([TS_EX1], true)
averagesummer([TS_EX1], false)
Option 4 – Expand standing numeric to a time series at the target granularity
Output: Time series (SimpleDataNumeric)
Example:
averagesummer(ST_FIELD)
Returns the average value of a numeric time series.
Option 1 – Compute the scalar average value across all points of the time series.
Output: Scalar number (double)
Example:
averagetime([TS_EX1])
Downsample to Winter seasonal granularity using Average.
Option 1 – Create a constant timeseries with target granularity
Output: Time series (SimpleDataNumeric)
Example:
averagewinter(3)
Option 2 – Downsample a time series (or standing time series) to the target granularity
Output: Time series (SimpleDataNumeric)
Example:
averagewinter([TS_EX1])
Option 3 – Downsample a time series (or standing time series) to the target granularity. When ignoreNulls is true, null values are skipped in aggregation; when false (default), any null in the range results in null
Output: Time series (SimpleDataNumeric)
Example:
averagewinter([TS_EX1], true)
averagewinter([TS_EX1], false)
Option 4 – Expand standing numeric to a time series at the target granularity
Output: Time series (SimpleDataNumeric)
Example:
averagewinter(ST_FIELD)
Downsample to Year granularity using Average.
Option 1 – Create a constant timeseries with target granularity
Output: Time series (SimpleDataNumeric)
Example:
averageyear(3)
Option 2 – Downsample a time series (or standing time series) to the target granularity
Output: Time series (SimpleDataNumeric)
Example:
averageyear([TS_EX1])
Option 3 – Downsample a time series (or standing time series) to the target granularity. When ignoreNulls is true, null values are skipped in aggregation; when false (default), any null in the range results in null
Output: Time series (SimpleDataNumeric)
Example:
averageyear([TS_EX1], true)
averageyear([TS_EX1], false)
Option 4 – Expand standing numeric to a time series at the target granularity
Output: Time series (SimpleDataNumeric)
Example:
averageyear(ST_FIELD)
Filters a time series to only include values within a specified band, defined by time-of-day or date range. Optional timezone override is supported.
Option 1 – Filters the series using TimeSpan (HH:mm or HH:mm:ss) or DateTime (supported formats)
Output: Time series (SimpleDataNumeric)
Example:
band([TS_EX1], "08:00", "18:00")
band([TS_EX1], "01/01/2024", "01/02/2024")
band([TS_EX1], "2024-01-01", "2024-02-01")
band([TS_EX1], "2024-01-01T00:00", "2024-01-02T00:00")
Option 2 – Same as Scenario 1, but with a timezone override string (description or enum name)
Output: Time series (SimpleDataNumeric)
Example:
band([TS_EX1], "08:00", "18:00", "UTC")
Option 3 – Over a standing list of entities, evaluates a per-entity calc lambda, sums across entities per timestamp, then filters the summed series by the band (TimeSpan/Date/DayOfWeek)
Output: Time series (SimpleDataNumeric)
Example:
band(ST_ENTITIES, e => e.TS_FIELD, "08:00", "18:00")
band(ST_ENTITIES, e => somecalc(e), "2024-01-01", "2024-02-01")
band(ST_ENTITIES, e => e.TS_FIELD, "Mon", "Fri")
Option 4 – Same as Scenario 3, but allows a timezone override (description or enum name)
Output: Time series (SimpleDataNumeric)
Example:
band(ST_ENTITIES, e => e.TS_FIELD, "08:00", "18:00", "UTC")
Filters entities with a where expression, evaluates per-entity numeric series, sums per timestamp, then applies a temporal band (time-of-day, date range, or day-of-week) nulling values outside the band.
Output: Time series (SimpleDataNumeric)
Example:
bandif(ST_ENTITIES, e => e.IsActive, e => e.TS_FIELD, "08:00", "18:00")
bandif(ST_ENTITIES, e => e.Country = "GR", e => somecalc(e), "2024-01-01", "2024-02-01")
bandif(ST_ENTITIES, e => true, e => e.TS_FIELD, "Mon", "Fri")
Time series with a constant value and granularity equal to 'Hour'.
Option 1 – Create a constant time series (granularity: Hour)
Output: Time series (SimpleDataNumeric)
Example:
baseload(100)
baseload(null)
Option 2 – Convert a standing series to a time series at granularity 'Hour'. The standing values are applied across the time series
Output: Time series (SimpleDataNumeric)
Example:
baseload(Asset(2).Capacity)
Marks business days according to a calendar.
Option 1 – Apply calendar logic (business days) on a numeric time series
Output: Time series (SimpleDataNumeric)
Example:
businessdays([TS_EX1], "Greece")
businessdays(ST_TS, "Greece")
Option 2 – Apply calendar logic (business days) on a boolean time series
Output: Boolean time series (SimpleDataBoolean)
Example:
businessdays([TS_BOOL], "Greece")
Caps each value at the specified maximum. Values above the cap are set to the cap value.
Option 1 – Timeseries: Keep each value at most the scalar
Output: Time series (SimpleDataNumeric)
Example:
cap([TS_EX1], 100)
Option 2 – Standing time series merged, then capped by scalar
Output: Time series (SimpleDataNumeric)
Example:
cap(ST_TS, 100)
Option 3 – Standing numeric capped by scalar
Output: Standing numeric (SimpleStandingNumeric)
Example:
cap(ST_FIELD, 100)
Option 4 – Timeseries capped per-timestamp by standing numeric
Output: Time series (SimpleDataNumeric)
Example:
cap([TS_EX1], ST_FIELD)
Option 5 – Standing time series capped per-timestamp by standing numeric
Output: Time series (SimpleDataNumeric)
Example:
cap(ST_TS, ST_CAP)
Option 6 – Standing numeric capped per-position by standing numeric
Output: Standing numeric (SimpleStandingNumeric)
Example:
cap(ST_FIELD, ST_CAP)
Constrains each value between the specified floor and cap. Values below the floor are raised to the floor; values above the cap are lowered to the cap.
Option 1 – Timeseries: Keep values within [floor, cap] scalars
Output: Time series (SimpleDataNumeric)
Example:
collar([TS_EX1], 100, 500)
Option 2 – Timeseries: floor per-timestamp by standing, then cap by scalar
Output: Time series (SimpleDataNumeric)
Example:
collar([TS_EX1], ST_FLOOR, 500)
Option 3 – Timeseries: floor by scalar, then cap per-timestamp by standing
Output: Time series (SimpleDataNumeric)
Example:
collar([TS_EX1], 100, ST_CAP)
Option 4 – Timeseries: floor and cap per-timestamp by standings
Output: Time series (SimpleDataNumeric)
Example:
collar([TS_EX1], ST_FLOOR, ST_CAP)
Option 5 – Standing time series merged, then collar by scalars
Output: Time series (SimpleDataNumeric)
Example:
collar(ST_TS, 100, 500)
Option 6 – Standing time series floored per-timestamp by standing, then capped by scalar
Output: Time series (SimpleDataNumeric)
Example:
collar(ST_TS, ST_FLOOR, 500)
Option 7 – Standing time series floored by scalar, then capped per-timestamp by standing
Output: Time series (SimpleDataNumeric)
Example:
collar(ST_TS, 100, ST_CAP)
Option 8 – Standing time series floored and capped per-timestamp by standings
Output: Time series (SimpleDataNumeric)
Example:
collar(ST_TS, ST_FLOOR, ST_CAP)
Option 9 – Standing numeric collared by scalar bounds
Output: Standing numeric (SimpleStandingNumeric)
Example:
collar(ST_FIELD, 100, 500)
Option 10 – Standing numeric floored per-position by standing, then capped by scalar
Output: Standing numeric (SimpleStandingNumeric)
Example:
collar(ST_FIELD, ST_FLOOR, 500)
Option 11 – Standing numeric floored by scalar, then capped per-position by standing
Output: Standing numeric (SimpleStandingNumeric)
Example:
collar(ST_FIELD, 100, ST_CAP)
Option 12 – Standing numeric floored and capped per-position by standings
Output: Standing numeric (SimpleStandingNumeric)
Example:
collar(ST_FIELD, ST_FLOOR, ST_CAP)
Returns the number of data points in a numeric time series.
Compute the scalar count of values in the time series.
Output: Scalar number (int)
Example:
count([TS_EX1])
Returns all 'Counterparty' entities.
Option 1 – Returns all counterparties
Output: Standing list (SimpleStanding)
Example:
counterparties()
Option 2 – Returns all counterparties filtered by the given lambda expression
Output: Standing list (SimpleStanding)
Example:
counterparties(c => c.Region = "EU")
Returns a 'Counterparty' entity.
Option 1 – Represents the counterparty with Name 'MYCOUNTERPARTY123'
Output: Entity (StandingDataEntityDto)
Example:
counterparty("MYCOUNTERPARTY123")
Option 2 – Represents the counterparty with id 1542
Output: Entity (StandingDataEntityDto)
Example:
counterparty(1542)
Time series with a constant value and granularity equal to 'Day'.
Alias: day
Option 1 – Create a constant time series (granularity: Day)
Output: Time series (SimpleDataNumeric)
Example:
daily(100)
daily(null)
Option 2 – Convert a standing series to a time series at granularity 'Day'. The standing values are applied across the time series
Output: Time series (SimpleDataNumeric)
Example:
daily(Asset(2).Capacity)
Produces a time series where each monthly data point equals the number of days in that month within the requested range.
For each month in range, output the count of days in that month.
Output: Time series (SimpleDataNumeric)
Example:
daysofmonth()
Produces a time series where each yearly data point equals the number of days in that year (365 or 366) within the requested range.
For each year in range, output 365 or 366 depending on leap year.
Output: Time series (SimpleDataNumeric)
Example:
daysofyear()
Returns a 'Deal' entity.
Option 1 – Represents the deal with Name 'MYDEAL123'
Output: Entity (StandingDataEntityDto)
Example:
deal("MYDEAL123")
Option 2 – Represents the deal with ID 1542
Output: Entity (StandingDataEntityDto)
Example:
deal(1542)
Returns all 'Deal' entities.
Option 1 – Returns all deals
Output: Standing list (SimpleStanding)
Example:
deals()
Option 2 – Returns all deals filtered by the given lambda expression
Output: Standing list (SimpleStanding)
Example:
deals(d => d.Type = "Physical")
Generic downsample to a target granularity using a specified method. The method may be omitted if the bound time series metadata contains a downsample/aggregation method.
Option 1 – Downsample using method from the embedded timeseries metadata (must resolve to one of: "average" (alias "avg"), "sum", "min", "max", "median", "first", "last")
Output: Time series (SimpleDataNumeric)
Example:
downsample([TS_EX1], "Hour")
Option 2 – Downsample using an explicit method. Allowed methods: "average" (alias "avg"), "sum", "min", "max", "median", "first", "last"
Output: Time series (SimpleDataNumeric)
Example:
downsample([TS_EX1], "Day", "sum")
downsample([TS_EX1], "Hour", "median")
downsample([TS_EX1], "Hour", "first")
Option 3 – Downsample using an explicit method with ignoreNulls flag. When ignoreNulls is true, null values are skipped in aggregation; when false (default), any null in the range results in null
Output: Time series (SimpleDataNumeric)
Example:
downsample([TS_EX1], "Day", "sum", true)
downsample([TS_EX1], "Hour", "median", false)
Fills missing values. If a scalar is provided as the second argument, missing values are replaced with that scalar; otherwise forward-fill is used.
Option 1 – Forward-fill gaps in a numeric time series
Output: Time series (SimpleDataNumeric)
Example:
fillmissing([TS_EX1])
Option 2 – Forward-fill gaps in a standing time series (merged)
Output: Time series (SimpleDataNumeric)
Example:
fillmissing(ST_TS)
Option 3 – Forward-fill gaps in a boolean time series
Output: Boolean time series (SimpleDataBoolean)
Example:
fillmissing([TS_BOOL])
Option 4 – Forward-fill gaps in a standing field (any non-numeric/non-boolean field)
Output: Standing list (SimpleStanding)
Example:
fillmissing(ST_FIELD)
Option 5 – Fill gaps in a numeric time series with a numeric scalar
Output: Time series (SimpleDataNumeric)
Example:
fillmissing([TS_EX1], 0)
Option 6 – Fill gaps in a standing time series (merged) with a numeric scalar
Output: Time series (SimpleDataNumeric)
Example:
fillmissing(ST_TS, 1)
Option 7 – Fill gaps in a boolean time series with a boolean scalar
Output: Boolean time series (SimpleDataBoolean)
Example:
fillmissing([TS_BOOL], true)
Option 8 – Fill gaps in a numeric standing field with a numeric scalar
Output: Standing numeric (SimpleStandingNumeric)
Example:
fillmissing(ST_NUM, 0)
Option 9 – Fill gaps in a boolean standing field with a boolean scalar
Output: Standing boolean (SimpleStandingBoolean)
Example:
fillmissing(ST_BOOL, false)
Option 10 – Fill gaps in a generic standing field with a scalar matching the field type (String/DateTime/ObjectId)
Output: Standing list (SimpleStanding)
Example:
fillmissing(ST_FIELD, "Sample")
Floors each value at the specified minimum. Values below the floor are set to the floor value.
Option 1 – Timeseries: Keep each value at least the scalar
Output: Time series (SimpleDataNumeric)
Example:
floor([TS_EX1], 100)
Option 2 – Standing time series merged, then floored by scalar
Output: Time series (SimpleDataNumeric)
Example:
floor(ST_TS, 100)
Option 3 – Standing numeric floored by scalar
Output: Standing numeric (SimpleStandingNumeric)
Example:
floor(ST_FIELD, 100)
Option 4 – Timeseries floored per-timestamp by standing numeric
Output: Time series (SimpleDataNumeric)
Example:
floor([TS_EX1], ST_FIELD)
Option 5 – Standing time series floored per-timestamp by standing numeric
Output: Time series (SimpleDataNumeric)
Example:
floor(ST_TS, ST_FLOOR)
Option 6 – Standing numeric floored per-position by standing numeric
Output: Standing numeric (SimpleStandingNumeric)
Example:
floor(ST_FIELD, ST_FLOOR)
Time series with a constant value and granularity equal to 'GasYear'.
Alias: gasyear
Option 1 – Create a constant time series (granularity: GasYear)
Output: Time series (SimpleDataNumeric)
Example:
gasyearly(100)
gasyearly(null)
Option 2 – Convert a standing series to a time series at granularity 'GasYear'. The standing values are applied across the time series
Output: Time series (SimpleDataNumeric)
Example:
gasyearly(Asset(2).Capacity)
Resamples a price time series to a target granularity. Downsampling uses Average; upsampling distributes values as needed.
Option 1 – Price resampling (SimpleDataNumeric, granularity string)
Output: Time series (SimpleDataNumeric)
Example:
granular_price([TS_EX1], "Hour")
granular_price([TS_EX1], "Day")
Option 2 – Price resampling with ignoreNulls flag. When ignoreNulls is true, null values are skipped in downsampling; when false (default), any null in the range results in null
Output: Time series (SimpleDataNumeric)
Example:
granular_price([TS_EX1], "Hour", true)
granular_price([TS_EX1], "Day", false)
Resamples a volume/quantity time series to a target granularity. Downsampling uses Sum; upsampling distributes values accordingly.
Option 1 – Volume resampling (SimpleDataNumeric, granularity string)
Output: Time series (SimpleDataNumeric)
Example:
granular_volume([TS_EX1], "Hour")
granular_volume([TS_EX1], "Day")
Option 2 – Volume resampling with ignoreNulls flag. When ignoreNulls is true, null values are skipped in downsampling; when false (default), any null in the range results in null
Output: Time series (SimpleDataNumeric)
Example:
granular_volume([TS_EX1], "Hour", true)
granular_volume([TS_EX1], "Day", false)
Time series with a constant value and granularity equal to 'HalfHour'.
Alias: halfhour, min30
Option 1 – Create a constant time series (granularity: HalfHour)
Output: Time series (SimpleDataNumeric)
Example:
halfhourly(100)
halfhourly(null)
Option 2 – Convert a standing series to a time series at granularity 'HalfHour'. The standing values are applied across the time series
Output: Time series (SimpleDataNumeric)
Example:
halfhourly(Asset(2).Capacity)
Marks holidays according to a calendar.
Option 1 – Apply calendar logic (holidays) on a numeric time series
Output: Time series (SimpleDataNumeric)
Example:
holidays([TS_EX1], "Greece")
holidays(ST_TS, "Greece")
Option 2 – Apply calendar logic (holidays) on a boolean time series
Output: Boolean time series (SimpleDataBoolean)
Example:
holidays([TS_BOOL], "Greece")
Marks holidays and weekends according to a calendar.
Option 1 – Apply calendar logic (holidays + weekends) on a numeric time series
Output: Time series (SimpleDataNumeric)
Example:
holidaysandweekends([TS_EX1], "Greece")
holidaysandweekends(ST_TS, "Greece")
Option 2 – Apply calendar logic (holidays + weekends) on a boolean time series
Output: Boolean time series (SimpleDataBoolean)
Example:
holidaysandweekends([TS_BOOL], "Greece")
Time series with a constant value and granularity equal to 'Hour'.
Alias: hour
Option 1 – Create a constant time series (granularity: Hour)
Output: Time series (SimpleDataNumeric)
Example:
hourly(100)
hourly(null)
Option 2 – Convert a standing series to a time series at granularity 'Hour'. The standing values are applied across the time series
Output: Time series (SimpleDataNumeric)
Example:
hourly(Asset(2).Capacity)
Unified IF function. Supports: (a) if(left, op, right, valueIfTrue, valueIfFalse) and (b) if(condition, valueIfTrue, valueIfFalse).
Alias: if2
Option 1
Output: Scalar number (double)
Example:
if(true, 10, 20)
if(null, 10, 20)
Option 2
Output: Scalar number (double)
Example:
if(true, 10, 20.2)
if(null, 10.5, 20)
if(false, 1.5, 0)
Option 3 – Compare left with right using an operator; returns per-position valueIfTrue/valueIfFalse
Output: Time series (SimpleDataNumeric)
Example:
if([TS_A], ">", [TS_B], [TS_TRUE], [TS_FALSE])
if([TS_A], ">=", 100, [TS_TRUE], [TS_FALSE])
if(ST_TS_A, ">", ST_B, ST_TRUE, ST_FALSE)
Option 4 – Boolean timeseries condition selects between two numeric time series. Scalars (double/int) are converted to constant series with the same granularity as the condition
Output: Time series (SimpleDataNumeric)
Example:
if([TS_BOOL], [TS_TRUE], [TS_FALSE])
if([TS_BOOL], 10, [TS_FALSE])
if([TS_BOOL], [TS_TRUE], 20)
if([TS_BOOL], ST_TS_TRUE, ST_TS_FALSE)
if([TS_S1] < 10 and [TS_S2] > 2, ST_TS_TRUE, ST_TS_FALSE)
if([TS_BOOL], 10, 20)
if([TS_A] >= 0, [TS_A], 0)
if([TS_X] <> [TS_Y], [TS_X], [TS_Y])
if([TS_BOOL], hourly(1), 0)
if([TS_BOOL], ST_TS_TRUE, 0)
if(([TS_A] > [TS_B]) and ([TS_C] < 5), [TS_A], [TS_B])
Option 5 – Standing boolean condition selects between two numeric values. Scalars (double/int) are converted to constant series with the same granularity as the condition
Output: Time series (SimpleDataNumeric)
Example:
if(ST_BOOL, [TS_TRUE], [TS_FALSE])
if(ST_BOOL, ST_TS_TRUE, ST_TS_FALSE)
if(ST_BOOL, ST_TS_TRUE, 20)
if(ST_BOOL, ST_TS_TRUE, [TS_FALSE])
if(ST_BOOL, ST_TS_TRUE, 0)
Option 6 – Standing boolean condition selects between two numeric values. Scalars (double/int) are converted to constant series with the same granularity as the condition
Output: Time series (SimpleDataNumeric)
Example:
if(ST_BOOL, ST_TS_TRUE, ST_TS_FALSE)
if(ST_BOOL, ST_TS_TRUE, 20)
if(ST_BOOL, ST_TS_TRUE, [TS_FALSE])
if(ST_BOOL, ST_TS_TRUE, 0)
Option 7 – Standing boolean condition selects between two numeric standing values. Scalars (double/int) are converted to constant standings
Output: Standing numeric (SimpleStandingNumeric)
Example:
if(ST_BOOL, ST_NUM_TRUE, ST_NUM_FALSE)
if(ST_BOOL, ST_NUM_TRUE, 20)
if(ST_BOOL, 10, ST_NUM_FALSE)
if(ST_BOOL, 10, 20)
Option 8
Output: Time series (SimpleDataNumeric)
Example:
if(true, [TS_TRUE], [TS_FALSE])
if(false, [TS_TRUE], ST_TS_FALSE)
Option 9
Output: Time series (SimpleDataNumeric)
Example:
if(true, 10, [TS_FALSE])
if(false, ST_NUM_TRUE, ST_TS_FALSE)
Option 10
Output: Standing numeric (SimpleStandingNumeric)
Example:
if(true, ST_NUM_TRUE, ST_NUM_FALSE)
if(false, ST_NUM_TRUE, 0)
Option 11
Output: Standing numeric (SimpleStandingNumeric)
Example:
if(true, 10, ST_NUM_FALSE)
if(false, 5, ST_NUM_FALSE)
For each timestamp, if the local wall-time is on/after the given date, take RHS; otherwise take LHS. LHS must be a time series. RHS can be time series or scalar.
Option 1
Output: Time series (SimpleDataNumeric)
Example:
ifdate([TS_A], [TS_B], "2024-01-01")
ifdate(ST_TS_A, ST_TS_B, "2024-01-01")
Option 2
Output: Time series (SimpleDataNumeric)
Example:
ifdate([TS_A], 200, "2024-01-01")
ifdate(ST_TS_A, 0, "01/01/2024")
For each timestamp, if the local wall-time is on/after the given date, take the scalar; otherwise take the series value.
Output: Time series (SimpleDataNumeric)
Example:
ifdatevalue([TS_A], 100, "2023-06-01")
ifdatevalue(ST_TS_A, 0, "01/06/2023")
Downsample to Month granularity taking the last value of each month.
Option 1 – Create a constant timeseries with target granularity
Output: Time series (SimpleDataNumeric)
Example:
lastdayofmonth(3)
Option 2 – Downsample a time series (or standing time series) to the target granularity
Output: Time series (SimpleDataNumeric)
Example:
lastdayofmonth([TS_EX1])
Option 3 – Downsample a time series (or standing time series) to the target granularity. When ignoreNulls is true, null values are skipped in aggregation; when false (default), any null in the range results in null
Output: Time series (SimpleDataNumeric)
Example:
lastdayofmonth([TS_EX1], true)
lastdayofmonth([TS_EX1], false)
Option 4 – Expand standing numeric to a time series at the target granularity
Output: Time series (SimpleDataNumeric)
Example:
lastdayofmonth(ST_FIELD)
Applies a boolean lambda over a timeseries and returns the masked timeseries. Non-matching points are set to null.
Output: Time series (SimpleDataNumeric)
Example:
mask([TS_A], x => x > 100 and x <= 200)
mask(ST_TS_A, x => x <= 50)
Returns the maximum across provided arguments (time series, numeric standing, and/or numeric scalars). With a single time series, returns its scalar maximum. With multiple time series or time series + standing, returns the per-timestamp maximum. Including numeric scalars acts as a lower bound (e.g., 100 ensures results are at least 100).
Option 1 – Scalar-only: returns the maximum of all numeric arguments
Output: Scalar number (double)
Example:
max(100, 200, 500)
max(5, -3, 12, 7)
Option 2 – Numeric standing (piecewise) and optional scalars: per-milestone maximum
Output: Standing numeric (SimpleStandingNumeric)
Example:
max(ST_NUM_A, ST_NUM_B)
max(ST_NUM_A, 100)
max(ST_NUM_A, ST_NUM_B, 100)
Option 3 – Time series (and optional numeric standing/scalars): per-timestamp maximum
Output: Time series (SimpleDataNumeric)
Example:
max([TS_A])
max([TS_A], [TS_B])
max([TS_A], [TS_B], 100)
max([TS_A], ST_NUM)
max([TS_A], ST_TS_B)
Option 4
Output: Scalar number (double)
Option 5 – Maximum over a standing list of entities using a calculation lambda per entity (no where filter)
Output: Time series (SimpleDataNumeric)
Example:
max(ST_ENTITIES, e => e.TS_FIELD)
max(ST_ENTITIES, e => somecalc(e))
Computes a conditional maximum: either masks a numeric time series and returns the maximum matching value, or filters entities, evaluates per-entity numeric series and takes the per-timestamp maximum.
Option 1
Output: Scalar number (double)
Example:
maxif([TS_A], x => x > 100 and x <= 200)
maxif(ST_TS_A, x => x <= 50)
Option 2
Output: Time series (SimpleDataNumeric)
Example:
maxif(ST_ENTITIES, e => e.IsActive, e => e.TS_FIELD)
maxif(ST_ENTITIES, e => e.Type = "Thermal", e => 10 * e.TS_PRODUCTION)
Downsample to Month granularity taking the maximum value of each month.
Option 1 – Create a constant timeseries with target granularity
Output: Time series (SimpleDataNumeric)
Example:
maxmonth(3)
Option 2 – Downsample a time series (or standing time series) to the target granularity
Output: Time series (SimpleDataNumeric)
Example:
maxmonth([TS_EX1])
Option 3 – Downsample a time series (or standing time series) to the target granularity. When ignoreNulls is true, null values are skipped in aggregation; when false (default), any null in the range results in null
Output: Time series (SimpleDataNumeric)
Example:
maxmonth([TS_EX1], true)
maxmonth([TS_EX1], false)
Option 4 – Expand standing numeric to a time series at the target granularity
Output: Time series (SimpleDataNumeric)
Example:
maxmonth(ST_FIELD)
Returns the maximum value of a numeric time series.
Compute the scalar maximum value across all points of the time series.
Output: Scalar number (double)
Example:
maxtime([TS_EX1])
Returns the minimum across provided arguments (time series, numeric standing, and/or numeric scalars). With a single time series, returns its scalar minimum. With multiple time series or time series + standing, returns the per-timestamp minimum. Including numeric scalars acts as an upper bound (e.g., 100 caps results at 100).
Option 1 – Scalar-only: returns the minimum of all numeric arguments
Output: Scalar number (double)
Example:
min(100, 200, 500)
min(5, -3, 12, 7)
Option 2 – Numeric standing (piecewise) and optional scalars: per-milestone minimum
Output: Standing numeric (SimpleStandingNumeric)
Example:
min(ST_NUM_A, ST_NUM_B)
min(ST_NUM_A, 100)
min(ST_NUM_A, ST_NUM_B, 100)
Option 3 – Time series (and optional numeric standing/scalars): per-timestamp minimum
Output: Time series (SimpleDataNumeric)
Example:
min([TS_A])
min([TS_A], [TS_B])
min([TS_A], [TS_B], 100)
min([TS_A], ST_NUM)
min([TS_A], ST_TS_B)
Option 4
Output: Scalar number (double)
Option 5 – Minimum over a standing list of entities using a calculation lambda per entity (no where filter)
Output: Time series (SimpleDataNumeric)
Example:
min(ST_ENTITIES, e => e.TS_FIELD)
min(ST_ENTITIES, e => somecalc(e))
Time series with a constant value and granularity equal to 'Min1'.
Option 1 – Create a constant time series (granularity: Min1)
Output: Time series (SimpleDataNumeric)
Example:
min1(100)
min1(null)
Option 2 – Convert a standing series to a time series at granularity 'Min1'. The standing values are applied across the time series
Output: Time series (SimpleDataNumeric)
Example:
min1(Asset(2).Capacity)
Time series with a constant value and granularity equal to 'Min10'.
Option 1 – Create a constant time series (granularity: Min10)
Output: Time series (SimpleDataNumeric)
Example:
min10(100)
min10(null)
Option 2 – Convert a standing series to a time series at granularity 'Min10'. The standing values are applied across the time series
Output: Time series (SimpleDataNumeric)
Example:
min10(Asset(2).Capacity)
Time series with a constant value and granularity equal to 'Min20'.
Option 1 – Create a constant time series (granularity: Min20)
Output: Time series (SimpleDataNumeric)
Example:
min20(100)
min20(null)
Option 2 – Convert a standing series to a time series at granularity 'Min20'. The standing values are applied across the time series
Output: Time series (SimpleDataNumeric)
Example:
min20(Asset(2).Capacity)
Time series with a constant value and granularity equal to 'Min5'.
Option 1 – Create a constant time series (granularity: Min5)
Output: Time series (SimpleDataNumeric)
Example:
min5(100)
min5(null)
Option 2 – Convert a standing series to a time series at granularity 'Min5'. The standing values are applied across the time series
Output: Time series (SimpleDataNumeric)
Example:
min5(Asset(2).Capacity)
Computes a conditional minimum: either masks a numeric time series and returns the minimum matching value, or filters entities, evaluates per-entity numeric series and takes the per-timestamp minimum.
Option 1
Output: Scalar number (double)
Example:
minif([TS_A], x => x > 100 and x <= 200)
minif(ST_TS_A, x => x <= 50)
Option 2
Output: Time series (SimpleDataNumeric)
Example:
minif(ST_ENTITIES, e => e.IsActive, e => e.TS_FIELD)
minif(ST_ENTITIES, e => e.Type = "Thermal", e => 10 * e.TS_PRODUCTION)
Downsample to Month granularity taking the minimum value of each month.
Option 1 – Create a constant timeseries with target granularity
Output: Time series (SimpleDataNumeric)
Example:
minmonth(3)
Option 2 – Downsample a time series (or standing time series) to the target granularity
Output: Time series (SimpleDataNumeric)
Example:
minmonth([TS_EX1])
Option 3 – Downsample a time series (or standing time series) to the target granularity. When ignoreNulls is true, null values are skipped in aggregation; when false (default), any null in the range results in null
Output: Time series (SimpleDataNumeric)
Example:
minmonth([TS_EX1], true)
minmonth([TS_EX1], false)
Option 4 – Expand standing numeric to a time series at the target granularity
Output: Time series (SimpleDataNumeric)
Example:
minmonth(ST_FIELD)
Returns the minimum value of a numeric time series.
Compute the scalar minimum value across all points of the time series.
Output: Scalar number (double)
Example:
mintime([TS_EX1])
Time series with a constant value and granularity equal to 'Month'.
Alias: month
Option 1 – Create a constant time series (granularity: Month)
Output: Time series (SimpleDataNumeric)
Example:
monthly(100)
monthly(null)
Option 2 – Convert a standing series to a time series at granularity 'Month'. The standing values are applied across the time series
Output: Time series (SimpleDataNumeric)
Example:
monthly(Asset(2).Capacity)
Returns a moving average of a time series. Supports backward (default) or middle (centered) window modes.
Option 1 – Backward window moving average. totalCount <= 0 returns the input unchanged
Output: Time series (SimpleDataNumeric)
Example:
movingaverage([TS_EX1], 3)
Option 2 – Moving average with explicit mode: "backward" (default semantics) or "middle" (centered window)
Output: Time series (SimpleDataNumeric)
Example:
movingaverage([TS_EX1], 5, "middle")
movingaverage([TS_EX1], 4, "backward")
Time series with a constant value during off-peak hours (Hour granularity).
Create an hourly off-peak load time series with the specified value.
Output: Time series (SimpleDataNumeric)
Example:
offpeakload(100)
Time series with a constant value and granularity equal to 'OneSec'.
Alias: sec1
Option 1 – Create a constant time series (granularity: OneSec)
Output: Time series (SimpleDataNumeric)
Example:
onesec(100)
onesec(null)
Option 2 – Convert a standing series to a time series at granularity 'OneSec'. The standing values are applied across the time series
Output: Time series (SimpleDataNumeric)
Example:
onesec(Asset(2).Capacity)
Time series with a constant value during peak hours (Hour granularity).
Create an hourly peak-load time series with the specified value.
Output: Time series (SimpleDataNumeric)
Example:
peakload(500)
Raises each value in a time series or a standing data field (or a scalar) to the specified exponent. Exponent can be a scalar (int|double) or a standing numeric (int or decimal).
Option 1 – Time series raised to scalar exponent
Output: Time series (SimpleDataNumeric)
Example:
power([TS_EX1], 2.5)
Option 2 – Standing time series (merged) raised to scalar exponent
Output: Time series (SimpleDataNumeric)
Example:
power(ST_TS, 1.5)
Option 3 – Standing numeric raised to scalar exponent
Output: Standing numeric (SimpleStandingNumeric)
Example:
power(ST_FIELD, 2)
Option 4 – Scalar base raised to scalar exponent
Output: Scalar number (double)
Example:
power(100, 2.5)
Option 5 – Time series raised per-timestamp to standing exponent (Int uses integer power; Decimal uses double power)
Output: Time series (SimpleDataNumeric)
Example:
power([TS_EX1], ST_EXP)
Option 6 – Standing time series (merged) raised per-timestamp to standing exponent (Int uses integer power; Decimal uses double power)
Output: Time series (SimpleDataNumeric)
Example:
power(ST_TS, ST_EXP)
Option 7 – Standing numeric raised per-position to standing exponent (Int uses integer power; Decimal uses double power)
Output: Standing numeric (SimpleStandingNumeric)
Example:
power(ST_FIELD, ST_EXP)
Returns the first non-null value in argument order. Supports scalars only, numeric standings (+ optional scalars), or time series with optional standings/scalars. For series, selection happens per timestamp.
Alias: ifnull
Option 1 – Scalar-only: first non-null by argument order
Output: Scalar number (double)
Example:
prioritynotnull(100, 200, null, 500.1)
prioritynotnull(null, null, 42)
Option 2 – Numeric standing (piecewise) with optional scalars: per-milestone first non-null by argument order
Output: Standing numeric (SimpleStandingNumeric)
Example:
prioritynotnull(ST_NUM_A, ST_NUM_B)
prioritynotnull(ST_NUM_A, 100)
prioritynotnull(ST_NUM_A, ST_NUM_B, 100)
Option 3 – Time series with optional numeric standings/scalars: per-timestamp first non-null by argument order
Output: Time series (SimpleDataNumeric)
Example:
prioritynotnull([TS_A])
prioritynotnull([TS_A], [TS_B])
prioritynotnull([TS_A], [TS_B], 100)
prioritynotnull([TS_A], ST_NUM)
prioritynotnull([TS_A], ST_TS_B)
Option 4 – Over a standing list of entities, evaluates a calculation lambda per entity (no where filter) and, per timestamp, returns the first non-null value by entity order. If all are null, returns null
Output: Time series (SimpleDataNumeric)
Example:
prioritynotnull(ST_ENTITIES, e => e.TS_FIELD)
prioritynotnull(ST_ENTITIES, e => somecalc(e))
Time series with a constant value and granularity equal to 'QuarterHour'.
Alias: quarterhour, min15
Option 1 – Create a constant time series (granularity: QuarterHour)
Output: Time series (SimpleDataNumeric)
Example:
quarterhourly(100)
quarterhourly(null)
Option 2 – Convert a standing series to a time series at granularity 'QuarterHour'. The standing values are applied across the time series
Output: Time series (SimpleDataNumeric)
Example:
quarterhourly(Asset(2).Capacity)
Time series with a constant value and granularity equal to 'Quarter'.
Alias: quarter
Option 1 – Create a constant time series (granularity: Quarter)
Output: Time series (SimpleDataNumeric)
Example:
quarterly(100)
quarterly(null)
Option 2 – Convert a standing series to a time series at granularity 'Quarter'. The standing values are applied across the time series
Output: Time series (SimpleDataNumeric)
Example:
quarterly(Asset(2).Capacity)
Resample a time series or standing time series to a target granularity. Automatically chooses downsample or upsample based on current granularity. The aggregation/interpolation method must be implied by the series metadata; otherwise the call is invalid.
Option 1 – Auto resample (down or up) using implied method from metadata. If method is not defined in metadata, the call is invalid
Output: Time series (SimpleDataNumeric)
Example:
resample([TS_EX1], "Hour")
Option 2 – Auto resample (down or up) using implied method from metadata with ignoreNulls flag. When ignoreNulls is true, null values are skipped in downsampling; when false (default), any null in the range results in null
Output: Time series (SimpleDataNumeric)
Example:
resample([TS_EX1], "Hour", true)
resample([TS_EX1], "Day", false)
Option 3 – Expands a standing numeric to a time series at the target granularity by simple multiplication
Output: Time series (SimpleDataNumeric)
Example:
resample(ST_NUM, "Hour")
resample(ST_NUM, "Day")
Rounds each value in a time series, a standing data field, or a scalar to the specified number of decimal places. If decimals are not specified, rounds to the nearest integer.
Option 1 – Round each value in a time series to 0 decimals
Output: Time series (SimpleDataNumeric)
Example:
round([TS_EX1])
Option 2 – Round merged standing time series to 0 decimals
Output: Time series (SimpleDataNumeric)
Example:
round(ST_TS)
Option 3 – Round each value in a standing numeric field to 0 decimals
Output: Standing numeric (SimpleStandingNumeric)
Example:
round(ST_FIELD)
Option 4 – Round scalar to nearest integer
Output: Scalar number (double)
Example:
round(3.14159)
Option 5 – Round each value in a time series to N decimals
Output: Time series (SimpleDataNumeric)
Example:
round([TS_EX1], 3)
Option 6 – Round merged standing time series to N decimals
Output: Time series (SimpleDataNumeric)
Example:
round(ST_TS, 3)
Option 7 – Round a standing numeric field to N decimals
Output: Standing numeric (SimpleStandingNumeric)
Example:
round(ST_FIELD, 2)
Option 8 – Round a numeric value to N decimals
Output: Scalar number (double)
Example:
round(3.14159, 2)
Option 9 – Round time series per-timestamp using integer decimals from standing
Output: Time series (SimpleDataNumeric)
Example:
round([TS_EX1], ST_DECIMALS)
Option 10 – Round merged standing time series per-timestamp using integer decimals from standing
Output: Time series (SimpleDataNumeric)
Example:
round(ST_TS, ST_DECIMALS)
Option 11 – Round standing numeric per-position using integer decimals from standing
Output: Standing numeric (SimpleStandingNumeric)
Example:
round(ST_FIELD, ST_DECIMALS)
Time series with a constant value and seasonal granularity equal to 'Season'.
Alias: season
Option 1 – Create a constant time series (granularity: Season)
Output: Time series (SimpleDataNumeric)
Example:
seasonly(100)
seasonly(null)
Option 2 – Convert a standing series to a time series at granularity 'Season'. The standing values are applied across the time series
Output: Time series (SimpleDataNumeric)
Example:
seasonly(Asset(2).Capacity)
Shifts a time series by a calendar-aware duration. Keys remain unchanged; the value at t comes from t - span. Positive span lags (past); negative span leads (future).
Output: Time series (SimpleDataNumeric)
Example:
shift([TS_EX1], 5d)
shift([TS_EX1], -2h)
Shifts the series by an integer number of days. Keys remain unchanged; values come from t - N days.
Output: Time series (SimpleDataNumeric)
Example:
shiftday([TS_EX1], 10)
Shifts the series by an integer number of half-hours (30 minutes). Keys remain unchanged; values come from t - N half-hours.
Alias: shiftmin30
Output: Time series (SimpleDataNumeric)
Example:
shifthalfhour([TS_EX1], 10)
Shifts the series by an integer number of hours. Keys remain unchanged; values come from t - N hours.
Output: Time series (SimpleDataNumeric)
Example:
shifthour([TS_EX1], 10)
Shifts the series by an integer number of 10‑minute steps. Keys remain unchanged; values come from t - N * 10 minutes.
Output: Time series (SimpleDataNumeric)
Example:
shiftmin10([TS_EX1], 10)
Shifts the series by an integer number of 15‑minute (quarter‑hour) steps. Keys remain unchanged; values come from t - N * 15 minutes.
Alias: shiftmin15
Output: Time series (SimpleDataNumeric)
Example:
shiftmin15([TS_EX1], 10)
Shifts the series by an integer number of 20‑minute steps. Keys remain unchanged; values come from t - N * 20 minutes.
Output: Time series (SimpleDataNumeric)
Example:
shiftmin20([TS_EX1], 10)
Shifts the series by an integer number of 5‑minute steps. Keys remain unchanged; values come from t - N * 5 minutes.
Output: Time series (SimpleDataNumeric)
Example:
shiftmin5([TS_EX1], 10)
Shifts the series by an integer number of months. Keys remain unchanged; values come from t - N months.
Output: Time series (SimpleDataNumeric)
Example:
shiftmonth([TS_EX1], 10)
Shifts the series by an integer number of quarters. Keys remain unchanged; values come from t - N quarters.
Output: Time series (SimpleDataNumeric)
Example:
shiftquarter([TS_EX1], 10)
Shifts the series by an integer number of years. Keys remain unchanged; values come from t - N years.
Output: Time series (SimpleDataNumeric)
Example:
shiftyear([TS_EX1], 10)
Returns the sum of one or more inputs. For a single time series, returns its scalar sum. For multiple time series, computes the per-timestamp sum. Numeric standings are supported (piecewise), and numeric scalars can be included.
Option 1 – Scalar-only: returns the sum of all numeric arguments
Output: Scalar number (double)
Example:
sum(100, 200, 500)
sum(5, -3, 12, 7)
Option 2 – Numeric standing (piecewise) with optional scalars: per-milestone sum
Output: Standing numeric (SimpleStandingNumeric)
Example:
sum(ST_NUM_A, ST_NUM_B)
sum(ST_NUM_A, 100)
sum(ST_NUM_A, ST_NUM_B, 100)
Option 3 – Time series with optional numeric standings/scalars: per-timestamp sum
Output: Time series (SimpleDataNumeric)
Example:
sum([TS_A])
sum([TS_A], [TS_B])
sum([TS_A], [TS_B], 100)
sum([TS_A], ST_NUM)
sum([TS_A], ST_TS_B)
Option 4 – Single-argument scalar: for time series returns the global sum; numeric returns the same value
Output: Scalar number (double)
Example:
sum([TS_A])
sum(42)
Option 5 – Downsample using sum aggregation
Output: Time series (SimpleDataNumeric)
Example:
sum([TS_EX1], "Hour")
Option 6 – Sum over a standing list of entities using a calculation lambda per entity (no where filter)
Output: Time series (SimpleDataNumeric)
Example:
sum(ST_ENTITIES, e => e.TS_FIELD)
sum(ST_ENTITIES, e => somecalc(e))
Downsample to Day granularity using Sum.
Option 1 – Create a constant timeseries with target granularity
Output: Time series (SimpleDataNumeric)
Example:
sumday(3)
Option 2 – Downsample a time series (or standing time series) to the target granularity
Output: Time series (SimpleDataNumeric)
Example:
sumday([TS_EX1])
Option 3 – Downsample a time series (or standing time series) to the target granularity. When ignoreNulls is true, null values are skipped in aggregation; when false (default), any null in the range results in null
Output: Time series (SimpleDataNumeric)
Example:
sumday([TS_EX1], true)
sumday([TS_EX1], false)
Option 4 – Expand standing numeric to a time series at the target granularity
Output: Time series (SimpleDataNumeric)
Example:
sumday(ST_FIELD)
Downsample to GasYear granularity using Sum.
Option 1 – Create a constant timeseries with target granularity
Output: Time series (SimpleDataNumeric)
Example:
sumgasyear(3)
Option 2 – Downsample a time series (or standing time series) to the target granularity
Output: Time series (SimpleDataNumeric)
Example:
sumgasyear([TS_EX1])
Option 3 – Downsample a time series (or standing time series) to the target granularity. When ignoreNulls is true, null values are skipped in aggregation; when false (default), any null in the range results in null
Output: Time series (SimpleDataNumeric)
Example:
sumgasyear([TS_EX1], true)
sumgasyear([TS_EX1], false)
Option 4 – Expand standing numeric to a time series at the target granularity
Output: Time series (SimpleDataNumeric)
Example:
sumgasyear(ST_FIELD)
Downsample to HalfHour granularity using Sum.
Alias: summin30
Option 1 – Create a constant timeseries with target granularity
Output: Time series (SimpleDataNumeric)
Example:
sumhalfhour(3)
Option 2 – Downsample a time series (or standing time series) to the target granularity
Output: Time series (SimpleDataNumeric)
Example:
sumhalfhour([TS_EX1])
Option 3 – Downsample a time series (or standing time series) to the target granularity. When ignoreNulls is true, null values are skipped in aggregation; when false (default), any null in the range results in null
Output: Time series (SimpleDataNumeric)
Example:
sumhalfhour([TS_EX1], true)
sumhalfhour([TS_EX1], false)
Option 4 – Expand standing numeric to a time series at the target granularity
Output: Time series (SimpleDataNumeric)
Example:
sumhalfhour(ST_FIELD)
Downsample to Hour granularity using Sum.
Option 1 – Create a constant timeseries with target granularity
Output: Time series (SimpleDataNumeric)
Example:
sumhour(3)
Option 2 – Downsample a time series (or standing time series) to the target granularity
Output: Time series (SimpleDataNumeric)
Example:
sumhour([TS_EX1])
Option 3 – Downsample a time series (or standing time series) to the target granularity. When ignoreNulls is true, null values are skipped in aggregation; when false (default), any null in the range results in null
Output: Time series (SimpleDataNumeric)
Example:
sumhour([TS_EX1], true)
sumhour([TS_EX1], false)
Option 4 – Expand standing numeric to a time series at the target granularity
Output: Time series (SimpleDataNumeric)
Example:
sumhour(ST_FIELD)
Computes a conditional sum: either masks a numeric time series with a boolean expression and sums the matching points, or filters entities, evaluates a per-entity numeric series and sums the per-timestamp contributions across the filtered set.
Option 1 – Apply a boolean lambda over the time series and return the scalar sum of values where the condition is true (nulls ignored)
Output: Scalar number (double)
Example:
sumif([TS_A], x => x > 100 and x <= 200)
sumif(ST_TS_A, x => x <= 50)
Option 2
Output: Time series (SimpleDataNumeric)
Example:
sumif(ST_ENTITIES, e => e.IsActive, e => e.TS_FIELD)
sumif(ST_ENTITIES, e => e.Type = "Thermal", e => 10 * e.TS_PRODUCTION)
Time series with a constant value and seasonal granularity equal to 'Summer'.
Alias: summer
Option 1 – Create a constant time series (granularity: Summer)
Output: Time series (SimpleDataNumeric)
Example:
summerly(100)
summerly(null)
Option 2 – Convert a standing series to a time series at granularity 'Summer'. The standing values are applied across the time series
Output: Time series (SimpleDataNumeric)
Example:
summerly(Asset(2).Capacity)
Downsample to Min1 granularity using Sum.
Option 1 – Create a constant timeseries with target granularity
Output: Time series (SimpleDataNumeric)
Example:
summin1(3)
Option 2 – Downsample a time series (or standing time series) to the target granularity
Output: Time series (SimpleDataNumeric)
Example:
summin1([TS_EX1])
Option 3 – Downsample a time series (or standing time series) to the target granularity. When ignoreNulls is true, null values are skipped in aggregation; when false (default), any null in the range results in null
Output: Time series (SimpleDataNumeric)
Example:
summin1([TS_EX1], true)
summin1([TS_EX1], false)
Option 4 – Expand standing numeric to a time series at the target granularity
Output: Time series (SimpleDataNumeric)
Example:
summin1(ST_FIELD)
Downsample to Min10 granularity using Sum.
Option 1 – Create a constant timeseries with target granularity
Output: Time series (SimpleDataNumeric)
Example:
summin10(3)
Option 2 – Downsample a time series (or standing time series) to the target granularity
Output: Time series (SimpleDataNumeric)
Example:
summin10([TS_EX1])
Option 3 – Downsample a time series (or standing time series) to the target granularity. When ignoreNulls is true, null values are skipped in aggregation; when false (default), any null in the range results in null
Output: Time series (SimpleDataNumeric)
Example:
summin10([TS_EX1], true)
summin10([TS_EX1], false)
Option 4 – Expand standing numeric to a time series at the target granularity
Output: Time series (SimpleDataNumeric)
Example:
summin10(ST_FIELD)
Downsample to Min20 granularity using Sum.
Option 1 – Create a constant timeseries with target granularity
Output: Time series (SimpleDataNumeric)
Example:
summin20(3)
Option 2 – Downsample a time series (or standing time series) to the target granularity
Output: Time series (SimpleDataNumeric)
Example:
summin20([TS_EX1])
Option 3 – Downsample a time series (or standing time series) to the target granularity. When ignoreNulls is true, null values are skipped in aggregation; when false (default), any null in the range results in null
Output: Time series (SimpleDataNumeric)
Example:
summin20([TS_EX1], true)
summin20([TS_EX1], false)
Option 4 – Expand standing numeric to a time series at the target granularity
Output: Time series (SimpleDataNumeric)
Example:
summin20(ST_FIELD)
Downsample to Min5 granularity using Sum.
Option 1 – Create a constant timeseries with target granularity
Output: Time series (SimpleDataNumeric)
Example:
summin5(3)
Option 2 – Downsample a time series (or standing time series) to the target granularity
Output: Time series (SimpleDataNumeric)
Example:
summin5([TS_EX1])
Option 3 – Downsample a time series (or standing time series) to the target granularity. When ignoreNulls is true, null values are skipped in aggregation; when false (default), any null in the range results in null
Output: Time series (SimpleDataNumeric)
Example:
summin5([TS_EX1], true)
summin5([TS_EX1], false)
Option 4 – Expand standing numeric to a time series at the target granularity
Output: Time series (SimpleDataNumeric)
Example:
summin5(ST_FIELD)
Downsample to Month granularity using Sum.
Option 1 – Create a constant timeseries with target granularity
Output: Time series (SimpleDataNumeric)
Example:
summonth(3)
Option 2 – Downsample a time series (or standing time series) to the target granularity
Output: Time series (SimpleDataNumeric)
Example:
summonth([TS_EX1])
Option 3 – Downsample a time series (or standing time series) to the target granularity. When ignoreNulls is true, null values are skipped in aggregation; when false (default), any null in the range results in null
Output: Time series (SimpleDataNumeric)
Example:
summonth([TS_EX1], true)
summonth([TS_EX1], false)
Option 4 – Expand standing numeric to a time series at the target granularity
Output: Time series (SimpleDataNumeric)
Example:
summonth(ST_FIELD)
Cumulative sum that resets at the start of each month. Runs across pre/values/post windows.
Alias: cumsummonth
Time series cumulative sum per month (resets at each month boundary).
Output: Time series (SimpleDataNumeric)
Example:
summonthtodate([TS_EX1])
Downsample to OneSec granularity using Sum.
Alias: sumsec1
Option 1 – Create a constant timeseries with target granularity
Output: Time series (SimpleDataNumeric)
Example:
sumonesec(3)
Option 2 – Downsample a time series (or standing time series) to the target granularity
Output: Time series (SimpleDataNumeric)
Example:
sumonesec([TS_EX1])
Option 3 – Downsample a time series (or standing time series) to the target granularity. When ignoreNulls is true, null values are skipped in aggregation; when false (default), any null in the range results in null
Output: Time series (SimpleDataNumeric)
Example:
sumonesec([TS_EX1], true)
sumonesec([TS_EX1], false)
Option 4 – Expand standing numeric to a time series at the target granularity
Output: Time series (SimpleDataNumeric)
Example:
sumonesec(ST_FIELD)
Downsample to Quarter granularity using Sum.
Option 1 – Create a constant timeseries with target granularity
Output: Time series (SimpleDataNumeric)
Example:
sumquarter(3)
Option 2 – Downsample a time series (or standing time series) to the target granularity
Output: Time series (SimpleDataNumeric)
Example:
sumquarter([TS_EX1])
Option 3 – Downsample a time series (or standing time series) to the target granularity. When ignoreNulls is true, null values are skipped in aggregation; when false (default), any null in the range results in null
Output: Time series (SimpleDataNumeric)
Example:
sumquarter([TS_EX1], true)
sumquarter([TS_EX1], false)
Option 4 – Expand standing numeric to a time series at the target granularity
Output: Time series (SimpleDataNumeric)
Example:
sumquarter(ST_FIELD)
Downsample to QuarterHour granularity using Sum.
Alias: summin15
Option 1 – Create a constant timeseries with target granularity
Output: Time series (SimpleDataNumeric)
Example:
sumquarterhour(3)
Option 2 – Downsample a time series (or standing time series) to the target granularity
Output: Time series (SimpleDataNumeric)
Example:
sumquarterhour([TS_EX1])
Option 3 – Downsample a time series (or standing time series) to the target granularity. When ignoreNulls is true, null values are skipped in aggregation; when false (default), any null in the range results in null
Output: Time series (SimpleDataNumeric)
Example:
sumquarterhour([TS_EX1], true)
sumquarterhour([TS_EX1], false)
Option 4 – Expand standing numeric to a time series at the target granularity
Output: Time series (SimpleDataNumeric)
Example:
sumquarterhour(ST_FIELD)
Downsample to Season granularity using Sum.
Option 1 – Create a constant timeseries with target granularity
Output: Time series (SimpleDataNumeric)
Example:
sumseason(3)
Option 2 – Downsample a time series (or standing time series) to the target granularity
Output: Time series (SimpleDataNumeric)
Example:
sumseason([TS_EX1])
Option 3 – Downsample a time series (or standing time series) to the target granularity. When ignoreNulls is true, null values are skipped in aggregation; when false (default), any null in the range results in null
Output: Time series (SimpleDataNumeric)
Example:
sumseason([TS_EX1], true)
sumseason([TS_EX1], false)
Option 4 – Expand standing numeric to a time series at the target granularity
Output: Time series (SimpleDataNumeric)
Example:
sumseason(ST_FIELD)
Downsample to Summer seasonal granularity using Sum.
Option 1 – Create a constant timeseries with target granularity
Output: Time series (SimpleDataNumeric)
Example:
sumsummer(3)
Option 2 – Downsample a time series (or standing time series) to the target granularity
Output: Time series (SimpleDataNumeric)
Example:
sumsummer([TS_EX1])
Option 3 – Downsample a time series (or standing time series) to the target granularity. When ignoreNulls is true, null values are skipped in aggregation; when false (default), any null in the range results in null
Output: Time series (SimpleDataNumeric)
Example:
sumsummer([TS_EX1], true)
sumsummer([TS_EX1], false)
Option 4 – Expand standing numeric to a time series at the target granularity
Output: Time series (SimpleDataNumeric)
Example:
sumsummer(ST_FIELD)
Downsample to Winter seasonal granularity using Sum.
Option 1 – Create a constant timeseries with target granularity
Output: Time series (SimpleDataNumeric)
Example:
sumwinter(3)
Option 2 – Downsample a time series (or standing time series) to the target granularity
Output: Time series (SimpleDataNumeric)
Example:
sumwinter([TS_EX1])
Option 3 – Downsample a time series (or standing time series) to the target granularity. When ignoreNulls is true, null values are skipped in aggregation; when false (default), any null in the range results in null
Output: Time series (SimpleDataNumeric)
Example:
sumwinter([TS_EX1], true)
sumwinter([TS_EX1], false)
Option 4 – Expand standing numeric to a time series at the target granularity
Output: Time series (SimpleDataNumeric)
Example:
sumwinter(ST_FIELD)
Downsample to Year granularity using Sum.
Option 1 – Create a constant timeseries with target granularity
Output: Time series (SimpleDataNumeric)
Example:
sumyear(3)
Option 2 – Downsample a time series (or standing time series) to the target granularity
Output: Time series (SimpleDataNumeric)
Example:
sumyear([TS_EX1])
Option 3 – Downsample a time series (or standing time series) to the target granularity. When ignoreNulls is true, null values are skipped in aggregation; when false (default), any null in the range results in null
Output: Time series (SimpleDataNumeric)
Example:
sumyear([TS_EX1], true)
sumyear([TS_EX1], false)
Option 4 – Expand standing numeric to a time series at the target granularity
Output: Time series (SimpleDataNumeric)
Example:
sumyear(ST_FIELD)
Cumulative sum that resets at the start of each calendar year. Runs across pre/values/post windows.
Alias: cumsumyear
Time series cumulative sum per year (resets at each Jan 1).
Output: Time series (SimpleDataNumeric)
Example:
sumyeartodate([TS_EX1])
Splice two time series up to a date (optionally offset by days). For sub-day series the comparison is performed in local wall-time.
Option 1
Output: Time series (SimpleDataNumeric)
Example:
todate([TS_A], [TS_B])
Option 2
Output: Time series (SimpleDataNumeric)
Example:
todate([TS_A], [TS_B], 5)
Splice two time series up to a month boundary (optionally offset by months). For sub-day series the comparison is performed in local wall-time.
Option 1
Output: Time series (SimpleDataNumeric)
Example:
tomonth([TS_A], [TS_B])
Option 2
Output: Time series (SimpleDataNumeric)
Example:
tomonth([TS_A], [TS_B], 2)
Upsample a time series / standing time series to a finer granularity using an interpolation/fill method. Methods: linear, backfill, frontfill, division, linearwithqp, divisionwithqp.
Option 1 – Infer upsample method from metadata. If metadata lacks method, use scenario 2
Output: Time series (SimpleDataNumeric)
Example:
upsample([TS_EX1], "Min5")
upsample([TS_EX1], "Hour")
Option 2 – Explicit method form. Methods: linear, backfill, frontfill, division, linearwithqp, divisionwithqp
Output: Time series (SimpleDataNumeric)
Example:
upsample([TS_EX1], "Min5", "linear")
upsample([TS_EX1], "Hour", "backfill")
upsample([TS_EX1], "Min15", "divisionwithqp")
Time series with a constant value and granularity equal to 'Week'.
Alias: week
Option 1 – Create a constant time series (granularity: Week)
Output: Time series (SimpleDataNumeric)
Example:
weekly(100)
weekly(null)
Option 2 – Convert a standing series to a time series at granularity 'Week'. The standing values are applied across the time series
Output: Time series (SimpleDataNumeric)
Example:
weekly(Asset(2).Capacity)
Time series with a constant value and seasonal granularity equal to 'Winter'.
Alias: winter
Option 1 – Create a constant time series (granularity: Winter)
Output: Time series (SimpleDataNumeric)
Example:
winterly(100)
winterly(null)
Option 2 – Convert a standing series to a time series at granularity 'Winter'. The standing values are applied across the time series
Output: Time series (SimpleDataNumeric)
Example:
winterly(Asset(2).Capacity)
Time series with a constant value and granularity equal to 'Year'.
Alias: year
Option 1 – Create a constant time series (granularity: Year)
Output: Time series (SimpleDataNumeric)
Example:
yearly(100)
yearly(null)
Option 2 – Convert a standing series to a time series at granularity 'Year'. The standing values are applied across the time series
Output: Time series (SimpleDataNumeric)
Example:
yearly(Asset(2).Capacity)