Taking too long? Close loading screen.

Prophet – Function Categories

Function Categories

The Prophet programming language provides a wide range of functions which are grouped into the following categories:

  • Array functions
  • Conversion functions
  • Dynamic functions
  • Error / Warning functions
  • Financial functions
  • Logical functions
  • Mathematical functions
  • Product functions
  • Read functions
  • Run Position functions
  • Run Progress functions
  • Run Setting functions
  • Statistical functions
  • Text functions
  • Trigonometric functions

Array Functions

Function Description
ARRAY_INITIALISE Resizes the specified array where necessary and always resets the array entries to null.
ARRAY_MAX Returns the maximum value of an array expression.
ARRAY_MIN Returns the minimum value of an array expression.
ARRAY_PROD Returns the product of the values of an array expression.
ARRAY_SIZE Returns the size of an array dimension.
ARRAY_SUM Returns the summation of the values of an array expression.

Conversion Functions

Function Description
ENUM_SIZE Returns the size of an enumeration
ENUM_TO_INT Returns the integer value of the enumeration
ENUM_TO_TEXT Returns the text value of the enumeration
INT_TO_ENUM Converts an integer into the specified enumeration type
NUM_TO_TEXT Converts the value of a numeric variable to a text string.
TEXT_TO_ENUM Converts a text string into the corresponding enumeration
TEXT_TO_NUM Returns the value of a text string variable to a number.

Dynamic Functions

Function Description
BUY_ASSET Specifies a purchase of assets.
Not available in an extended formula definition but is available in a t-dependent extended definition.
CURRENT_START_MONTH Returns the Start Month for the current dynamic loop
CURRENT_START_YEAR Returns the Start Year for the current dynamic loop
FIRST_CALC Returns 1 if called in the first dynamic loop, otherwise 0 (if Loop at Start is selected in the Run Setting this function only returns 1 in the loop at start)
SELL_ASSET Specifies a sale of assets
Not available in an extended formula definition but is available in a t-dependent extended definition.
PROP_BUY_ASSET Instructs the system to buy a specified amount of assets at the start of the next dynamic loop.
Not available in an extended formula definition but is available in a t-dependent extended definition.

Error / Warning Functions

Function Description
ERROR Displays text in the runlog and terminates the calculation of that model point. It will also cause the product to be terminated if the error limit has then been exceeded.
WARNING Displays text in the runlog. The calculation of that model point continues with a value of zero being returned by the function.

Financial Functions

Function Description
BEM Returns the break-even month. That is, the first value of t for which a variable has a positive value
BLACK_SCH Returns a Black-Scholes value for use in valuing options and other derivatives
IRR(X) Returns the internal rate of return for the time dependent variable x(t). The rate of return is expressed as a percentage i.e. 12.0 is returned and not 0.12.
MONINT(X) Annual interest rate x, converted to monthly interest rate, that is monint(x) = (1+x)^(1/12) – 1 Note that x should be expressed as a proportion eg 0.06 rather than 6

Logical Functions

Function Description
MULT(X,N) Returns true if x is a multiple of n, else false. n must be an integer such as 12; it cannot be a variable name.

Mathematical Functions

Function Description
ABS Take the absolute value
DIV(X,Y) Integer value of x/y
EXP(X) Exponential value
FRACT(X) Take the fractional part
GAUSS_JORDAN_SOLVE This function is used to solve a linear equation using Gauss Jordan elimination
GROUP_AFTER(X) Returns zero but forces the variable whose formula uses the function to be calculated in a later group than the variable specified in the argument.
INT(X) Take the integer part
INTERP(X(T),N) Interpolated value of x(t) using steps of n
Not available in an extended formula definition.
LN(X) Natural logarithm
LOG(X) Base 10 logarithm
MAX(X1,X2,…,XN) Maximum value of x1, x2, …, xn
(there must be at least two arguments).
MAXT Returns the maximum value of a variable for a specified range of values of t.
Not available in an extended formula definition.
MIN(X1,X2,…,XN) Minimum value of x1, x2, …, xn
(there must be at least two arguments)
MINT Returns the minimum value of a variable for a specified range of values of t.
Not available in an extended formula definition.
MOD(X,Y) Remainder of x/y
NO_CALC System variable which prevents any calculation being carried out and hence retains the existing value
PROD(T1,T2,X()) Product of x from t1 to t2
For example, x(t1) * x(t1+1) * … * x(t2).
Not available in an extended formula definition.
ROUND(X) Rounding to nearest integer
ROUND_DOWN
(X,N)
Round down to n decimal places
ROUND_NEAR(X,N) Round to nearest n decimal places
ROUND_UP(X,N) Round up to n decimal places
SUM(T1,T2,X) Sum of x from t1 to t2
SUM(T1,T2,X()) For example, x(t1) + x(t1+1) + … + x(t2).
Not available in an extended formula definition.

Product Functions

