1. Modeling
  2. Anaplan calculation engines
  3. Differences between calculation engines
  4. Calculation function differences between engines

The behavior of certain calculation functions is slightly different in Polaris compared to the Classic Engine. Additionally, you cannot use some functions in Polaris.

Functions with differences between engines

Calculation functionDifference
ALL aggregation function

In Polaris, the default value for cells not mapped with the ALL aggregation function is FALSE.

In the Classic Engine, the default value is TRUE.

ADDMONTHS

In Polaris, if you use a value of NaN (Not a Number) for the Number argument, the ADDMONTHS function returns a blank value.

In the Classic Engine, a value of NaN used with ADDMONTHS is equivalent to 0.

ADDYEARS

In Polaris, if you use a value of NaN (Not a Number) for the Number argument, the ADDYEARS function returns a blank value.

In the Classic Engine, a value of NaN used with ADDYEARS is equivalent to 0.

FIND

In Polaris, the FIND function considers the length of all Unicode characters to be one. This means that the FIND function returns the correct starting character.

In the Classic Engine, the FIND function considers the length of:

  • Unicode characters from within the Basic Multilingual Plane (BMP) to be 1
  • Unicode characters from outside the BMP to be 2
  • The length of composite characters (such as those with accents or diacritic marks) to be equal to the number of components
HALFYEARTODATE

In Polaris, you can use the HALFYEARTODATE function with line items with a time scale of Half-Year.

In the Classic Engine, you cannot.

HALFYEARVALUE

In Polaris, you must enable Half-year Totals in the Model Calendar to use the HALFYEARVALUE function. In the Classic engine, you can use the HALFYEARVALUE function regardless of if Half-year Totals is enabled in the Model Calendar.

In Polaris, you cannot use the HALFYEARVALUE function in a result line item with a time scale greater than the function. The Classic Engine returns a value of 0 in this case.

ISBLANK

In Polaris, the ISBLANK function considers a text value that consists exclusively of carriage return characters to be a blank value.

In the Classic Engine, the ISBLANK function considers a carriage return to be a non-blank value.

ISFIRSTOCCURRENCE

In Polaris, you can use the ISFIRSTOCCURRENCE function with the Time list. In the Classic Engine, you cannot.

Additionally, in Polaris, the ISFIRSTOCCURRENCE function does not have a 50 million cell limit as it does in the Classic Engine.

ISNOTBLANK

In Polaris, the ISNOTBLANK function considers a text value that consists exclusively of carriage return characters to be a blank value.

In the Classic Engine, the ISNOTBLANK function considers a carriage return to be a non-blank value.

ITEM

In Polaris, you cannot use the ITEM function with the Time list.

In the Classic Engine, you can.

LAG

In Polaris, you can use numeric expressions for the Offset amount argument when you use a data type other than number for the Value to offset argument. Any number used for the Offset amount argument is rounded to the nearest integer.

In the Classic Engine, if you use a data type other than number for the Value to offset argument, you can only use numbers for the Offset amount argument, not numeric expressions or the results of line items. Any number used for the Offset amount argument is rounded towards zero.

LEAD

In Polaris, you can use numeric expressions for the Offset amount argument when you use a data type other than number for the Value to offset argument. Any number used for the Offset amount argument is rounded to the nearest integer.

In the Classic Engine, if you use a data type other than number for the Value to offset argument, you can only use numbers for the Offset amount argument, not numeric expressions or the results of line items. Any number used for the Offset amount argument is rounded towards zero.

LEFT

In Polaris, the LEFT function behaves as expected with all text values, including those that contain composite characters or characters from outside the Basic Multilingual Plane (BMP).

In the Classic Engine, the LEFT function considers the length of:

  • Unicode characters from within the BMP to be 1
  • Unicode characters from outside the BMP to be 2
  • The length of composite characters (such as those with accents or diacritic marks) to be equal to the number of components
LENGTH

In Polaris, the LENGTH function behaves as expected with all text values, including those that contain composite characters or characters from outside the Basic Multilingual Plane (BMP).

In the Classic Engine, the LENGTH function considers the length of:

  • Unicode characters from within the BMP to be 1
  • Unicode characters from outside the BNP to be 2
  • The length of composite characters (such as those with accents or diacritic marks) to be equal to the number of components
LOG

In Polaris, the LOG function returns a value of NaN (Not a Number) if you use positive infinity for the Base argument.

In the Classic Engine, the LOG function returns 0 if you use positive infinity for the Base argument.

LOOKUPIn Polaris, you cannot use the LOOKUP function in a result line item with a time scale greater than the values you look up. The Classic Engine returns a value of 0 in this case.
LOWER

In Polaris, you cannot use the Locale argument with the LOWER function.

In the Classic Engine, you can use the Locale argument.

MID

In Polaris, the MID function behaves as expected with all text values, including those that contain composite characters or characters from outside the Basic Multilingual Plane (BMP).

