Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 6 additions & 5 deletions full-ifrs17-template/Export/MapTemplate.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -48,16 +48,17 @@
{
"cell_type": "markdown",
"source": [
"Choose to run the Map Template either with the set of Systemorph data in memory or with the data present in the Database. Uncomment the desired option."
"Choose to run the Map Template either with the set of Systemorph data in memory or with the data present in the Database: ",
"\n- #!eval-notebook \"../Database/Configure\" : connects to a physical Database",
"\n- #!eval-notebook \"../Import/CloseImportTemplate\" : uses the in-memory set up",
"\n",
"\nWe use here the in-memory set up."
]
},
{
"cell_type": "code",
"source": [
"/* The DataSource is configured and connected to real database */",
"\n//#!eval-notebook \"../Database/Configure\"",
"\n/* The Systemorph set of dimensions + mockdata (+ those added in the CloseImportTemplate) are dispatched to the unconfigured in-memory DataSource */",
"\n#!eval-notebook \"../Import/CloseImportTemplate\""
"#!eval-notebook \"../Import/CloseImportTemplate\""
]
},
{
Expand Down
18 changes: 17 additions & 1 deletion full-ifrs17-template/Import/CloseImportTemplate.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,13 @@
{
"cell_type": "markdown",
"source": [
"<p style=\"font-weight:bold;\"> <span style=\"font-size: 36px\"> Close Imports Template</span> </p>"
"*Note: before configuring your data please refer to [Map Template](../Export/MapTemplate) Notebook.*"
]
},
{
"cell_type": "markdown",
"source": [
"<p style=\"font-weight:bold;\"> <span style=\"font-size: 36px\"> Close Import Template</span> </p>"
]
},
{
Expand All @@ -40,6 +46,16 @@
"\nThe data source is initialized and the whole IFRS 17 Calculation Engine code is compiled. "
]
},
{
"cell_type": "markdown",
"source": [
"Choose to run the Close Import Template notebook either on top of the set of Systemorph data in memory or on top to the data present in the Database: ",
"\n- #!eval-notebook \"../Database/Configure\" : connects to a physical Database",
"\n- #!eval-notebook \"../Initialization/InitSystemorphToMemory\" : uses the in-memory set up",
"\n",
"\nWe use here the in-memory set up."
]
},
{
"cell_type": "code",
"source": [
Expand Down
8 changes: 6 additions & 2 deletions full-ifrs17-template/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,15 @@ For more information on our IFRS 17 initiative check out our [IFRS 17 page](*lan

For an overview of the **Full IFRS 17 Template** project refer to the [OverviewIFRS17Template](https://portal.systemorph.cloud/project/full-ifrs-17-template/env/v1.0.0/OverviewIFRS17Template)

# Report
# Report

Check out the IFRS 17 reports computed for our mock use-cases [here](https://portal.systemorph.cloud/project/full-ifrs-17-template/env/v1.0.0/Report/Reports).

Check out the our mock data set by exporting excel MapTemplates [here](https://portal.systemorph.cloud/project/full-ifrs-17-template/env/v1.0.0/Export/MapTemplate).
# Export - Import

Check out our mock data set by exporting excel MapTemplates [here](https://portal.systemorph.cloud/project/full-ifrs-17-template/env/v1.0.0/Export/MapTemplate).

Import your custom files using our [CloseImportTemplate](https://portal.systemorph.cloud/project/full-ifrs-17-template/env/v1.0.0/Import/CloseImportTemplate) Notebook.

# Got Questions

Expand Down
22 changes: 14 additions & 8 deletions full-ifrs17-template/Report/Reports.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -27,18 +27,24 @@
{
"cell_type": "markdown",
"source": [
"For demonstration purposes we import here data for 7 *Group of Insurance Contract* (GIC) and 4 *Group of Reinsurance Contract* (GRIC) - the import is triggered in the [Set up data and configuration](#set-up-data-and-configuration).",
"\n<br> The imported data set consists of cashflows, actuals, and parameters for two consecutive periods (Year 2020-Quarter 4 and Year 2021-Quarter 1)",
"\n<br> Input files can be found in the **File** directory. You are invited to change them or upload your own or to add new data in the [CloseImportTemplate](../Import/CloseImportTemplate) notebook. ",
"\n<br> For simplicity, we import the same transactional data for all GICs and GRICs. Each *Group of Contracts* produces different figures due to differences in parameters such as *Liability Type*, *Oci type* or *Premium allocation factor* to Contractual Service Margin.",
"For demonstration purposes we import here data for some *Group of Insurance Contract* (GIC) and *Group of Reinsurance Contract* (GRIC) - the import is triggered in the [Set up data and configuration](#set-up-data-and-configuration).",
"\n<br> The imported data set consists of cashflows, actuals, and parameters.",
"\n<br> Input files can be found in the **File** directory. You are invited to change them or upload your own or add new data in the [CloseImportTemplate](../Import/CloseImportTemplate) notebook. ",
"\n<br> For simplicity, we import similar transactional data for all GICs and GRICs. Each *Group of Contracts* produces different figures due to differences in parameters such as *Liability Type*, *Oci type* or *Premium allocation factor* to Contractual Service Margin.",
"\n",
"\nFollow the instructions below for a guided interaction with the reports."
]
},
{
"cell_type": "markdown",
"source": [
"# Set up data and configuration"
"# Set up data and configuration",
"\n",
"\nChoose to run the Reports notebook either with the set of Systemorph data in memory or with the data present in the Database: ",
"\n- #!eval-notebook \"../Database/Configure\" : connects to a physical Database",
"\n- #!eval-notebook \"../Import/CloseImportTemplate\" : uses the in-memory set up",
"\n",
"\nWe use here the in-memory set up."
]
},
{
Expand Down Expand Up @@ -108,7 +114,7 @@
"\n[Written Actuals](https://portal.systemorph.cloud/project/ifrs17/env/v1.0.0/Report/ReportScopes#written-accrual-deferral) are shown here. ",
"\n",
"\nIn this case, the analysis of change view is replaced with a default slice by the **AmountTypes**. Only the amount type with non zero value are displayed. ",
"\nFilters can be applied to report to isolate a sub-set of the data, by selecting the dimension to filter and the system value desired. For example, to investigate the contribution of a single Group of Contract the following filter can be applied: new [] {(\"GroupOfContract\", \"DT1.1\")}."
"\n<br>Filters can be applied to reports in order to isolate a sub-set of the data. They are specified by the name of the dimension to filter and the system name of the desired value. For example, to investigate the contribution of a single Group of Contract the following filter can be applied: new [] {(\"GroupOfContract\", \"DT1.1\")}."
]
},
{
Expand Down Expand Up @@ -260,7 +266,7 @@
"var actuarialLrcReport = ifrs17Report.ActuarialLrc;",
"\nactuarialLrcReport.ReportingNode = \"CH\";",
"\nactuarialLrcReport.ReportingPeriod = (2021, 3);",
"\nactuarialLrcReport.ColumnSlices = new string[]{};//\"GroupOfContract\", \"AmountType\"",
"\nactuarialLrcReport.ColumnSlices = new string[]{};//\"GroupOfContract\"",
"\nactuarialLrcReport.DataFilter = null; //new [] {(\"GroupOfContract\", \"DT1.1\")};",
"\n(await actuarialLrcReport.ToReportAsync) with {Height = 750}"
]
Expand All @@ -279,7 +285,7 @@
"var lrcReport = ifrs17Report.Lrc;",
"\nlrcReport.ReportingNode = \"CH\";",
"\nlrcReport.ReportingPeriod = (2021, 3);",
"\nlrcReport.ColumnSlices = new string[]{};//\"GroupOfContract\", \"AmountType\"",
"\nlrcReport.ColumnSlices = new string[]{};//\"GroupOfContract\",",
"\nlrcReport.DataFilter = null; //new [] {(\"GroupOfContract\", \"DT1.1\")};",
"\n(await lrcReport.ToReportAsync) with {Height = 250}"
]
Expand Down
1 change: 0 additions & 1 deletion ifrs17/DataModel/DataStructure.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -1627,7 +1627,6 @@
"\n [NotVisible]",
"\n [Dimension(typeof(EconomicBasis))]",
"\n [IdentityProperty]",
"\n [AggregateBy]",
"\n public string EconomicBasis { get; init; }",
"\n ",
"\n public double Value { get; init; }",
Expand Down
12 changes: 0 additions & 12 deletions ifrs17/Import/Importers.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -331,18 +331,6 @@
"\nThe new Aoc Configurations are created with the same order of the Aoc Types. "
]
},
{
"cell_type": "code",
"source": [
""
]
},
{
"cell_type": "code",
"source": [
""
]
},
{
"cell_type": "code",
"source": [
Expand Down
15 changes: 13 additions & 2 deletions ifrs17/Report/ReportMutableScopes.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -96,13 +96,15 @@
"\n ((int Year, int Month) ReportingPeriod, string ReportingNode, string Scenario, CurrencyType) ShowSettings => (ReportingPeriod, ReportingNode, Scenario, CurrencyType);",
"\n ",
"\n // Slice and Dice",
"\n protected string[] forbiddenSlices => new string[] { };",
"\n",
"\n IEnumerable<string> RowSlices { get; set; }",
"\n protected string[] defaultRowSlices => new string[] { };",
"\n protected string[] rowSlices => RowSlices is null ? defaultRowSlices : defaultRowSlices.Concat(RowSlices).ToArray();",
"\n protected string[] rowSlices => RowSlices is null ? defaultRowSlices : defaultRowSlices.Concat(RowSlices).Where(x => !forbiddenSlices.Contains(x)).ToArray();",
"\n",
"\n IEnumerable<string> ColumnSlices { get; set; }",
"\n protected string[] defaultColumnSlices => new string[] { };",
"\n protected string[] columnSlices => ColumnSlices is null ? defaultColumnSlices : defaultColumnSlices.Where(cs => !ColumnSlices.Contains(cs)).Concat(ColumnSlices).ToArray(); //I can't put a slice before defaultSlices !!!",
"\n protected string[] columnSlices => ColumnSlices is null ? defaultColumnSlices : defaultColumnSlices.Where(cs => !ColumnSlices.Contains(cs)).Concat(ColumnSlices).Where(x => !forbiddenSlices.Contains(x)).ToArray();",
"\n protected HashSet<(ReportIdentity, CurrencyType)> GetIdentities() => GetStorage().GetIdentities(ReportingPeriod, ReportingNode, Scenario, CurrencyType);",
"\n ",
"\n // Filter",
Expand Down Expand Up @@ -144,6 +146,7 @@
"\n}",
"\n",
"\npublic interface RaReport : IIfrs17Report {",
"\n string[] IIfrs17Report.forbiddenSlices => new string[] {\"AmountType\"};",
"\n string[] IIfrs17Report.defaultRowSlices => new string[] { \"Novelty\", \"VariableType\" };",
"\n string[] IIfrs17Report.defaultColumnSlices => new string[] { \"Currency\", \"LiabilityType\", \"EconomicBasis\" };",
"\n IDataCube<ReportVariable> IIfrs17Report.GetDataCube() => DataFilter == null ",
Expand All @@ -154,6 +157,7 @@
"\n}",
"\n",
"\npublic interface WrittenReport : IIfrs17Report {",
"\n string[] IIfrs17Report.forbiddenSlices => new string[] {nameof(EconomicBasis)};",
"\n string[] IIfrs17Report.defaultRowSlices => new string[] {\"AmountType\"};",
"\n string[] IIfrs17Report.defaultColumnSlices => new string[] { \"Currency\", \"LiabilityType\"};",
"\n IDataCube<ReportVariable> IIfrs17Report.GetDataCube() => DataFilter == null ",
Expand Down Expand Up @@ -195,13 +199,15 @@
"\n : GetScopes<ExperienceAdjustment>(GetIdentities()).Aggregate().ActuarialExperienceAdjustment.Filter(dataFilter);",
"\n}",
"\npublic interface TmReport : IIfrs17Report {",
"\n string[] IIfrs17Report.forbiddenSlices => new string[] {\"AmountType\", nameof(EconomicBasis)};",
"\n string[] IIfrs17Report.defaultRowSlices => new string[] {\"Novelty\", \"VariableType\"};",
"\n string[] IIfrs17Report.defaultColumnSlices => new string[] { \"Currency\" };",
"\n IDataCube<ReportVariable> IIfrs17Report.GetDataCube() => DataFilter == null ",
"\n ? GetScopes<LrcTechnicalMargin>(GetIdentities()).Aggregate().LrcTechnicalMargin",
"\n : GetScopes<LrcTechnicalMargin>(GetIdentities()).Aggregate().LrcTechnicalMargin.Filter(dataFilter);",
"\n}",
"\npublic interface CsmReport : IIfrs17Report {",
"\n string[] IIfrs17Report.forbiddenSlices => new string[] {\"AmountType\", nameof(EconomicBasis)};",
"\n string[] IIfrs17Report.defaultRowSlices => new string[] {\"Novelty\", \"VariableType\"};",
"\n string[] IIfrs17Report.defaultColumnSlices => new string[] { \"Currency\", \"EstimateType\" };",
"\n IDataCube<ReportVariable> IIfrs17Report.GetDataCube() => DataFilter == null ",
Expand All @@ -213,34 +219,39 @@
"\n GetScopes<Loreco>(GetIdentities()).Aggregate().Loreco.Filter(dataFilter);",
"\n}",
"\npublic interface ActLrcReport : IIfrs17Report {",
"\n string[] IIfrs17Report.forbiddenSlices => new string[] {\"AmountType\"};",
"\n string[] IIfrs17Report.defaultRowSlices => new string[] {\"Novelty\",\"VariableType\"};",
"\n string[] IIfrs17Report.defaultColumnSlices => new string[] { \"Currency\", \"EstimateType\" };",
"\n IDataCube<ReportVariable> IIfrs17Report.GetDataCube() => DataFilter == null ",
"\n ? GetScopes<LrcActuarial>(GetIdentities()).Aggregate().LrcActuarial",
"\n : GetScopes<LrcActuarial>(GetIdentities()).Aggregate().LrcActuarial.Filter(dataFilter);",
"\n}",
"\npublic interface LrcReport : IIfrs17Report {",
"\n string[] IIfrs17Report.forbiddenSlices => new string[] {\"AmountType\"};",
"\n string[] IIfrs17Report.defaultRowSlices => new string[] {\"VariableType\"};",
"\n string[] IIfrs17Report.defaultColumnSlices => new string[] { \"Currency\", \"EstimateType\" };",
"\n IDataCube<ReportVariable> IIfrs17Report.GetDataCube() => DataFilter == null ",
"\n ? GetScopes<Lrc>(GetIdentities()).Aggregate().Lrc",
"\n : GetScopes<Lrc>(GetIdentities()).Aggregate().Lrc.Filter(dataFilter);",
"\n}",
"\npublic interface ActLicReport : IIfrs17Report {",
"\n string[] IIfrs17Report.forbiddenSlices => new string[] {\"AmountType\"};",
"\n string[] IIfrs17Report.defaultRowSlices => new string[] {\"Novelty\",\"VariableType\"};",
"\n string[] IIfrs17Report.defaultColumnSlices => new string[] { \"Currency\", \"EstimateType\" };",
"\n IDataCube<ReportVariable> IIfrs17Report.GetDataCube() => DataFilter == null ",
"\n ? GetScopes<LicActuarial>(GetIdentities()).Aggregate().LicActuarial",
"\n : GetScopes<LicActuarial>(GetIdentities()).Aggregate().LicActuarial.Filter(dataFilter);",
"\n}",
"\npublic interface LicReport : IIfrs17Report {",
"\n string[] IIfrs17Report.forbiddenSlices => new string[] {\"AmountType\"};",
"\n string[] IIfrs17Report.defaultRowSlices => new string[] {\"VariableType\"};",
"\n string[] IIfrs17Report.defaultColumnSlices => new string[] { \"Currency\", \"EstimateType\" };",
"\n IDataCube<ReportVariable> IIfrs17Report.GetDataCube() => DataFilter == null ",
"\n ? GetScopes<Lic>(GetIdentities()).Aggregate().Lic",
"\n : GetScopes<Lic>(GetIdentities()).Aggregate().Lic.Filter(dataFilter);",
"\n}",
"\npublic interface FpReport : IIfrs17Report {",
"\n string[] IIfrs17Report.forbiddenSlices => new string[] {\"AmountType\", nameof(EconomicBasis)};",
"\n string[] IIfrs17Report.defaultRowSlices => new string[] {\"VariableType\", \"EstimateType\"};",
"\n string[] IIfrs17Report.defaultColumnSlices => new string[] { \"Currency\",\"LiabilityType\" };",
"\n int IIfrs17Report.headerColumnWidthValue => 500;",
Expand Down
2 changes: 1 addition & 1 deletion ifrs17/Report/ReportScopes.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -385,7 +385,7 @@
"<a id='lic'></a>",
"\n## LIC (Liability for Incurred Claims)",
"\n",
"\nLiability of Incurred Claims (LIC) report includes the contributions from [Lic Actuarial](#lic-actuarial) (Fullfilment Cashflow), [Advance](#written-accrual-deferral) Actual, and [Overdue](#written-accrual-deferral) Actual."
"\nLiability of Incurred Claims (LIC) report includes the contributions from [LIC Actuarial](#lic-actuarial) (Fullfilment Cashflow), [Advance](#written-accrual-deferral) Actual, and [Overdue](#written-accrual-deferral) Actual."
]
},
{
Expand Down