Function Reference (English)

Logical connectors



Syntax Description
if
Optional term that can appear at the end of a conclusion line that has a following proof
and
Logical conjunction between two attributes
or
Logical disjunction between two attributes
either
one of
any
at least one of the following is true
any of the following are satisfied
Grouping element used with disjunctions where two or more attributes need to be grouped
both
all
all of the following are true
all of the following are satisfied
Grouping element used with conjunctions where two or more attributes need to be grouped
otherwise
Term that appears at the end of a table rule to indicate the otherwise clause
is
Term that is used in a legend entry between the abbreviated phrase and the full attribute text

Logical functions



Syntax Description
it is not true that <expr>
Operator used to return true if attribute has a value which is false
<var> is certain
it is certain whether [or not]<expr>
Operator used to return true if attribute has a value which is not uncertain
<var> is uncertain
<var> is not certain
it is uncertain that <expr>
it is uncertain whether [or not]<expr>
it is not certain that <expr>
Operator used to return true if attribute value is uncertain
<var> is known
<var> is currently known
it is known whether [or not]<expr>
it is currently known whether [or not]<expr>
Operator used to return true if attribute has any value
<var> is [currently] unknown
it is [currently] unknown whether [or not]<expr>
Operator used to return true if attribute has no value

Logical constants



Syntax Description
true
Constant true value used for table rules.
false
Constant false value used for table rules.
uncertain
Constant uncertain value used for table rules.

Comparison operators



Syntax Description
<x><<y>
<x> is earlier than <y>
Less than

Note: there is no natural language form when this operator is used with numerical and currency values.
<x> > <y>
<x> is later than <y>
Greater than

Note: there is no natural language form when this operator is used with numerical and currency values.
<x><=<y>
<x> is less than or equal to <y>
<x> is on or earlier than <y>
<x> is at or earlier than <y>
Less than or equal to
<x> >= <y>
<x> is greater than or equal to <y>
<x> is on or later than <y>
<x> is at or later than <y>
Greater than or equal to
<x>=<y>
<x> is equal to <y>
<x> equals <y>
Equals
<x> is not equal to <y>
<x> <> <y>
Not equal

Numerical functions



Syntax Description
Number(<numText>)
Convert the specified string into a number value
<x> + <y>
Mathematical addition
<x> - <y>
Mathematical subtraction
<x> * <y>
Mathematical multiplication
<x> / <y>
Mathematical division
<x> \ <y>
Integer division
<x> modulo <y>
Remainder after integer division
Maximum(<x>, <y>)
Maximum(<date/time/datetime1>, <date/time/datetime2>)
the greater of <x> and <y>
the latest of <x> and <y>
Returns the greater of two values
Minimum(<x>, <y>)
Minimum(<date/time/datetime1>, <date/time/datetime2>)
the lesser of <x> and <y>
the earliest of <x> and <y>
Returns the lesser of two values
Xy(<x>, <y>)
<x> raised to the power of <y>
x to the power of y
Ex(<x>)
e to the power of <x>
Constant e to the power of x
Abs(<x>)
the absolute value of <x>
|<x>|
Absolute value of x
Ln(<x>)
the natural logarithm of <x>
Natural logarithm of x
Log(<x>)
the logarithm base 10 of <x>
Logarithm base 10 of x
Sqrt(<x>)
the square root of <x>
Square root of x
Round(<x>, <n>)
<x> rounded to <n> decimal place
<x> rounded to <n> decimal places
Rounds x to n decimal places
Trunc(<x>, <n>)
<x> truncated to <n> decimal place
<x> truncated to <n> decimal places
x truncated to n decimal places
Sin(<x>)
Sine of x
Cos(<x>)
Cosine of x
Tan(<x>)
Tangent of x
Asin(<x>)
Arcsine of x
Acos(<x>)
Arccosine of x
Atan(<x>)
Arctangent of x

Date functions