Function Description
IMD_PRODUCT Is a system variable that returns 1 if the product is using in memory dynamic calculations, otherwise 0
IMS_PRODUCT Is a system variable that returns 1 if the product is using in memory stochastic calculations, otherwise 0
SEP_CALC_ARRAY Is a system variable that returns 1 if the product is using a separate calculation array for each model point, otherwise 0
STRONG_T_LIMIT Is a system variable that returns 1 if the product is using strong t-limiting, otherwise 0

Read Functions

Function Description
MORT_MAX_AGE Returns the maximum age for which values exist in the specified mortality table
MORT_MIN_AGE Returns the minimum age for which values exist in the specified mortality table
MORT_RATE Reads a single value from a specified mortality table for a specified year and duration
MORT_SELECT_PERIOD Returns the select period for the specified mortality table
PROJ_RESULT Returns a value from a Prophet projection or a new business profile results file
READ_AIDS_TABLE Returns a value from an AIDS table.
Not available in an extended formula definition.
READ_GENERIC_TABLE Returns a value from a generic table.
READ_GENERIC_TABLE_TEXT Returns a text value from a generic table.
READ_GLOBAL Returns a value from a global file.
READ_GLOBAL_TEXT Returns a text value from a global file.
READ_MODEL_POINT Returns a value from a variable in a model point file.
READ_MODEL_POINT_TEXT Returns a text value from a variable in a model point file.
READ_MORT_TABLE Returns a value from a mortality table.
Not available in an extended formula definition.
READ_PARAMETER Returns a value from a parameter file.
READ_PARAMETER_TEXT Returns a text value from a parameter file.
READ_PREVIOUS_DYN_LOOP Returns a value from the previous dynamic loop and stores a value to be returned in the next dynamic loop.
Not available in an extended formula definition.
READ_RESULTS Returns a value from a projection or new business profile results file.
Not available in an extended formula definition.
READ_TABLE_NAME Returns a string containing the name of a table located in the Table of Tables using the product and run number implicitly and the value of a variable set in the code.
READ_TABLE_ROW Returns a value from a specific row of a generic table.
READ_TABLE_ROW_TEXT Returns a text value from a specific row of a generic table.
READ_YEAR_DEP_MORT_TABLE Returns a value from a year dependent mortality table.
Not available in an extended formula definition.
READ_YEAR_INDEX_TABLE Returns a value from a year index table.
Not available in an extended formula definition.
STOCH_RESULT Returns a value from a Prophet stochastic results file
TABLE_COLUMNS Returns the number of columns of data in a table.
TABLE_ROWS Returns the number of rows of data in a table.
YD_MORT_MAX_AGE Returns the maximum age for which values exist in the specified year dependent mortality table
YD_MORT_MAX_YEAR Returns the maximum year for which values exist in the specified year dependent mortality table
YD_MORT_MIN_AGE Returns the minimum age for which values exist in the specified year dependent mortality table
YD_MORT_MIN_YEAR Returns the minimum year for which values exist in the specified year dependent mortality table
YD_MORT_RATE Reads a single value from a specified mortality table for a specified age and year

Run Setting Functions

Function Description
COM_YEAR_END Returns company year end month.
DYN_LOOPING_PERIOD Returns the dynamic projection period specified in the Run Setting
DYN_PROJ_PERIOD Returns the dynamic projection period specified in the Run Setting. This function has been renamed from DYN_LOOPING_PERIOD. Both functions are identical in use.
DYNAMIC_PERIOD(n) Returns dynamic period for level number n
DYNAMIC_RUN Returns 1 if Dynamic Run selected, otherwise 0
FUT_ACCUM_Y Returns the Future Accumulation Period in Years
LAST_SPCODE_FOR_EXISTING_BUS Returns the Last Sub-Product Code number to be treated as Existing Business
LAST_SPCODE_FOR_NB_BASED_ON_SALES Returns the last Sub-Product Code number to be treated as New Business based on Sales Volumes
LOOP_AT_END Returns 1 if Loop at End selected, otherwise 0
LOOP_AT_START Returns 1 if Loop at Start selected, otherwise 0
NEW_BUS_IN_ACCUMS Returns 1 if New Business in Initial Accumulations selected, otherwise 0
NEW_BUSINESS_METHOD Returns 0 if New Business Method is None
Returns 1 if New Business Method is Cross Multiplication
Returns 2 if New Business Method is New Business in Model Point File
Returns 3 if New Business Method is Project
PAST_ACCUM_Y Returns the Past Accumulation Period in Years
RESULTS_LOCATION Returns the locations of external results
RESULTS_RETENTION_Y Returns the number of years for which results will be retained for the current product
RUN_IDENT Returns the Run Identifier Number
SET_DYNAMIC_PERIOD(m,n) Changes the dynamic period to m for level number n with effect from the next year
SET_DYNAMIC_PROJ_PERIOD(y) Changes the dynamic projection period to y with effect from the next year
START_MONTH Returns the month of the Start Date
START_YEAR Returns the year of the Start Date
VALN_DAY Returns the day of the Start Date
VALN_MONTH Returns the month of the Start Date
VALN_YEAR Returns the year of the Start Date

