Taking too long? Close loading screen.

Extended Formula – Summarizing the Results across Various Dimensions

Background There are times you are interested in summing up the results across various dimensions with specified conditions or indicators to exclude some results from the ARRAY_SUM function. There is an incident that I need to separate medical health UCOI cash flows from total medical UCOI cash flows, because there are different loss ratios for these two types of UCOI cash flows, and separating medical UCOI cash flows into two distinct cash flows help me prepare for the calculation. Steps of Development Specify dimension size for the array Here we create a dimension called EV_UCOI_B in the Workspace Objects. The resulting dimension has a size of 5, and we intend to store medical only cash flows at dimension 1 and medical health cash flows at dimension 5. For EV_UCOI_RES, we have 4 dimensions, and we would like to create a new dimension (5) to separate medical health cash flows from medical cash flows (1). Step 1 Step 2   Make the dimension be assessable to Prophet The dimension size needs to be obtained so that we can refer to it in the extended formula. Step 3 Step 4   Create the extended formula The dimension size needs to be obtained …

Read more

Calculation Looping

What is calculation looping? Calculation looping is a process whereby parts of the calculation are repeated several times. In many ways it is similar to the rebasing facility. However, calculation looping differs from rebasing in the following ways: With calculation looping the parts that are repeated are repeated for the whole of the period of calculation. With rebasing only the projected part of the period of calculation is recalculated in each loop. With calculation looping there is a mechanism to retain some of the values which are calculated in each loop. With rebasing the values which are recalculated in each loop just overwrite the existing values. Where can calculation looping be used? Calculation looping can be used in: calculating the contractual service margin at the point of sales for in-force policies calculating resilience reserves on different interest rates. calculating sterling reserves for regular premium pensions business by: calculating in one loop assuming premiums continue to maturity and calculating in a second loop assuming that premiums cease immediately. Limitations Calculation looping cannot be used inside the rebasing loop. Goal-seeking cannot be used inside of a calculation loop. Variables and Functions The NUM_CLCLOOPS Variable Definition: specifies the number of calculation loops which …

Read more

Goal-Seeking in Prophet

Fundamental Concepts Notes Goal-seeking cannot be used in conjunction with looped modules.  If you wish to goal seek at a product or fund level, you should use the REPEAT_LEVEL function.   Variables used in goal-seeking Variable Description SEED_VAL Seed value for first iteration. PREV_VAL Value for current iteration. NEXT_VAL Value for next iteration. IF_CONVERGED If iteration has converged.   How to name variables SEED_VAL* The SEED_VAL* variables can either be time-dependent or non time-dependent. In most circumstances they will be non time-dependent. PREV_VAL* The PREV_VAL* and NEXT_VAL* variables must always be time-dependent. However, in many circumstances they will be calculated in such a way that they will have the same value for every t. NEXT_VAL* In determining if convergence has been achieved or not Prophet uses the value of IF_CONVERGED at the highest value of t calculated. It should be given a formula definition which returns one of the following values: 0 – Convergence has not been achieved – iteration should continue 1 – Convergence has been achieved 2 – Maximum value has been exceeded – iteration should cease 3 – Minimum value has been exceeded – iteration should cease The goal-seeking will also cease if the maximum number of …

Read more

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

Read more

Prophet – Extended Formulas

Extended formulas enable more complex calculations to be carried out than standard Prophet formulas. They are also able to retain the values that they have calculated from one model point to the next and from one loop to the next in a dynamic or stochastic run. Examples of situations where extended formulas can be useful include: The calculation of commutation factors at the start of each product The processing of policies that have a number of increments or benefits Separate calculations for each tranche of new PUPs, rather than just carrying out the calculations on the aggregate average of all PUPs Rebasing of sterling reserve calculations Scheme level calculations for group pension schemes Dynamic Financial Analysis (DFA) for general insurance companies Any other complex calculations that require looping or vectors Issues Although extended formulas represent a significant extension to the standard Prophet programming language there are a number of issues to be aware of: Diagram view does not display the dependencies between the variables used in an extended formula, although it does show the normal variables which an extended formula uses and the normal variables that depend on an extended formula The values calculated by the variables in an extended …

Read more

Prophet – Programming Language

