在设计产品模型的具体功能实现时,我们梳理各个功能下对产品特征、生存模型、现金流结构、输出变量等要求,提炼出公共特征,作为底层核心计算代码(见图5.1.3)。在新功能扩展时,只需开发该功能的个性化输入与结果输出,而不需对基础功能重复开发。在此功能结构下,模型将具备良好的前瞻性,为偿付能力二代的资产模型评估、资产负债管理的提升、资产份额法定价、经济资本的评估、IFRS 4的实施等功能的扩展预留了充分的接口。
图5.1.3 产品模型功能实现结构示意
在模型整体框架设计确定后,需结合产品分类及功能需求对代码结构进行优化设计,一方面需要满足各项功能的实现,便于在一个模型上开展各项精算分析工作;另一方面要尽可能减少冗余代码,提高模型效率。
在精算评估中,我们往往需要基于相同的现金流计算逻辑,在不同的假设情景下计算不同的项目。针对此类功能的代码实现,精算模型有3种方案可以选择。以会计准备金建模方法为例,我们对比分析3种方案的优缺点。对于长期保险合同来说,会计准备金包括合理估计负债、风险边际和剩余边际,3项准备金的计算均以现金流预测为基础,但所用假设或预测起点有所不同。
1.方案一:利用同一套代码循环计算
对保单衰减和现金流预测相关的变量进行重复(循环)计算,每次计算采用不同的假设,并且在前续循环中基于预测的现金流计算出准备金因子,传递至后续循环中。比如,在第一个循环中采用含不利偏差并锁定的假设计算剩余边际,在第二个循环中采用含不利偏差的当前假设计算净现金流贴现值,在第3个循环中采用合理估计假设计算合理估计负债,在第四个循环中采用预测假设进行利润预测。其中前3个循环基于现金流预测可计算出剩余边际因子、含不利偏差假设的净现金流现值因子和合理估计负债因子,并且将这些因子的值传递至最后一个循环,与最后一个循环中计算的保单数或保单份数相乘,即可计算出评估时点的合理估计负债、风险边际和剩余边际及相应的将来预测值。
同一套代码循环计算的实现方式在不同的精算软件中各不相同。有些精算软件具备同一运行任务对同一套变量循环计算的功能,有些精算软件采用自动复制同一套代码建立子模型进行多次计算,有些精算软件则采用同一套代码通过运行任务设定自动生成结果因子支持后续评估运行任务的方式。
2.方案二:利用数组变量
在该方案下,需新建一系列数组变量进行不同假设下保单衰减和现金流的预测。这些数组变量的每个数组元素用于计算一套特定假设下的保单衰减及现金流。例如,对于保单数变量NUM_POLS_IF,需新增数组变量NUM_POLS_IF_ARRAY:
①NUM_POLS_IF_ARRAY[1]为含不利偏差并锁定的假设下的预测有效保单数;(www.xing528.com)
②NUM_POLS_IF_ARRAY[2]为含不利偏差当前假设下的预测有效保单数;
③NUM_POLS_IF_ARRAY[3]为当前合理估计负债评估假设下的预测有效保单数。
3.方案三:为不同的评估目的/评估假设新建不同的计算变量
该方案下需要为剩余边际、风险边际和合理估计负债的计算新建3套额外的保单衰减和现金流预测的变量,3套变量的计算逻辑类似,变量名中除了用前缀或后缀区分不同计算目的外,其他部分应保持一致。
3套方案的优缺点对比如表5.1.1所示。
表5.1.1 3套功能实现方案的对比
续表
综上所述,我们建议采用方案一进行此类功能的开发。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。