Run Position Functions

Function Description
CALC_LOOP Returns the number of the current calculation loop
CURR_DYN_START_T Returns the first month of the current dynamic loop
FIRST_MODEL_POINT Returns 1 if the first model point in the model point file is being processed. Otherwise, returns 0.
ITERATION Returns the current goal seeking iteration number
IN_FIRST_MAIN_LOOP Returns 1 if called in first main loop, otherwise 0
IN_LAST_MAIN_LOOP Returns 1 if called in last main loop, otherwise 0
IN_LOOP_AT_START Returns 1 if called in loop at start, otherwise 0
IN_LOOP_AT_END Returns 1 if called in loop at end, otherwise 0
INCLUDING_NEW_BUS_IN_ACCUMS Returns 1 if new business is currently being included in accumulations, otherwise 0
LAST_MODEL_POINT Returns 1 if the last model point in the model point file is being processed. Otherwise, returns 0
LEVEL_NUMBER Returns the level number for the current product
MOD_POINT_NO Returns the current model point number
REPEAT_COUNT Returns the number of times a level has been completed
RUN_NUMBER Returns the current run number
SIMULATION Returns the current stochastic simulation number
SPCODE Returns the current sub-product code

Run Progress Functions

Function Description
IGNORE_MODEL_POINT Ignores the current model point
IN_MEMORY_START_T Sets the first time period for recalculation using in-memory dynamic processing
REPEAT_LEVEL Repeats from a specified level number
TERMINATE Terminates the Prophet run

Run Progress Functions

Function Description
CTE_CALC Returns the Conditional Tail Expectation (CTE) as a number that represents the average of outcomes that exceed a specified percentile
CTE is also known as Tail Value-at-Risk (TailVar) or Expected Shortfall
CUMULATIVE_NORMAL Returns the standard cumulative normal function of the argument
CUMULATIVE_BIVARIATE_NORMAL Returns the cumulative bivariate normal function for the argument
INV_CUMULATIVE_NORMAL Returns the inverse cumulative normal function of the argument
LEGENDRE_P Returns a polynomial Pn(x) of the first kind
RAND_LOGNORMAL Returns a random sample from a lognormal distribution generated by the parameters supplied
RAND_BETA Returns a random value from a beta distribution with the specified shape parameters
RAND_NORMAL Returns a random sample from a normal distribution generated by the parameters supplied
RAND_NUMBER Returns a random sample or moment from the distribution requested using the parameters supplied
RAND_POISSON Returns a random sample from a Poisson distribution generated by the parameters supplied
RAND_SAMPLE Returns a value from the sample distribution in the specified file
RAND_UNIFORM Returns a random sample from a uniform distribution generated by the parameters supplied

Text Functions

Function Description
CPU_ARCHITECTURE Returns a string that describes the CPU architecture (Intel32 or Intel64) used by a worker machine
FIND_FORWARD Returns an integer that specifies the position of the first occurrence of a text string when searching from the left side of another text string
FIND_REVERSE Returns an integer that specifies the position of the first occurrence of a text string when searching from the right side of another text string
JUST_VAR_NAME Returns the name of the variable without any array dimensions
LEFT Returns a text string containing a specified number of characters from the left side of a string
LENGTH Returns the length of a text string as an integer
LIBRARY Returns the current library name
NUM_TO_TEXT Converts the value of a numeric variable to a text string
PROD_NAME Returns the current product name
RIGHT Returns the right most characters from a text string starting at a specified number of characters from the left
SAME_AS_PROD_NAME For a same as product. Returns the name of the actual product for which the current is the same as
SUBSTR Returns a substring of a string
TEXT_TO_NUM Returns the value of a text string variable to a number
VAR_NAME Returns the current variable name
WORKSPACE Returns the current workspace path

Text Functions

Function Description
ACOS Returns the arccosine of the argument
ACOSH Returns the hyperbolic arccosine of the argument
ASIN Returns the arcsine of the argument
ASINH RReturns the hyperbolic arcsine of the argument
ATAN Returns the arctangent of the argument
ATAN2 Returns the arctangent of the argument1/argument2
ATANH Returns the hyperbolic arctangent of the argument
COS Returns the cosine of the argument
COSH Returns the hyperbolic cosine of the argument
PI Returns the value of pi, 3.1472…
SIN Returns the sine of the argument
SINH Returns the hyperbolic sine of the argument
TAN Returns the tangent of the argument
TANH Returns the hyperbolic tangent of the argument

Functions not Supported in Extended Formulas

BUY_ASSET
INTERP
MAXT
MINT
PROD
READ_AIDS_TABLE
READ_MORTALITY_TABLE
READ_PREVIOUS_DYN_LOOP
READ_RESULTS
READ_RESULTS_LEGACY
READ_RESULTS_TEXT_LEGACY
READ_YEAR_DEP_MORT_TABLE
READ_YEAR_INDEX_TABLE
SELL_ASSET
SUM

System Variables

Prophet has a number of system variables that can be used in both the standard Prophet language and the Extended Formula language.