Ported from the open-source IFRS 17 Calculation Engine — ifrs17-template/OverviewIFRS17Template.ipynb and ifrs17-template/InputFormatDescription.ipynb — originally written for Systemorph Cloud.

Input data

The open-source engine ships with a template: a complete example of input data that runs through the engine and produces IFRS 17 results. Users adapt it by replacing the inputs with their own. On Systemorph Cloud the inputs are CSV files; the template's initialization notebooks import them into a database or into memory.

How inputs reach the MeshWeaver port. There are no input files and no initialization step. Every input is a node of one of the module's NodeTypes: dimensions are nodes under Ifrs17/<Dimension>/, a group's cash flows are RawVariable nodes, and so on. The engine reads them with mesh queries (Ifrs17/Engine/Source/Ifrs17DataSource.cs). The dimensions ship with the module; the demo book of the Reinsurance suite is generated into ReinsuranceDemo/Ifrs17/ (see The IFRS 17 formulas for where its data come from).

The inputs fall into four groups. Each group lists the original's files, then the port's types.

Reporting nodes and dimensions

Groups of contracts

Parameters from financial markets

Transactional data

These come per reporting node, year and month. An analysis of change needs the data of two dates — the opening and the closing of the period.

Nominal cash flows

The projected cash flows of every group in use, by amount type, AoC type, novelty and the other attributes, as a regular sequence of amounts extending as far as needed.

In the original a cash-flow file has a Main section — reporting node, year, month and scenario, which together name the partition the data belong to — and a Cashflow section with one row per cash flow:

Column Meaning
DataNode the group of contracts, by system name
AmountType by system name
EstimateType by system name
AocType by system name
Novelty by system name
AccidentYear for groups with liability type LIC
Values0, Values1, … the cash flow; Values0 is January of the year in the Main section

The valid combinations of AoC type and novelty are the AocConfiguration rows with data type Optional or Mandatory.

Port: one RawVariable node per row, with the same identity columns (DataNode, AocType, Novelty, EstimateType, AmountType, AccidentYear) and the monthly array in Values.

The original also accepts discounted rather than nominal cash flows. The port has no import format for them: its formats are Cashflow, Actual, Opening and SimpleValue (ImportFormats.cs), and a non-cash-flow run reads stored IfrsVariable values back instead of computing them (ComputePresentValueWithIfrsVariable).

Actuals

The actual amounts of every group in use, by amount type, AoC type and the other attributes. In the original an actuals file has a Main section (reporting node, year, month) and an Actual section with DataNode, AocType, AmountType, EstimateType and, for LIC groups, AccidentYear, plus the amount.

Port: the import format Actual exists (Ifrs17/Engine/Source/ImportFormats.cs), but no scope computes from actuals. See Actuals and deferrals.

Openings

The values at the opening of an analysis, for the groups that need them, by estimate type and amount type. Only one file is needed, dated at the beginning of the period. Its Opening section has DataNode, AmountType, EstimateType and, for LIC groups, AccidentYear.

Port: opening values are read back as IfrsVariable — the in-force opening of the technical margin, for example, is the stored CSM and loss component (TechnicalMarginForOpeningBalance in Ifrs17/Engine/Source/TechnicalMargin.cs).

Dropped from the original