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 calculated result is TRUE for cells not mapped.

In the Classic Engine, the default value is FALSE.

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.

AVERAGE aggregation function

In Polaris, you cannot use the bracketed aggregation function AVERAGE in formulas of line items with a formula summary method.

In the Classic Engine, you can.

CODE

In Polaris, if you use a time period value for the Item argument, the CODE function returns a blank text result.

In the Classic Engine, if you use a time period value for the Item argument, the CODE function returns the time period value as text.

CUMULATE

In Polaris, you cannot use CUMULATE in formulas of line items with a formula summary method.

In the Classic Engine, you can.

In Polaris, the List argument must identically match a dimension of the line item to which the formula is applied.

In the Classic Engine, you can also use a subset of a line item dimension as List.

DECUMULATE

In Polaris, you cannot use DECUMULATE in formulas of line items with a formula summary method.

In the Classic Engine, you can.

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
FINDITEM

In Polaris, you cannot use the FINDITEM function with one Time argument.

In the Classic Engine, you can use FINDITEM with one or two Time arguments.

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.

In Polaris, you cannot use HALFYEARTODATE in formulas of line items with a formula summary method.

In the Classic Engine, you can.

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.

Also 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 ITEM in formulas of line items with formula summary method. In the Classic Engine, you can.

In Polaris, you cannot use the ITEM function with one Time argument. In the Classic Engine, you can.

LAG

In Polaris, the Offset amount argument rounds to the nearest whole number.

In the Classic Engine, the Offset amount argument rounds towards zero.

LEAD

In Polaris, the Offset amount argument rounds to the nearest whole number.

In the Classic Engine, the Offset amount argument rounds 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.

MAX aggregation function

In Polaris, you cannot use the bracketed aggregation function MAX in formulas of line items with a formula summary method.

In the Classic Engine, you can.

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, 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.

For dates, blank cells calculate to blank for Polaris and 2399-12-31 for the Classic Engine. For numbers, blank cells calculate to 0 for Polaris and positive infinity for the Classic Engine.

In Polaris, you cannot use the bracketed aggregation function MIN in formulas of line items with a formula summary method. In the Classic Engine, you can.

MONTHTODATE

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

In the Classic Engine, you cannot.

In Polaris, you cannot use MONTHTODATE in formulas of line items with a formula summary method. In the Classic Engine, you can.

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.

MOVINGSUMIn Polaris, you cannot use MOVINGSUM in formulas of line items with a formula summary method. In the Classic Engine, you can.
MROUNDIn Polaris, if Number of decimal places resolves to NaN (Not a Number) or 0, then the MROUND function returns 0. In the Classic Engine, this returns NaN.
NEXT

In Polaris, you cannot use NEXT in formulas of line items with a formula summary method. In the Classic Engine, you can.

For time outside the time range hierarchy, Polaris returns zero or blank values. In the Classic Engine, NEXT can apply to a time outside the time range hierarchy.

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, a non-blank date or time period value is greater than a blank date or time period value.

In Polaris, operators such as >, <, and = are tolerant of small differences to 1E-14. In the Classic Engine, the operators are exact.

For arithmetic operators + and -, Polaris returns a blank date when any date operands are blank. In the Classic Engine, a blank date assumes the minimum possible value.

For arithmetic operator *, Polaris returns 0 when any operands are NaN (Not a Number). The Classic Engine returns NaN.

PARENT

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

In the Classic Engine, All Periods has a time scale of Years, which means Years is the parent of Years.

In Polaris, the results of formulas are not coerced into different timescales. For example, if a formula returns a result with a Months timescale in a line item with the Years timescale, the formula is invalid.

In the Classic Engine, the results of formulas are coerced into different timescales. For example, if a formula returns a result with a Months timescale in a line item with the Years timescale, the Months value automatically converts to display in the Years line item.

PERIODIn Polaris, you can only use PERIOD in a line item that has a Type of Time Period.
POST

In Polaris, you cannot use POST in formulas of line items with a formula summary method.

In the Classic Engine, you can.

POWER

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

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