Syntax Description
CurrentDate()
the current date
Returns today's date.
Date(<text>)
Converts the specified string into a date value
MakeDate(<year>, <month>, <day>)
Returns a date formed from the specified year, month, and day.
ExtractDay(<date/datetime>)
Returns the day component of a date/datetime attribute.
ExtractMonth(<date/datetime>)
Returns the month component of a date/datetime attribute.
ExtractYear(<date/datetime>)
Returns the year component of a date/datetime attribute.
NextDayOfTheWeek(<date/datetime>, <day>)
the next Monday on or after <from-date>
the Monday on or before <from-date>
the next Tuesday on or after <from-date>
the Tuesday on or before <from-date>
the next Wednesday on or after <from-date>
the Wednesday on or before <from-date>
the next Thursday on or after <from-date>
the Thursday on or before <from-date>
the next Friday on or after <from-date>
the Friday on or before <from-date>
the next Saturday on or after <from-date>
the Saturday on or before <from-date>
the next Sunday on or after <from-date>
the Sunday on or before <from-date>
Returns the date of the next weekday on or after a date.
NextDate(<date>, <day>, <month>)
the previous UK tax year start date on or before <from-date>
the next UK tax year end date on or after <from-date>
NextDateReturns the next instance of the given day and month after a date.
AddDays(<date/datetime>, <num_days>)
the date <num_days> days after <datetime>
the date <num_days> days before <datetime>
the date <num_days> day after <datetime>
the date <num_days> day before <datetime>
the time <num_days> days after <datetime>
the time <num_days> days before <datetime>
the time <num_days> day after <datetime>
the time <num_days> day before <datetime>
Adds a number of days to a date. When using the terse syntactic form, the number must be a positive integer in order to add days to the input date.
AddWeeks(<date/datetime>, <num_weeks>)
the date <num_weeks> weeks after <datetime>
the date <num_weeks> weeks before <datetime>
the date <num_weeks> week after <datetime>
the date <num_weeks> week before <datetime>
the time <num_weeks> weeks after <datetime>
the time <num_weeks> weeks before <datetime>
the time <num_weeks> week after <datetime>
the time <num_weeks> week before <datetime>
Adds a number of weeks to a date. When using the terse syntactic form, the number must be a positive integer in order to add weeks to the input date.
AddMonths(<date/datetime>, <num_months>)
the date <num_months> months after <datetime>
the date <num_months> months before <datetime>
the date <num_months> month after <datetime>
the date <num_months> month before <datetime>
the time <num_months> months after <datetime>
the time <num_months> months before <datetime>
the time <num_months> month after <datetime>
the time <num_months> month before <datetime>
Adds a number of months to a date. When using the terse syntactic form, the number must be a positive integer in order to add months to the input date.
AddYears(<date/datetime>, <num_years>)
the date <num_years> years after <datetime>
the date <num_years> years before <datetime>
the date <num_years> year after <datetime>
the date <num_years> year before <datetime>
the time <num_years> years after <datetime>
the time <num_years> years before <datetime>
the time <num_years> year after <datetime>
the time <num_years> year before <datetime>
Adds a number of years to a date. When using the terse syntactic form, the number must be a positive integer in order to add years to the input date.
WeekdayCount(<date1>, <date2>)
the number of weekdays (inclusive) between <date1> and <date2>
Counts the number of weekdays between date1 and date2. That is, the number of days falling between Monday and Friday.
Note: The earlier date is inclusive and the later date is exclusive.
YearStart(<date/datetime>)
the first day of the year in which <from-date> falls
Returns the first date in the year in which a date falls.
YearEnd(<date/datetime>)
the last day of the year in which <from-date> falls
Returns the last date in the year in which a date falls.
DayDifference(<date/datetime1>, <date/datetime2>)
the number of days from <date/datetime1> to <date/datetime2>
Returns the number of whole days between date/datetime1 and date/datetime2. Where the second DATE is earlier than the first DATE, the result is 0.
DayDifferenceInclusive(<date/datetime1>, <date/datetime2>)
the number of days (inclusive) from <date/datetime1> to <date/datetime2>
Returns the number of whole days (inclusive) between date/datetime1 and date/datetime2. This calculation includes both endpoints. Where the dates are the same, the result is 1. Where the second DATE is earlier than the first DATE, the result is 0.
DayDifferenceExclusive(<date/datetime1>, <date/datetime2>)
the number of days (exclusive) from <date/datetime1> to <date/datetime2>
Returns the number of whole days (exclusive) between date/datetime1 and date/datetime2. This calculation excludes both endpoints. Where the dates are the same, the result is 0. Where the second DATE is earlier than the first DATE, the result is also 0.
WeekDifference(<date/datetime1>, <date/datetime2>)
the number of weeks from <date1> to <date2>
Returns the number of whole elapsed weeks between date/datetime1 and date/datetime2. If the second DATE is earlier than the first DATE, then the result will be 0.
WeekDifferenceInclusive(<date/datetime1>, <date/datetime2>)
the number of weeks (inclusive) from <date1> to <date2>
Returns the inclusive number of whole elapsed weeks between date/datetime1 and date/datetime2. If the second DATE is earlier than the first DATE, then the result will be 0.
WeekDifferenceExclusive(<date/datetime1>, <date/datetime2>)
the number of weeks (exclusive) from <date1> to <date2>
Returns the exclusive number of whole elapsed weeks between date/datetime1 and date/datetime2. If the second DATE is earlier than the first DATE, then the result will be 0.
MonthDifference(<date/datetime1>, <date/datetime2>)
the number of months from <date1> to <date2>
Returns the number of whole elapsed months between date/datetime1 and date/datetime2. If the second DATE is earlier than the first DATE, then the result will be 0.
MonthDifferenceInclusive(<date/datetime1>, <date/datetime2>)
the number of months (inclusive) from <date1> to <date2>
Returns the number of whole inclusive elapsed months between date/datetime1 and date/datetime2. If the second DATE is earlier than the first DATE, then the result will be 0.
MonthDifferenceExclusive(<date/datetime1>, <date/datetime2>)
the number of months (exclusive) from <date1> to <date2>
Returns the number of whole exclusive elapsed months between date/datetime1 and date/datetime2. If the second DATE is earlier than the first DATE, then the result will be 0.
YearDifference(<date/datetime1>, <date/datetime2>)
the number of whole years which <date2> is after <date1>
the number of years between <date1> and <date2>
Returns the number of years between date/datetime1 and date/datetime2. NOTE: The earlier DATE is inclusive and the later DATE is exclusive.
YearDifferenceInclusive(<date/datetime1>, <date/datetime2>)
the number of years (inclusive) between <date1> and <date2>
Returns the inclusive number of years between date/datetime1 and date/datetime2.
YearDifferenceExclusive(<date/datetime1>, <date/datetime2>)
the number of years (exclusive) between <date1> and <date2>
Returns the exclusive number of years between date/datetime1 and date/datetime2.

