Most actuaries are experts in Excel and love the tool. Actuarial model one of the most common usages of the software, since it makes it a breeze to build complex mathematical models and test them under various conditions.
In this article, I will walk you through building a simple actuarial rating model for homeowners’ insurance. I will implement the rating algorithm described in Basic Ratemaking.
Use Defined Names in your Actuarial Models
Always use Defined Names in your actuarial model: name all your inputs, outputs, and data tables. Come up with a consistent naming convention, since this will make it easier to maintain your models going forward. Make sure your naming convention is sufficiently distinct.
Here is my preferred name convention:
- User Inputs:
- Convention: i_Name
- All user input names are prefixed with i_.
- Calculated Outputs:
- Convention: o_Name
- All outputs of the model are prefixed with o_.
- These are typically formula-driven cells.
- I typically exclude intermediate formulas from this definition.
- Convention: t_Name
- All tables used in calculations start with t_.
- These are typically the lookup tables used in the model they are periodically updated by the actuaries.
- Convention: l_Name
- All lists used for dropdowns start with l_.
- These are the lists that drive the input selections in the user interface. For example, the list of deductibles falls under this category.
The image below shows the names used in this sample actuarial model.
Combine all data tables into segregated worksheet(s) in your actuarial model. These are typically the tables containing various factors that are commonly updated by actuaries. They are used in lookup formulas to retrieve matching factors or rates, based on the user’s selections from the user interface page.
Also, make sure to separate tables by categories. In the homeowner’s rater, I separated these by Rate Relativity, Credits, and Additional Optional Coverages. Of course, you may have different categories depending on your model, but I suggest defining a color-coded categorization, as it will make future maintenance easier.
Always separate tables horizontally across your worksheet. Do not put tables below one another, as this will make it harder to maintain.
Typically, data tables can also drive options for some of the inputs in the user interface. For example, the options available in the Deductible input are driven by the first column in the Deductibles table. So, it is important to define those names (l_Name) directly in this table. As the table is updated, the list options will automatically be updated in the user interface.
The next step is to design the user interface. It is important to decouple the user interface from the rest of the actuarial model.
Likewise, it is also important to validate your inputs. All list-driven inputs should be created using the List type validation in Excel, which will turn these fields into dropdowns.
You can also set the minimum and maximum value limitations to your other inputs. In this case, the Amount of Insurance input is being restricted to a specific range.
The calculated results that will be displayed to the end user should also be referenced in the User Interface worksheet. In this example, the Premium is the only output that is meant to be in the user interface.
It is important to note that all inputs and outputs should be named as described above.
I recommend separating your formulas from the User Interface and Data Table sections. Depending on the complexity of your algorithm, it may be a good idea to have multiple calculation worksheets. In this actuarial model, we can easily combine all formulas into a single worksheet named Calculations.
Most of the formulas are simple VLOOKUPs, which will find the corresponding factor from a Data Table worksheet based on a given user input. For example, the VLOOKUP(i_Deductible,t_Deductible,2,FALSE) formula pulls the rate relativity from table t_Deductible for the input i_Deductible.
Some of the lookup formulas can be more complex, such as Discount rates. These not only use a VLOOKUP formula to pull the rate from the table but also apply that rate only if the user qualifies for it. The formula IF(i_DiscountNewHome,VLOOKUP(A8,t_Credits,2,FALSE),0) takes care of the lookup and the IF condition in the same cell.
The most complex formula in this actuarial model is used to calculate the AOI rate relativity. The data table only goes up to $500,000. Beyond that, the rule is such that any additional $15,000 value adds a factor of 0.03. So, the second part of the IF statement calculates the rate relativity if AOI is larger than $500,000:
Finally, the Premium is calculated by multiplying the base rate of $500 by all of the rate relativity factors using the PRODUCT formula: PRODUCT(B2:B7). This is subsequently multiplied by the applicable discount rates using formula (1-B8-B9)*(1-B10). Finally, the optional coverage fees are added, along with the policy fee of $50, via formula B11+B12+B13.
I also published this workbook as a web application using SpreadsheetWeb.
See the video below to learn more about how to convert an Excel actuarial model into a web application with SpreadsheetWeb.