Pricing Expressions
Risks in ClariNet LS
Risks and stresses in ClariNet LS have historically been expressed using a “Multiplier” and an “Addition”. For example, setting the LE 50 Multiplier in a Risk Scenario to 1.2 would apply a 20% increase to all Insureds' LE 50 when running a Valuation with this Risk Scenario. This simple model will continue to be supported in addition to a new model: expression.
Expressions allow a much more powerful approach to specifying risks. They can be used for LE 50, Mortality Factor, Crediting Rate and COI Rate risks on a Risk Scenario as well as specifying Q(x) Adjustments.
Expression syntax
An expression is a definition of operations on the unstressed input, called x.
Any Multiplier (m) and Addition (a) based risk can be expressed as an expression of the form m * x + a
. For example, a Multiplier of 1.2 and an Addition of 2 could be expressed as an expression: 1.2 * x + 2
.
(x + a) * m
.And for Risk Scenario - MF with a Multiplier of 1.2 and an Addition of 2 could be expressed as an expression: 1.2 * x + 0.02
.The Insured Mortality Factor Addition should be in decimal form.
However, the power of expressions is that other operations are supported. For example, applying a maximum value in a Q(x) Adjustment using the built-in min
function:
min(200, x)
Built-in min
function returns the smaller of the two values which means that the value cannot be larger than 200. So 200 is in fact a maximum value.
The expressions are not case sensitive so min
is equivalent to MIN
.
Expressions can be nested, for example varying a Q(x) Adjustment by mortality factor:
IIF(mortalityFactor > 1, IIF(mortalityFactor > 2, x * 0.7, x * 0.8), x * 0.9)
In words, this means that when Mortality Factor is:
- between 0% and 100%, Qx is reduced to 90% of its original value
- between 100% to 200%, Qx is reduced to 80% of its original value
- greater than 200%, Qx is reduced to 70% of its original value
Supported operations
Symbol | Summary | Example |
---|---|---|
+ | Addition | x + 1 Adds 1 to x |
- | Subtraction | x - 1 Subtracts 1 from x |
* | Multiplication | x * 3 Multiplies x by 3 |
/ | Division | x / 3 Divides x by 3 |
== | Equality | x == 1 Evaluates to true when x is equal to 1. Otherwise, evaluates to false |
!= | Not equal | x != 1 Evaluates to true when x is not equal to 1. Otherwise, evaluates to false |
< | Less than | x < 1 Evaluates to true when x is less than 1. Otherwise, evaluates to false |
<= | Less than or equal | x <= 1 Evaluates to true when x is less than or equal to 1. Otherwise, evaluates to false |
> | Greater than | x > 1 Evaluates to true when x is greater than 1. Otherwise, evaluates to false |
>= | Greater than or equal | x >= 1 Evaluates to true when x is greater than or equal to 1. Otherwise, evaluates to false |
Built-in functions
Function name | Description | Example |
---|---|---|
IIF | Returns one of two expressions, depending on the result of the test. | IIF(x < 2, 10, 0) Returns 10 when x is less than 2. Otherwise, returns 0. |
MAX | Returns the larger of two values | MAX(x, 10) Returns 10 when x is less than 10. Otherwise, returns x |
MIN | Returns the lower of two values | MIN(x, 10) Returns x when x is less than 10. Otherwise, returns10 |
Additional context available
Location | Definition of x | Additional variables |
---|---|---|
Risk Scenario - LE 50 | The Insured LE 50, expressed in months | None |
Risk Scenario - MF | The Insured Mortality Factor in decimal form . E.g. 1 for 100%, 1.5 for 150% | None |
Risk Scenario - Crediting Rate | The crediting rate in decimal form . E.g. 0.05 for 5% | None |
Risk Scenario - COI Rate | The COI Rate | None |
Q(x) Adjustment | The improved mqx. I.e. Qx * mortality_factor * improvement_factor This will always be capped at 1,000 | mf - The mortality factor in decimal form.mortality - The mortality factor in decimal form.mortalityfactor - The mortality factor in decimal form. |