Time of day functions



Syntax Description
TimeOfDay(<text>)
Converts the given string into a time of day
ExtractSecond(<time/datetime>)
Returns the second component of a timeofday/datetime attribute.
ExtractMinute(<time/datetime>)
Returns the minute component of a timeofday/datetime attribute.
ExtractHour(<time/datetime>)
Returns the hour component of a timeofday/datetime attribute.

Date and time functions



Syntax Description
CurrentDateTime()
the current date time
Sets the date time to the current date and time.
DateTime(<text>)
Converts the specified string into a datetime value
ConcatenateDateTime(<date>, <time>)
<date> at <time-of-day>
<time-of-day> on <date>
Sets the date time by joining the date and time of day together.
SecondDifference(<datetime1>, <datetime2>)
SecondDifference(<timeOfDay1>, <timeOfDay2>)
the number of seconds from <date1> to <date2>
Returns the number of seconds between datetime1 and datetime2.
SecondDifferenceInclusive(<datetime1>, <datetime2>)
SecondDifferenceInclusive(<timeOfDay1>, <timeOfDay2>)
the number of seconds (inclusive) from <date1> to <date2>
Returns the inclusive number of seconds between datetime1 and datetime2.
SecondDifferenceExclusive(<datetime1>, <datetime2>)
SecondDifferenceExclusive(<timeOfDay1>, <timeOfDay2>)
the number of seconds (exclusive) from <date1> to <date2>
Returns the exclusive number of seconds between datetime1 and datetime2.
MinuteDifference(<datetime1>, <datetime2>)
MinuteDifference(<timeOfDay1>, <timeOfDay2>)
the number of minutes from <datetime1> to <datetime2>
Returns the number of minutes between datetime1 and datetime2.
MinuteDifferenceInclusive(<datetime1>, <datetime2>)
MinuteDifferenceInclusive(<timeOfDay1>, <timeOfDay2>)
the number of minutes (inclusive) from <date1> to <date2>
Returns the inclusive number of minutes between datetime1 and datetime2.
MinuteDifferenceExclusive(<datetime1>, <datetime2>)
MinuteDifferenceExclusive(<timeOfDay1>, <timeOfDay2>)
the number of minutes (exclusive) from <date1> to <date2>
Returns the exclusive number of minutes between datetime1 and datetime2.
HourDifference(<datetime1>, <datetime2>)
HourDifference(<timeOfDay1>, <timeOfDay2>)
the number of hours from <date1> to <date2>
Returns the number of hours between datetime1 and datetime2.
HourDifferenceInclusive(<datetime1>, <datetime2>)
HourDifferenceInclusive(<timeOfDay1>, <timeOfDay2>)
the number of hours (inclusive) from <date1> to <date2>
Returns the inclusive number of hours between datetime1 and datetime2.
HourDifferenceExclusive(<datetime1>, <datetime2>)
HourDifferenceExclusive(<timeOfDay1>, <timeOfDay2>)
the number of hours (exclusive) from <date1> to <date2>
Returns the exclusive number of hours between datetime1 and datetime2.
ExtractDate(<datetime>)
Extracts the date from a datetime attribute.
ExtractTimeOfDay(<datetime>)
Extracts the time of day from a datetime attribute. Can be used to set the value of a timeofday attribute to the time the rule is executed by extracting the time from the current date and time.
AddHours(<datetime>, <num_hours>)
AddHours(<timeOfDay>, <num_hours>)
the time <num_hours> hours after <datetime>
the time <num_hours> hours before <datetime>
the time <num_hours> hour after <datetime>
the time <num_hours> hour before <datetime>
Adds a number of hours to a date time.
AddMinutes(<datetime>, <num_minutes>)
AddMinutes(<timeOfDay>, <num_minutes>)
the time <num_minutes> minutes after <datetime>
the time <num_minutes> minutes before <datetime>
the time <num_minutes> minute after <datetime>
the time <num_minutes> minute before <datetime>
Adds a number of minutes to a date time.
AddSeconds(<datetime>, <num_seconds>)
AddSeconds(<timeOfDay>, <num_seconds>)
the time <num_seconds> seconds after <datetime>
the time <num_seconds> seconds before <datetime>
the time <num_seconds> second after <datetime>
the time <num_seconds> second before <datetime>
Adds a number of seconds to a date time.