Overview The Prophet programming language is the programming language used to create and maintain formula definitions for variables in each product and library.  A formula in Prophet can be specified using either: The standard Prophet language features or, The Prophet Extended Formula features. A formula created using the standard Prophet language generates values for one variable only. An extended formula however, can be used by many variables to calculate the values. Standard Language Features The standard Prophet programming language supports many of the features of a standard programming language. In particular it supports: Standard arithmetic operators Arithmetic and Boolean expressions Arithmetic and logical functions If Then Else expressions The programming language is also supplemented by a number of Prophet specific functions that allow Prophet to: Read the contents of tables and files Inspect progress and control the processing of a Prophet run Control the termination of a run and display appropriate error or warning messages. A number of statistical, trigonometric and financial functions are also provided Extended Formula Features In addition to the standard programming language features Prophet extended formulas provide the following: Conditional statements If/Then/Else/EndIf statement, Switch / Case / Case Else / Endswitch Looping statements For/To/Step/Next, Do While/Loop, …

Read more

Prophet – Extended Formula

Purpose Extended formulas enhance and extend the capabilities of the Prophet programming language. They enable more complex calculations to be carried out than standard Prophet formulas. They are also able to retain the values that they have calculated from one model point to the next and from one loop to the next in a dynamic or stochastic run. Examples of situations where extended formulas can be useful include: The calculation of commutation factors at the start of each product.  The values can then be used in each model point instead of the commutation factors being calculated from the underlying mortality rates each time. This also means that in a dynamic run it is often possible to calculate just the variables for the months in the dynamic loop rather than for the whole policy term. The processing of policies that have a number of increments or benefits.  Calculations can be carried out at the increment or benefit level and then be accumulated within an extended formula so that further calculations can be carried out at the policy level. For example, for a unit linked policy the allocations to units and the commission could be carried out at the increment level and …

Read more

Rebasing

Q_A_EXP IF ZERO_MORT = 1 AND AGE_AT_ENTRY < ZERO_TOL_AGE THEN 0 ELSE IF WL_POLICY = 1 AND t

Prophet – Patterns

Definition Types

Definition type Description
Formula A formula expressed in Prophet’s programming language.
Constant A constant value.
Global The value is read from the global file at run time.
Parameter The value is read from a parameter file at run time.
Model point The value for each model point is read from the model point file at run time.
Generic table The value or values are read from a specified generic table at run time.
Mortality table The values are read from a specified mortality table at run time.
Year Dependent Mortality table The values are read from a specified year dependent mortality table at run time.
Year Index table The values are read from a specified year index table at run time.
Time Index Values Constant values for specified months of the calculations.
Extended Formula A formula expressed using the extended formula syntax.
t-Dependent Extended Formula A formula that uses the extended formula syntax to support the timedependent variable t.

Default Indicators

Indicator Description
ALWAYS Brings in variables that are required in every product. For example, the age at entry and policy term variables.
PROJ Used to project business that is already in force and new business. If not selected then these variables are not included and only new business can be projected.
REG_PREM Used if premiums are to be paid regularly (that is the product is not a single premium contract).
ENDOWMENT Used for an endowment type product.
SURR_VALUES Used if a surrender value is payable on early termination of the policy.
OTAX_ON_I_E The tax indicator selected by default for a new Conventional business product. It is used if the tax payable by the office is based on a percentage of investment income and realised chargeable gains less relievable expenses and annuity payments. This is the basis that applies to life business in the UK.
OTAX_ON_PROF The tax indicator selected by default for new International products. It is used if the tax payable is calculated as a percentage of gross profit.
ONE_VALBASIS Used if the same valuation basis is applied to the attaching bonus (if with-profits) and paid-up policies (if specified) as is applied to the basic benefit.
DISC_PROFITS Used if Prophet is needed to calculate the discounted value of future profits. It allows the discounting to be at three different interest rates.

Variable Prefix

Prefix

Description
Q_ Indicates that the variable is a mortality rate variable.
PROP_  
ANN_ Annual
IC_  Indicates that the variable is an initial commission variable.
RC_  Indicates that the variable is a renewal commission variable.
 VAL_ Indicates that the variable is a value variable
OTR  Indicates that the variable is an original term reinsurance variable.

Variable Suffix

Suffix Description
_PC Indicates that the variable takes values entered as a percentage.
_PN Indicates that the variable takes values entered as a proportion.
_SY Indicates that the variable takes values entered as a sensitivive factor.
_M Indicates that the variable takes values entered as months.
_Y Indicates that the variable takes values entered as years.
_IF Indicates that the variable takes values entered for in force business.
_PP Indicates that the variable takes values entered as per policy amounts.
_BASE Indicates that the variable takes values for the base assumptions.