In the Classic Engine, the MID function considers the length of:

  • Unicode characters from within the BMP to be 1
  • Unicode characters from outside the BNP to be 2
  • The length of composite characters (such as those with accents or diacritic marks) to be equal to the number of components
MIN

In Polaris, when comparing a blank date value to a non-blank date value, the MIN function returns the non-blank value.

In the Classic Engine, when comparing a blank date value to a non-blank date value, the MIN function returns the blank value.

MIN aggregation function

In Polaris, the default value for cells not mapped with the MIN function is blank.

In the Classic Engine, the default value is 2399-12-31.

MONTHTODATE

In Polaris, you can use the MONTHTODATE function with line items with a time scale of Month.

In the Classic Engine, you cannot.

MONTHVALUE

In Polaris, you cannot use the MONTHVALUE function in a result line item with a time scale greater than the function.

The Classic Engine returns a value of 0 in this case.

OFFSET

In Polaris, a value of NaN (Not a Number) for the Offset amount argument returns the Substitute value argument.

In the Classic Engine, a value of NaN is equivalent to 0.

Operators and constants

In Polaris, operators such as >, <, and = return a value of FALSE when used with blank date or time period values.

In the Classic Engine, operators such as >, <, and = sometimes return TRUE when used with date or time period values. For example, a non-blank date or time period value is considered greater than a blank date or time period value.

PARENT

In Polaris, the parent of Years within the Time list is All Periods.

In the Classic Engine, the parent of Years is Years.

POWER

In Polaris, POWER(0,0) returns 0.

In the Classic Engine, POWER(0,0) returns 1.

QUARTERTODATE

In Polaris, you can use the QUARTERTODATE function with line items with a time scale of Quarter.

In the Classic Engine, you cannot.

QUARTERVALUE

In Polaris, you must enable Quarter Totals in the Model Calendar to use the QUARTERVALUE function. In the Classic engine, you can use the QUARTERVALUE function regardless of if Quarter Totals is enabled in the Model Calendar.

In Polaris, you cannot use the MONTHVALUE function in a result line item with a time scale greater than the function. The Classic Engine returns a value of 0 in this case.

RANK

You cannot currently use the RANK function in Polaris.

In the Classic Engine, you can.

RANKCUMULATE

You cannot currently use the RANKCUMULATE function in Polaris.

In the Classic Engine, you can.

RIGHT

In Polaris, the RIGHT function behaves as expected with all text values, including those that contain composite characters or characters from outside the Basic Multilingual Plane (BMP).

In the Classic Engine, the RIGHT function considers the length of:

  • Unicode characters from within the BMP to be 1
  • Unicode characters from outside the BNP to be 2
  • The length of composite characters (such as those with accents or diacritic marks) to be equal to the number of components
ROUND

In Polaris, the ROUND function always uses the EXACT rounding method.

In the Classic Engine, the ROUND function uses the NORMAL rounding method unless you provide EXACT for the Rounding method argument.

SUBSTITUTE

In Polaris, the SUBSTITUTE function does not match the base characters of a composite characters. For example, the SUBSTITUTE function does not consider â to contain a or が to contain か.

In the Classic Engine, the SUBTITUTE function matches the base characters of composite characters. For example, the SUBSTITUTE function considers â to contain a or が to contain か.

TEXT

In Polaris, the TEXT function returns a text value of NaN when used with the numerical value NaN.

In the Classic Engine, the TEXT function returns a blank value when you use it with the numerical value value NaN (Not a Number).

UPPER

In Polaris, you cannot use the Locale argument with the UPPER function.

In the Classic Engine, you can use the Locale argument.

VALUE

In Polaris, you cannot use the VALUE function with non-decimal representations of numbers (for example, “0x11.11p0”).

In the Classic Engine, you can use non-decimal representations of numbers.

WEEKDAY

In Polaris, you can use a decimal value for the Day offset argument and it is rounded to the nearest whole number. If you use a value outside of 1 to 7, the function returns a value of 0.

In the Classic Engine, you must use a whole number for the Day offset argument.

WEEKTODATE

In Polaris, you can use the WEEKTODATE function with line items with a time scale of Week.

In the Classic Engine, you cannot.

WEEKVALUE

In Polaris, you cannot use the WEEKVALUE function in a result line item with a time scale greater than the function.

The Classic Engine returns a value of 0 in this case.

YEARTODATE

In Polaris, you can use the YEARTODATE function with line items with a time scale of Year.

In the Classic Engine, you cannot.

YEARVALUE

In Polaris, you cannot use the YEARVALUE function in a result line item with a time scale greater than the function.

The Classic Engine returns a value of 0 in this case.

Functions not available in the Enhanced calculation engine

Some functions, including most of the Call Center Planning and Financial Functions are not available in Polaris. These include: