Wednesday, March 19, 2025
Fire Your Auditors with Xval


Do you spend ∞ (infinity) hours building Excel tools to replicate your actuarial models?
I did too. That's why I built Xval. Xval is an actuarial modeling system that can mirror all actuarial calculations in Excel. In this post, I will discuss how it works.
You can find a 2 minute video demo of the Excel audit feature on our YouTube channel.
Xact
Xval is powered by a domain specific programming language called xact. We invented xact (despite numerous objections from my cofounder Daniel) because we needed a way to clearly represent calculation logic to our users while also delivering Xval's advanced features, including really fast calculations and automatic creation of Excel audit files with formulas populated (which we are now discussing).
Xact works by defining tables and connecting them together. For example:
xact Loading...
This script creates a table called seriatim_list which loops through each policy in the extract. The table also calls the policy_projection vtable. A vtable is computed for each row of the table that calls it. So we compute one policy_projection for each policy in extract. seriatim_list can formulaically refer to the policy_projection computed for each row.
We will discuss xact in much more detail in a separate post, but the basic gist of it is that you write your mathematical formulas in tables, the tables can refer to each other, and all the formulas you write have an equivalent representation in Excel that we use to populate audit files.
Auditing
Alright so how do we get the Excel audit file with formulas populated?
Spend 3 months building an Excel replicating tool only to
have it irreparably break after the first model change. Also, by the way, it only gets close to the model ~60%
of the time. Now that we have Xval, it's really easy.
We are going to run the following extract:
POLICY_NUMBER | BENEFIT_AMT | VALUATION_DATE |
---|---|---|
POL001 | 100 | 2023-12-31 |
POL002 | 250 | 2023-12-31 |
POL003 | 500 | 2023-12-31 |
POL004 | 150 | 2023-12-31 |
POL005 | 300 | 2023-12-31 |
If we run this in the compute engine, we get the following seriatim_list (extremely quickly):
policy_number | total_decremented_benefits |
---|---|
POL001 | 50050 |
POL002 | 125125 |
POL003 | 250250 |
POL004 | 75075 |
POL005 | 150150 |
We can replicate the computations perfectly in Excel for the first policy by simply selecting the policy.
Then we start the audit and get back this spreadsheet perfectly replicating the calculations.
Next Steps
And it's that simple! By design, all Xval calculations can be fully replicated in Excel. So whenever anyone asks you what's going on in your model, just create an Excel file with formulas populated and send it to them. Easy!
You can try Xval for yourself at demo.xval.io. If you want to reach out to learn more, you can find me on Linkedin or email me a timothy dot quast @xval.io.