Text functions



Syntax Description
<text1> & <text2>
Combines text1 with text2 and so on to form a single text value
the concatenation of <text1> & <text2>
Combines text1 with text2 and so on to form a single text value.

Note: that you can use variables of any type. Values are formatted using the formatter that is installed in the rule session.
Contains(<text>, <substring>)
<text> contains <sub-string>
Returns a boolean value indicating whether the given text value contains the given text sub-string. The text comparison is case-insensitive.
EndsWith(<text>, <substring>)
<text> ends with <sub-string>
Returns a boolean value indicating whether the given text value ends with the given text sub-string. The text comparison is case-insensitive.
IsNumber(<text>)
<text> is a number
Returns a boolean value indicating whether the given text value represents a valid number.
Length(<text>)
the length of <text>
Returns the character length of the given text value.
StartsWith(<text>, <substring>)
<text> starts with <sub-string>
Returns a boolean value indicating whether the given text value starts with the given text sub-string. The text comparison is case-insensitive.
Substring(<text>, <offset>, <length>)
Returns the substring of text that starts at the given offset, that is the specified length in characters. Fewer characters are returned if the end of the string is reached.
Text(<number>)
Text(<date>)
Text(<datetime>)
Text(<timeOfDay>)
Convert the specified number or date attribute into a text value.

