Prophet Professional is the desktop platform. It is an integrated suite of actuarial system used primarily by insurance companies to perform actuarial calculations including profit testing, projections, statutory valuations, asset liability modeling, stochastic modeling and risk management.
Year | Key Features |
2021 | Prophet Professional 2021 Q2
|
2020 | Prophet Professional 2020 Q2
|
2019 | Prophet Professional 2019 Q2
Note: From this release we no longer support 32-bit compilation of Prophet code and calculations need to be performed using the 64-bit runtime architecture. Infrastructure that only supports 32-bit will not be able to be used with Prophet Release 2019 Q2. |
2018 | Prophet Professional 2018 Q3
|
2017 | Prophet Professional 9.0.4
DCS 9.0.4
|
2016 | Prophet Professional 9.0.3
DCS 9.0.3
|
Prophet Professional 9.0.2
DCS 9.0.2
|
|
2015 | Prophet Professional 9.0.1
DCS 9.0.1
|
Prophet Professional 9.0
DCS 9.0
|
|
2014 | Prophet Professional 8.2.3
DCS 8.2.3
|
Prophet Professional 8.2.2
DCS 8.2.2
|
|
2013 | Prophet Professional 8.2.1
|
Prophet Professional 8.2
DCS 8.2
|
|
2012 | Prophet Professional 8.1.1
|
Prophet Professional 8.1
DCS 8.1
|
|
2011 | Prophet Professional 8.0.2
|
2010 | Prophet Professional 8.0.1
|
Prophet Professional 8.0
|
|
Before 2010 | Prophet Professional 7.3 |
Release | Enhancement | Addressed Issue |
2020 Q2 | Flexible Results Aggregation results With Release 2020 Q2 Service Pack 3, for Flexible Results users we have introduced aggregation results as a new results type. For those with a valid licence, aggregation results enable you to generate projection results aggregated by a model point variable of your choosing, called the aggregation variable. Aggregation projection results can be created for up to two aggregation variables per product in addition to the existing sub-product aggregation functionality in standard projection results. With the effective date of IFRS 17 and US GAAP LDTI approaching, aggregation results have been designed to help companies report across different groups of insurance contracts. They provide a simplified method of summing values across multiple model points in a contract group by reducing code and can result in faster runtimes. To facilitate this new results type, a new Aggregation Results Definition workspace object has been created. This workspace object, which you later include in the Results section of the run setting, is where you define the variable that your new results type will be indexed by (the aggregation variable), the products for which the results should be generated and the variables that you will get in your aggregation results output. The aggregation variable can be a number or text data type, making it more versatile than the SPCODE grouping for standard projection results. The new results definition can also be created, edited and added to your run via the API. Aggregation results can be viewed directly in Prophet Professional, Results Diagram View, Results Viewer and with Excel Reporting through a new AGG_PROJ_RESULT function. As well as the Excel Reporting function, a Prophet runtime function by the same name is available to read aggregation results from another run. For this first release, aggregation results are not supported for stochastic and dynamic processing. They will also only be produced in conjunction with the New Business in Model Point File new business method. Individual policy results The specification of these results adopts a similar approach to aggregation results, via a workspace object which can then be referenced by multiple run settings. Individual policy results can also be set up via the API, read via the POLICY_RESULT Excel Reporting function and viewed directly in Prophet Professional, Results Diagram View and Results Viewer. Flexible Results API The Insurance Data Repository (IDR) now uses FR API as an alternative data source with minimal changes to any existing jobs that were using PRD as a data source. This can reduce the time taken to load results data from the filesystem into IDR, as well as reducing storage needs. Calculation engine enhancements
User Interface enhancements
Enhancements to comparison
Enhancements to viewing results
Enhancement to backup and restore
Prophet Professional Application Programming Interface (API)
Licensing
|
Prophet Professional 2020 Q2 Service Pack 3
Note: It is recommended that users apply this update if they are using PMPP. Prophet Professional 2020 Q2
Calculation engine
Performance
Prophet Debugger
Excel Reporting
Prophet Results Database
Licensing
Plugins
|
2018 Q3 | Licensing Prophet Release 2018 Q3 introduces a new licensing technology. The previous licensing solution will not be supported with any release from Prophet Release 2018 Q3 onwards.Pre Release 2018 Q3 Prophet versions will continue to work and will be supported following the standard support lifecycle. However if you require new licence keys for additional users or due to hardware replacement then this will not be possible after December 2020. We therefore advise that all clients upgrade to Prophet Release 2018 Q3 or later well in advance of December 2020 in order to avoid any down time. Please contact your account manager to discuss how we can be of help.Unlike previous versions of Prophet this licensing framework will be written and controlled by FIS. This has some major advantages including simpler client installations and more rapid response to issues. Licences will now be user driven rather than machine. This will help both clients and FIS to implement the solution much more quickly, when new machines are added or replaced in an environment or when a disaster scenario occurs. We will also be able to expand the functionality beyond the restrictions imposed previously. Other advantages include better auditability and tracking of licences and improved support for virtualised environments.The licence options for Prophet Release 2018 Q3 are:
New licences will be allocated as follows. Machine-locked licences will be transferred, one-to-one, into User licences. Floating licences will be transferred, one-to-one, into Group licences. New licences will be pushed out by us to your Client Licence Server (CLS). The CLS synchronises with the FIS Licence Server (FLS). The CLS therefore requires access to the internet and individual machines require access to the CLS. If a disaster event occurs and the CLS is lost then a new CLS simply connects to the FLS where replacement licences are synced. If you require more advice or support regarding the changes to the licence solution please contact FIS Client Services or your local FIS representative. User-Defined Functions The following screenshots show how the new functions are created and how the format of how they are defined. For more details please see the Prophet documentation and help. Nested Structures Additional minor enhancements have also been introduced to model and table maps to help users to identify and fix issues. Backup and Restore Users can more easily control what goes into a backup file and also what to restore. Users are also able to see more information in Prophet about the backup including who created it, when it was created and what version of Prophet was used without having to restore the workspace first. User interface The Modified by field has been added to more Prophet objects so as to improve auditability. |
Calculations
User interface
Modules
Nested Structures
Prophet API
Runlogs
|
9.0.4 | Nested Structures We have introduced the ability to skip structure link processing in subsequent dynamic loops to improve runtimes. For each structure link in your run, you may specify in the run settings a different dynamic period for the structure link after a specified initial projection period. Prophet will then only execute that structure link according to your revised frequency. This is useful if you are more concerned about your short-term projections than those in the long-term.Nested Structures is now compatible with dynamic loop at start/end in the outer run.Table maps can now have six dimensions.Table maps, model point maps and structure links can now be imported from one workspace to another.Model point map variables can now be sorted by clicking on the headers.Searching within a workspace now searches the contents of model point maps and table maps.Modules Module links can now be conditionally executed on the value of a variable specified on the module link form. Provided this variable is time independent and of type number, if its value is 1 the module link will be executed, and will not otherwise. This provides the user with greater flexibility in controlling the calculations executed in their run. In products that contain a large number of model points, conditioning module links could help reduce runtime.If a module link is conditionally executed, an advanced option flag has been added to the module link form to specify whether zero should be returned from an unexecuted module link when referenced at runtime. If this flag is not enabled, Prophet will instead produce an error. The use of conditional module links is, in addition, fully supported with our other software:
In the product tree the modules being used by the product are now shown. In a similar way under an indicator in the tree the associated modules that use that indicator are now shown. Module diagnostic files are now shown more clearly in the tree. Previously it was not clear which files were product and which were module diagnostic files. These have now been separated. We have improved the Module Tag functionality so that users can now search for tags and see which modules are associated to a tag in the tree. This helps users to manage the modules that they have in a workspace. Module links and the variable name are now shown on separate lines with diagram view. This helps to improve the appearance when viewing variables of this type given the likely larger combined length of the two. Compare A further enhancement to the comparison functionality is that following a product compare, input variables can be imported from one product to the other. Calculations The READ_FLEXIBLE_TABLE statement has been updated to support the use of string literals with mapped explicit indices. In Release 9.0 Update 3 the performance statistics provided in the runtime code generation diagnostics file for array variables gave the runtime for each individual array element; this has been updated to provide the sum-total for those array variables optimised out at preparation. User Interface When choosing the array dimension, in the properties of a variable the size of the dimension is now displayed. When performing a find and replace, the changes would be performed one at a time and a validation after each change was then performed. This could make the formula invalid. It is now possible to perform a find and replace across the whole code in one go without performing a validation. Flexible Table conversion can now be performed from outside of the table and without interaction by the user. Prophet printouts can now optionally include the associated actuarial documentation. Individual projection results grids can now be edited and managed from within Excel. Within the grid the user can now also delete multiple rows in one go. Similarly, within model point maps, multiple rows can be highlighted and deleted. Previously, when clearing the Same As checkbox in the product properties, that product would be recreated with the default code from the library with the same indicators. This has been changed so that the new product becomes an exact replica of the original product. If a user wants to create a new product with the same indicators but with the default code then the user will now need to create a new product and add the corresponding indicators. The product link alias and structure link alias screens have been enhanced. Within a product, it is now possible re-hide core variables once they have been unhidden. Diagram View Within Structure Diagram View the boxes will be resized when the names are too big. There is a new option to fix the layout of Diagram View so the layout can be remembered between instances of Diagram View and workspaces. API New commands to be able to amend the structure properties to support skip structure link have been added. Prophet Results Database Improved interconnectivity with Prophet Enterprise:
New field in the RESULTS_INFO table containing the command line used at upload. Changed the data types of various fields in the uploaded tables so that they are more appropriate, robust and consistent. Further enhancements made for new functionality such as modules and individual policy results:
|
Calculations
User Interface
Prophet Results Database
|
9.0.3 | Nested Structures A new text constraint has been introduced to allow more efficient code for reading array variables from the inner product.Nested Structures objects can now be printed from the Prophet User Interface.Nested Structures controls have been added to the Prophet Professional API.Modules Module tags have been introduced as properties on a module. When editing the module link these modules can be chosen to help the user to select which module should be selected.Module results can now be uploaded to the PRD.Diagram View has been enhanced so that users can move easily between product and module diagram view. Modules can now be used with the PMPP run option. Indicators can be restricted to only be used in modules or products.Search results now include module link variables.Modules with Nested Structures Modules can now be used in products that run within an inner or outer structure within the Nested Structure environment.Books Variables that are not in a book can now easily be printed. API In addition to the Nested Structures setting some other properties have been added to the API such as properties from the run setting that were missing. |
User interface We have improved the printing of lists of objects where those objects have long names.An issue where the debugger would not stop on an array inside an extended formula has been fixed.Library validate has been corrected such that an error is given when a referenced variable is renamed or the properties changed.Calculations When a product has no model point file a binary individual model point file was produced when the option was turned on. This file is not able to be opened and causes an issue uploading the results to PRD. The file is no longer produced for products with no model points.A runlog issue where messages were duplicated when using Model Point Batches split method has been fixed.Nested Structures If using Nested Structures then previously the default maximum projection term would not feed through to the inner run setting. This has been corrected.When using a text variable within a DCS grouping Nested Structures run would cause the run to fail. This has been fixed.Various improvements have made to the save point diagram view.Previously inner run settings could be deleted without removing them from structure links. This could then affect upload to Prophet Enterprise. A warning is now given and if accepted the links are removed from relevant structure links. Renaming a Model Point Map was incorrectly not renaming the DCS script. This has been fixed. An issue where Structure Diagram View was not showing the inner structure correctly has been fixed. An issue where Read_Nested_Stat was not working when reading a Same As Product has been fixed. Modules The option ‘First level for stochastic results files’ was not working correctly for module variables. Results for all module variables were produced even if the product was below the level specified. This has been fixed. Filtering the structure in the user interface now correctly applies the filter to modules as well as other objects. |
Prophet Licensing was introduced in Prophet Release 2018 Q3 as a replacement for Prophet Licence Manager. This is because licensing in Prophet Release 2018 Q3 now uses an internally developed solution to manage licences rather than HASP.
Note: When you upgrade your version of Prophet applications to Release 2018 Q3 or later, Prophet Licence Manager is no longer required, so you can uninstall Prophet Licence Manager from the Windows Control Panel. If you do so and you have other non-Prophet applications that use HASP you will have to reinstall HASP after uninstalling Prophet Licence Manager.
The Prophet suite of products are secured using software licences that are located on your Client Licence Server (CLS). The CLS is the hub for all your organisation’s Prophet licences.
The types of software licences that are available are as follows:
- User licenses: Tied to an individual user’s Active Directory account such that only the Prophet user with the email specified on the license can acquire it. This is similar to the previous Machine-locked solution.
- Group licenses: These are licenses that can be used by multiple users (from a defined list) within an Active Directory group, as controlled by their email addresses and selected by the customer. This is similar to the previous Floating license.
- Site licenses: These are licenses that can be obtained by anyone who has access to the client license server that is distributing the license. The technology is safe for virtualized environments.
New licenses will be allocated as follows. Machine-locked licenses will be transferred, one-to-one, into User licenses. Floating licenses will be transferred, one-to-one, into Group licenses.
There are several ways to improve the model efficiency and utilize the functions in Prophet.
- Always provide precise descriptions in the following objects to help others understand the model easily and clearly.
- Table
- Product
- Accumulation
- Variable
- Run number
- SPCODE
- Use “Actuarial Documentation” for model documentation.
- Employ “Same as” if new product features are similar to those of any existing product since “Same as” products do not have separate codes and thus can reduce maintenance efforts.
- If all features are same between two products except of parameters, we can use “same as”.
- If only minor feature is different between two products, we can still employ “same as” products by utilizing “IF PROD_NAME = product_1 THEN *** ELSE ***” statement to differentiate between two products. Or create indicator variable to differentiate. For example, IF DTH_BEN_IND = 1 THEN *** ELSE ***.
- Assumptions tables should be organized easily understood. Most of assumptions can be classified into the following types:
- Expense assumption
- Lapse assumption
- Mortality assumption
- Investment return assumption
The relevant parameters are recommended to be placed in appropriate tables with easily understood names.
- Generic tables: this table format is used when the value or values required for a variable in any of your products depend on the values of between two and ten index variables.
- Global table: contains values for variables that have the same value across all products for any run number. For example, sensitivity factors for expense, lapse, mortality, investment return assumptions, and the renewal expense inflation rate. This type of assumption would not normally vary by product.
- Parameter table: contains values for variables that have the same value across all model points for any product. For example, SURR_INT_PC, VAL_INT_PC, SM_SAR_PC, SM_RES_PC, etc. This type of assumption normally varies from product to product but is the same for every model point within a product.
- Avoid huge assumption tables. The size of assumption table will significantly impact run time. It is suggested to split the table into several small tables if it is too big. For example, a table with more than 5000 rows and 5 index variables.
- Use Excel VBA for table generation. It is suggested to record tables in Excel format. It is easier to trace the assumption changes in Excel. VBA program can help to generate Prophet tables from Excel spreadsheets.
- Avoid reading table if unnecessary. Reading table is time consuming than normal calculation. It is the best practice to avoid reading table if unnecessary. For example:
- UFII_PC, Original Formula Definition
IF t= 0 THEN
0
ELSE
READ_GENERIC_TABLE(“Inv_rate”,”Y”,”PROD_NAME”,MIN(POLICY_YEAR,10)) - A better code following the best practice:
IF t = 0 THEN
0
ELSE IF mult(t-1, 12) AND POLICY_YEAR <= MAX_INVRATE_YR THEN
READ_GENERIC_TABLE(“Inv_rate”,”Y”,”PROD_NAME”,POLICY_YEAR
ELSE
UFII_PC(t-1)
- UFII_PC, Original Formula Definition
- Avoid reading table for factors. It is suggested to calculate reserve factors, surrender value factors in first principle rather than reading from table.
- Avoid referring inappropriate variables. Normally, there are three lines of calculation in liability products.
- Pricing / surrender line: variables of this line are used for premium, surrender value calculation. More variables contain text “SURR”. For examples, SURR_INT_PC, SURR_VAL_PP, Q_SURR_PN, SURR_NETPPREM.
- Reserving line: variables of this line are used for reserve calculation. Most variables contain text “VAL”. For examples, VAL_INT_PC, Q_VAL_PN, VAL_ANN_PREM.
- Best estimate line: variables of this line are used for cash flow, P&L projection. For examples, Q_EXP_PN, DEATH_OUTGO, GROSS_PROFIT.
- Avoid unnecessary complex calculations. For example, premium rate or beta for reserve calculation. The calculation is only needed at time 0. Other time points could just equal to premium rate and beta at time 0.
- Avoid hard coding. All assumptions and parameters should be stored in tables rather than hard coding. Use the table driven parameters rather than hard coding. For examples,
- UFII_PC: Constant Definition. Constant: 5.0. Change to read global table.
- DEATH_BEN_PP: IF PROD_NAME = product_1 THEN *** ELSE ***. Change to IF DTH_BEN_IND = 1 THEN *** ELSE ***. Add variable DTH_BEN_IND as read parameter table.
- Create new variable by duplicating existing. It is safe to create a new variable in libraries by copying an existing one with similar features, rather than creating a new one from the scratch.
- Follow naming convention. For example, we want to create a new variable SB_OUTGO for survival benefit. We can copy DEATH_OUTGO and change its name and property accordingly.
- Set the new variable properties carefully and correctly: Accounting Type: Revenue Account or Balance Sheet, Cumulative or not, Variable Code.
- Use new indicator for new variables. Create a set of company / product specific indicators for new variables and definitions. Keep the standard definition unchanged. For example, create ING_WL for the ING whole life products.
- Try not to use complex functions. Some complex calculation is time consuming. Such as exponential calculation which is powered by t. For example: X(t) = V ^ (t/12) can be changed to Y = V ^ (1/12), X(t) = X(t-1) * Y.
- Always add comments for complex or special code in the customized variable formula. For example, REBASE_MTH:
- Create an array variable for a group of same calculations. Use array variables rather than create a lot of variables for same calculations. For example:
- Run single model point before final run. If there are a large amount of model points, it is a good practice to run the first model point to test the code and table setting before final run.
- Employ Accumulation and Summary products. Under a good model management process, the calculation in model is more systematically controlled than in Excel. Try to reduce the calculations in Excel. It can reduce the mistakes caused by manual work. Accumulation and Summary product are useful to aggregate results. Summary product can be used to do company level adjustment.