PREVIOUSIn Polaris, you cannot use PREVIOUS in formulas of line items with a formula summary method. In the Classic Engine, you can.
PROFILE

In Polaris, the lookup dimension cannot relate to any dimension of the line item to which the formula is applied.

In Polaris, you cannot use PROFILE in formulas of line items with a formula summary method. In the Classic Engine, you can.

QUARTERTODATE

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

In the Classic Engine, you cannot.

In Polaris, you cannot use QUARTERTODATE in formulas of line items with a formula summary method. In the Classic Engine, you can.

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 QUARTERVALUE 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.

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 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
ROUND

In Polaris, the ROUND function always uses the EXACT rounding method. As such, you cannot provide the Rounding method argument. In the Classic engine, the ROUND function uses the NORMAL rounding method unless you provide EXACT for the Rounding method argument.

In Polaris, if Number to round is 0 and Number of decimal places is NaN (Not a Number), then the ROUND function returns 0. In the Classic Engine, this returns NaN.

In Polaris, if Number to round is not 0 and Number of decimal places is NaN (Not a Number), then the ROUND function returns NaN. In the Classic Engine, this returns NaN.

In Polaris, if Number of decimal places is not a whole number, then Number of decimal places rounds to the nearest whole number. The Classic Engine does not support the NORMAL Rounding method  in this case, and with the EXACT Rounding method, ROUND rounds towards zero.

In Polaris, if Number of decimal places is -Infinity or less than -308.5, then ROUND returns 0, -Infinity, or Infinity, as expected. If Number of decimal places is Infinity or greater than 308.5, then ROUND returns Number to round. In the Classic Engine, all these return NaN (Not a Number).

In Polaris, if Rounding direction is UP, DOWN, AWAYFROMZERO, or TOWARDSZERO, and the result is too small to represent, then ROUND returns the smallest possible number. In the Classic Engine, these cases, with a Rounding method of EXACT, return 0.

In Polaris, if Number to round is negative, Rounding direction is NEAREST, and Number of decimal places is negative, then ROUND rounds away from zero. The Classic Engine rounds this towards zero.

SELECT

In Polaris, the reference in SELECT must be literal, rather than an expression.

In the Classic Engine, SELECT can use expressions. The Classic Engine allows Time.'Current Period' in the expression for SELECT.

SPREAD

In Polaris, you cannot use SPREAD in formulas of line items with a formula summary method.

In the Classic Engine, you can.

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 SUBSTITUTE function matches the base characters of composite characters. For example, the SUBSTITUTE function considers â to contain a or が to contain か.

SUM aggregation functionIn Polaris, you cannot use the bracketed aggregation function SUM in formulas of line items with a formula summary method. In the Classic Engine, you can.
TEXT

In Polaris, the TEXT function returns a text value of NaN (Not a Number) 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 NaN.

TRIM

You cannot currently use the TRIM function in Polaris.

In the Classic Engine, the TRIM function removes all leading and trailing spaces, and extra spaces between words in a text string.

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, the VALUE function returns NaN (Not a Number) for non-decimal representations of numbers (for example, "0x11.11p0").

In the Classic Engine, non decimal representations of numbers do not necessarily return NaN.

WEEKDAY

In Polaris, you can use a decimal value for the Day offset argument and it rounds 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.

In Polaris, you cannot use WEEKTODATE in formulas of line items with a formula summary method. In the Classic Engine, you can.

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.

In Polaris, you cannot use YEARTODATE in formulas of line items with a formula summary method. In the Classic Engine, you can.

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.

In Polaris, you cannot use YEARVALUE in formulas of line items with a formula summary method. In the Classic Engine, you can.

Differences with many functions

Arguments

In the Polaris engine, resolved values for whole number arguments round up. Values with a 0.5 fraction round away from zero. For example, 0.5 rounds up, and -0.5 rounds down. In the Classic Engine, the rounding policy depends on the function.

Functions not available in Polaris

Some functions, including most of the call center planning and financial functions are not available in Polaris. These include:

Disclaimer

We update Anapedia regularly to provide the most up-to-date instructions.