Entity and relationship functions



Syntax Description
For(<relationship>, <Exp>)
in the case of <relationship>, <attr>
<val>, in the case of <relationship>
Used to refer from one entity to another entity in a "to-one" relationship where there is only one condition.
ForScope(<relationship>, <alias>)
ForScope(<relationship>)
in the case of <relationship>
in the case of <relationship> (<alias>)
Used to refer from one entity to another entity in a "to-one" relationship where there are one or more conditions.
ForAll(<relationship>, <Exp>)
each of <relationship-attr>
for each of <relationship>, <attr>
for all of <relationship>, <attr>
Used to refer from one entity to another entity in a "to-many" relationship, when you need to determine whether all members of the target entity group need to satisfy the rule.
ForAllScope(<relationship>)
ForAllScope(<relationship>, <alias>)
for all of <relationship>
each of <relationship>
for each of <relationship>
for all of <relationship> (<alias>)
each of <relationship> (<alias>)
for each of <relationship> (<alias>)
Used to refer from one entity to another entity in a "to-many" relationship, when you need to determine whether all members of the target entity group need to satisfy the rule.
This form is used when there are one or more conditions in the rule.
Exists(<relationship>, <Exp>)
at least one of <relationship-attr>
for at least one of <relationship>, <attr>
Used to refer from one entity to another entity in a "to-many" relationship, when you need to determine whether any members of the target entity group need to satisfy the rule.
ExistsScope(<relationship>)
ExistsScope(<relationship>, <alias>)
at least one of <relationship>
for at least one of <relationship>
at least one of <relationship> (<alias>)
for at least one of <relationship> (<alias>)
Used to refer from one entity to another entity in a "to-many" relationship, when you need to determine whether any members of the target entity group need to satisfy the rule.
IsMemberOf(<target>, <relationship>)
IsMemberOf(<target>, <alias>, <relationship>)
<ent-target> is a member of <relationship>
<ent-target> (<alias>) is a member of <relationship>
Used to test that an entity instance is a target of a relationship for which a second entity instance is the source.
IsNotMemberOf(<target>, <relationship>)
<ent-target> is not a member of <relationship>
Used to test that an entity instance is not a target of a relationship for which a second entity instance is the source.
InstanceCount(<relationship>)
the number of <relationship>
Counts the number of instances that exist for an entity.
InstanceCountIf(<relationship>, <Exp>)
the number of <relationship> for which it is the case that <condition>
Counts the number of instances there are of an entity for which a particular entity-level attribute has a particular value.
InstanceMaximum(<relationship>, <number-attr>)
InstanceMaximum(<relationship>, <date-attr>)
InstanceMaximum(<relationship>, <datetime-attr>)
InstanceMaximum(<relationship>, <time-attr>)
<date-attr> which is the latest for all [of]<relationship>
<max-attr> which is the greatest for all [of]<relationship>
the latest of all <relationship-attr>
the latest of all <attr> for <relationship>
the greatest of [all]<relationship-attr>
the greatest of [all]<attr> for [all][of]<relationship>
Obtains the highest/most recent value of an entity-level variable for all instances of the entity.
InstanceMaximumIf(<relationship>, <number-attr>, <condition>)
InstanceMaximumIf(<relationship>, <date-attr>, <condition>)
InstanceMaximumIf(<relationship>, <datetime-attr>, <condition>)
InstanceMaximumIf(<relationship>, <time-attr>, <condition>)
<date-attr> which is the latest for all [of]<relationship> for which it is the case that <ent-test>
<max-attr> which is the greatest for all [of]<relationship> for which it is the case that <ent-test>
the latest of all <relationship-attr> for which it is the case that <ent-test>
the greatest of all <relationship-attr> for which it is the case that <ent-test>
the greatest of <attr> for all [of]<relationship> for which it is the case that <ent-test>
Obtains the highest/most recent value of an entity-level variable for all instances of the entity for which a particular entity-level attribute has a particular value.
InstanceMinimum(<relationship>, <number-attr>)
InstanceMinimum(<relationship>, <date-attr>)
InstanceMinimum(<relationship>, <datetime-attr>)
InstanceMinimum(<relationship>, <time-attr>)
<date-attr> which is the earliest for all [of]<relationship>
<attr> which is the least for all [of]<relationship>
the earliest of all <relationship-attr>
the earliest of all <attr> for <relationship>
the least of [all]<relationship-attr>
the least of [all]<attr> for [all][of]<relationship>
Obtains the lowest/least recent value of an entity-level variable for all instances of the entity.
InstanceMinimumIf(<relationship>, <number-attr>, <condition>)
InstanceMinimumIf(<relationship>, <date-attr>, <condition>)
InstanceMinimumIf(<relationship>, <datetime-attr>, <condition>)
InstanceMinimumIf(<relationship>, <time-attr>, <condition>)
<date-attr> which is the earliest for all [of]<relationship> for which it is the case that <ent-test>
<num-attr> which is the least for all [of]<relationship> for which it is the case that <ent-test>
the least of all <relationship-attr> for which it is the case that <ent-test>
the least of all <attr> for <relationship> for which it is the case that <ent-test>
the earliest of all <attr> for <relationship> for which it is the case that <ent-test>
Obtains the lowest/least recent value of an entity-level variable for all instances of the entity for which a particular entity-level attribute has a particular value.
InstanceSum(<relationship>, <number-attr>)
<num-attr>(totaled | totalled) for all [of]<relationship>
the total amount of [all]<relationship-attr>
the total for all <relationship-attr>
total for all <relationship>, <attr>
Obtains the sum of all instances of an entity-level variable.
InstanceSumIf(<relationship>, <number-attr>, <condition>)
<num-attr> totalled for all [of]<relationship> for which it is the case that <ent-test>
<num-attr> totaled for all [of]<relationship> for which it is the case that <ent-test>
the total amount of all <relationship-attr> only where <condition>
the total amount of [all]<relationship-attr> for which it is the case that <condition>
total for all <relationship>, <attr> only where <condition>
Obtains the sum of all instances of an entity-level variable for which it is true of the entity that a specific entity-level Boolean attribute is true.
InstanceValueIf(<relationship>, <number-attr>, <condition>)
InstanceValueIf(<relationship>, <text-attr>, <condition>)
InstanceValueIf(<relationship>, <date-attr>, <condition>)
InstanceValueIf(<relationship>, <datetime-attr>, <condition>)
InstanceValueIf(<relationship>, <time-attr>, <condition>)
Obtains a value from a unique entity instance, identified from the target entity instances of a relationship by a condition.
  • If the condition identifies a single target entity instance, then the value is the value calculated against that entity instance.
  • If more than one target instance meets the condition, then uncertain is returned.
  • If no target instances meet the condition and the relationship is known the value is uncertain.
InstanceEquals(<instance1>, <instance2>)
<ent-target> is <ent-target>
Determines if two instances of an entity are the same instance.
InstanceNotEquals(<instance1>, <instance2>)
<ent-target> is not <ent-target>
Determines if two instances of an entity are not the same instance.
InferInstance(<relationship>, <identity>)
<rel>(<identity>) exists
Used as a conclusion to infer that an entity instance exists and is a member of a relationship.

Temporal reasoning functions



Syntax Description
IntervalCountDistinct(<start-date>, <end-date>, <variable>)
IntervalCountDistinct(<start-date>, <end-date>, <condition>)
Counts the number of known distinct values for the variable, in the interval from the start date (inclusive) to the end date (exclusive).
IntervalCountDistinctIf(<start-date>, <end-date>, <variable>, <condition>)
Counts the number of known distinct values for the variable, in the interval from the start date (inclusive) to the end date (exclusive), only including times when a boolean filter is true.
IntervalDailySum(<start-date>, <end-date>, <number-attr>)
Calculates the sum of a currency or number variable, in the interval from the start date (inclusive) to end date (exclusive). The attribute is assumed to be a daily quantity.
IntervalDailySumIf(<start-date>, <end-date>, <number-attr>, <condition>)
Calculates the sum of all the daily values for a currency or number variable, in the interval from a start date (inclusive) to an end date (exclusive), only including times when a condition is true.
IntervalMaximum(<start-date>, <end-date>, <number-attr>)
IntervalMaximum(<start-date>, <end-date>, <date-attr>)
IntervalMaximum(<start-date>, <end-date>, <datetime-attr>)
IntervalMaximum(<start-date>, <end-date>, <time-attr>)
Selects the maximum value of a variable in the interval from a start date (inclusive) to an end date (exclusive).
IntervalMaximumIf(<start-date>, <end-date>, <number-attr>, <condition>)
IntervalMaximumIf(<start-date>, <end-date>, <date-attr>, <condition>)
IntervalMaximumIf(<start-date>, <end-date>, <datetime-attr>, <condition>)
IntervalMaximumIf(<start-date>, <end-date>, <time-attr>, <condition>)
Selects the maximum value of a variable in the interval from a start date (inclusive) to an end date (exclusive), only including times when a condition is true.
IntervalMinimum(<start-date>, <end-date>, <number-attr>)
IntervalMinimum(<start-date>, <end-date>, <date-attr>)
IntervalMinimum(<start-date>, <end-date>, <datetime-attr>)
IntervalMinimum(<start-date>, <end-date>, <time-attr>)
Selects the minimum value of a variable in the interval from a start date (inclusive) to an end date (exclusive).
IntervalMinimumIf(<start-date>, <end-date>, <number-attr>, <condition>)
IntervalMinimumIf(<start-date>, <end-date>, <date-attr>, <condition>)
IntervalMinimumIf(<start-date>, <end-date>, <datetime-attr>, <condition>)
IntervalMinimumIf(<start-date>, <end-date>, <time-attr>, <condition>)
Selects the minimum value of a variable in the interval from a start date (inclusive) to an end date (exclusive), only including times when a condition is true.
IntervalWeightedAverage(<start-date>, <end-date>, <number-attribute>)
Calculates the average value of a currency or number variable in the interval from a start date (inclusive) to an end date (exclusive) weighted by the time span to which each value applies.
IntervalWeightedAverageIf(<start-date>, <end-date>, <number-attribute>, <condition>)
Calculates the average value of a currency or number variable in the interval from a start date (inclusive) to an end date (exclusive), only including times when a boolean condition is true (weighted by the time span to which each value applies and where the filter is true).
IntervalAlways(<start-date>, <end-date>, <condition>)
Returns true if and only if a boolean condition is true at all times in the interval from the start date (inclusive) to the end date (exclusive).
IntervalAtLeastDays(<start-date>, <end-date>, <NumDays>, <condition>)
Returns true if and only if a boolean condition is true for at least the specified number of days (not necessarily consecutive) in the interval from the start date (inclusive) to the end date (exclusive).
IntervalConsecutiveDays(<start-date>, <end-date>, <NumDays>, <condition>)
Returns true if and only if a boolean condition is true for at least a given number of consecutive days in the interval from the start date (inclusive) to the end date (exclusive).
IntervalSometimes(<start-date>, <end-date>, <condition>)
Returns true if and only if a boolean condition is ever true in the interval from the start date (inclusive) to the end date (exclusive).
ValueAt(<date>, <value>)
Returns the value of the given attribute at the specified date.
WhenLast(<date>, <condition>)
Returns the date on which a boolean condition was last true, looking backwards from (and including) a specified date.
WhenNext(<date>, <condition>)
Returns the date on which a boolean condition will next be true, looking forwards from (and including) a specified date.
Latest()
Returns a date value equivalent to the latest possible date - namely a date guaranteed to be later than any other date that a date attribute may take or an expression may evaluate to.
Earliest()
Returns a date value equivalent to the earliest possible date - namely a date guaranteed to be earlier than any other date that a date attribute may take or an expression may evaluate to.
TemporalDaysSince(<date>, <end-date>)
Returns a number variable that varies every day and is the number of full days since the date.
TemporalWeeksSince(<date>, <end-date>)
Returns a number variable that varies every week and is the number of full weeks since the date.
TemporalMonthsSince(<date>, <end-date>)
Returns a number variable that varies every month and is the number of full months since the date. Note: Where the supplied date is after the 28th day of the month, and a subsequent month has fewer days than the supplied month, the change point for the anniversary month will be created on the last day of that month. For example, if the supplied date is 28, 29, 30 or 31 January 2007, the first change point will be 28 February 2007.
TemporalYearsSince(<date>, <end-date>)
Returns a number variable that varies every year and is the number of full years since the date.
TemporalAlwaysDays(<days>, <condition>)
Returns a boolean attribute that varies over time and is true if and only if a boolean condition is true for all of a given number of preceding days, not including the current day.
TemporalConsecutiveDays(<minDays>, <days>, <condition>)
Returns a boolean attribute that varies over time and is true if and only if a boolean condition is true for at least a minimum number of consecutive days at any time within the preceding set number of days, not including the current day.
TemporalSometimesDays(<days>, <condition>)
Returns a boolean attribute that varies over time and is true if and only if a boolean condition is ever true within a specified number of preceding days, not including the current day.
TemporalAfter(<date>)
Returns a boolean attribute that varies over time and is true after a date and false on and before.
TemporalBefore(<date>)
Returns a boolean attribute that varies over time and is true before a date and false on and afterwards.
TemporalOn(<date>)
Returns a boolean attribute that varies over time and is true on a date and false before and afterwards.
TemporalOnOrAfter(<date>)
Returns a boolean attribute that varies over time and is true on or after a date and false before.
TemporalOnOrBefore(<date>)
Returns a boolean attribute that varies over time and is true on and before a date and false afterwards.
TemporalFromStartDate(<relationship>, <date>, <value>)
Returns a single temporal attribute (at the source entity level) from a relationship and a value attribute on the entities, with values that take effect from a start date attribute.
TemporalFromEndDate(<relationship>, <date>, <value>)
Returns a single temporal attribute (at the source entity level) from a relationship and a value attribute on the entities, with values that take effect up until an end date attribute.
TemporalFromRange(<relationship>, <start-date>, <end-date>, <Value>)
Returns a single temporal attribute (at the source entity level) from a relationship and a value attribute on the entities, with values that takes effect from a start date attribute (inclusive) until and end date attribute (exclusive). The value is uncertain if it expires before the next start date.
TemporalIsWeekday(<startdate>, <enddate>)
Returns true on dates that are weekdays and false on dates that are weekends from the specified start date (inclusive) to the end date (exclusive). Returns uncertain outside of the date range.
TemporalOncePerMonth(<startdate>, <enddate>, <dayofmonth>)
Returns true if the day is equal to the day-of-month parameter and false on all other days of the month from the specified start date (inclusive) to the end date (exclusive). Returns uncertain outside of the date range. When the day-of-month exceeds the number of days in the current month, the value is true on the last day of that month, so that the function returns a value that is true exactly one day per month.

Validation event functions



Syntax Description
Error(<text>)
An error event is used to pass a message to the user, and prevent them from continuing an investigation until the condition which triggered that error no longer applies.
Warning(<text>)
A warning event is used to pass a message to the user, but permits them to continue despite the condition which triggered that warning.

Deprecated functions



Syntax Description
CallCustomFunction(<A>, <B>)
CallCustomFunction